[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