DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦44c7a795c⟧ TextFile

    Length: 6934 (0x1b16)
    Types: TextFile
    Names: »K.DIS«

Derivation

└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS )
    └─ ⟦this⟧ »K.D!K.DIS« 

TextFile

BEGIN MODULE
  USE PROG
T3: JMP  S4   C9          ; TEST LINE-DATA FLOW
    JMP  S4   C5,<:  TEST 5.  LINE DATA TEST <0>:>
    MOVC  4   R2          ; MODUL SET-UP
    MOVC  0   R4
    JMP     T5
T6: ADDC #40  R1          ; ENABLE ALL CHANELS
    ADDC #40  R3
T5: CIO  R4   R1          ; E-A LTU
    CIO  R4   R3          ; I-A LTU
    SOB  R2   T6
    MOD8 #20              ; LOAD I-A LTU #2043
    MOVC #43  R0          ; FOR RP
    MOV  R0   #1E
    JMP S6   T4

IT: STC  1                ; R0+R1 TO STACK
    MOV  #11  R0          ; LOC ACT CAUSE TO R0
    JOZ  R0  L1           ; IF PE OR TO
    UNS  1                ; THEN
    MOV  #1D  R0
    MOV  R0  #13
    MOV  #1F  R0
    MOV  R0   #F
    JMPI   #F             ; OUT TO LOC ACT.
L1: MOV  #1E  R0          ; GET MODUL ADDR.
    MOV  R0   R1          ; TOGGL. BIT 8
    SWP  R1
    ADDC 1    R1          ; PLACE IT IN
    XTR  R1    1          ; POS 0
    WIO  R1   R0          ; SHIFT RP
    MOVC #1E  R0          ; PREPARE UPDATE
    SWP  R1               ; OF DATA
    MOD4 #10              ; IN MODUL ADR
    PUT  R1   X0          ; INSET BIT 0 IN XO - BIT 8
    MOVC #0E  R1          ; 2MS HIGH
    JOZ  R1   L2
    ADDC #99  R1          ; 23MS LOW
L2: MOV  R1  #13          ; FASTTIMER PRESET
    MOVC #0D  R0          ; R0:=XPSW
    SVS  X0               ; PSW TO (XPSW)
    RELS X0   #B          ; CLEAR BIT 11
    LDS  X0               ; (XPSW) TO PSW
    UNS   1               ; R0+R1 FROM STACK
    JMPI  #10             ; RETURN TO PROGRAM

T4: MOV  #13  R0          ;
    MOV  R0  #1D          ; SAVE TIME PRESET
    MOV  #F   R0
    MOV  R0  #1F          ; SAVE LOC ACT ADDR.
    MOV  R6   #F          ; EXT LOC ACT. TO IT:
    JMP     T8
    MOVC  4   R2
    MOVC #20  R3          ; START DATABUF.
B1: MOD8 #01
    MOVC #00  R0          ; TESTPATTERN0:=#0100
    MOVC #04  R5          ; 4 TESTPATT.
B2: MOV  R0   X3          ; FILL DATABUF.
    ADDC #01  R3          ; INCR. ADDR
    ADDC #55  R0          ; NEXT TESTPATT.
    SOB  R5    B2
    SOB  R2    B1         ; NEXT CH TEST DATA
    MOVC #00  R0          ; CLEAR I-A LTU BUFF
    MOVC #10  R5
B3: MOV  R0   X3          ; #0000 TO X3 (#30-3F)
    ADDC #01  R3
    SOB  R5    B3
    MOD8 #FF              ; PRESET TEST NUMBER
    MOVC #00  R4          ; 64 BYTES
    MOVC #00  R5          ; CLEAR TXDATA#
    MOVC #04  R2          ; E-A LTU TRANSMIT DATA
    JMP        B4
B5: ADDC #40  R1          ; NEXT CH#
B4: MOV  R5   R0          ;
    XTR  R0    2          ; ISOLATE DATA#
    MOV  R1   R3          ;
    SRL  R3    6          ; ISOLATE CH# AND
    SLL  R3    2          ; SHIFT TO BIT 2,3
    ADD  R0   R3          ; ADD 4XCH#+DATA#
    ADDC #20  R3          ; BASE REL. #20 - #2F
    MOD8 #02              ;
    SIO  R0   R1          ; GET STATUS
    SBZ  R0    5          ; IF ERROR ON CHAR TIME
    JMPI S6   ERR         ; THEN JUMP TO ERROR
    SBN  R0    4          ; IF TXBUF EMPTY = 0
    JMP        B6         ; THEN NEXT CH#
    MOD8 #01
    ADDC #00  R4          ; COUNT DATA BYTES
    JON  R4    B8         ; FINISH?
    JMP        D9
B8: MOD8 #08              ; ELSE
    CIO  X3   R1          ; TXDATA
    MOVC #00  R0
    MOV  R0   X3          ; CLEAR DATA BUFF.
    MOV  R5   R0          ;
    ADDC #01  R0          ; INCREMENT DATA#
    XTR  R0    2          ; MOD 4
    SRL  R5    2
    SLL  R5    2          ; CLEAR BIT 0,1
    ADD  R0   R5
B6: SLC  R5    2          ; SHIFT DATA# CYCLIC
    MOD8 #02              ; E-A LTU RECEIVE DATA
    SIO  R0   R1          ; READ STATUS
    SBN  R0    2          ; TEST PAR. ERR.
    SBZ  R0    3          ; TEST FRA. ERR.
    JMPI S6   ERR
    XTR  R0    2          ; ISOLATE STATUS BIT 0,1
    MOV  R1   R3          ;
    SRL  R3    6          ; ISOLATE CH# AND
    SLL  R3    2          ; SHIFT TO BIT 2,3
    ADD  R0   R3          ; ADD 4XCH#+DATA#
    ADDC #20  R3          ; BASE REL. #20 - #2F
    JON  X3    B7         ; IF RXBUFF EMPTY THEN NEXT CH#
    MOD8 #04              ; ELSE
    SIO  R0   R1          ; READ RXBUFF
    SBN  R0    7          ; TEST DATA READY
    JMP        B7         ; IF NOT READY THEN NEXT CH#
    XTR  R0    7          ; REMOVE UB DATA
    MOD8 #01
    ADDC #00  R4          ; COUNT DATA BYTES
    JON  R4    B9         ; FINISH?
    JMP        D9
B9: ADD  R4   R0          ;
    MOV  R0   X3          ; RX DATA TO DATA BUFF.
    MOVC #00  R0
    MOD8 #04
    CIO  R0   R1          ; CLEAR RX BUFF.
B7: SOB  R2    B5
    STC  1                ; SAVE MODUL#
    MOVC #03  R1          ; I-A LTU MODUL #03.
    MOVC #04  R2          ; I-A LTU TRANSMIT DATA
    JMP        D1
D2: ADDC #40  R1          ; NEXT CH#
D1: MOV  R5   R0          ;
    XTR  R0    2          ; ISOLATE DATA#
    MOV  R1   R3          ;
    SRL  R3    6          ; ISOLATE CH# AND
    SLL  R3    2          ; SHIFT TO BIT 2,3
    ADD  R0   R3          ; ADD 4XCH#+DATA#
    ADDC #30  R3          ; BASE REL. #30 - #3F
    MOD8 #02              ;
    SIO  R0   R1          ; GET STATUS
    SBZ  R0    5          ; IF ERROR ON CHAR TIME
    JMPI S6   ERR         ; THEN JUMP TO ERROR
    SBN  R0    4          ; IF TXBUF EMPTY = 0
    JMP        D3         ; THEN NEXT CH#
    MOD8 #01
    ADDC #00  R4          ; COUNT DATA BYTES
    JON  R4    D5         ; FINISH?
    JMP        D8
D5: MOD8 #08              ; ELSE
    CIO  X3   R1          ; TXDATA
    MOVC #00  R0
    MOV  R0   X3          ; CLEAR DATA BUFF.
    MOV  R5   R0          ;
    ADDC #01  R0          ; INCREMENT DATA#
    XTR  R0    2          ; MOD 4
    SRL  R5    2
    SLL  R5    2          ; CLEAR BIT 0,1
    ADD  R0   R5
D3: SLC  R5    2          ; SHIFT DATA# CYCLIC
    MOD8 #02              ; I-A LTU RECEIVE DATA
    SIO  R0   R1          ; READ STATUS
    SBN  R0    2          ; TEST PAR. ERR.
    SBZ  R0    3          ; TEST FRA. ERR.
    JMPI S6   ERR
    XTR  R0    2          ; ISOLATE STATUS BIT 0,1
    MOV  R1   R3          ;
    SRL  R3    6          ; ISOLATE CH# AND
    SLL  R3    2          ; SHIFT TO BIT 2,3
    ADD  R0   R3          ; ADD 4XCH#+DATA#
    ADDC #30  R3          ; BASE REL. #30 - #3F
    JON  X3    D4         ; IF RXBUFF EMPTY THEN NEXT CH#
    MOD8 #04              ; ELSE
    SIO  R0   R1          ; READ RXBUFF
    SBN  R0    7          ; TEST DATA READY
    JMP        D4         ; IF NOT READY THEN NEXT CH#
    XTR  R0    7          ; REMOVE UB DATA
    MOD8 #01
    ADDC #00  R4          ; COUNT DATA BYTES
    JON  R4    D6         ; FINISH?
    JMP        D8
D6: ADD  R4   R0          ;
    MOV  R0   X3          ; RX DATA TO DATA BUFF.
    MOVC #00  R0
    MOD8 #04
    CIO  R0   R1          ; CLEAR RX BUFF.
D4: SOB  R2    D2
D8: UNS  1                ; RELOAD MODUL#
D9: MOV  #1F  R0
    MOV  R0   #F
T7: MOV  #1F  R0
    MOV  R0   #F
    MOV  #1D  R0
    MOV  R0  #13
    JMP  S4  C5,<:** OK **<10><13><0>:>
    JMP   NX
T8: MOD8 4
    MOVC 0    R0
T9: SOB  R2  LOC
    SOB  R0   T9
ERR: JMP     T7
END 0