[Coco] Assembly help: Corrupted bin file ?

Roger Taylor operator at coco3.com
Wed Dec 17 18:17:41 EST 2008


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




More information about the Coco mailing list