[Coco] How do SAVEM and CSAVEM files work?

Allen Huffman alsplace at pobox.com
Thu Oct 30 16:06:56 EDT 2025


I just noticed that the lwasm assembler will generate multiple segments if you have an RMB in your code. For example:


     ORG $3F00
START RTS
    END

If you use the -fbasic option, you get a BASIC loader that loads data at 3F00, as expected

But if there is an RMB:

     ORG $3F00
START RTS
    RMB 10
    RTS
    END

…It makes two segments with a start-end for the first part (RTS) then a start-end for the next part, 10 bytes down.

I assume if I put this in memory and did a CSAVEM/SAVEM, it has no idea about gaps like that so the file itself will just be one continual block of data”

57 for RTS, then the zeros:

3F00: 57,0,0,0,0,0,0,0,0,0,0,57

But M files support segments, such as multiple ORG statements, don’t they?

     ORG $3F00
START RTS

    ORG $3F08
START2 RTS

    END

Is there any utility in toolshed, etc. that can dump an M file and show how it looks inside?

I’ve been curious about this since the early days of my CoCo. I would CLOADM some programs and see them draw on the 32 column screen (I assume with an ORG there) followed by loading the program wherever it loaded.

I am also assuming things like EDTASM would generate this when you compiled and saved to tape/disk.

		— A



More information about the Coco mailing list