cdc:nos2.source:opl871:keyutil
Table of Contents
KEYUTIL
Table Of Contents
- [00003] KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE.
- [00007] KEY UTILITY HOST LOADED CONTROLWARE.
Source Code
- KEYUTIL.txt
- IDENT KEYUTIL
- MACHINE Z80
- TITLE KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE.
- *COMMENT KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- KYU SPACE 4,10
- *** KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE.
- *
- * W. F. ANSLEY. 83/06/01.
- * M. L. SWANSON. 85/01/03.
- KYU SPACE 4,10
- *** *KEYUTIL* IS THE SOURCE CODE FOR THE Z80 PROGRAM THAT
- * IS LOADED INTO THE 721 TERMINAL BY THE *KEY* UTILITY.
- * THE PROGRAM *KEYEX* ACTUALLY HAS THE BINARY FOR THIS
- * PROGRAM HARDCODED WITHIN ITSELF; THIS PROGRAM IS INCLUDED
- * ON THE OPL FOR DOCUMENTATION PURPOSES ONLY. IF ANY
- * CHANGES ARE MADE TO THIS PROGRAM, CORRESPONDING CHANGES
- * MUST BE MADE TO THE HARDCODED VALUES WITHIN *KEYEX*.
- KYU SPACE 4,10
- *** ASSEMBLY CONSTANTS.
- SENDB EQU #0087 SEND CHARACTER IN B
- OBYTE2 EQU #E047
- DLMENA EQU #E0B9
- KYT EQU #D7E0 KEY TABLE ADDRESS
- KTL EQU #F0 KEY TABLE LENGTH
- DEFB EQU #C000 DEFINITION BUFFER
- DFBE EQU #CAFF DEFINITION BUFFER END
- ORG #D100
- KYU SPACE 4,25
- *** PUSH - PUSH FUNCTION KEY DEFINITIONS.
- *
- * *PUSH* COPIES THE IMAGE OF THE CURRENT KEY DEFINITIONS
- * AND COPIES IT TO A BUFFER WITHIN THE TERMINAL.
- *
- * CALLS RESET.
- PUSH BSS 0 PUSH ROUTINE
- LD DE,SKTB GET KEY TABLE ADDRESS
- LD BC,KTL GET BYTE COUNTER
- LD HL,KYT GET KEY TABLE SAVE AREA
- LDIR PUSH KEY TABLE
- LD A,(OBYTE2)
- LD (OBS2),A SAVE SETUP CHARACTERISTICS
- LD A,(DLMENA)
- LD (DLMS),A SAVE DELIMITER FLAG
- SCF CARRIAGE RETURN AFTER FUNCTION KEY
- CCF CLEAR CARRY FLAG
- LD A,(DEFB) GET LENGTH OF KEY DEFINITIONS
- LD D,A
- LD A,(DEFB+1)
- LD E,A
- INC DE
- INC DE SET DE TO LENGTH+2
- LD (DFLS),DE SAVE TOTAL LENGTH
- LD HL,DFBE MOVE HL TO END OF DEF BUFF
- SBC HL,DE SET HL TO START OF PUSH AREA
- LD (DFSA),HL SAVE WHERE MOVED
- EX DE,HL MOVE DE TO LOCATION MOVED
- LD HL,DEFB SET HL TO KEY DEFINITION BUFFER
- LD BC,(DFLS) SET NUMBER OF BYTES TO MOVE
- LDIR PUSH DEFINITIONS
- CALL RESET RESET DEFINITION TABLE
- RET RETURN
- KYU SPACE 4,25
- *** POP - POP FUNCTION KEY DEFINITIONS.
- *
- * *POP* COPIES THE STORED FUNCTION KEY DEFINITIONS
- * FROM THE BUFFER WITHIN THE TERMINAL TO THE
- * RESIDENT FUNCTION KEY DEFINITION AREA.
- POP BSS 0 ENTRY
- LD HL,SKTB RESTORE KEY TABLE BUFFER ADDRESS
- LD BC,KTL RESTORE KEY TABLE LENGTH
- LD DE,KYT RESTORE KEY TABLE AREA
- LDIR RETURN USERS DEFINITIONS
- LD A,(OBS2)
- LD (OBYTE2),A RESTORE OBYTE2
- LD A,(DLMS)
- LD (DLMENA),A RESTORE DELIMITER FLAG
- LD HL,(DFSA) DEF SAVED ADDRESS
- LD A,H
- OR L
- RET Z IF NONE
- LD DE,DEFB RESTORE DEFINITION BUFFER
- LD BC,(DFLS) NUMBER OF BYTES TO MOVE
- LDIR RESTORE DEFINITIONS
- RET RETURN
- KYU SPACE 4,25
- *** RESET - RESET DEFINITION TABLE.
- *
- * *RESET* INITIALIZES THE RESIDENT KEY DEFINITION TABLE
- * WITHIN THE TERMINAL.
- RESET BSS 0 ENTRY
- LD A,(OBYTE2) GET OBYTE2
- OR 2 SET NUMERIC PAD SHIFTED
- LD (OBYTE2),A REPLACE OBYTE2
- LD A,0
- LD (DLMENA),A SET DELIMITER FLAG FALSE
- LD BC,KTL+3
- RESET1 BSS 0
- DEC BC
- DEC BC
- DEC BC
- LD A,B
- OR C
- RET Z UNTIL DONE WITH TABLE
- LD HL,KYT-3 SET HL TO KEY TABLE-3
- ADD HL,BC SET HL TO DEFINITION BYTE
- LD (HL),#30 UNDEFINE KEY
- JR RESET1
- KYU SPACE 4,25
- *** LABEL - GET LABELS FROM MEMORY.
- *
- * *LABEL* RETRIEVES THE STORED FUNCTION KEY LABELS
- * FROM WITHIN THE TERMINAL MEMORY.
- *
- * CALLS POP, PUSH, SENDB.
- LABEL BSS 0 ENTRY
- LD A,(#D8DD)
- LD H,A
- LD A,(#D8DE)
- LD L,A
- LABEL1 BSS 0
- LD B,(HL)
- LD A,B
- CP #FF
- JP Z,LABEL2 UNTIL REACH LAST BYTE
- PUSH HL
- CALL SENDB SEND CHARACTER TO HOST
- POP HL
- INC HL TO NEXT CHARACTER
- JR LABEL1
- LABEL2 BSS 0
- LD B,#0D
- CALL SENDB SEND CARRIAGE RETURN
- RET RETURN
- DFSA BSS 2 DEFINITIONS SAVED ADDRESS
- SKTB BSS KTL SAVE KEY TABLE BUFFER
- OBS2 CON 0 OBYTE2 SAVE AREA
- DLMS CON 0 DELMENA SAVE AREA
- DFLS CON 0 DEF LENGTH SAVE AREA
- END
cdc/nos2.source/opl871/keyutil.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator