[Coco] Assembly help: Corrupted bin file ?

Fedor Steeman petrander at gmail.com
Thu Dec 18 02:35:46 EST 2008


Thanks Roger.

So, how do I code a multi-segment source file in assembly? Do I just use
multiple origin statements? Like:

             ORG    $2000
START   NOP
             NOP
END START
             ORG    $7000
STRT2   NOP
             NOP
END STRT2

Cheers,
Fedor

2008/12/18 Roger Taylor <operator at coco3.com>

> At 01:30 AM 12/17/2008, you wrote:
>
>> Hello everyone,
>>
>> I am still trying to learn assembly language but keep on running into
>> problems.
>>
>> I have been trying to have the following source code assembled:
>>
>> VIDRAM  EQU     $0400     *Start of Video Display location
>> V0CLR   EQU     $FFC0        *Clear bit for Sam Chip (Graphics mode)
>> V1SET   EQU     $FFC3        *Set V1 bit in Sam Chip (Graphics mode)
>> V2SET   EQU     $FFC5        *set V2 bit in Sam Chip (Graphics mode)
>> VOFSET  EQU     $FFC6       *Display Offset Binary, This is the CLR Bit
>> (Video page offset)
>> VDGSET  EQU     $FF22        *PIA1 data port B: VDG Control output
>> POLCAT  EQU     $A000        *Color Basic rom poll keyboard routine
>>
>>        ORG     $21FD
>>        LDX     #VIDRAM   *331D: 8E 04 00
>>        LDD     $AAAA     *3320: CC AA AA
>> Z3323   STD     ,X++      *3323: ED 81
>>        CMPX    #$1C00    *3325: 8C 1C 00
>>        BCS     Z3323     *3328: 25 F9
>>        NOP               *332A: 12
>> PMODE4  STA     V0CLR     *2787: B7 FF C0
>>        STA     V1SET     *278A: B7 FF C3
>>        STA     V2SET     *278D: B7 FF C5
>>        LDA     #$F8      *2790: 86 F8
>>        STA     VDGSET    *2792: B7 FF 22
>>        STA     VOFSET    *2795: B7 FF C6
>>        JSR     [POLCAT]  *332E: AD 9F A0 00
>>        RTS               *3332:
>>
>
>
> The source code above is missing two things:
> the label of the starting line/address
>
> try:
> EXEC   LDX #VIDRAM
>
> and the LOADM/EXEC finalizer is missing
> the last line of the source code should be:
>
>   END  EXEC
>
> Now when you LOADM the program from BASIC, all you have to do is type EXEC
> No address is needed as in EXEC #####.
> If you just used END without an address, you'd have to type EXEC $21FD from
> BASIC to run the program.
>
>
>
> --
> Roger Taylor
>
> http://www.wordofthedayonline.com
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>



More information about the Coco mailing list