1 REM Ins{nd av Bj|rn Linderson <5829> 1986-05-03 03.51.37 ; DETTA PROGRAM [R SKRIVET AV BJ\RN LINDERSON ; OCH [R EN SK[RMEDITOR MED SAMMA TANGENTER SOM ORD800. ; F]R FRITT KOPIERAS OCH [VEN ANV[NDAS F\R KOMERSIELLT BRUK. ; UTVECKLAT AV SOFTWORKS / SOFTWORKS DATACENTRAL ; NORRK\PING ; 25 RADER A' 80 TECKEN EDITERAS. ; ; IX + 1 XLED FFFB ; IX + 2 YLED FFFC ; IX + 3 SIGN FFFD ; IX + 4 WRTCHAR FFFE ; IX + 5 YROW FFFF ORG 50000 CALL INIT ; MACRO SUB CALL CALL MAIN ; MACRO SUB CALL RET ; RETURN MAIN CALL FETCH ; MACRO SUB CALL CALL KEYTEST ; MACRO SUB CALL CALL BORDER ; MACRO SUB CALL LD A,(IX+3) ; INDEX REGISTER OP CP 1 ; COMPARE X TO ACCU JR Z,MAIN ; JR CONDITION LD A,(IX+4) ; INDEX REGISTER OP CP 3 ; COMPARE X TO ACCU RET Z ; RETURN CONDITION CALL WRITE ; MACRO SUB CALL INC (IX+1) ; INDEX REGISTER OP JR MAIN ; JR ABSOLUTE INIT LD HL,65530 ; 16 BIT LOAD LD B,5 ; B REGISTER LOAD Q LD (HL),0 ; LOAD POINT OP INC HL ; REGISTER INC DJNZ Q ; JR CONDITION LD A,6 ; ACCUMULATOR LOAD OUT (56),A ; I/O PAC OP LD A,25 ; ACCUMULATOR LOAD OUT (57),A ; I/O PAC OP LD IX,65530 ; 16 BIT LOAD CALL CLS ; MACRO SUB CALL LD A,1 ; ACCUNULATOR LOAD OUT (99),A ; I/O PAC OP RET ; RETURN FETCH LD (IX+4),0 ; INDEX REGISTER OP LD (IX+3),0 ; INDEX REGISTER OP CALL CURSON ; MACRO SUB CALL LD HL,65507 ; 16 BIT LOAD LD (HL),0 ; LOAD POINT OP L1 LD A,(HL) ; LOAD POINT OP CP 0 ; COMPARE X TO ACCU JR Z,L1 ; JR CONDITION LD (IX+4),A ; INDEX REGISTER OP CALL CURSOFF ; MACRO SUB CALL RET ; RETURN KEYTEST LD A,(IX+4) ; INDEX REGISTER OP LD (IX+3),1 ; INDEX REGISTER OP CP 192 ; COMPARE X TO ACCU JP Z,INSERT ; JP CONDITION CP 193 ; COMPARE X TO ACCU JP Z,DELETE ; JP CONDITION CP 196 ; COMPARE X TO ACCU JP Z,UP ; JP CONDITION CP 198 ; COMPARE X TO ACCU JP Z,DOWN ; JP CONDITION CP 8 ; COMPARE X TO ACCU JP Z,LEFT ; JP CONDITION CP 9 ; COMPARE X TO ACCU JP Z,RIGHT ; JP CONDITION CP 13 ; COMPARE X TO ACCU JP Z,CRLF ; JP CONDITION CP 215 ; COMPARE X TO ACCU JP Z,CLS ; JP CONDITION LD (IX+3),0 ; INDEX REGISTER OP RET ; RETURN UP DEC (IX+2) ; INDEX REGISTER OP RET ; RETURN DOWN INC (IX+2) ; INDEX REGISTER OP RET ; RETURN LEFT DEC (IX+1) ; INDEX REGISTER OP RET ; RETURN RIGHT INC (IX+1) ; INDEX REGISTER OP RET ; RETURN CRLF CALL CURSOFF ; MACRO SUB CALL INC (IX+2) ; INDEX REGISTER OP LD (IX+1),0 ; INDEX REGISTER OP CALL CURSON ; MACRO SUB CALL RET ; RETURN CALC EXX ; SWAP REGISTERS LD B,(IX+2) ; INDEX REGISTER OP LD HL,30640 ; 16 BIT LOAD LD DE,80 ; 16 BIT LOAD INC B ; REGISTER INC L2 ADD HL,DE ; ADDITION DJNZ L2 ; JR CONDITION LD B,(IX+1) ; INDEX REGISTER OP INC B ; REGISTER INC DEC HL ; REGISTER DEC L3 INC HL ; REGISTER INC DJNZ L3 ; JR CONDITION PUSH HL ; STACK OPERATION EXX ; SWAP REGISTERS POP HL ; STACK OPERATION RET ; RETURN CURSOFF CALL CALC ; MACRO SUB CALL LD A,(HL) ; LOAD POINT OP RES 7,A ; BIT TEST LD (HL),A ; LOAD POINT OP RET ; RETURN CURSON CALL CALC ; MACRO SUB CALL LD A,(HL) ; LOAD POINT OP SET 7,A ; BIT TEST LD (HL),A ; LOAD POINT OP RET ; RETURN BORDER LD A,(IX+1) ; INDEX REGISTER OP CP 255 ; COMPARE X TO ACCU CALL Z,MIN ; CALL CONDITION SUB CP 80 ; COMPARE X TO ACCU CALL Z,OEKA ; CALL CONDITION SUB LD A,(IX+2) ; INDEX REGISTER OP CP 255 ; COMPARE X TO ACCU CALL Z,OEKA1 ; CALL CONDITION SUB CP 25 ; COMPARE X TO ACCU CALL Z,NIK ; CALL CONDITION SUB RET ; RETURN MIN DEC (IX+2) ; INDEX REGISTER OP LD (IX+1),79 ; INDEX REGISTER OP RET ; RETURN OEKA INC (IX+2) ; INDEX REGISTER OP LD (IX+1),0 ; INDEX REGISTER OP RET ; RETURN OEKA1 INC (IX+2) ; INDEX REGISTER OP RET ; RETURN NIK DEC (IX+2) ; INDEX REGISTER OP RET ; RETURN WRITE CALL CALC ; MACRO SUB CALL LD A,(IX+4) ; INDEX REGISTER OP LD (HL),A ; LOAD POINT OP RET ; RETURN CLS LD HL,30720 ; 16 BIT LOAD LD DE,30721 ; 16 BIT LOAD LD BC,2000 ; 16 BIT LOAD LD (HL),32 ; LOAD POINT OP LDIR ; LOAD LD (IX+1),0 ; INDEX REGISTER OP LD (IX+2),0 ; INDEX REGISTER OP RET ; RETURN INSERT CALL CALC ; MACRO SUB CALL INC HL ; INC REGISTER LD DE,32721 ; 16 BIT LOAD EX DE,HL ; SHIFT DE & HL SBC HL,DE ; SUBTRACTION PUSH HL ; STACK OPERATION POP BC ; STACK OPERATION LD DE,32720 ; 16 BIT LOAD LD HL,32719 ; 16 BIT LOAD LDDR ; DOWNLOAD INC HL ; INC REGISTER LD (HL),32 ; LOAD POINT OP RET ; RETURN DELETE CALL CALC ; MACRO SUB CALL PUSH HL ; STACK OPERATION LD DE,32720 ; 16 BIT LOAD EX DE,HL ; EX DE & HL SBC HL,DE ; SUBTRACTION PUSH HL ; STACK OPERATION POP BC ; STACK OPERATION POP HL ; STACK OPERATION PUSH HL ; STACK OPERATION INC HL ; REGISTER INC POP DE ; STACK OPERATION LDIR ; LOAD LD (HL),32 ; LOAD POINT OP RET ; RETURN