User Tools

Site Tools


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)