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

⟦24ca8e2ef⟧ TextFile

    Length: 6350 (0x18ce)
    Types: TextFile
    Names: »LTU.I«

Derivation

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

TextFile

BEGIN MODULE
  USE PROG
T3: JMP  S4   C10         ; 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
    ADDC #40  R3
T5: CIO  R4   R1          ; E-A LTU
    CIO  R4   R3          ; I-A LTU
    SOB  R2   T6
    JMP S6   T4

IT: STC  1                ; R0+R1 TO STACK
    MOV  #11  R0          ; LOC ACT TO R0
    JOZ  R0  L1           ; IF PE OR TO
    UNS  1
    MON  9                ; OUT OF PROGR.
L1: MOV  #12  R0          ; GET MODUL ADDR.
    MOV  R0   R1          ; TOGGL. BIT 8
    SWP  R1
    ADDC 1    R1          ; PLACE IT IN
    XTR  R1    1          ; POS 0
    WIO  R0   R1          ; SHIFT RP
    MOVC #12   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  R0   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: MOVC #04  R2          ;
    MOVC #20  R3          ; START DATABUF.
C1: MOD8 #01
    MOVC #00  R0          ; TESTPATTERN0:=#0100
    MOVC #04  R5          ; 4 TESTPATT.
C2: MOV  R0   X3          ; FILL DATABUF.
    ADDC #01  R3          ; INCR. ADDR
    ADDC #55  R0          ; NEXT TESTPATT.
    SOB  R5    C2
    SOB  R2    C1         ; NEXT CH TEST DATA
    MOVC #00  R0          ; CLEAR I-A LTU BUFF
    MOVC #10  R5
C3: MOV  R0   X3          ; #0000 TO X3 (#30-3F)
    ADDC #01  R3
    SOB  R5    C3
    MOD8 #FF              ; PRESET TEST NUMBER
    MOVC #00  R4          ; 64 BYTES
    MOVC #00  R5          ; CLEAR TXDATA#
    MOVC #04  R2          ; E-A LTU TRANSMIT DATA
    JMP        C4
C5: ADDC #40  R1          ; NEXT CH#
C4: 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        C6         ; THEN NEXT CH#
    MOD8 #01
    ADDC #00  R4          ; COUNT DATA BYTES
    JOZ  R4    B4         ; FINISH !!! 256 DATA BYTES
    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
C6: 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    C7         ; IF RXBUFF EMPTY THEN NEXT CH#
    MOD8 #04              ; ELSE
    SIO  R0   R1          ; READ RXBUFF
    SBN  R0    7          ; TEST DATA READY
    JMP        C7         ; IF NOT READY THEN NEXT CH#
    XTR  R0    7          ; REMOVE UB DATA
    MOD8 #01
    ADDC #00  R4          ; COUNT DATA BYTES
    JOZ  R4    B4         ; FINISH !!! 256 DATA BYTES
    ADD  R4   R0          ;
    MOV  R0   X3          ; RX DATA TO DATA BUFF.
    MOVC #00  R0
    MOD8 #04
    CIO  R0   R1          ; CLEAR RX BUFF.
C7: SOB  R2    C5
    STC  1                ; SAVE MODUL#
    MOVC #03  R1          ; I-A LTU MODUL #03.
    MOVC #04  R2          ; I-A LTU TRANSMIT DATA
    JMP        C8
C9: ADDC #40  R1          ; NEXT CH#
C8: 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       C10         ; THEN NEXT CH#
    MOD8 #01
    ADDC #00  R4          ; COUNT DATA BYTES
    JOZ  R4    B4         ; FINISH !!! 256 DATA BYTES
    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
C10: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   C11         ; IF RXBUFF EMPTY THEN NEXT CH#
    MOD8 #04              ; ELSE
    SIO  R0   R1          ; READ RXBUFF
    SBN  R0    7          ; TEST DATA READY
    JMP       C11         ; IF NOT READY THEN NEXT CH#
    XTR  R0    7          ; REMOVE UB DATA
    MOD8 #01
    ADDC #00  R4          ; COUNT DATA BYTES
    JOZ  R4    B4         ; FINISH !!! 256 DATA BYTES
    ADD  R4   R0          ;
    MOV  R0   X3          ; RX DATA TO DATA BUFF.
    MOVC #00  R0
    MOD8 #04
    CIO  R0   R1          ; CLEAR RX BUFF.
C11:SOB  R2    C9
    UNS  1                ; RELOAD MODUL#
    JMP  S4   C5,<:** OK **<10><13><0>:>
B4: JMP  LOC
ERR: JMP LOC
END