Hi Koen/Martin,
Yes, I've forgotten to reset the Y register to zero before printing the text (part of the problem of trying to rush this during my tea and lunch breaks at work).
Updated code:
Code:
10FOR N%=0 TO 3 STEP 3
20P%=&B00
30[
40OPT N%
50.START:LDA &350A:STA &70:LDA &350B:STA &71:LDX #0
60.START1:CPX &502:BEQ START2:LDY #0:LDA(&70),Y
70CLC:ADC &70:STA &70:LDA &71:ADC #0:STA &71:INX:JMP START1
80.START2:LDY #0:.S2_LOOP:LDA S2_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S2_LOOP
90LDY #1:STY &72
100.START3:LDY &72:LDA (&70),Y:CMP #255:BNE START0
110JSR &FFE7:JSR &FFE7:RTS
120.START0:CMP #0:BNE START5:LDY #0:.S0_LOOP:LDA S0_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S0_LOOP
130.START4:INC &72:INC &72:JMP START3
140.START5:CMP #1:BNE START6:LDY #0:.S5_LOOP:LDA S5_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S5_LOOP
150JMP START4
160.START6:CMP #2:BNE START7:LDY #0:.S6_LOOP:LDA S6_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S6_LOOP
170JMP START4
180.START7:CMP #3:BNE START8:LDY #0:.S7_LOOP:LDA S7_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S7_LOOP
190JMP START4
200.START8:CMP #4:BNE START9:LDY #0:.S8_LOOP:LDA S8_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S8_LOOP
210JMP START4
220.START9:CMP #5:BNE START10:LDY #0:.S9_LOOP:LDA S9_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S9_LOOP
230JMP START4
240.START13:CMP #11:BNE START4:LDY #0:.S13_LOOP:LDA S13_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S13_LOOP
250JMP START4
260.START10:CMP #8:BNE START11:LDY #0:.S10_LOOP:LDA S10_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S10_LOOP
270JMP START4
280.START11:CMP #9:BNE START12:LDY #0:.S11_LOOP:LDA S11_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S11_LOOP
290JMP START4
300.START12:CMP #10:BNE START13:LDY #0:.S12_LOOP:LDA S12_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S12_LOOP
310JMP START4
320.S0_TEXT:EQUS "North, ":EQUB 0
330.S2_TEXT:EQUS "Visible exits : ":EQUB 0
340.S5_TEXT:EQUS "South, ":EQUB 0
350.S6_TEXT:EQUS "East, ":EQUB 0
360.S7_TEXT:EQUS "West, ":EQUB 0
370.S8_TEXT:EQUS "Up, ":EQUB 0
380.S9_TEXT:EQUS "Down, ":EQUB 0
390.S10_TEXT:EQUS "NorthEast, ":EQUB 0
400.S11_TEXT:EQUS "NorthWest, ":EQUB 0
410.S12_TEXT:EQUS "SouthEast, ":EQUB 0
420.S13_TEXT:EQUS "SouthWest, ":EQUB 0
430]
440NEXT
450PRINT"LSB=";START MOD 256
460PRINT"MSB=";START DIV 256
If that still doesn't work, try this one:
Code:
10FOR N%=0 TO 3 STEP 3
20P%=&B00
30[
40OPT N%
50.START:LDA &350A:STA &70:LDA &350B:STA &71:LDX #0
60.START1:CPX &502:BEQ START2:LDY #0:LDA(&70),Y
70CLC:ADC &70:STA &70:LDA &71:ADC #0:STA &71:INX:JMP START1
80.START2:LDY #0:.S2_LOOP:LDA S2_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S2_LOOP
90LDY #1:STY &72
100.START3:LDY &72:LDA (&70),Y:CMP #255:BNE START0
110JSR &FFE7:JSR &FFE7:RTS
120.START0:CMP #0:BNE START5:LDY #0:.S0_LOOP:LDA S0_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S0_LOOP
130.START4:INC &72:INC &72:JMP START3
140.START5:CMP #1:BNE START6:LDY #0:.S5_LOOP:LDA S5_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S5_LOOP
150JMP START4
160.START6:CMP #2:BNE START7:LDY #0:.S6_LOOP:LDA S6_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S6_LOOP
170JMP START4
180.START7:CMP #3:BNE START8:LDY #0:.S7_LOOP:LDA S7_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S7_LOOP
190JMP START4
200.START8:CMP #4:BNE START9:LDY #0:.S8_LOOP:LDA S8_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S8_LOOP
210JMP START4
220.START9:CMP #5:BNE START10:LDY #0:.S9_LOOP:LDA S9_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S9_LOOP
230JMP START4
240.START13:CMP #11:BNE START4:LDY #0:.S13_LOOP:LDA S13_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S13_LOOP
250JMP START4
260.START10:CMP #8:BNE START11:LDY #0:.S10_LOOP:LDA S10_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S10_LOOP
270JMP START4
280.START11:CMP #9:BNE START12:LDY #0:.S11_LOOP:LDA S11_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S11_LOOP
290JMP START4
300.START12:CMP #10:BNE START13:LDY #0:.S12_LOOP:LDA S12_TEXT,Y:JSR &FFE3:INY:CMP #0:BNE S12_LOOP
310JMP START4
320.S0_TEXT:EQUB 255:EQUS "North, ":EQUB 0
330.S2_TEXT:EQUB 255:EQUS "Visible exits : ":EQUB 0
340.S5_TEXT:EQUB 255:EQUS "South, ":EQUB 0
350.S6_TEXT:EQUB 255:EQUS "East, ":EQUB 0
360.S7_TEXT:EQUB 255:EQUS "West, ":EQUB 0
370.S8_TEXT:EQUB 255:EQUS "Up, ":EQUB 0
380.S9_TEXT:EQUB 255:EQUS "Down, ":EQUB 0
390.S10_TEXT:EQUB 255:EQUS "NorthEast, ":EQUB 0
400.S11_TEXT:EQUB 255:EQUS "NorthWest, ":EQUB 0
410.S12_TEXT:EQUB 255:EQUS "SouthEast, ":EQUB 0
420.S13_TEXT:EQUB 255:EQUS "SouthWest, ":EQUB 0
430]
440NEXT
450PRINT"LSB=";START MOD 256
460PRINT"MSB=";START DIV 256
Kind regards,
Francis