* MATRIX CYCLER * DAN PINAL *** TF "D:MCYCLER.OBJ" *** LI OFF * CALL FROM BASIC * X=USR(MCYCLERIROW,COL,MATRIXH,MATRIXV,STARTING CHARACTER) * IF STARTING CHARACTER=O THEN WILL ERASE MATRIX POTMP0 EQU $D4 POTMP1 EQU $D5 HLIMIT EQU $CE VLIMIT EQU $CF SCRNLO EQU $58 SCRNHI EQU $59 ; MCYCLER PLA ; GET # OF ARGS OFF STACK PLA ; HI BYTE OF ROW SHOULD BE 0 PLA ; ROW TAY LDX SCRNHI PLA PLA ; COLUMN CLC ADC SCRNLO BCC AA1 INX AA1 DEY BMI AA2 ; ONLY EXIT CLC ADC #$28 ; +40 FOR NEXT ROW BCC AA1 INX BNE AA1 ; ALWAYS AA2 STA POTMP0 STX POTMP1 PLA PLA STA HLIMIT PLA PLA STA VLIMIT PLA PLA TAX PLOT LDY #0 AB1 STA (POTMP0),Y cmp #$00 ; ERASING? BEQ AB2 INX TXA AB2 INY CPY HLIMIT BNE AB1 CLC LDA #$28 ; +40 FOR NEXT ROW ADC POTMP0 STA POTMP0 BCC AB3 INC POTMP1 AB3 TXA DEC VLIMIT BNE PLOT ; RTS ;