; ; RXO2 DEIMOS SYSTEM DUMPER ; ; DUMPS ALL OF STORE (64K WORDS) TO UNIT 1 ; STARTING AT SECTOR 1 OF TRACK 0. SECTORS INTERLEAVED. ; .ABSOLUTE .=1000 SECMAP: .BYTE 1,3,5,7,9.,11.,13.,15.,17.,19.,21.,23.,25. .BYTE 2,4,6,8.,10.,12.,14.,16.,18.,20.,22.,24.,26. CONTW: .WORD 421 ; ; R0 POINTS AT DEVICE ; R1 TRACK ; R2 SECTOR ; R3 STORE ADDR ; R4 ALSO USED. ; START: MOV #177170,R0 ;DEV ADDR CLR R1 CLR R2 CLR R3 ;TRACK,SECTOR+STORE ; ; LOOP STARTS HERE ; LOOP: BIT #40,(R0) ;READY? BEQ LOOP MOV CONTW,R4 MOV R4,(R0) ;UNIT+ADDR EXT+FILL BUFFER L1: TSTB (R0) ;WAIT FOR TRDONE BPL L1 MOV #128.,2(R0) ;WORD COUNT L2: TSTB (R0) ;WAIT FOR TRDONE BPL L2 MOV R3,2(R0) ;STORE ADDRESS L3: BIT #40,(R0) ;WAIT FOR DONE BEQ L3 ; ; NOW DO WRITE ; MOV CONTW,R4 BIS #4,R4 ;WRITE COMMAND MOV R4,(R0) L4: TSTB (R0) BPL L4 MOVB SECMAP(R2),2(R0) ;SECTOR L5: TSTB (R0) BPL L5 MOV R1,2(R0) ;TRACK L6: BIT #40,(R0) ;WAIT FOR DONE BEQ L6 ; ; UPDATE SECTOR,TRACK AND ADDRESS ; INC R2 ;SECTOR CMP R2,#26. ;END OF TRACK? BNE L7 CLR R2 ;YES INC R1 L7: ADD #256.,R3 BCS L8 ;END OF 32K JMP LOOP L8: BIT #10000,CONTW ;FINISHED? BEQ L9 HALT L9: CLR R3 BIS #10000,CONTW JMP LOOP .END