DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 6350 (0x18ce) Types: TextFile Names: »LTU.I«
└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS ) └─ ⟦this⟧ »LTU.D!LTU.I«
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