2 / This program will send a RX01 image out the console port.
3 / The format of the data sent is 0xff (0377) if no errors, or 0xfd
4 / if error followed by 1 byte track, 1 byte sector, then 128 word
5 / of data for each sector. After the last sector a 0xfe (0376) is sent
6 / with a one byte -checksum of all bytes sent.
7 / The data is read in 8 bit mode so all data on the disk is dumped.
8 / To run start at 0200.
9 / SR 10-11 should be drive #
10 / Should halt at HLT at label GDHLT with number of recoverable errors
11 / At normal exit hitting cont will restart the program
13 / If unrecoverable errors occur the program will halt, hit continue to
14 / send bad sector and continue.
15 / The PC program will print out the bad location
17 / Program uses field 0 & 1. 1 is transmit buffer
19 LCD=6751 / Load the command reg with AC
20 XDR=6752 / Load or read the transfer register
21 STR=6753 / Skip on transfer request flag
22 SER=6754 / Skip on error flag
23 SDN=6755 / Skip on done flag
24 INTR=6756 / AC = 0 interrupt off, 1 = on
25 INIT=6757 / Initialize RX8/RX01
27 INAD=030 / Address of serial input, 30 for console
35 OUTAD=040 / Address of serial output, 40 for console
47 ERRCNT, 7760 / Stop when err count = 0, init at startup
48 DRIVE, 0 / Drive # * 20
49 DRVMSK, 60 / Mask for drive bits
50 INTLV, 2 / Interleave factor for read, 13 (15 octal) wont work
51 ERRCN2, 0 / Total # of errors
52 RDCMD,106 / 8 bit read
53 EMPCMD, 102 / 8 bit empty buffer
54 RDERR, 116 / 8 bit read error
63 CURBUF, 1000 / Address to read data into
64 LSTBUF, 1000 / Address to send data from
65 BUFORG, 1000 / First buffer address
91 JMP I RISR / Interrupt handler
99 CLA CLL OSR / Init variables changed during run
118 ION / Turn on serial interrupt handler
119 CLA CLL IAC / Set bit 11 to enable interrupts
121 / RPE / Testing, use PTP with emulator
124 DUMP, JMS I READF / Start read operation
125 DMPLP, JMS CHKRD / Wait until done and check for errors
131 JMS I FINCTRK / Set read loc to next sector
133 JMP LAST / Last, send checksum
136 DCA LSTBUF / Save buffer data read into for dumping
137 TAD CURBUF / And setup to read into next buffer
142 JMS I READF / Start the read
143 JMS I SENDF / Send the last buffer
144 JMP DMPLP / And check read started etc
154 LAST, CLA / Send FE and -checksum of all words
169 SZA / No character waiting to send
171 TAD ERRCN2 / Leave AC with # of errors
172 GDHLT, HLT / Normal halt
177 TAD FF / Set good read flag
199 GOOD, TAD MASK1 / Reset error counter on good read
208 JMP I CHKRD / Not executed????
210 ERROR, ISZ ERRCN2 / Inc total # of errors
211 ISZ ERRCNT / To many errors?
213 XDR / Yes, leave error in AC and halt
214 HLT / ********* Remove halt to go past errors
224 TAD FD / Set bad read flag
231 JMS RECAL / No, recal drive and try again
236 INCTRK, 0 / Increment track and exbit value for next sector
237 CLA CLL / AC non zero on return if done
268 CLA CLL / Standard read from manual
306 PUNLP, TAD BUFPUT / Room for another character?
311 JMP PUNLP / No, try again
327 TLS2 / Send character
335 ISR, DCA ISRAC / Save AC
337 DCA ISRFLG / And flags
338 CDF 10 / Buffer in field 1
341 JMP IRET / No, not our interrupt
345 SNA / No character waiting to send
349 TLS2 / Send character
359 TCF2 / Clear interrupt