[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