|
|
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 - metrics - download
Length: 6906 (0x1afa)
Types: TextFile
Names: »K.N«
└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS )
└─⟦this⟧ »K.D!K.N«
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 ERR
T8: MOD8 4
MOVC 0 R0
T9: SOB R2 LOC
SOB R0 T9
JMP T7 I