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: 6934 (0x1b16) Types: TextFile Names: »K.DIS«
└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS ) └─ ⟦this⟧ »K.D!K.DIS«
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