*``````````````````````````````* * CURSFOR :: MOVE CURSOR FORWD * *- -* * FLAGS: NZC----- REG: AYM- * * CYCLES: 20 * *- -* * USAGE: * * LDA (AMT TO MOVE) * * JSR CURSFOR * *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* * CURSFOR CLC ADC CURSH STA CURSH * ******************************** * ** ERROR CONTROL * ******************************** * LDA ERRCTRL CMP #1 BEQ :CHKERR JMP :ERREND :CHKERR LDA CURSH CMP #40 ; MAX COL + 1 BCS :XOVF JMP :ERREND :XOVF _ERR :E_SID;:E_XOF;:E_DMP1;RETURN;#10 * ******************************** * :ERREND * ******************************** * JSR VTAB RTS * ** DATA * :E_SID ASC "CURSFOR (CURF MACRO)",00 :E_DMP1 ASC "DUMPING RETURN BLOCK...",00 :E_XOF ASC "CURSOR X OVERFLOW: X <> MIN/MAX",00 * *``````````````````````````````* *CURSBAK :: MOVE CURSOR BACKWD * * * *- -* * FLAGS: NZC----- REG: AYM- * * CYCLES: 26 * *- -* * USAGE: * * LDA (AMT TO MOVE) * * JSR CURSBAK * *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* * CURSBAK SEC STA SCRATCH LDA CURSH SBC SCRATCH STA CURSH * ******************************** * ** ERROR CONTROL * ******************************** * LDA ERRCTRL CMP #1 BEQ :CHKERR JMP :ERREND :CHKERR LDA CURSH CMP #40 ; MIN COLUMN BCS :XOVF JMP :ERREND :XOVF _ERR :E_SID;:E_XOF;:E_DMP1;RETURN;#10 * ******************************** * :ERREND * ******************************** * JSR VTAB RTS * ** DATA * :E_SID ASC "CURSBAK (CURB MACRO)",00 :E_DMP1 ASC "DUMPING RETURN BLOCK...",00 :E_XOF ASC "CURSOR X OVERFLOW: X <> MIN/MAX",00 * *``````````````````````````````* * CURSDN :: MOVE CURSOR DOWN * * * *- -* * FLAGS: NZC----- REG: AYM- * * CYCLES: 20 * *- -* * USAGE: * * LDA (AMT TO MOVE) * * JSR CURSDN * *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* * CURSDN CLC ADC CURSV STA CURSV * ******************************** * ** ERROR CONTROL * ******************************** * LDA ERRCTRL CMP #1 BEQ :CHKERR JMP :ERREND :CHKERR LDA CURSV CMP #24 ; MAX ROWS BCS :YOVF JMP :ERREND :YOVF _ERR :E_SID;:E_YOF;:E_DMP1;RETURN;#10 * ******************************** * :ERREND * ******************************** * JSR VTAB RTS * ** DATA * :E_SID ASC "CURSDN (CURD MACRO)",00 :E_DMP1 ASC "DUMPING RETURN BLOCK...",00 :E_YOF ASC "CURSOR Y OVERFLOW: Y <> MIN/MAX",00 * *``````````````````````````````* * CURSUP :: MOVE CURSOR UP * * * *- -* * FLAGS: NZC----- REG: AYM- * * CYCLES: 26 * *- -* * USAGE: * * LDA (AMT TO MOVE) * * JSR CURSUP * *,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,* * CURSUP SEC STA SCRATCH LDA CURSV SBC SCRATCH STA CURSV * ******************************** * ** ERROR CONTROL * ******************************** * LDA ERRCTRL CMP #1 BEQ :CHKERR JMP :ERREND :CHKERR LDA CURSV CMP #24 ; MAX ROWS BCS :YOVF JMP :ERREND :YOVF _ERR :E_SID;:E_YOF;:E_DMP1;RETURN;#10 * ******************************** * :ERREND * ******************************** * JSR VTAB RTS * ** DATA * :E_SID ASC "CURSUP (CURU MACRO)",00 :E_DMP1 ASC "DUMPING RETURN BLOCK...",00 :E_YOF ASC "CURSOR Y OVERFLOW: Y <> MIN/MAX",00 *