REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  1   
C'T TEXT-TERMINAL SOFTWARE V2.2

 0000                   ORG     0               ; BANK 0
                
                ; T. REH 26.07.89
                
 0000 440B      RESET:  JMP     START           ; KALTSTARTEINSPRUNG
 0002                   DS      1
 0003 245F      EXTRAP: JMP     EXTINT          ; EXTERNER INTERRUPT (TAST.)
 0005                   DS      2
 0007 04FC      INTRAP: JMP     INTINT          ; INTERNER INTERRUPT (V.24)
 0009                   DS      1
                
                ; UNTERPROGRAMME AUS ANDEREN MODULEN
                
 0800           SETUP   EQU     800H            ; SETUP-MEN] EINSPRUNG
 1000           CTLCOD  EQU     1000H           ; CTL-CODE-BEARBEITUNG
 1002           CRIGHT  EQU     1002H           ; CURSOR RIGHT
 1004           CURUP   EQU     1004H           ; CURSOR UP
 1006           CDOWN   EQU     1006H           ; CURSOR DOWN
 1008           CTLCD2  EQU     1008H           ; ZUS[TZLICHE CTL-CODES
 100A           STSET   EQU     100AH           ; STATUSZEILE AUFFRISCHEN
 100E           FFD     EQU     100EH           ; BILDSCHIRM L\SCHEN
 1012           LDSEND  EQU     1012H           ; BILD-ENDADRESSE NACH A
 101A           STMODE  EQU     101AH           ; STATUS ONL/LOC/SUP ANZEIGEN
                
                ; EINSPRUNGVEKTOR F]R ANDERE MODULE
                
 000A 0412              JMP     INIT            ; KPL. INIT TERMINAL
 000C 24D1              JMP     CI              ; KONSOLEN-INPUT IN R3
 000E 4404              JMP     CO              ; KONSOLEN-OUTPUT IN R3
 0010 448E              JMP     HLOOP           ; HAUPTSCHLEIFE ZEICHENDARST.
                
                ; INITIALISIERUNG DER TERMINAL-PARAMETER,
                ; DER VIDEOEIGENSCHAFTEN, BAUDRATE USW.
                
 0012 35        INIT:   DIS     II
 0013 15                DIS     XI
 0014 B939              MOV     R1,#REG5
 0016 F1                MOV     A,@R1           ; REG5 LESEN
 0017 19                INC     R1
 0018 67                RRC     A               ; WRDLEN INS CARRY SCHIEBEN
 0019 F1                MOV     A,@R1           ; REG6 LESEN
 001A F7                RLC     A               ; WRDLEN EINSCHIEBEN
 001B 531F              ANL     A,#1FH          ; NUR UNTERE 5 BIT G]LTIG
 001D 01                MOV     UCR,A           ; UART CONTROL SETZEN
 001E 2301              MOV     A,#1
 0020 33                MOV     UMX,A           ; UMX = 1 (GLEICHE BAUDRATEN)
                
 0021 C9                DEC     R1
 0022 F1                MOV     A,@R1           ; REG5 LESEN
 0023 47                SWAP    A
 0024 AA                MOV     R2,A
 0025 77                RR      A
 0026 77                RR      A
 0027 5303              ANL     A,#3            ; NUR ZEILENL[NGE (ROWLEN)
 0029 03B4              ADD     A,#COLTAB
 002B B3                MOVP    A,@A
 002C B834              MOV     R0,#ROWLEN
 002E A0                MOV     @R0,A           ; SPALTENZAHL ABSPEICHERN
 002F AB                MOV     R3,A            ; NACH R3 ZUR ADRESSBERECHNUNG
 0030 18                INC     R0
 0031 FA                MOV     A,R2
 0032 5303              ANL     A,#3            ; NUR ZEILENZAHL (ROWNUM)
 0034 03B8              ADD     A,#ROWTAB
 0036 B3                MOVP    A,@A
 0037 A0                MOV     @R0,A           ; ZEILENZAHL ABSPEICHERN
 0038 AA                MOV     R2,A            ; UND NACH R2
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  2   
C'T TEXT-TERMINAL SOFTWARE V2.2

 0039 27                CLR     A
 003A C2                MOV     HACC,A          ; ACCU AUF 0 (16 BIT)
 003B 0D                MOV     BEGD,A          ; DISPLAY-RAM ANFANG
 003C 6B        INIT1:  ADD     A,R3            ; ZEILENL[NGE ADDIEREN
 003D EA3C              DJNZ    R2,INIT1        ; * ZEILENZAHL
 003F 0C                MOV     ENDD,A
 0040 0E                MOV     SROW,A          ; SPEICHERENDE F]R DISPLAY
 0041 18                INC     R0
 0042 A0                MOV     @R0,A           ; ENDLO ABSPEICHERN
 0043 18                INC     R0
 0044 E2                MOV     A,HACC
 0045 A0                MOV     @R0,A           ; ENDHI ABSPEICHERN
                
 0046 F1                MOV     A,@R1           ; REG5
 0047 77                RR      A
 0048 5307              ANL     A,#7            ; ZEICHENSATZ
 004A 03F0              ADD     A,#NATS
 004C B3                MOVP    A,@A
 004D B83B              MOV     R0,#NATTAB
 004F A0                MOV     @R0,A           ; TABELLENADRESSE SPEICHERN
                
 0050 F1                MOV     A,@R1           ; REG5
 0051 47                SWAP    A
 0052 530C              ANL     A,#0CH          ; NUR COLNUM * 4
 0054 AC                MOV     R4,A            ; F]R SP[TER
 0055 77                RR      A
 0056 77                RR      A               ; COLNUM
 0057 AB                MOV     R3,A            ; F]R SP[TER
 0058 03BC              ADD     A,#SCRTAB
 005A B3                MOVP    A,@A            ; SCR-WERT HOLEN
 005B 55                MOV     SCR,A           ; SCR ENDG]LTIG SETZEN 
 005C FC                MOV     A,R4            ; 4 * COLNUM
 005D 6B                ADD     A,R3            ; 5 * COLNUM
 005E 03C0              ADD     A,#COL0
 0060 AA                MOV     R2,A            ; TABELLENADRESSE
 0061 27                CLR     A
 0062 87                MOV     TCP,A           ; TCP R]CKSETZEN
 0063 BB04              MOV     R3,#4           ; ZUN. 4 WERTE ABH. VON COLNUM
 0065 FA        IVLP1:  MOV     A,R2
 0066 B3                MOVP    A,@A            ; WERT AUS TABELLE
 0067 B7                MOV     @TCP,A          ; --> TCP
 0068 1A                INC     R2              ; POINTER ERH\HEN
 0069 EB65              DJNZ    R3,IVLP1
 006B F1                MOV     A,@R1           ; REG5
 006C 47                SWAP    A
 006D 5303              ANL     A,#3            ; NUR ROWNUM
 006F AB                MOV     R3,A            ; ROWNUM
 0070 E7                RL      A
 0071 AC                MOV     R4,A            ; 2 * ROWNUM
 0072 E7                RL      A               ; 4 * ROWNUM
 0073 6C                ADD     A,R4            ; 6 * ROWNUM
 0074 6B                ADD     A,R3            ; 7 * ROWNUM
 0075 03D4              ADD     A,#ROW0
 0077 AC                MOV     R4,A            ; TABELLENADRESSE
 0078 BB06              MOV     R3,#6           ; ZUN. 6 WERTE ABH. VON ROWNUM
 007A FC        IVLP2:  MOV     A,R4
 007B B3                MOVP    A,@A
 007C B7                MOV     @TCP,A          ; ROW-ABH. WERTE
 007D 1C                INC     R4
 007E EB7A              DJNZ    R3,IVLP2
 0080 FA                MOV     A,R2
 0081 B3                MOVP    A,@A            ; COLNUM-ABH[NGIGER WERT
 0082 B7                MOV     @TCP,A
 0083 FC                MOV     A,R4
 0084 B3                MOVP    A,@A            ; ROWNUM-ABH[NGIGER WERT
 0085 B7                MOV     @TCP,A
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  3   
C'T TEXT-TERMINAL SOFTWARE V2.2

 0086               IF MHZ12
 0086                   MOV     A,#89H          ; UNDERLINE SIZE (5X7)
 0086               ENDIF
 0086               IF MHZ18
 0086 23AB              MOV     A,#0ABH         ; UNDERLINE SIZE (7X9)
 0088               ENDIF
 0088 B7                MOV     @TCP,A
 0089 FF                MOV     A,R7            ; BOOLEAN FLAG
 008A 7298              JB3     NOCURS          ; CURSOR OFF ?
 008C C9                DEC     R1
 008D F1                MOV     A,@R1           ; REG4
 008E 5294              JB2     CBLOCK
 0090               IF MHZ12
 0090                   MOV     A,#79H          ; UNDERLINE CURSOR (5X7)
 0090               ENDIF
 0090               IF MHZ18
 0090 239B              MOV     A,#9BH          ; UNDERLINE CURSOR (7X9)
 0092               ENDIF
 0092 049A              JMP     CSET
 0094 230F      CBLOCK: MOV     A,#0FH          ; BLOCK CURSOR
 0096 049A              JMP     CSET
 0098 23F0      NOCURS: MOV     A,#0F0H         ; KEIN CURSOR
 009A B7        CSET:   MOV     @TCP,A          ; CURSOR SETZEN
 009B F1                MOV     A,@R1           ; REG4
 009C 530A              ANL     A,#0AH          ; NUR REVVID UND CBLINK
 009E 4335              ORL     A,#35H
 00A0 45                MOV     VCR,A           ; VIDEO CONTROL SETZEN
 00A1 B93A              MOV     R1,#REG6
 00A3 F1                MOV     A,@R1           ; REG6 LESEN
 00A4 47                SWAP    A
 00A5 530F              ANL     A,#0FH
 00A7 AB                MOV     R3,A            ; BAUDRATE NACH R3 F]R PRESCALER
 00A8 0300              ADD     A,#LOW(BODTAB)
 00AA F3                MOVP3   A,@A
 00AB 02                MOV     BAUD,A          ; EINTRAG HOLEN UND NACH BAUD
 00AC FB                MOV     A,R3
 00AD 0310              ADD     A,#LOW(PSRTAB)
 00AF F3                MOVP3   A,@A
 00B0 22                MOV     PSR,A           ; EINTRAG F]R PSR
 00B1 25                EN      II
 00B2 05                EN      XI
 00B3 83        RETP0:  RET
                
                ; VIDEO-FORMAT-TABELLEN ZUR INITIALISIERUNG
                
 00B4               IF Z17300
 00B4           COLTAB: DB      72,80,88,92             ; SPALTENZAHLEN (17300)
 00B4               ELSE
 00B4                IF Z20820
 00B4           COLTAB: DB      72,80,72,80             ; SPALTENZAHLEN (20820)
 00B4                ELSE
 00B4 48505860  COLTAB: DB      72,80,88,96             ; SPALTENZAHLEN NORMAL
 00B8                ENDIF
 00B8               ENDIF
 00B8               IF Z17300 OR Z17550 OR Z20820
 00B8           ROWTAB: DB      22,24,26,27             ; ZEILEN (17300/17550)
 00B8               ELSE
 00B8 16181A1C  ROWTAB: DB      22,24,26,28             ; ZEILENZAHLEN (SONST)
 00BC               ENDIF
 00BC               IF Z15600
 00BC           SCRTAB: DB      16H,14H,14H,12H         ; SCR-WERTE (DOT WIDTH)
 00BC               ENDIF
 00BC               IF Z16650
 00BC           SCRTAB: DB      16H,14H,12H,12H         ; SCR-WERTE (DOT WIDTH)
 00BC               ENDIF
 00BC               IF Z17300
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  4   
C'T TEXT-TERMINAL SOFTWARE V2.2

 00BC           SCRTAB: DB      1BH,1BH,19H,19H         ; SCR-WERTE (DOT WIDTH)
 00BC               ENDIF
 00BC               IF Z17550
 00BC           SCRTAB: DB      1BH,1BH,19H,17H         ; SCR-WERTE (DOT WIDTH)
 00BC               ENDIF
 00BC               IF Z17850
 00BC 1B191917  SCRTAB: DB      1BH,19H,19H,17H         ; SCR-WERTE (DOT WIDTH)
 00C0               ENDIF
 00C0               IF Z18400
 00C0           SCRTAB: DB      1BH,19H,17H,17H         ; SCR-WERTE (DOT WIDTH)
 00C0               ENDIF
 00C0               IF Z20820
 00C0           SCRTAB: DB      19H,17H,19H,17H         ; SCR-WERTE (DOT WIDTH)
 00C0               ENDIF
                
                ; HORIZONTALE WERTE F]R TIMING CHAIN
                
 00C0               IF Z15600
 00C0           COL0:   DB      95,71,78,87,38H         ; 72 SPALTEN
 00C0                   DB      109,79,88,98,30H        ; 80 SPALTEN
 00C0                   DB      109,87,92,102,30H       ; 88 SPALTEN
 00C0                   DB      127,95,103,115,30H      ; 96 SPALTEN
 00C0               ENDIF
 00C0               IF Z16650
 00C0           COL0:   DB      89,71,75,84,38H         ; 72 SPALTEN
 00C0                   DB      102,79,84,94,30H        ; 80 SPALTEN
 00C0                   DB      119,87,95,107,30H       ; 88 SPALTEN
 00C0                   DB      119,95,99,111,30H       ; 96 SPALTEN
 00C0               ENDIF
 00C0               IF Z17300
 00C0           COL0:   DB      103,71,80,91,1EH        ; 72 SPALTEN
 00C0                   DB      103,79,84,95,1EH        ; 80 SPALTEN
 00C0                   DB      115,87,93,105,3CH       ; 88 SPALTEN
 00C0                   DB      115,91,95,107,3CH       ; 92 SPALTEN
 00C0               ENDIF
 00C0               IF Z17550
 00C0           COL0:   DB      102,71,80,91,1EH        ; 72 SPALTEN
 00C0                   DB      102,79,84,95,1EH        ; 80 SPALTEN
 00C0                   DB      113,87,92,104,3CH       ; 88 SPALTEN
 00C0                   DB      127,95,102,115,38H      ; 96 SPALTEN
 00C0               ENDIF
 00C0               IF Z17850
 00C0 64474F5A  COL0:   DB      100,71,79,90,1EH        ; 72 SPALTEN
 00C5 6F4F5763          DB      111,79,87,99,3CH        ; 80 SPALTEN
 00CA 6F575B67          DB      111,87,91,103,3CH       ; 88 SPALTEN
 00CF 7D5F6572          DB      125,95,101,114,38H      ; 96 SPALTEN
 00D4               ENDIF
 00D4               IF Z18400
 00D4           COL0:   DB      97,71,77,88,1EH         ; 72 SPALTEN
 00D4                   DB      108,79,85,97,3CH        ; 80 SPALTEN
 00D4                   DB      121,87,95,108,38H       ; 88 SPALTEN
 00D4                   DB      121,95,99,112,38H       ; 96 SPALTEN
 00D4               ENDIF
 00D4               IF Z20820
 00D4           COL0:   DB      95,71,75,87,3CH         ; 72 SPALTEN
 00D4                   DB      107,79,84,97,38H        ; 80 SPALTEN
 00D4                   DB      95,71,75,87,3CH         ; 72 SPALTEN
 00D4                   DB      107,79,84,97,38H        ; 80 SPALTEN
 00D4               ENDIF
                
                ; VERTIKALE WERTE F]R TIMING CHAIN
                
 00D4               IF Z15600
 00D4           ROW0:   DB      0BBH,25,22,90H,21,0C4H,48H      ; 22 ZEILEN
 00D4                   DB      0A3H,27,24,0A2H,23,0C4H,47H     ; 24 ZEILEN
 00D4                   DB      091H,30,26,92H,25,0C4H,37H      ; 26 ZEILEN
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  5   
C'T TEXT-TERMINAL SOFTWARE V2.2

 00D4                   DB      091H,30,28,25H,27,0C4H,37H      ; 28 ZEILEN
 00D4               ENDIF
 00D4               IF Z16650
 00D4           ROW0:   DB      0C7H,24,22,8BH,21,0C4H,49H      ; 22 ZEILEN
 00D4                   DB      0B8H,26,24,8BH,23,0C4H,48H      ; 24 ZEILEN
 00D4                   DB      0A2H,29,26,91H,25,0C4H,47H      ; 26 ZEILEN
 00D4                   DB      0A2H,29,27,47H,31,0C4H,47H      ; 28 ZEILEN-S
 00D4               ENDIF
 00D4               IF Z17300
 00D4           ROW0:   DB      0D9H,23,22,36H,21,0C4H,59H      ; 22 ZEILEN
 00D4                   DB      0C7H,25,24,25H,23,0C4H,49H      ; 24 ZEILEN
 00D4                   DB      0B9H,27,26,25H,25,0C4H,48H      ; 26 ZEILEN
 00D4                   DB      0B9H,27,26,25H,31,0C4H,48H      ; 27 ZEILEN-S
 00D4               ENDIF
 00D4               IF Z17550
 00D4           ROW0:   DB      0D0H,24,22,69H,21,0C4H,59H      ; 22 ZEILEN
 00D4                   DB      0CCH,26,24,47H,23,0C4H,49H      ; 24 ZEILEN
 00D4                   DB      0B2H,28,26,58H,25,0C4H,48H      ; 26 ZEILEN
 00D4                   DB      0B2H,28,26,58H,31,0C4H,48H      ; 27 ZEILEN-S
 00D4               ENDIF
 00D4               IF Z17850
 00D4 D618169C  ROW0:   DB      0D6H,24,22,9CH,21,0C4H,59H      ; 22 ZEILEN
 00DB C51A187A          DB      0C5H,26,24,7AH,23,0C4H,49H      ; 24 ZEILEN
 00E2 B81C1A8B          DB      0B8H,28,26,8BH,25,0C4H,48H      ; 26 ZEILEN
 00E9 B81C1B25          DB      0B8H,28,27,25H,31,0C4H,48H      ; 28 ZEILEN-S
 00F0               ENDIF
 00F0               IF Z18400
 00F0           ROW0:   DB      0E7H,23,22,36H,21,0C4H,5AH      ; 22 ZEILEN
 00F0                   DB      0C3H,27,24,0C2H,23,0C4H,49H     ; 24 ZEILEN
 00F0                   DB      0B7H,29,26,0B2H,25,0C4H,48H     ; 26 ZEILEN
 00F0                   DB      0B7H,29,28,14H,27,0C4H,48H      ; 28 ZEILEN
 00F0               ENDIF
 00F0               IF Z20820
 00F0           ROW0:   DB      0DAH,23,22,47H,21,0C4H,59H      ; 22 ZEILEN
 00F0                   DB      0C8H,25,24,25H,23,0C4H,49H      ; 24 ZEILEN
 00F0                   DB      0BAH,27,26,36H,25,0C4H,48H      ; 26 ZEILEN
 00F0                   DB      0BAH,27,26,36H,31,0C4H,48H      ; 27 ZEILEN-S
 00F0               ENDIF
                
                ; OPTIONSTABELLEN-ADRESSEN
                
 00F0 202132    NATS:   DB      NATUSA,NATFRA,NATGER    ; NATIONALE ZEICHENS[TZE
 00F3 434653            DB      NATGB,NATDEN,NATSWE
 00F6 6A79              DB      NATITA,NATSPA
                
                ; REGX LIEST SWITCH-REGISTER AUS. HIGH-ADRESSE IN A BEIM AUFRUF.
                
 00F8 C2        REGX:   MOV     HACC,A          ; POINTER AUF REGISTER
 00F9 89                MOVL    R1,A
 00FA 91                MOVX    A,@R1           ; INHALT NACH A LESEN
 00FB 83                RET
                
                ; BEARBEITUNG INTERNER INTERRUPTS. EINGEHENDE INTERRUPTS WERDEN
                ; AUF IHRE URSACHE GEPR]FT. BEI UART-EMPF[NGER-INTERRUPT WIRD
                ; DAS ANGEKOMMENE ZEICHEN IM RINGPUFFER GESPEICHERT. IST DER
                ; RINGPUFFER BIS AUF DREI ZEICHEN GEF]LLT, SO WIRD DTR R]CK-
                ; GESETZT (HARDWARE-HANDSHAKE V.24) BZW. XOFF GESENDET.
                ; HANDSHAKE-SCHWELLE BELIEBIG VER[NDERBAR (2..14 ZEICHEN).
                ; BEI REAL-TIME-INTERRUPT WIRD UHR NACHGESTELLT. ANZEIGE DER
                ; UHR ERFOLGT IN DISPL.
                ; LAUFZEITEN: RT 76c=95us, V24 66c=83us, RT+V24 122c=153us.
                ; (NUR BEI HARDWARE-HANDSHAKE DURCH DTR, SONST L[NGER.)
                
 00FC E3        INTINT: SEL     RB1             ; REGISTER BANK 1 F]R INTERRUPTS
 00FD AF                MOV     R7,A            ; ACCU RETTEN
 00FE E2                MOV     A,HACC
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  6   
C'T TEXT-TERMINAL SOFTWARE V2.2

 00FF AE                MOV     R6,A
 0100 8C                MOV     A,INTR          ; INTERRUPTQUELLE LESEN
 0101 37                CPL     A
 0102 F218              JB7     INTNRT
 0104 B83E              MOV     R0,#SECOND
 0106 BB60              MOV     R3,#60H         ; GRENZE F]R MIN UND SEC
 0108 3452              CALL    RTINC           ; SEKUNDEN INC
 010A F616              JC      INT1
 010C C8                DEC     R0
 010D 3452              CALL    RTINC           ; MINUTEN INC
 010F F616              JC      INT1
 0111 C8                DEC     R0
 0112 BB24              MOV     R3,#24H         ; NEUE GRENZE
 0114 3452              CALL    RTINC           ; STUNDEN INC
 0116 8C        INT1:   MOV     A,INTR
 0117 37                CPL     A               ; SONST:
 0118 924A      INTNRT: JB4     INTRET          ; ALLES AUSSER V.24 IGNORIEREN
 011A 9C                MOV     A,STAT
 011B 530E              ANL     A,#0EH          ; ZEICHEN FEHLERFREI EMPFANGEN ?
 011D D64F              JNZ     INTIGN          ; NEIN --> IGNORIEREN
 011F B816              MOV     R0,#WRPTR
 0121 F0                MOV     A,@R0
 0122 A9                MOV     R1,A            ; WRITE-POINTER IN R1
 0123 E0                IN      RCVR
 0124 A1                MOV     @R1,A           ; ZEICHEN NACH RING SPEICHERN
 0125 19                INC     R1
 0126 F9                MOV     A,R1
 0127 532F              ANL     A,#RNGEND       ; POINTER ERH\HEN UND MASKIEREN
 0129 A0                MOV     @R0,A           ; POINTER ABSPEICHERN
 012A 37                CPL     A
 012B 17                INC     A
 012C AA                MOV     R2,A            ; UND NEGIERT NACH R2
 012D 18                INC     R0
 012E F0                MOV     A,@R0           ; READ-POINTER IN A
 012F 6A                ADD     A,R2            ; DIFFERENZ READ-WRITE
 0130 530F              ANL     A,#RNGEND AND 0FH ; AUF PUFFERL[NGE BESCHR[NKEN
 0132 03FC              ADD     A,#-4
 0134 F64A              JC      INTRET          ; WENIGER ALS 4 ZEICHEN PLATZ :
 0136 6380              ORL     PORT,#DTR       ; DTR DER V.24 WEGNEHMEN
 0138 B907              MOV     R1,#7
 013A F1                MOV     A,@R1           ; BOOLEAN FLAG
 013B B24A              JB5     INTRET          ; WENN SCHON HANDSHAKE: WEITER
 013D 4320              ORL     A,#20H
 013F A1                MOV     @R1,A           ; SONST FLAG SETZEN
 0140 B938              MOV     R1,#REG4
 0142 F1                MOV     A,@R1           ; REG4 LESEN
 0143 37                CPL     A
 0144 B24A              JB5     INTRET          ; HARDWARE-HANDSHAKE: WEITER
 0146 BB13              MOV     R3,#XOFFC
 0148 5404              CALL    CO              ; SONST XOFF SENDEN
 014A FE        INTRET: MOV     A,R6
 014B C2                MOV     HACC,A
 014C FF                MOV     A,R7            ; ACCU WIEDERHERSTELLEN
 014D C3                SEL     RB0
 014E 93                RETR                    ; ENDE DER INTERRUPT-ROUTINE
                
 014F E0        INTIGN: IN      RCVR            ; DUMMY-READ LEERT UART-REGISTER
 0150 244A              JMP     INTRET
                
                ; F]R UHR: @R0 BCD ERH\HEN. ]BERLAUF WENN WERT IN R3 ERREICHT.
                
 0152 F0        RTINC:  MOV     A,@R0           ; ZU BEARBEITENDER BCD-WERT
 0153 0301              ADD     A,#1
 0155 57                DA      A               ; DEZIMAL ERH\HEN, CY:=0
 0156 DB                XRL     A,R3            ; GRENZE ERREICHT ?
 0157 C65B              JZ      RTINC1          ; WENN GRENZE: WIEDER NULL
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  7   
C'T TEXT-TERMINAL SOFTWARE V2.2

 0159 DB                XRL     A,R3            ; SONST WERT RESTAURIEREN
 015A A7                CPL     C               ; CY:=1 WENN WERT OK
 015B A0        RTINC1: MOV     @R0,A           ; NEUEN WERT SPEICHERN
 015C 83                RET
                
                ; EXTERNER INTERRUPT VERURSACHT EINLESEN DER TASTATUR (8-BIT-
                ; PARALLEL BZW. IBM-SERIELL) UND ABSPEICHERN DES ZEICHENS IM
                ; TASTENPUFFER. IN 'STATUS' WERDEN DIE CODES ZUR HOSTSCHNITTST.
                ; WEITERGEREICHT (NUR BEI ONLINE). BEI BET[TIGEN DER TASTEN
                ; LOCAL ODER SETUP WIRD DER ENTSPR. MODUS GEW[HLT UND ANGEZEIGT.
                ; LAUFZEITEN: NORMAL 47c=59us, LOCAL/SETUP max 144c=180us.
                ; STEHT DER STB-IMPULS L[NGER AN, SO IST LAUFZEIT=STB-DAUER!
                
 015D 8400      SERINT: JMP     SERIN           ; SERIELLE TASTATUR LESEN
                
 015F E3        EXTINT: SEL     RB1
 0160 AF                MOV     R7,A            ; ACCU RETTEN
 0161 E2                MOV     A,HACC
 0162 AE                MOV     R6,A
 0163 B938              MOV     R1,#REG4
 0165 F1                MOV     A,@R1           ; REG4 LESEN WEGEN SERPAR
 0166 925D              JB4     SERINT          ; SERIELLE TASTATUR
 0168 E1                IN      PORT            ; ZEICHEN VON TASTATUR
 0169 AB                MOV     R3,A            ; NACH R3
 016A FB        SERRET: MOV     A,R3            ; ZEICHEN VON TASTATUR
 016B 0300              ADD     A,#-LKEY
 016D C681              JZ      SETLOC          ; IN LOCAL-MODE GEHEN
 016F 03E1              ADD     A,#LKEY-SKEY
 0171 C6A1              JZ      SETSET          ; IN SETUP-MODE GEHEN
 0173 B931      EXTIN1: MOV     R1,#TBUFF       ; NICHT LKEY/SKEY: NACH TBUFF
 0175 FB                MOV     A,R3
 0176 A1                MOV     @R1,A           ; ZEICHEN IN TASTENPUFFER
 0177 B907              MOV     R1,#7
 0179 F1                MOV     A,@R1           ; BOOLEAN FLAG
 017A 4340              ORL     A,#40H          ; BIT6 (TFLAG) SETZEN
 017C A1                MOV     @R1,A
 017D A67D      EXTRET: JNXI    $               ; WARTEN BIS INTERRUPT INAKTIV
 017F 244A              JMP     INTRET          ; REGISTER RESTAURIEREN/RETR
                
                ; LOCAL-TASTE WURDE BET[TIGT. LOCAL-FLAG WIRD INVERTIERT.
                ; WENN SETUP-MODE AKTIV WAR, WIRD SKEY ZUM HOST GESENDET.
                
 0181 B907      SETLOC: MOV     R1,#7
 0183 F1                MOV     A,@R1           ; BOOLEAN FLAG
 0184 528A              JB2     SETLS           ; SETUP AKTIV: SKEY SENDEN
 0186 D301              XRL     A,#1            ; TOGGLE LOCAL FLAG
 0188 2494              JMP     SETLS2          ; STATUS ANZ./ EXTRET
                
 018A BB1F      SETLS:  MOV     R3,#SKEY        ; SKEY SENDEN
 018C 53FA      SETLS1: ANL     A,#0FAH         ; RESET LOCAL/SETUP FLAGS
 018E 4340              ORL     A,#40H          ; BIT6 (TFLAG) SETZEN
 0190 A1                MOV     @R1,A           ; NEUES BOOLEAN FLAG
 0191 B931              MOV     R1,#TBUFF
 0193 FB                MOV     A,R3
 0194 A1        SETLS2: MOV     @R1,A           ; ZCHN IN TBUFF / BOOLEAN FLAG
 0195 99                MOVL    A,R1
 0196 E2                MOV     A,HACC
 0197 AD                MOV     R5,A            ; RB RETTEN (NACH R5)
 0198 E5                SEL     MB2
 0199 141A              CALL    STMODE          ; STATUS NEU SETZEN
 019B C5                SEL     MB0
 019C FD                MOV     A,R5
 019D C2                MOV     HACC,A
 019E 89                MOVL    R1,A            ; RB WIEDERHERSTELLEN
 019F 247D              JMP     EXTRET          ; WARTEN / RETURN
                
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  8   
C'T TEXT-TERMINAL SOFTWARE V2.2

                ; TASTE SETUP WURDE BET[TIGT. SETUP-FLAG WIRD INVERTIERT.
                ; WENN LOCAL-MODE AKTIV WAR, WIRD LKEY ZUM HOST GESENDET.
                ; BEI VERWENDUNG VON 2K-RAMS (SW4-0) KEIN SETUP-MODE!
                
 01A1 B938      SETSET: MOV     R1,#REG4
 01A3 F1                MOV     A,@R1           ; REG4 ENTH[LT RAM-GR\SSE
 01A4 37                CPL     A
 01A5 1273              JB0     EXTIN1          ; 2K-RAM'S: AUCH SKEY AN HOST
 01A7 B907              MOV     R1,#7
 01A9 F1                MOV     A,@R1           ; BOOLEAN FLAG
 01AA 12B0              JB0     SETSL           ; LOCAL AKTIV: LKEY SENDEN
 01AC D304              XRL     A,#4            ; TOGGLE SETUP FLAG
 01AE 2494              JMP     SETLS2          ; WARTEN / RETURN
                
 01B0 BB00      SETSL:  MOV     R3,#LKEY
 01B2 248C              JMP     SETLS1          ; LKEY SENDEN, STATUS ANZ.
                
                ; EINGABE-STATUS ABFRAGEN. WENN ZEICHEN DA, R]CKKEHR MIT
                ; A>0. BEI ONLINE WIRD TBUFF GESENDET, FALLS VOLL.
                
 01B4 FF        STATUS: MOV     A,R7            ; BOOLEAN FLAG
 01B5 12CE              JB0     STALOC          ; LOCAL: TFLAG PR]FEN
 01B7 37                CPL     A
 01B8 D2C6              JB6     STAT2           ; TBUFF LEER: WEITER
 01BA 9C        STAT1:  MOV     A,STAT
 01BB 37                CPL     A
 01BC B2BA              JB5     STAT1           ; WARTEN AUF TX-EMPTY
 01BE B831              MOV     R0,#TBUFF
 01C0 F0                MOV     A,@R0
 01C1 C0                OUT     XMTR            ; ZEICHEN SENDEN
 01C2 FF                MOV     A,R7
 01C3 53BF              ANL     A,#0BFH         ; TFLAG R]CKSETZEN
 01C5 AF                MOV     R7,A
 01C6 B816      STAT2:  MOV     R0,#WRPTR
 01C8 35                DIS     II              ; POINTER UNVER[NDERT !
 01C9 F0                MOV     A,@R0
 01CA 18                INC     R0
 01CB D0                XRL     A,@R0           ; ERGIBT 0 WENN RDPTR = WRPTR
 01CC 25                EN      II
 01CD 83                RET
 01CE 5340      STALOC: ANL     A,#40H          ; TFLAG MASKIEREN
 01D0 83                RET
                
                ; KONSOLEN-INPUT-ROUTINE. HOLT ZEICHEN VON DER HOSTSCHNITT-
                ; STELLE AUS RINGPUFFER (BEI LOCAL AUS TBUFF). SETZT BEI
                ; LEEREM RINGPUFFER DTR WIEDER. ZEICHEN WIRD IN R3 ]BERGEBEN.
                ; WENN TFLAG GESETZT IST, WIRD DAS ZEICHEN AUS DEM TASTEN-
                ; PUFFER ZUM HOST GESENDET (ONLINE).
                
 01D1 34B4      CI:     CALL    STATUS          ; ETWAS DA ?
 01D3 C6D1              JZ      CI
 01D5 FF        CI1:    MOV     A,R7            ; BOOLEAN FLAG
 01D6 12FC              JB0     CILOC           ; LOCAL: ZCHN AUS TBUFF HOLEN
 01D8 F0                MOV     A,@R0           ; R0 ENTH[LT NOCH #RDPTR
 01D9 A9                MOV     R1,A            ; R1 = RDPTR
 01DA F1                MOV     A,@R1           ; ZEICHEN
 01DB AB                MOV     R3,A            ; NACH R3 ZUR ]BERGABE
 01DC 19                INC     R1              ; RDPTR ERH\HEN, ...
 01DD F9                MOV     A,R1
 01DE 532F              ANL     A,#RNGEND       ; ... MASKIEREN, ...
 01E0 A0                MOV     @R0,A           ; ... ABSPEICHERN.
 01E1 34C6              CALL    STAT2           ; PUFFER JETZT LEER ?
 01E3 D6FB              JNZ     CIRET           ; NEIN: ENDE
 01E5 737F              ANL     PORT,#NOT DTR   ; SONST DTR WIEDER SETZEN
 01E7 FF                MOV     A,R7            ; BOOLEAN FLAG
 01E8 37                CPL     A
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE  9   
C'T TEXT-TERMINAL SOFTWARE V2.2

 01E9 B2FB              JB5     CIRET           ; HANDSHAKE SCHON AUS: ENDE
 01EB D3DF              XRL     A,#0DFH         ; FLAG R]CKSETZEN
 01ED AF                MOV     R7,A
 01EE B938              MOV     R1,#REG4        ; ZEIGER AUF REG4
 01F0 F1                MOV     A,@R1           ; REG4 LESEN
 01F1 37                CPL     A
 01F2 B2FB              JB5     CIRET           ; HARDWARE-HANDSHAKE: ENDE
 01F4 9C        CI2:    MOV     A,STAT
 01F5 37                CPL     A
 01F6 B2F4              JB5     CI2             ; WARTEN AUF TRANSMITTER EMPTY
 01F8 2311              MOV     A,#XONC
 01FA C0                OUT     XMTR            ; XON AUSGEBEN
 01FB 83        CIRET:  RET
                
 01FC 53BF      CILOC:  ANL     A,#0BFH         ; TFLAG R]CKSETZEN
 01FE AF                MOV     R7,A            ; NEUES BOOLEAN FLAG
 01FF B831              MOV     R0,#TBUFF
 0201 F0                MOV     A,@R0           ; LOCAL: ZEICHEN AUS TBUFF
 0202 AB                MOV     R3,A
 0203 83                RET
                
                ; AUSGABE EINES ZEICHENS (IN R3) AN DEN HOSTRECHNER
                
 0204 9C        CO:     MOV     A,STAT
 0205 37                CPL     A
 0206 B204              JB5     CO              ; WARTEN AUF TRANSMITTER EMPTY
 0208 FB                MOV     A,R3
 0209 C0                OUT     XMTR            ; ZEICHEN AUSGEBEN
 020A 83                RET
                
                ; KALTSTARTEINSPRUNG. ERST INITIALISIERUNGEN, SP[TER HAUPT-
                ; SCHLEIFE ZUR VERARBEITUNG EINZELNER ANKOMMENDER ZEICHEN.
                
 020B 2314      START:  MOV     A,#14H
 020D               IF MHZ12
 020D                   MOV     SCR,A           ; SCR SETZEN : CPU CLK /1.0
 020D               ELSE
 020D 00                NOP                     ; GLEICHE CODE-L[NGE !
 020E               ENDIF
 020E 23A0              MOV     A,#DTR OR BELBIT
 0210 C1                OUT     PORT            ; DTR R]CKSETZEN
 0211 2390              MOV     A,#90H
 0213 82                MOV     MASK,A          ; RCVR FULL & REAL TIME INT.ENA
 0214 B83F              MOV     R0,#3FH
 0216 27                CLR     A
 0217 A0        START1: MOV     @R0,A
 0218 E817              DJNZ    R0,START1       ; ZUERST RAM MIT NULL F]LLEN
 021A B838              MOV     R0,#REG4
 021C 2380              MOV     A,#80H
 021E 14F8              CALL    REGX            ; SWITCH 4 LESEN
 0220 A0                MOV     @R0,A           ; NACH REG4 KOPIEREN
 0221 18                INC     R0
 0222 23A0              MOV     A,#0A0H
 0224 14F8              CALL    REGX            ; SWITCH 5 LESEN
 0226 A0                MOV     @R0,A           ; NACH REG5 KOPIEREN
 0227 18                INC     R0
 0228 23C0              MOV     A,#0C0H
 022A 14F8              CALL    REGX            ; SWITCH 6 LESEN
 022C A0                MOV     @R0,A           ; NACH REG6 KOPIEREN
 022D B816              MOV     R0,#WRPTR
 022F B020              MOV     @R0,#RING
 0231 18                INC     R0
 0232 B020              MOV     @R0,#RING       ; RINGPUFFER LEER
 0234 B832              MOV     R0,#CURATT
 0236 B0FF              MOV     @R0,#0FFH       ; CURATT: KEINE ATTR AKTIV
 0238 18                INC     R0
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE 10   
C'T TEXT-TERMINAL SOFTWARE V2.2

 0239 B0FE              MOV     @R0,#0FEH       ; MASK7: REVERSE ON
 023B 27                CLR     A
 023C C2                MOV     HACC,A
 023D 8A                MOV     HOME,A          ; HOME UND CURS AUF NULL SETZEN
 023E 8B                MOV     CURS,A
 023F 1412              CALL    INIT            ; INITIALISIEREN
 0241 25                EN      II
 0242 05                EN      XI
 0243 737F              ANL     PORT,#NOT DTR   ; DTR SETZEN : TERMINAL BEREIT
 0245 E5                SEL     MB2
 0246 140A              CALL    STSET           ; STATUSZEILE SETZEN
 0248 040E              JMP     FFD             ; SCHIRM L\SCHEN, HAUPTSCHLEIFE
                
                ; ANZEIGEN DER AKTUELLEN CURSORPOSITION (ZEILE,SPALTE) SOWIE
                ; DER UHRZEIT IN DER STATUSZEILE. DIES GESCHIEHT IMMER WENN
                ; DAS TERMINAL AUF WEITERE BEFEHLE WARTET. DIE ANZEIGE NIMMT
                ; INSGESAMT MAX. 209c=262us IN ANSPRUCH.
                
 024A B92F      DSP10:  MOV     R1,#'0'-1       ; ZEHNER NOCH NULL
 024C 19        DSP101: INC     R1
 024D 03F6              ADD     A,#-10          ; 10 SUBTRAHIEREN
 024F F64C              JC      DSP101          ; 1 ZEHNER MEHR, WEITER
 0251 033A      DSP102: ADD     A,#10+'0'       ; EINER ASCII 0..9
 0253 AA                MOV     R2,A
 0254 90                MOVX    A,@R0           ; ATTR LESEN
 0255 FB                MOV     A,R3
 0256 80                MOVX    @R0,A           ; 'R' BZW. 'C' AUSGEBEN
 0257 38                INCL    R0
 0258 F9                MOV     A,R1
 0259 80                MOVX    @R0,A           ; ZEHNER AUSGEBEN
 025A 38                INCL    R0
 025B FA                MOV     A,R2
 025C 80                MOVX    @R0,A           ; EINER AUSGEBEN
 025D 38                INCL    R0
 025E 38                INCL    R0              ; ZEIGER AUF N[CHSTE ANGABE
 025F 83                RET
                
 0260 B838      DISPL:  MOV     R0,#REG4
 0262 F0                MOV     A,@R0           ; SWITCH 4
 0263 37                CPL     A
 0264 F28E              JB7     HLOOP           ; STATUSZEILE AUS: ENDE DISPL
 0266 E5                SEL     MB2
 0267 1412              CALL    LDSEND          ; STARTADRESSE STATUSZEILE
 0269 C5                SEL     MB0
 026A 0336              ADD     A,#54           ; AUSGABE AB SPALTE 55
 026C 88                MOVL    R0,A            ; NACH R0
 026D FD                MOV     A,R5            ; ZEILE
 026E BB52              MOV     R3,#'R'
 0270 544A              CALL    DSP10           ; DEZIMAL AUSGEBEN
 0272 FE                MOV     A,R6            ; SPALTE
 0273 BB43              MOV     R3,#'C'
 0275 544A              CALL    DSP10           ; DEZIMAL AUSGEBEN
 0277 B93C              MOV     R1,#HOUR
 0279 BB03              MOV     R3,#3
 027B 38        DISPRT: INCL    R0
 027C 38                INCL    R0              ; ZWISCHENRAUM ]BERGEHEN
 027D F1                MOV     A,@R1
 027E 47                SWAP    A
 027F 530F              ANL     A,#0FH          ; HIGH-NYBBLE
 0281 4330              ORL     A,#'0'          ; ASCII-OFFSET
 0283 80                MOVX    @R0,A           ; ZIFFER AUSGEBEN
 0284 38                INCL    R0
 0285 F1                MOV     A,@R1
 0286 530F              ANL     A,#0FH          ; LOW-NYBBLE
 0288 4330              ORL     A,#'0'          ; ASCII-OFFSET
 028A 80                MOVX    @R0,A           ; ZIFFER AUSGEBEN
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE 11   
C'T TEXT-TERMINAL SOFTWARE V2.2

 028B 19                INC     R1
 028C EB7B              DJNZ    R3,DISPRT       ; ALLE 3 BYTES AUSGEBEN
                
                ; HAUPTSCHLEIFE F]R ANKOMMENDE ZEICHEN.
                ; IST NICHTS ZU TUN, WERDEN CURSORPOS. UND UHR ANGEZEIGT.
                
 028E FF        HLOOP:  MOV     A,R7            ; BOOLEAN FLAG
 028F 52A4              JB2     SETUPY          ; BIT 2 = 1 : SETUP
 0291 34B4              CALL    STATUS          ; ZEICHEN DA ?
 0293 C660              JZ      DISPL           ; NEIN... CURSOR/UHR ANZEIGEN
 0295 34D5              CALL    CI1             ; ZEICHEN HOLEN
 0297 FB                MOV     A,R3
 0298 53E0              ANL     A,#0E0H         ; NUR 0..1F CONTROL
 029A C6A7              JZ      CTLCD           ; CTL: BEARBEITEN
 029C 5360              ANL     A,#060H         ; INNERHALB 80..9F ?
 029E C6BA              JZ      CTLZUS          ; SPEZIALBEREICH BEARBEITEN
 02A0 74B3      HLOOP1: CALL    DISPIT
 02A2 448E              JMP     HLOOP           ; CURSOR-UP'S ERFORDERN CALL
                
 02A4 D5        SETUPY: SEL     MB1
 02A5 0400              JMP     SETUP           ; SETUP-MEN]
                
                ; ZEICHEN 00..1F BEARBEITEN: CONTROL-CODES
                
 02A7 FF        CTLCD:  MOV     A,R7            ; BOOLEAN FLAG
 02A8 32AD              JB1     CTLMOD          ; CONTROL-MODE ON: DARSTELLEN
 02AA E5                SEL     MB2
 02AB 0400              JMP     CTLCOD          ; CONTROL-CODE BEARBEITEN
 02AD FB        CTLMOD: MOV     A,R3
 02AE 0340              ADD     A,#'@'          ; --> SICHTBARE ZEICHEN
 02B0 AB                MOV     R3,A
 02B1 54D0              CALL    TRANSN          ; EVTL. ZEICHEN TRANSFORMIEREN
 02B3 23FC              MOV     A,#0FCH         ; HALF INTEN REVERSE
 02B5 C2                MOV     HACC,A
 02B6 74ED              CALL    NORH1           ; ZEICHEN AUF SCHIRM
 02B8 448E              JMP     HLOOP
                
                ; HIER WERDEN DIE ZEICHEN ZWISCHEN 80 UND 9F BEARBEITET. IM
                ; GRAFIK-MODUS WERDEN DIESE ZEICHEN DARGESTELLT, ANSONSTEN WIRD
                ; IN EINER TABELLE GESCHAUT, OB DAS ZEICHEN DARGESTELLT ODER
                ; ALS CONTROL-FUNKTION INTERPRETIERT WERDEN SOLL.
                
 02BA B832      CTLZUS: MOV     R0,#CURATT
 02BC F0                MOV     A,@R0
 02BD 37                CPL     A
 02BE F2A0              JB7     HLOOP1          ; GRAFIK: ZEICHEN DARSTELLEN
 02C0 FB                MOV     A,R3
 02C1 531F              ANL     A,#1FH          ; NUR UNTERE 5 BIT ENTSCHEIDEND
 02C3 0386              ADD     A,#LOW(KEYTAB)
 02C5 F3                MOVP3   A,@A            ; ZEICHEN AUS TABELLE LESEN
 02C6 F2CB              JB7     CTLZU1          ; OBERSTES BIT 1 : DARSTELLEN
 02C8 E5                SEL     MB2
 02C9 0408              JMP     CTLCD2          ; ]BER INDTAB INTERPRETIEREN
 02CB 537F      CTLZU1: ANL     A,#7FH          ; OBERSTES BIT R]CKSETZEN (ATT!)
 02CD AB                MOV     R3,A            ; NACH R3 ZUR DARSTELLUNG
 02CE 44A0              JMP     HLOOP1
                
                ; ZEICHENSATZ-TRANSFORMATION. DIE ZEICHENPAARE STEHEN HINTER-
                ; EINANDER IN EINER TABELLE. TABELLENENDE IST MIT 0 MARKIERT.
                ; DAS MSB (BIT7) WIRD UNVER[NDERT ]BERNOMMEN. DIE TABELLEN
                ; M]SSEN SICH IN PAGE 3 BEFINDEN (MOVP3 - BEFEHL) !
                
 02D0 B83B      TRANSN: MOV     R0,#NATTAB      ; AKTUELLER ZEICHENSATZ
 02D2 F0                MOV     A,@R0
 02D3 AA                MOV     R2,A            ; ZEIGER NACH R2
 02D4 FA        TRANS:  MOV     A,R2
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE 12   
C'T TEXT-TERMINAL SOFTWARE V2.2

 02D5 F3                MOVP3   A,@A            ; ZEICHEN AUS TABELLE
 02D6 C6EA              JZ      NOTFND          ; 0 = TABELLENENDE
 02D8 1A                INC     R2              ; ZEIGER AUF ERGEBNIS
 02D9 DB                XRL     A,R3            ; MIT R3 VERGLEICHEN
 02DA 537F              ANL     A,#7FH          ; OBERSTES BIT NICHT BEACHTEN
 02DC C6E1              JZ      FOUND           ; EINGANG ERKANNT
 02DE 1A                INC     R2              ; ZEIGER AUF N[CHSTEN WERT
 02DF 44D4              JMP     TRANS           ; SONST WEITERSUCHEN
 02E1 FB        FOUND:  MOV     A,R3            ; ALTER WERT
 02E2 F7                RLC     A               ; BIT 7 INS CARRY
 02E3 FA                MOV     A,R2            ; ERGEBNISZEIGER
 02E4 F3                MOVP3   A,@A            ; AUSGANG HOLEN
 02E5 E7                RL      A               ; LINKS SCHIEBEN
 02E6 67                RRC     A               ; BIT 7 AUS ORIG. EINSETZEN
 02E7 AB                MOV     R3,A            ; NACH R3
 02E8 97                CLR     C
 02E9 83                RET                     ; RETURN OHNE CARRY
                
 02EA CA        NOTFND: DEC     R2              ; SETZT CARRY (WENN R2>0)
 02EB 83                RET                     ; RETURN MIT CARRY, R3 UNV.
                
                ; TABELLEN F]R BAUDRATENTEILER-INIT. GEH\REN ZU 'SETBOD'.
                ; M]SSEN IN PAGE 3 LIEGEN!
                
 0300                   ORG     300H
                
 0300               IF MHZ12
 0300           BODTAB: DB      18H,59H,0FFH,7FH,191,95,63,47
 0300                   DB      31,23,15,11,5,5,5,11
 0300           PSRTAB: DB      64H,63H,62H,61H,60H,60H,60H,60H
 0300                   DB      60H,60H,60H,60H,60H,60H,60H,60H
 0300               ENDIF
 0300               IF MHZ18
 0300 535AE7F3  BODTAB: DB      53H,5AH,0E7H,0F3H,249,124,137,132
 0308 2F411711          DB      47,65,23,17,8,8,8,17
 0310 85848381  PSRTAB: DB      85H,84H,83H,81H,80H,80H,20H,00H
 0318 60006060          DB      60H,00H,60H,60H,60H,60H,60H,60H
 0320               ENDIF
                
                ; TRANSFORMATIONSTABELLEN F]R SONDERZEICHEN. 12-MHZ-TABELLEN
                ; K]NSTLICH VERL[NGERT WEGEN STARTADRESSEN-GLEICHHEIT.
                ; TABELLEN M]SSEN SICH IN PAGE 3 BEFINDEN !
                
 0320               IF MHZ12
 0320           NATUSA: DB      0
 0320           NATFRA: DB      40H,12H,5BH,6,5CH,18H,5DH,7,7BH,17H,7CH,16H
 0320                   DB      7DH,13H,7EH,5,0
 0320           NATGER: DB      40H,7,5BH,0BH,5CH,0CH,5DH,0EH,7BH,1BH,7CH,1CH
 0320                   DB      7DH,1EH,7EH,11H,0
 0320           NATGB:  DB      23H,3,0
 0320           NATDEN: DB      5BH,0AH,5CH,2,5DH,0DH,7BH,1AH,7CH,2,7DH,1DH,0
 0320           NATSWE: DB      24H,4,5BH,0BH,5CH,0CH,5DH,0DH,5EH,0EH,60H,17H
 0320                   DB      7BH,1BH,7CH,1CH,7DH,1DH,7EH,1EH,0,0,0
 0320           NATITA: DB      5BH,6,5DH,17H,60H,16H,7BH,12H,7CH,1CH,7DH,13H
 0320                   DB      7EH,14H,0
 0320           NATSPA: DB      5BH,14H,5CH,9,7BH,5,7CH,19H,0,0,0,0,0
 0320               ENDIF
 0320               IF MHZ18
 0320 00        NATUSA: DB      0
 0321 401B5B14  NATFRA: DB      40H,1BH,5BH,14H,5CH,0AH,5DH,0CH,7BH,19H
 032B 7C1A7D0B          DB      7CH,1AH,7DH,0BH,7EH,1CH,0
 0332 400C5B01  NATGER: DB      40H,0CH,5BH,1,5CH,2,5DH,3,7BH,11H,7CH,12H
 033E 7D137E04          DB      7DH,13H,7EH,4,0
 0343 230000    NATGB:  DB      23H,0,0
 0346 5B065C07  NATDEN: DB      5BH,6,5CH,7,5DH,5,7BH,16H,7CH,17H,7DH,15H,0
 0353 24104009  NATSWE: DB      24H,10H,40H,9,5BH,1,5CH,2,5DH,5,5EH,3
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE 13   
C'T TEXT-TERMINAL SOFTWARE V2.2

 035F 60197B11          DB      60H,19H,7BH,11H,7CH,12H,7DH,15H,7EH,13H,0
 036A 5B145D19  NATITA: DB      5BH,14H,5DH,19H,60H,1AH,7BH,1BH,7CH,12H
 0374 7D0B7E0D          DB      7DH,0BH,7EH,0DH,0
 0379 231E5B0D  NATSPA: DB      23H,1EH,5BH,0DH,5CH,8,5DH,0EH,7BH,1CH
 0383 7C1800            DB      7CH,18H,0
 0386               ENDIF
                
                ; DIE FOLGENDE TABELLE DIENT ZUR UNIVERSELLEN BEARBEITUNG DER
                ; CODES 80..9F. JEDEM DIESER CODES WIRD EIN BYTE AUS DER TABELLE
                ; ZUGEORDNET. LIEGT DIES INNERHALB 80..9F, SO WIRD ES AUF DEM
                ; BILDSCHIRM DARGESTELLT (DIE UNTEREN 7 BIT), ANSONSTEN WIRD ES
                ; ALS CONTROL-FUNKTIONSCODE INTERPRETIERT (WEITERE VERARBEITUNG
                ; ]BER INDTAB). DEFAULT: NUR CR UND LF ALS CONTROLCODE.
                
 0386 80818283  KEYTAB: DB      80H,81H,82H,83H,84H,85H,86H,87H
 038E 8889038B          DB      88H,89H,003,8BH,8CH,006,8EH,8FH
 0396 90919293          DB      90H,91H,92H,93H,94H,95H,96H,97H
 039E 98999A9B          DB      98H,99H,9AH,9BH,9CH,9DH,9EH,9FH
                
                ; DIE N[CHSTE TABELLE DIENT ZUR BEARBEITUNG DER SWITCH-TASTEN
                ; EINER SERIELLEN TASTATUR (ALT,CTL,SHIFT). DIE EINTR[GE SIND
                ; DIREKT DIE BITMASKEN ZUR VER[NDERUNG VON BFLAG2.
                
 03A6 2A013601  SWTAB:  DB      2AH,1,36H,1,1DH,2,38H,4,3AH,48H,45H,50H,0
                
                ; ZEICHEN DARSTELLEN UNTER BER]CKSICHTIGUNG DER AKTUELLEN ATTR.
                
 03B3 B832      DISPIT: MOV     R0,#CURATT
 03B5 F0                MOV     A,@R0           ; CURRENT ATTRIBUTE
 03B6 F2BE              JB7     DISP1           ; KEINE GRAFIK
 03B8 FB                MOV     A,R3
 03B9 03E0              ADD     A,#-' '         ; OFFSET SUBTRAHIEREN
 03BB AB                MOV     R3,A
 03BC 64C0              JMP     DISP2           ; KEINE TRANSFORMATION
 03BE 54D0      DISP1:  CALL    TRANSN          ; EVTL. ZEICHENSATZ BEACHTEN
 03C0 B832      DISP2:  MOV     R0,#CURATT
 03C2 F0                MOV     A,@R0           ; AKTUELLE ATTRIBUTE LADEN
 03C3 92CA              JB4     NORWID          ; NORMALE BREITE
                
 03C5 74CA              CALL    NORWID          ; DOPPELTE BREITE: NOCHMAL
 03C7 B832              MOV     R0,#CURATT
 03C9 F0                MOV     A,@R0           ; CURATT
                
 03CA 72E3      NORWID: JB3     NORHEI          ; NORMALE H\HE
 03CC E5                SEL     MB2
 03CD 1404              CALL    CURUP           ; ZEILE H\HER
 03CF F0                MOV     A,@R0
 03D0 C2                MOV     HACC,A          ; CURRENT ATTRIBUTE
 03D1 FB                MOV     A,R3
 03D2 37                CPL     A
 03D3 F2DA              JB7     NORW1           ; BIT 7 = 0 : ATTR. UNVER[ND.
 03D5 E2                MOV     A,HACC
 03D6 B833              MOV     R0,#MASK7
 03D8 50                ANL     A,@R0           ; ZWEIT-ATTRIBUTE SETZEN
 03D9 C2                MOV     HACC,A
 03DA FB        NORW1:  MOV     A,R3
 03DB 8D                MOVX    @CURS,A         ; ZEICHEN ABSPEICHERN
 03DC 1406              CALL    CDOWN           ; WIEDER ZEILE RUNTER (MB2)
 03DE B832              MOV     R0,#CURATT
 03E0 F0                MOV     A,@R0
 03E1 53BF              ANL     A,#0BFH         ; BLANK SETZEN
                
 03E3 C2        NORHEI: MOV     HACC,A
 03E4 FB                MOV     A,R3            ; ZEICHEN
 03E5 37                CPL     A
 03E6 F2ED              JB7     NORH1           ; BIT 7 = 0 : ATTR. UNVER[ND.
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE 14   
C'T TEXT-TERMINAL SOFTWARE V2.2

 03E8 B833              MOV     R0,#MASK7
 03EA E2                MOV     A,HACC
 03EB 50                ANL     A,@R0           ; ZWEIT-ATTRIBUTE SETZEN
 03EC C2                MOV     HACC,A
 03ED FB        NORH1:  MOV     A,R3
 03EE 8D                MOVX    @CURS,A         ; AN CURSORPOSITION ABSPEICHERN
 03EF E5                SEL     MB2             ; (FALLS VON CTLMOD)
 03F0 0402              JMP     CRIGHT          ; CURSOR NACH RECHTS UND WEITER
                
                ; EINLESEN DER SERIELLEN IBM-TASTATUR. DIE AKTIVE CLOCK-FLANKE
                ; ZUR INTERRUPTAUSL\SUNG MUSS AUF FALLEND EINGESTELLT SEIN.
                ; DIE DATEN WERDEN JEWEILS BEI DER FALL. TAKTFL. ]BERNOMMEN.
                ; VERZ. 1.CLK-FLANKE BIS 1.LESEN CLK    29c =   24us
                ; MIN. DAUER CLK=H                       5c =    7us
                ; MIN. DAUER CLK=L                       6c =    8us
                ; VERZ. FESTST. CLK=H BIS PR]FEN CLK=L   7c =    9us
                ; VERZ. FESTST. CLK=L BIS PR]FEN CLK=H  11c =   14us
                ; MIN. ZYKLUSDAUER TASTATUR (OPT.BED.)  18c =   23us
                
 0400                   ORG     400H
                
 0400 B900      SERIN:  MOV     R1,#0           ; BITZ[HLER
 0402 E1        SERIN0: IN      PORT
 0403 37                CPL     A
 0404 3202              JB1     SERIN0          ; WARTEN AUF CLK=H (UNBEGRENZT)
 0406 B814              MOV     R0,#20          ; TIME-OUT CA. 150 US
 0408 E1        SERIN1: IN      PORT
 0409 3212              JB1     SERIN2          ; WARTEN AUF CLK=L (TIME-OUT)
 040B 67                RRC     A               ; DATENBIT AUS DATA 0 IN CARRY
 040C FB                MOV     A,R3
 040D 67                RRC     A               ; IN TASTATUR-CODE EINSCHIEBEN
 040E AB                MOV     R3,A
 040F 19                INC     R1
 0410 8402              JMP     SERIN0          ; WEITER
 0412 E808      SERIN2: DJNZ    R0,SERIN1       ; TIME-OUT-SCHLEIFE
 0414 F9                MOV     A,R1            ; ANZAHL BITS
 0415 7219              JB3     SERIN3          ; BEREICH 8..15 : OK
 0417 247D              JMP     EXTRET          ; NICHT 8..15 : IGNORIEREN
                
                ; EINGELESENER TASTENCODE IN R3 UND A WIRD NUN AUF SPEZIAL-
                ; FUNKTION ]BERPR]FT UND ANSONSTEN JE NACH AKTUELLEM STATUS
                ; DURCH VERSCHIEDENE TABELLEN IN DEN ASCII-WERT GEWANDELT.
                
 0419 B930      SERIN3: MOV     R1,#BFLAG2      ; BOOLEAN FLAG 2 F]R SER. TAST.
 041B BAA6              MOV     R2,#LOW(SWTAB)
 041D 54D4              CALL    TRANS           ; SPEZIALTASTEN TRANSFORMIEREN
 041F E650              JNC     SHKEY           ; ALT/CTL/SHIFT GES. BEARB.
 0421 FB                MOV     A,R3            ; TASTENCODE
 0422 F25A              JB7     IGKEY           ; ALLE ANDEREN : OFF IGNORIEREN
 0424 03B9              ADD     A,#-47H
 0426 F663              JC      NKEY            ; AB TC 47H : NUMLOCK-BLOCK
 0428 F1        NNUML:  MOV     A,@R1           ; BFLAG2
 0429 525C              JB2     ALTKEY
 042B BAAA              MOV     R2,#LOW(CTABLE) ; ZEIGER VORBELEGEN (CTL)
 042D 3235              JB1     TRKEY
 042F BA56              MOV     R2,#LOW(STABLE) ; ZEIGER VORBELEGEN (SHIFT)
 0431 1235              JB0     TRKEY
 0433 BA02              MOV     R2,#LOW(NTABLE) ; ZEIGER NORMALZEICHEN
 0435 FB        TRKEY:  MOV     A,R3            ; TASTENCODE
 0436 6A                ADD     A,R2            ; TABELLENADRESSE BERECHNEN
 0437 B400              CALL    GETKEY          ; ZEICHEN AUS ENTSPR. TAB. HOLEN
 0439 AB        TRKEY1: MOV     R3,A            ; NACH R3 ZUR WEITEREN VERW.
 043A 17                INC     A
 043B C65A              JZ      IGKEY           ; BEI TABELLENWERT -1 IGNORIEREN
 043D F1                MOV     A,@R1           ; BFLAG2
 043E 37                CPL     A
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE 15   
C'T TEXT-TERMINAL SOFTWARE V2.2

 043F 724E              JB3     SERX            ; CAPSLOCK INAKTIV: UNVER[NDERT
 0441 FB                MOV     A,R3            ; ASCII-ZEICHEN
 0442 039F              ADD     A,#-'a'
 0444 E64E              JNC     SERX            ; UNTERHALB VON 'a': UNVER[NDERT
 0446 03E3              ADD     A,#'a'-'}'-1
 0448 F64E              JC      SERX            ; OBERHALB VON '}': UNVER[NDERT
 044A FB                MOV     A,R3
 044B D320              XRL     A,#20H          ; KLEIN <--> GROSS
 044D AB                MOV     R3,A
 044E 246A      SERX:   JMP     SERRET          ; MIT ZEICHEN ZUR]CK (IN R3)
                
                ; AUSWERTUNG DER SPEZIALTASTEN SHIFT/CTL/ALT/NUMLOCK/CAPSLOCK.
                
 0450 D26C      SHKEY:  JB6     TOGF            ; BEI GES. BIT6 : CAPS/NUM LOCK
 0452 F257              JB7     RESF            ; BEI GESETZTEM BIT7 : RESET
 0454 41                ORL     A,@R1           ; BIT SETZEN
 0455 8459              JMP     FRET            ; ZUR]CK
 0457 37        RESF:   CPL     A               ; KOMPLEMENTIERTE BITMASKE
 0458 51                ANL     A,@R1           ; BIT R]CKSETZEN
 0459 A1        FRET:   MOV     @R1,A
 045A 247D      IGKEY:  JMP     EXTRET          ; ZUR]CK OHNE WEITERE BEARB.
                
                ; ALT-TASTE GEDR]CKT: KOMPLETT ANDERE TABELLE BENUTZEN.
                
 045C FB        ALTKEY: MOV     A,R3            ; TASTENCODE
 045D 0375              ADD     A,#LOW(ATABLE)  ; TABELLENANFANG ADDIEREN
 045F 9473      AKEY:   CALL    GETK1           ; ANDERE LESEROUTINE
 0461 8439              JMP     TRKEY1          ; WEITER WIE NORM/SHIFT/CTL
                
                ; TASTE IM CURSOR/ZIFFERNBLOCK: NUMLOCK PR]FEN, BEI NUMLOCK
                ; ANDERE TABELLE BENUTZEN (DANN OHNE SHIFT/CTL/ALT).
                
 0463 F1        NKEY:   MOV     A,@R1           ; BFLAG2
 0464 37                CPL     A
 0465 9228              JB4     NNUML           ; NUM-LOCK INAKTIV: NORMAL
 0467 FB                MOV     A,R3            ; TASTENCODE
 0468 0382              ADD     A,#LOW(LTABLE)-47H ; ZEIGER AUF NUM-LOCK-TABELLE
 046A 845F              JMP     AKEY            ; WEITER WIE BEI ALT
                
                ; AUSWERTUNG DER UMSCHALTENDEN TASTEN NUMLOCK/CAPSLOCK
                
 046C 37        TOGF:   CPL     A
 046D F25A              JB7     IGKEY           ; ON IGNORIEREN (AUTOREPEAT!)
 046F F1                MOV     A,@R1           ; BFLAG2
 0470 DB                XRL     A,R3            ; BIT INVERTIEREN
 0471 8459              JMP     FRET            ; ZUR]CK
                
                ; ROUTINE ZUM LESEN DER ASCII-CODES AUS DEN TABELLEN IN PAGE 4
                
 0473 B3        GETK1:  MOVP    A,@A            ; ZEICHEN AUS TABELLE HOLEN
 0474 83                RET                     ; UND ZUR]CK ZUM AUFRUF
                
                ; TABELLE DER TASTENCODES BEI GEDR]CKTER ALT-TASTE
                
 0475 FF1B3140  ATABLE: DB       -1,1BH,31H,40H,00H,34H,35H,36H ; 00..07
 047D 37383930          DB      37H,38H,39H,30H,7EH,27H,08H,09H ; 08..0F
 0485 71776572          DB      71H,77H,65H,72H,74H,7AH,75H,69H ; 10..17
 048D 6F707D2B          DB      6FH,70H,7DH,2BH,0DH, -1,61H,73H ; 18..1F
 0495 64666768          DB      64H,66H,67H,68H,6AH,6BH,6CH,7CH ; 20..27
 049D 7B23FF3C          DB      7BH,23H, -1,3CH,79H,78H,63H,76H ; 28..2F
 04A5 626E6D2C          DB      62H,6EH,6DH,2CH,2EH,2DH, -1,2AH ; 30..37
 04AD FF20FFFF          DB       -1,20H, -1, -1, -1, -1, -1, -1 ; 38..3F
 04B5 FFFFFFFF          DB       -1, -1, -1, -1, -1, -1, -1,37H ; 40..47
 04BD 38392D34          DB      38H,39H,2DH,34H,35H,36H,2BH,31H ; 48..4F
 04C5 3233302E          DB      32H,33H,30H,2EH                 ; 50..53
                
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE 16   
C'T TEXT-TERMINAL SOFTWARE V2.2

                ; TABELLE DER TASTENCODES BEI AKTIVEM NUM-LOCK-MODUS
                
 04C9 3738392D  LTABLE: DB      37H,38H,39H,2DH,34H,35H,36H,2BH ; 47..4E
 04D1 31323330          DB      31H,32H,33H,30H,2EH             ; 4F..53
                
 0500                   ORG     500H            ; WEITERE TABELLEN IN EIG. PAGE
                
                ; ROUTINE ZUM LESEN DER ASCII-CODES AUS DEN TABELLEN IN PAGE 5
                
 0500 B3        GETKEY: MOVP    A,@A            ; ZEICHEN AUS TABELLE HOLEN
 0501 83                RET                     ; UND ZUR]CK ZUM AUFRUF
                
                ; TABELLE DER NORMALEN ASCII-CODES (OHNE SHIFT/CTL/ALT)
                ; TABELLENEINTR[GE VOM WERT -1 (FFH) WERDEN IGNORIERT.
                
 0502 FF1B3132  NTABLE: DB       -1,1BH,31H,32H,33H,34H,35H,36H ; 00..07
 050A 37383930          DB      37H,38H,39H,30H,7EH,27H,08H,09H ; 08..0F
 0512 71776572          DB      71H,77H,65H,72H,74H,7AH,75H,69H ; 10..17
 051A 6F707D2B          DB      6FH,70H,7DH,2BH,0DH, -1,61H,73H ; 18..1F
 0522 64666768          DB      64H,66H,67H,68H,6AH,6BH,6CH,7CH ; 20..27
 052A 7B23FF3C          DB      7BH,23H, -1,3CH,79H,78H,63H,76H ; 28..2F
 0532 626E6D2C          DB      62H,6EH,6DH,2CH,2EH,2DH, -1,2AH ; 30..37
 053A FF20FFFF          DB       -1,20H, -1, -1, -1, -1, -1, -1 ; 38..3F
 0542 FFFFFFFF          DB       -1, -1, -1, -1, -1, -1, -1,17H ; 40..47
 054A 05122D13          DB      05H,12H,2DH,13H,35H,04H,2BH,1AH ; 48..4F
 0552 1803167F          DB      18H,03H,16H,7FH                 ; 50..53
                
                ; TABELLE DER TASTENCODES BEI GEDR]CKTER SHIFT-TASTE
                
 0556 FF1B2122  STABLE: DB       -1,1BH,21H,22H,40H,24H,25H,26H ; 00..07
 055E 2F28293D          DB      2FH,28H,29H,3DH,3FH,60H,08H,09H ; 08..0F
 0566 51574552          DB      51H,57H,45H,52H,54H,5AH,55H,49H ; 10..17
 056E 4F505D2A          DB      4FH,50H,5DH,2AH,0DH, -1,41H,53H ; 18..1F
 0576 44464748          DB      44H,46H,47H,48H,4AH,4BH,4CH,5CH ; 20..27
 057E 5B5EFF3E          DB      5BH,5EH, -1,3EH,59H,58H,43H,56H ; 28..2F
 0586 424E4D3B          DB      42H,4EH,4DH,3BH,3AH,5FH, -1,2AH ; 30..37
 058E FF20FFFF          DB       -1,20H, -1, -1, -1, -1, -1, -1 ; 38..3F
 0596 FFFFFFFF          DB       -1, -1, -1, -1, -1, -1, -1,17H ; 40..47
 059E 05122D01          DB      05H,12H,2DH,01H,35H,06H,2BH,1AH ; 48..4F
 05A6 1803167F          DB      18H,03H,16H,7FH                 ; 50..53
                
                ; TABELLE DER TASTENCODES BEI GEDR]CKTER CTL-TASTE
                
 05AA FF1B3132  CTABLE: DB       -1,1BH,31H,32H,33H,34H,35H,36H ; 00..07
 05B2 37383930          DB      37H,38H,39H,30H,7EH,27H,08H,09H ; 08..0F
 05BA 11170512          DB      11H,17H,05H,12H,14H,1AH,15H,09H ; 10..17
 05C2 0F101D2B          DB      0FH,10H,1DH,2BH,0DH, -1,01H,13H ; 18..1F
 05CA 04060708          DB      04H,06H,07H,08H,0AH,0BH,0CH,1CH ; 20..27
 05D2 1B1EFF1C          DB      1BH,1EH, -1,1CH,19H,18H,03H,16H ; 28..2F
 05DA 020E0D2C          DB      02H,0EH,0DH,2CH,2EH,1FH, -1,2AH ; 30..37
 05E2 FF20FFFF          DB       -1,20H, -1, -1, -1, -1, -1, -1 ; 38..3F
 05EA FFFFFFFF          DB       -1, -1, -1, -1, -1, -1, -1,17H ; 40..47
 05F2 05122D13          DB      05H,12H,2DH,13H,35H,04H,2BH,1AH ; 48..4F
 05FA 1803167F          DB      18H,03H,16H,7FH                 ; 50..53
                
 0000                   END
REH NS455 CROSS-ASSEMBLER - VERSION 1.2 - 03.08.89  18:07:59

TERMINAL-BASISPROGRAMM F]R TMP NS405/455                              PAGE 17   
---- SYMBOL TABLE ----

AKEY     045F          HLOOP1   02A0          ROWLEN   0034
ALTKEY   045C          HOUR     003C          ROWNUM   0035
ATABLE   0475          IGKEY    045A          ROWTAB   00B8
BELBIT   0020          INIT     0012          RTINC    0152
BFLAG2   0030          INIT1    003C          RTINC1   015B
BODTAB   0300          INT1     0116          SCRTAB   00BC
CBLOCK   0094          INTIGN   014F          SECOND   003E
CDOWN    1006          INTINT   00FC          SERIN    0400
CI       01D1          INTNRT   0118          SERIN0   0402
CI1      01D5          INTRAP   0007          SERIN1   0408
CI2      01F4          INTRET   014A          SERIN2   0412
CILOC    01FC          IVLP1    0065          SERIN3   0419
CIRET    01FB          IVLP2    007A          SERINT   015D
CKEY     0020          KEYTAB   0386          SERRET   016A
CO       0204          LDSEND   1012          SERX     044E
COL0     00C0          LKEY     0000          SETLOC   0181
COLTAB   00B4          LTABLE   04C9          SETLS    018A
CR       000D          MASK7    0033          SETLS1   018C
CRIGHT   1002          MHZ12    0000          SETLS2   0194
CSET     009A          MHZ18    0001          SETSET   01A1
CTABLE   05AA          MINUTE   003D          SETSL    01B0
CTLCD    02A7          NATDEN   0346          SETUP    0800
CTLCD2   1008          NATFRA   0321          SETUPY   02A4
CTLCOD   1000          NATGB    0343          SHKEY    0450
CTLMOD   02AD          NATGER   0332          SKEY     001F
CTLZU1   02CB          NATITA   036A          STABLE   0556
CTLZUS   02BA          NATS     00F0          STALOC   01CE
CURATT   0032          NATSPA   0379          START    020B
CURUP    1004          NATSWE   0353          START1   0217
DISP1    03BE          NATTAB   003B          STAT1    01BA
DISP2    03C0          NATUSA   0320          STAT2    01C6
DISPIT   03B3          NKEY     0463          STATUS   01B4
DISPL    0260          NNUML    0428          STMODE   101A
DISPRT   027B          NOCURS   0098          STSET    100A
DKEY     0018          NORH1    03ED          SWTAB    03A6
DSP10    024A          NORHEI   03E3          TBUFF    0031
DSP101   024C          NORW1    03DA          TOGF     046C
DSP102   0251          NORWID   03CA          TRANS    02D4
DTR      0080          NOTFND   02EA          TRANSN   02D0
ENDHI    0037          NTABLE   0502          TRKEY    0435
ENDLO    0036          PSRTAB   0310          TRKEY1   0439
ESC      001B          RDPTR    0017          UKEY     0005
EXTIN1   0173          REG4     0038          WRPTR    0016
EXTINT   015F          REG5     0039          XOFFC    0013
EXTRAP   0003          REG6     003A          XONC     0011
EXTRET   017D          REGX     00F8          Z15600   0000
FFD      100E          RESET    0000          Z16650   0000
FOUND    02E1          RESF     0457          Z17300   0000
FRET     0459          RETP0    00B3          Z17550   0000
GETK1    0473          RING     0020          Z17850   0001
GETKEY   0500          RNGEND   002F          Z18400   0000
HLOOP    028E          ROW0     00D4          Z20820   0000
