63.3.1. Klávesnice a tiskárna konzoly (03, 04)

Obrázek 63.15. Keyboard/Reader Instruction Format

  0   1   2   3   4   5   6   7   8   9  10  11
+---+---+---+---+---+---+---+---+---+---+---+---+
| 1   1   0 | 0   0   0   0   1   1 |           |
+---+---+---+---+---+---+---+---+---+---+---+---+
                                      ^   ^   ^-- KSF
                                      |   +------ KCC
                                      +---------- KRS
                                      0   0   0   KCF
                                      1   0   1   KIE
                                      1   1   0   KRB

Tabulka 63.14. Příkazy pro práci s konzolou

mnemooktalověbinárněpopis
KCF6030110 000 011 000Keyboard Clear Flags
KSF6031110 000 011 001Skip on Keaboard Flag
KCC6032110 000 011 010Clear Keyboard Flag
KRS6034110 000 011 100Read Keyboard Buffer Static
KRB6036110 000 011 110Read Keyboard Buffer Dynamic
TLF7040111 000 100 000Set the printer/punch Flag
TSF7041111 000 100 001Skip on Teleprinter Flag
TCF7042111 000 100 010Clear Teleprinter Flag
TPC7044111 000 100 100Load Teleprinter and Print
TSK7045111 000 100 101Skip if reader or printer interrupt Flag
TLS7046111 000 100 110Load Teleprinter Sequence

Příklad 63.2. Čtení jednoho znaku z konzoly

    1             / File: db/pdp8.code/keybinput.pal -*- mode:asm; -*-
    2
    3       0200  *200
    4 00200 6032  INPUT,  KCC             /CLEAR KEYBOARD FLAG
    5 00201 4204          JMS LISN        /ENTER SUBROUTINE
    6 00202 3211          DCA STORE       /STORE ASCII CHARACTER
    7 00203 7402          HLT
    8
    9 00204 0000  LISN,   0               /LISN SUBROUTINE
   10 00205 6031          KSF             /KEYBOARD FLAG RAISED YET?
   11 00206 5205          JMP .-1         /NO: CHECK AGAIN
   12 00207 6036          KRB             /YES: READ THE CHARACTER
   13 00210 5604          JMP I LISN      /RETURN TO MAINLINE
   14
   15 00211 0000  STORE,  0
   16             $

      No detected errors

Obrázek 63.16. Printer/Punch Instruction Format

  0   1   2   3   4   5   6   7   8   9  10  11
+---+---+---+---+---+---+---+---+---+---+---+---+
| 1   1   0 | 0   0   0   1   0   0 |           |
+---+---+---+---+---+---+---+---+---+---+---+---+
                                      ^   ^   ^-- TSF
                                      |   +------ TCF
                                      +---------- TPC
                                      0   0   0   TLF
                                      1   0   1   TSK
                                      1   1   0   TLS

Příklad 63.3. Vytištění jednoho znaku na konzoli

    1             / File: db/pdp8.code/printoutput.pal -*- mode:asm; -*-
    2
    3       0200  *200
    4 00200 7300  OUTPUT, CLA CLL         /CLEAR ACCUMULATOR AND LINK
    5 00201 6046          TLS             /RAISE PRINTER FLAG
    6 00202 1213          TAD HOLD        /GET THE CHARACTER
    7 00203 4205          JMS TYPE        /ENTER SUBROUTINE
    8 00204 7402          HLT
    9
   10
   11 00205 0000  TYPE,   0               /TYPE SUBROUTINE
   12 00206 6041          TSF             /PRINTER FALG RAISED YET?
   13 00207 5206          JMP .-1         /NO: CHECK AGAIN
   14 00210 6046          TLS             /YES: PRINT THE CHARACTER
   15 00211 7300          CLA CLL         /CLEAR ACCUMULATOR AND LINK
   16 00212 5605          JMP I TYPE      /RETURN TO MAINLINE
   17
   18 00213 0243  HOLD,   243             /STORED ASCII CHARACTER
   19             $

      No detected errors
Licence Creative Commons
Elektronika a počítače, jejímž autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .