cdc:nos2.source:opl.opl871:deck:keyutil
Deck KEYUTIL
Library Member Format: MODIFY
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.keyutil +++| IDENT KEYUTIL 00002 M00S00002.keyutil +++| MACHINE Z80 00003 M00S00003.keyutil +++| TITLE KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE. 00004 M00S00004.keyutil +++|*COMMENT KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE.
Line S00005 Modification History | |
---|---|
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00005 M01S00005.281l803 ---| COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1984.
Line S00001 Modification History | |
---|---|
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00006 M01S00001.281l803 +++| COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00007 M00S00006.keyutil +++| KYU SPACE 4,10 00008 M00S00007.keyutil +++|*** KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE. 00009 M00S00008.keyutil +++|* 00010 M00S00009.keyutil +++|* W. F. ANSLEY. 83/06/01. 00011 M00S00010.keyutil +++|* M. L. SWANSON. 85/01/03. 00012 M00S00011.keyutil +++| KYU SPACE 4,10 00013 M00S00012.keyutil +++|*** *KEYUTIL* IS THE SOURCE CODE FOR THE Z80 PROGRAM THAT 00014 M00S00013.keyutil +++|* IS LOADED INTO THE 721 TERMINAL BY THE *KEY* UTILITY. 00015 M00S00014.keyutil +++|* THE PROGRAM *KEYEX* ACTUALLY HAS THE BINARY FOR THIS 00016 M00S00015.keyutil +++|* PROGRAM HARDCODED WITHIN ITSELF; THIS PROGRAM IS INCLUDED 00017 M00S00016.keyutil +++|* ON THE OPL FOR DOCUMENTATION PURPOSES ONLY. IF ANY 00018 M00S00017.keyutil +++|* CHANGES ARE MADE TO THIS PROGRAM, CORRESPONDING CHANGES 00019 M00S00018.keyutil +++|* MUST BE MADE TO THE HARDCODED VALUES WITHIN *KEYEX*. 00020 M00S00019.keyutil +++| KYU SPACE 4,10 00021 M00S00020.keyutil +++|*** ASSEMBLY CONSTANTS. 00022 M00S00021.keyutil +++| 00023 M00S00022.keyutil +++|SENDB EQU #0087 SEND CHARACTER IN B 00024 M00S00023.keyutil +++|OBYTE2 EQU #E047 00025 M00S00024.keyutil +++|DLMENA EQU #E0B9 00026 M00S00025.keyutil +++|KYT EQU #D7E0 KEY TABLE ADDRESS 00027 M00S00026.keyutil +++|KTL EQU #F0 KEY TABLE LENGTH 00028 M00S00027.keyutil +++|DEFB EQU #C000 DEFINITION BUFFER 00029 M00S00028.keyutil +++|DFBE EQU #CAFF DEFINITION BUFFER END 00030 M00S00029.keyutil +++| 00031 M00S00030.keyutil +++| ORG #D100 00032 M00S00031.keyutil +++| 00033 M00S00032.keyutil +++| KYU SPACE 4,25 00034 M00S00033.keyutil +++|*** PUSH - PUSH FUNCTION KEY DEFINITIONS. 00035 M00S00034.keyutil +++|* 00036 M00S00035.keyutil +++|* *PUSH* COPIES THE IMAGE OF THE CURRENT KEY DEFINITIONS 00037 M00S00036.keyutil +++|* AND COPIES IT TO A BUFFER WITHIN THE TERMINAL. 00038 M00S00037.keyutil +++|* 00039 M00S00038.keyutil +++|* CALLS RESET. 00040 M00S00039.keyutil +++| 00041 M00S00040.keyutil +++|PUSH BSS 0 PUSH ROUTINE 00042 M00S00041.keyutil +++| LD DE,SKTB GET KEY TABLE ADDRESS 00043 M00S00042.keyutil +++| LD BC,KTL GET BYTE COUNTER 00044 M00S00043.keyutil +++| LD HL,KYT GET KEY TABLE SAVE AREA 00045 M00S00044.keyutil +++| LDIR PUSH KEY TABLE 00046 M00S00045.keyutil +++| LD A,(OBYTE2) 00047 M00S00046.keyutil +++| LD (OBS2),A SAVE SETUP CHARACTERISTICS 00048 M00S00047.keyutil +++| LD A,(DLMENA) 00049 M00S00048.keyutil +++| LD (DLMS),A SAVE DELIMITER FLAG 00050 M00S00049.keyutil +++| SCF CARRIAGE RETURN AFTER FUNCTION KEY 00051 M00S00050.keyutil +++| CCF CLEAR CARRY FLAG 00052 M00S00051.keyutil +++| LD A,(DEFB) GET LENGTH OF KEY DEFINITIONS 00053 M00S00052.keyutil +++| LD D,A 00054 M00S00053.keyutil +++| LD A,(DEFB+1) 00055 M00S00054.keyutil +++| LD E,A 00056 M00S00055.keyutil +++| INC DE 00057 M00S00056.keyutil +++| INC DE SET DE TO LENGTH+2 00058 M00S00057.keyutil +++| LD (DFLS),DE SAVE TOTAL LENGTH 00059 M00S00058.keyutil +++| LD HL,DFBE MOVE HL TO END OF DEF BUFF 00060 M00S00059.keyutil +++| SBC HL,DE SET HL TO START OF PUSH AREA 00061 M00S00060.keyutil +++| LD (DFSA),HL SAVE WHERE MOVED 00062 M00S00061.keyutil +++| EX DE,HL MOVE DE TO LOCATION MOVED 00063 M00S00062.keyutil +++| LD HL,DEFB SET HL TO KEY DEFINITION BUFFER 00064 M00S00063.keyutil +++| LD BC,(DFLS) SET NUMBER OF BYTES TO MOVE 00065 M00S00064.keyutil +++| LDIR PUSH DEFINITIONS 00066 M00S00065.keyutil +++| CALL RESET RESET DEFINITION TABLE 00067 M00S00066.keyutil +++| RET RETURN 00068 M00S00067.keyutil +++| 00069 M00S00068.keyutil +++| KYU SPACE 4,25 00070 M00S00069.keyutil +++|*** POP - POP FUNCTION KEY DEFINITIONS. 00071 M00S00070.keyutil +++|* 00072 M00S00071.keyutil +++|* *POP* COPIES THE STORED FUNCTION KEY DEFINITIONS 00073 M00S00072.keyutil +++|* FROM THE BUFFER WITHIN THE TERMINAL TO THE 00074 M00S00073.keyutil +++|* RESIDENT FUNCTION KEY DEFINITION AREA. 00075 M00S00074.keyutil +++| 00076 M00S00075.keyutil +++|POP BSS 0 ENTRY 00077 M00S00076.keyutil +++| LD HL,SKTB RESTORE KEY TABLE BUFFER ADDRESS 00078 M00S00077.keyutil +++| LD BC,KTL RESTORE KEY TABLE LENGTH 00079 M00S00078.keyutil +++| LD DE,KYT RESTORE KEY TABLE AREA 00080 M00S00079.keyutil +++| LDIR RETURN USERS DEFINITIONS 00081 M00S00080.keyutil +++| LD A,(OBS2) 00082 M00S00081.keyutil +++| LD (OBYTE2),A RESTORE OBYTE2 00083 M00S00082.keyutil +++| LD A,(DLMS) 00084 M00S00083.keyutil +++| LD (DLMENA),A RESTORE DELIMITER FLAG 00085 M00S00084.keyutil +++| LD HL,(DFSA) DEF SAVED ADDRESS 00086 M00S00085.keyutil +++| LD A,H 00087 M00S00086.keyutil +++| OR L 00088 M00S00087.keyutil +++| RET Z IF NONE 00089 M00S00088.keyutil +++| 00090 M00S00089.keyutil +++| LD DE,DEFB RESTORE DEFINITION BUFFER 00091 M00S00090.keyutil +++| LD BC,(DFLS) NUMBER OF BYTES TO MOVE 00092 M00S00091.keyutil +++| LDIR RESTORE DEFINITIONS 00093 M00S00092.keyutil +++| RET RETURN 00094 M00S00093.keyutil +++| 00095 M00S00094.keyutil +++| KYU SPACE 4,25 00096 M00S00095.keyutil +++|*** RESET - RESET DEFINITION TABLE. 00097 M00S00096.keyutil +++|* 00098 M00S00097.keyutil +++|* *RESET* INITIALIZES THE RESIDENT KEY DEFINITION TABLE 00099 M00S00098.keyutil +++|* WITHIN THE TERMINAL. 00100 M00S00099.keyutil +++| 00101 M00S00100.keyutil +++|RESET BSS 0 ENTRY 00102 M00S00101.keyutil +++| LD A,(OBYTE2) GET OBYTE2 00103 M00S00102.keyutil +++| OR 2 SET NUMERIC PAD SHIFTED 00104 M00S00103.keyutil +++| LD (OBYTE2),A REPLACE OBYTE2 00105 M00S00104.keyutil +++| LD A,0 00106 M00S00105.keyutil +++| LD (DLMENA),A SET DELIMITER FLAG FALSE 00107 M00S00106.keyutil +++| LD BC,KTL+3 00108 M00S00107.keyutil +++|RESET1 BSS 0 00109 M00S00108.keyutil +++| DEC BC 00110 M00S00109.keyutil +++| DEC BC 00111 M00S00110.keyutil +++| DEC BC 00112 M00S00111.keyutil +++| LD A,B 00113 M00S00112.keyutil +++| OR C 00114 M00S00113.keyutil +++| RET Z UNTIL DONE WITH TABLE 00115 M00S00114.keyutil +++| 00116 M00S00115.keyutil +++| LD HL,KYT-3 SET HL TO KEY TABLE-3 00117 M00S00116.keyutil +++| ADD HL,BC SET HL TO DEFINITION BYTE 00118 M00S00117.keyutil +++| LD (HL),#30 UNDEFINE KEY 00119 M00S00118.keyutil +++| JR RESET1 00120 M00S00119.keyutil +++| 00121 M00S00120.keyutil +++| KYU SPACE 4,25 00122 M00S00121.keyutil +++|*** LABEL - GET LABELS FROM MEMORY. 00123 M00S00122.keyutil +++|* 00124 M00S00123.keyutil +++|* *LABEL* RETRIEVES THE STORED FUNCTION KEY LABELS 00125 M00S00124.keyutil +++|* FROM WITHIN THE TERMINAL MEMORY. 00126 M00S00125.keyutil +++|* 00127 M00S00126.keyutil +++|* CALLS POP, PUSH, SENDB. 00128 M00S00127.keyutil +++| 00129 M00S00128.keyutil +++|LABEL BSS 0 ENTRY 00130 M00S00129.keyutil +++| LD A,(#D8DD) 00131 M00S00130.keyutil +++| LD H,A 00132 M00S00131.keyutil +++| LD A,(#D8DE) 00133 M00S00132.keyutil +++| LD L,A 00134 M00S00133.keyutil +++|LABEL1 BSS 0 00135 M00S00134.keyutil +++| LD B,(HL) 00136 M00S00135.keyutil +++| LD A,B 00137 M00S00136.keyutil +++| CP #FF 00138 M00S00137.keyutil +++| JP Z,LABEL2 UNTIL REACH LAST BYTE 00139 M00S00138.keyutil +++| 00140 M00S00139.keyutil +++| PUSH HL 00141 M00S00140.keyutil +++| CALL SENDB SEND CHARACTER TO HOST 00142 M00S00141.keyutil +++| POP HL 00143 M00S00142.keyutil +++| INC HL TO NEXT CHARACTER 00144 M00S00143.keyutil +++| JR LABEL1 00145 M00S00144.keyutil +++|LABEL2 BSS 0 00146 M00S00145.keyutil +++| LD B,#0D 00147 M00S00146.keyutil +++| CALL SENDB SEND CARRIAGE RETURN 00148 M00S00147.keyutil +++| RET RETURN 00149 M00S00148.keyutil +++| 00150 M00S00149.keyutil +++|DFSA BSS 2 DEFINITIONS SAVED ADDRESS 00151 M00S00150.keyutil +++|SKTB BSS KTL SAVE KEY TABLE BUFFER 00152 M00S00151.keyutil +++|OBS2 CON 0 OBYTE2 SAVE AREA 00153 M00S00152.keyutil +++|DLMS CON 0 DELMENA SAVE AREA 00154 M00S00153.keyutil +++|DFLS CON 0 DEF LENGTH SAVE AREA 00155 M00S00154.keyutil +++| 00156 M00S00155.keyutil +++| END
cdc/nos2.source/opl.opl871/deck/keyutil.txt ยท Last modified: (external edit)