[Coco] Color Forth Help Request
Stephen Pereira
spereira1952 at comcast.net
Sat Feb 21 12:20:08 EST 2015
Art & Darren:
Thank you both so very much for your attention and assistance with my problem!
As I said in a previous note, I am a good 8080 assembly language programmer, but I’m a rank beginner with the 6809. I am not surprised that I made this error, but I am surprised that the assembler did not catch it.
I am using the EDTASM6309 that I purchased from Robert Gault. I’ll bet he’ll be interested to hear about this.
This would have taken me quite a bit of time to figure out on my own, to say the least. I probably would have gone ahead and plugged in a 6809 back into my computer in order to be using one machine for all my projects, rather than splitting between two different machines.
Thanka a million, guys! I greatly appreciate your help with this!
smp
--
Stephen M. Pereira
Bedford, NH 03110
KB1SXE
> On Feb 20, 2015, at 8:16 PM, Darren A <mechacoco at gmail.com> wrote:
>
> On Fri, Feb 20, 2015 at 4:20 PM, Stephen Pereira <spereira1952 at comcast.net>
> wrote:
>
>> Here is my code:
>>
>> *
>> * BRUTE FORCE ROUTINE TO LOAD SCREENS 1 THRU 8
>> * USING THE DECB LOADM ROUTINE
>> * JAN 2015, SMP
>> * ERROR CHECK & ADVICE FROM BRETT GORDON
>> *
>> FCB $84,'L,'S,'C,'R+$80
>> FDB SSCR-7
>> LSCR FDB *+2
>> PSHS CC,A,B,DP,X,Y,U SAVE ALL JUST IN CASE
>> LDX #$094C CLEAR FILE NAME LOCATION
>> LDA #32
>> L3 STA ,X+
>> CMPX #$0954
>> BNE L3
>> LDX #$094C FILE NAME LOCATION
>> L4 JSR $A1B1 GET KEY IN A
>> TFR A,B SAVE KEY IN B
>> PSHS B,X,Y
>> JSR [$A002] ECHO KEY
>> PULS Y,X,B
>> TFR B,A GET KEY IN A
>> CMPA #13 CR?
>> BEQ NXT2 CR ENDS LOOP
>> STA ,X+ STORE KEY IN FILE NAME
>> CMPX #$0954 DONE IF 8 KEYS
>> BNE L4
>> NXT2 LDX #$0954 FILE EXTENSION LOCATION
>> LDA #$42 B
>> STA ,X+
>> LDA #$49 I
>> STA ,X+
>> LDA #$4E N
>> STA ,X
>> LDD #$0200 FILE TYPE = 2, ASCII FLAG = 0
>> STD $0957
>> LDX #$0000
>> STX #$00D3 OFFSET = 0
>> JSR $CA07 OPEN NEXT AVAIL FILE FOR INPUT
>> LDD #RET2 RETURN ADDR FOR LOADM RTS
>> PSHS D
>> JMP $CFE3 LOADM
>> RET2 PULS U,Y,X,DP,B,A,CC RESTORE ALL
>> JMP NEXT RETURN TO FORTH
>>
>> This code works fine on a stock CoCo 3, as well as in VCC with a 6809
>> CPU. It is not elegant, and I don’t think I tried any fancy stuff. Don’t
>> worry about the first few lines of code - they are for linking into Color
>> Forth, and that seem to be fine.
>>
>> As far as I can tell, this code does not initiate any disk activity when
>> the CPU is a 6309, the machine simply goes off into never-never-land.
>>
>> Thanks, in advance, for whatever observations or advice you may have to
>> offer.
>>
>
>
> The code listing above contains an illegal instruction. In particular:
>
> STX #$00D3 OFFSET = 0
>
> You can't use an immediate operand with STX. If that is how it actually
> appears in your source code then it should be fixed. I would be surprised
> that an assembler accepts that without an error or warning.
>
> - Darren
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco
More information about the Coco
mailing list