User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:keyutil

Deck KEYUTIL

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.keyutil +++|          IDENT  KEYUTIL
00002  M01S00002.keyutil +++|          MACHINE  Z80
00003  M01S00003.keyutil +++|          TITLE  KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE.
00004  M01S00004.keyutil +++|*COMMENT  KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE.
Line S00005 Modification History
M01 (Added by) keyutil
M02 (Updated by) 281l803
Seq #  *Modification Id* Act 
----------------------------+
00005  M02S00005.281l803 ---|          COMMENT COPYRIGHT CONTROL DATA CORPORATION, 1984.
00006  M01S00001.281l803 +++|          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992.
00007  M01S00006.keyutil +++| KYU      SPACE  4,10
00008  M01S00007.keyutil +++|***       KEYUTIL - KEY UTILITY HOST LOADED CONTROLWARE.
00009  M01S00008.keyutil +++|*
00010  M01S00009.keyutil +++|*         W. F. ANSLEY.      83/06/01.
00011  M01S00010.keyutil +++|*         M. L. SWANSON.     85/01/03.
00012  M01S00011.keyutil +++| KYU      SPACE  4,10
00013  M01S00012.keyutil +++|***       *KEYUTIL* IS THE SOURCE CODE FOR THE Z80 PROGRAM THAT
00014  M01S00013.keyutil +++|*         IS LOADED INTO THE 721 TERMINAL BY THE *KEY* UTILITY.
00015  M01S00014.keyutil +++|*         THE PROGRAM *KEYEX* ACTUALLY HAS THE BINARY FOR THIS
00016  M01S00015.keyutil +++|*         PROGRAM HARDCODED WITHIN ITSELF; THIS PROGRAM IS INCLUDED
00017  M01S00016.keyutil +++|*         ON THE OPL FOR DOCUMENTATION PURPOSES ONLY.  IF ANY
00018  M01S00017.keyutil +++|*         CHANGES ARE MADE TO THIS PROGRAM, CORRESPONDING CHANGES
00019  M01S00018.keyutil +++|*         MUST BE MADE TO THE HARDCODED VALUES WITHIN *KEYEX*.
00020  M01S00019.keyutil +++| KYU      SPACE  4,10
00021  M01S00020.keyutil +++|***       ASSEMBLY CONSTANTS.
00022  M01S00021.keyutil +++|
00023  M01S00022.keyutil +++|SENDB     EQU    #0087       SEND CHARACTER IN B
00024  M01S00023.keyutil +++|OBYTE2    EQU    #E047
00025  M01S00024.keyutil +++|DLMENA    EQU    #E0B9
00026  M01S00025.keyutil +++|KYT       EQU    #D7E0       KEY TABLE ADDRESS
00027  M01S00026.keyutil +++|KTL       EQU    #F0         KEY TABLE LENGTH
00028  M01S00027.keyutil +++|DEFB      EQU    #C000       DEFINITION BUFFER
00029  M01S00028.keyutil +++|DFBE      EQU    #CAFF       DEFINITION BUFFER END
00030  M01S00029.keyutil +++|
00031  M01S00030.keyutil +++|          ORG    #D100
00032  M01S00031.keyutil +++|
00033  M01S00032.keyutil +++| KYU      SPACE  4,25
00034  M01S00033.keyutil +++|***       PUSH - PUSH FUNCTION KEY DEFINITIONS.
00035  M01S00034.keyutil +++|*
00036  M01S00035.keyutil +++|*         *PUSH* COPIES THE IMAGE OF THE CURRENT KEY DEFINITIONS
00037  M01S00036.keyutil +++|*         AND COPIES IT TO A BUFFER WITHIN THE TERMINAL.
00038  M01S00037.keyutil +++|*
00039  M01S00038.keyutil +++|*         CALLS  RESET.
00040  M01S00039.keyutil +++|
00041  M01S00040.keyutil +++|PUSH      BSS    0           PUSH ROUTINE
00042  M01S00041.keyutil +++|          LD     DE,SKTB     GET KEY TABLE ADDRESS
00043  M01S00042.keyutil +++|          LD     BC,KTL      GET BYTE COUNTER
00044  M01S00043.keyutil +++|          LD     HL,KYT      GET KEY TABLE SAVE AREA
00045  M01S00044.keyutil +++|          LDIR               PUSH KEY TABLE
00046  M01S00045.keyutil +++|          LD     A,(OBYTE2)
00047  M01S00046.keyutil +++|          LD     (OBS2),A    SAVE SETUP CHARACTERISTICS
00048  M01S00047.keyutil +++|          LD     A,(DLMENA)
00049  M01S00048.keyutil +++|          LD     (DLMS),A    SAVE DELIMITER FLAG
00050  M01S00049.keyutil +++|          SCF                CARRIAGE RETURN AFTER FUNCTION KEY
00051  M01S00050.keyutil +++|          CCF                CLEAR CARRY FLAG
00052  M01S00051.keyutil +++|          LD     A,(DEFB)    GET LENGTH OF KEY DEFINITIONS
00053  M01S00052.keyutil +++|          LD     D,A
00054  M01S00053.keyutil +++|          LD     A,(DEFB+1)
00055  M01S00054.keyutil +++|          LD     E,A
00056  M01S00055.keyutil +++|          INC    DE
00057  M01S00056.keyutil +++|          INC    DE          SET DE TO LENGTH+2
00058  M01S00057.keyutil +++|          LD     (DFLS),DE   SAVE TOTAL LENGTH
00059  M01S00058.keyutil +++|          LD     HL,DFBE     MOVE HL TO END OF DEF BUFF
00060  M01S00059.keyutil +++|          SBC    HL,DE       SET HL TO START OF PUSH AREA
00061  M01S00060.keyutil +++|          LD     (DFSA),HL   SAVE WHERE MOVED
00062  M01S00061.keyutil +++|          EX     DE,HL       MOVE DE TO LOCATION MOVED
00063  M01S00062.keyutil +++|          LD     HL,DEFB     SET HL TO KEY DEFINITION BUFFER
00064  M01S00063.keyutil +++|          LD     BC,(DFLS)   SET NUMBER OF BYTES TO MOVE
00065  M01S00064.keyutil +++|          LDIR               PUSH DEFINITIONS
00066  M01S00065.keyutil +++|          CALL   RESET       RESET DEFINITION TABLE
00067  M01S00066.keyutil +++|          RET                RETURN
00068  M01S00067.keyutil +++|
00069  M01S00068.keyutil +++| KYU      SPACE  4,25
00070  M01S00069.keyutil +++|***       POP - POP FUNCTION KEY DEFINITIONS.
00071  M01S00070.keyutil +++|*
00072  M01S00071.keyutil +++|*         *POP* COPIES THE STORED FUNCTION KEY DEFINITIONS
00073  M01S00072.keyutil +++|*         FROM THE BUFFER WITHIN THE TERMINAL TO THE
00074  M01S00073.keyutil +++|*         RESIDENT FUNCTION KEY DEFINITION AREA.
00075  M01S00074.keyutil +++|
00076  M01S00075.keyutil +++|POP       BSS    0           ENTRY
00077  M01S00076.keyutil +++|          LD     HL,SKTB     RESTORE KEY TABLE BUFFER ADDRESS
00078  M01S00077.keyutil +++|          LD     BC,KTL      RESTORE KEY TABLE LENGTH
00079  M01S00078.keyutil +++|          LD     DE,KYT      RESTORE KEY TABLE AREA
00080  M01S00079.keyutil +++|          LDIR               RETURN USERS DEFINITIONS
00081  M01S00080.keyutil +++|          LD     A,(OBS2)
00082  M01S00081.keyutil +++|          LD     (OBYTE2),A  RESTORE OBYTE2
00083  M01S00082.keyutil +++|          LD     A,(DLMS)
00084  M01S00083.keyutil +++|          LD     (DLMENA),A  RESTORE DELIMITER FLAG
00085  M01S00084.keyutil +++|          LD     HL,(DFSA)   DEF SAVED ADDRESS
00086  M01S00085.keyutil +++|          LD     A,H
00087  M01S00086.keyutil +++|          OR     L
00088  M01S00087.keyutil +++|          RET    Z           IF NONE
00089  M01S00088.keyutil +++|
00090  M01S00089.keyutil +++|          LD     DE,DEFB     RESTORE DEFINITION BUFFER
00091  M01S00090.keyutil +++|          LD     BC,(DFLS)   NUMBER OF BYTES TO MOVE
00092  M01S00091.keyutil +++|          LDIR               RESTORE DEFINITIONS
00093  M01S00092.keyutil +++|          RET                RETURN
00094  M01S00093.keyutil +++|
00095  M01S00094.keyutil +++| KYU      SPACE  4,25
00096  M01S00095.keyutil +++|***       RESET - RESET DEFINITION TABLE.
00097  M01S00096.keyutil +++|*
00098  M01S00097.keyutil +++|*         *RESET* INITIALIZES THE RESIDENT KEY DEFINITION TABLE
00099  M01S00098.keyutil +++|*         WITHIN THE TERMINAL.
00100  M01S00099.keyutil +++|
00101  M01S00100.keyutil +++|RESET     BSS    0           ENTRY
00102  M01S00101.keyutil +++|          LD     A,(OBYTE2)  GET OBYTE2
00103  M01S00102.keyutil +++|          OR     2           SET NUMERIC PAD SHIFTED
00104  M01S00103.keyutil +++|          LD     (OBYTE2),A  REPLACE OBYTE2
00105  M01S00104.keyutil +++|          LD     A,0
00106  M01S00105.keyutil +++|          LD     (DLMENA),A  SET DELIMITER FLAG FALSE
00107  M01S00106.keyutil +++|          LD     BC,KTL+3
00108  M01S00107.keyutil +++|RESET1    BSS    0
00109  M01S00108.keyutil +++|          DEC    BC
00110  M01S00109.keyutil +++|          DEC    BC
00111  M01S00110.keyutil +++|          DEC    BC
00112  M01S00111.keyutil +++|          LD     A,B
00113  M01S00112.keyutil +++|          OR     C
00114  M01S00113.keyutil +++|          RET    Z           UNTIL DONE WITH TABLE
00115  M01S00114.keyutil +++|
00116  M01S00115.keyutil +++|          LD     HL,KYT-3    SET HL TO KEY TABLE-3
00117  M01S00116.keyutil +++|          ADD    HL,BC       SET HL TO DEFINITION BYTE
00118  M01S00117.keyutil +++|          LD     (HL),#30    UNDEFINE KEY
00119  M01S00118.keyutil +++|          JR     RESET1
00120  M01S00119.keyutil +++|
00121  M01S00120.keyutil +++| KYU      SPACE  4,25
00122  M01S00121.keyutil +++|***       LABEL - GET LABELS FROM MEMORY.
00123  M01S00122.keyutil +++|*
00124  M01S00123.keyutil +++|*         *LABEL* RETRIEVES THE STORED FUNCTION KEY LABELS
00125  M01S00124.keyutil +++|*         FROM WITHIN THE TERMINAL MEMORY.
00126  M01S00125.keyutil +++|*
00127  M01S00126.keyutil +++|*         CALLS  POP, PUSH, SENDB.
00128  M01S00127.keyutil +++|
00129  M01S00128.keyutil +++|LABEL     BSS    0           ENTRY
00130  M01S00129.keyutil +++|          LD     A,(#D8DD)
00131  M01S00130.keyutil +++|          LD     H,A
00132  M01S00131.keyutil +++|          LD     A,(#D8DE)
00133  M01S00132.keyutil +++|          LD     L,A
00134  M01S00133.keyutil +++|LABEL1    BSS    0
00135  M01S00134.keyutil +++|          LD     B,(HL)
00136  M01S00135.keyutil +++|          LD     A,B
00137  M01S00136.keyutil +++|          CP     #FF
00138  M01S00137.keyutil +++|          JP     Z,LABEL2    UNTIL REACH LAST BYTE
00139  M01S00138.keyutil +++|
00140  M01S00139.keyutil +++|          PUSH   HL
00141  M01S00140.keyutil +++|          CALL   SENDB       SEND CHARACTER TO HOST
00142  M01S00141.keyutil +++|          POP    HL
00143  M01S00142.keyutil +++|          INC    HL          TO NEXT CHARACTER
00144  M01S00143.keyutil +++|          JR     LABEL1
00145  M01S00144.keyutil +++|LABEL2    BSS    0
00146  M01S00145.keyutil +++|          LD     B,#0D
00147  M01S00146.keyutil +++|          CALL   SENDB       SEND CARRIAGE RETURN
00148  M01S00147.keyutil +++|          RET                RETURN
00149  M01S00148.keyutil +++|
00150  M01S00149.keyutil +++|DFSA      BSS    2           DEFINITIONS SAVED ADDRESS
00151  M01S00150.keyutil +++|SKTB      BSS    KTL         SAVE KEY TABLE BUFFER
00152  M01S00151.keyutil +++|OBS2      CON    0           OBYTE2 SAVE AREA
00153  M01S00152.keyutil +++|DLMS      CON    0           DELMENA SAVE AREA
00154  M01S00153.keyutil +++|DFLS      CON    0           DEF LENGTH SAVE AREA
00155  M01S00154.keyutil +++|
00156  M01S00155.keyutil +++|          END
cdc/nos2.source/opl.opl871/deck/keyutil.txt ยท Last modified: by 127.0.0.1