/RX8B INITIALIZE PROGRAM / LAST EDIT: 08-SEP-1977 23:45:59 CJL /THIS PROGRAM INITIALIZES AN IBM COMPATIBLE FLOPPY DISC /WITH AN IPL PROGRAM (BOOTSTRAP) ON TRACK 0 TO ALLOW /OPERATING SYSTEMS FURTHER UP ON THE DEVICE TO BE LOADED /WITHOUT OVERHEAD IMPOSED BY THE FEEBILITY OF THE /DEC COMPATIBLE INTERFACE START, LAS /GET CONSOLE SWITCHES TAD (-1234 /MAGIC VALUE? SZA CLA /SKIP IF SO AGAIN, HLT /STOP IF NOT TAD (CODE /SETUP DCA CODPTR /WORD POINTER TAD (-100 /SETUP DCA WCOUNT /WORD COUNT JMS LODCMD /TELL IT TO FILL SECTOR BUFFER WORDLP, TAD I CODPTR /GET A WORD JMS TRANS /PUT INTO BUFFER CLA /CLEAN UP ISZ CODPTR /BUMP TO NEXT ISZ WCOUNT /DONE YET? JMP WORDLP /NO, GO BACK TAD (4 /GET WRITE SECTOR BITS JMS LODCMD /TELL IT WE'RE WRITING CLA IAC /SECTOR ONE JMS TRANS /TO BE USED CLA /TRACK ZERO JMS TRANS /TO BE USED TAD (10 /GET NOP BITS JMS LODCMD /THIS WILL RAISE THE DONE FLAG SER /ANY ERRORS? JMP OK /WE MADE IT INIT /BARF HLT /DOUBLE BARF JMP AGAIN /TRY, TRY AGAIN OK, KCC /CLEAR FLAG KSF /WAIT FOR IT JMP .-1 /TO COME UP JMP I (7600 /BYE, BYE TRANS, 0 /WORD TRANSFER ROUTINE STR /TRANSFER FLAG UP? JMP .-1 /NO, WAIT FOR IT XDR /TRANSFER A WORD JMP I TRANS /RETURN LODCMD, 0 /LOAD COMMAND REGISTER ROUTINE SDN /DONE FLAG UP? JMP .-1 /NO, WAIT FOR IT LCD /LOAD THE COMMAND JMP I LODCMD /RETURN WCOUNT, -100 /WORD COUNT CODPTR, CODE /STUFF TO BE WRITTEN POINTER PAGE CODE= . /STUFF TO BE WRITTEN IS HERE RELOC 2 /WHERE IT WILL COME IN BUTLOC, SBOOT-1 /WHERE WE SHOULD LOAD BTSECT, -1 /WILL BE BUMPED BY TWO'S BUT10, 10 /CONSTANT 0010 ZBLOCK 6-. /EMPTY SPACE COLBUT, JMP CLBUT2 /PUT HERE FOR SLURP LOADER'S BENEFIT COMEIN, JMS SECTIN /READ IN TRACK ONE SECTOR ONE JMS SECTIN /READ IN TRACK ONE SECTOR THREE TAD BUT10 /GET "NOP" BITS LCD /LOAD THEM TO RAISE DONE FLAG JMS I BUTLOC /GO START UP OPERATING SYSTEM BUTXR, SBOOT-1-32 /OUTPUT XR ZBLOCK 21-. /EMPTY SPACE SECTIN, COMEIN /SECTOR READ ROUTINE NL0002 /LOAD A READ SECTOR COMMAND TAD BUNIT /INCLUDING THE UNIT # LCD /LOAD IT NL0002 /GET BUMP FACTOR TAD BTSECT /ADD ON SECTOR # JMS LOADIT /LOAD IT AS LATEST SECTOR DCA BTSECT /STORE IT BACK CLA IAC /TRACK ONE JMS LOADIT /LOAD AS TRACK FOR TRANSFER HANGIT, SDN /DONE? JMP LOADIT+1 /NO, TRY TRANSFER SER /ANY ERRORS? SKP /NO HLT /YES, BARF SNA /WERE WE READING? JMP I SECTIN /NO, READ + TRANSFER COMPLETE NL0002 /GET EMPTY SECTOR BUFFER BITS LCD /LOAD COMMAND NOP /FOR PSEUDO-DEC COMPATIBILITY LOADLP, JMS LOADIT /GET A WORD DCA I BUTXR /PUT A WORD JMP LOADLP /GO BACK FOR MORE CLBUT2, TAD BUTLOC /GET GOOD VALUE DCA BUTXR /SET IT UP JMP COMEIN /GO DO IT LOADIT, 0 /LOAD ROUTINE STR /TRANSFER UP? JMP HANGIT /NO, WAIT FOR DONE FLAG XDR /TRANSFER A WORD JMP I LOADIT /RETURN BUNIT, RAL /UNIT # RELOC /BACK TO REAL ORIGIN /MANUAL BOOTSTRAP CODE TO BE USED WITH IPL ROUTINE NOPUNCH *23 NUBOOT, NL0002 /SETUP READ COMMAND TAD BTUNIT /IN PROPER UNIT LCD /LOAD COMMAND CLA IAC /WANT SECTOR ONE JMS LOADIT /READ IN CLA /CLA IAC IF PRUDES WANT DUMB DEC OS/8 BOOTSTRAP JMS LOADIT /LOAD TRACK NL0002 /READ INITIATED FLAG VALUE BUTSRT, SDN /DONE? JMP LOADIT+1 /NO, MAYBE WAIT FOR TRANSFER SER /ANY ERRORS? SNA /NO, DO WE READ? SKP CLA /DON'T JMP GOODRD /TRY TO READ IT IN TAD BTUNIT /GET CURRENT UNIT CIA /INVERT TAD BT6030 /ADD MAGIC SUM DCA BTUNIT /SAVE FOR LATER USE JMP NUBOOT /TRY OTHER UNIT GOODRD, LCD /SETUP EMPTYING STSHLP, JMS LOADIT /GET A WORD DCA BUTLOC /STORE IT ISZ .-1 /POINT TO NEXT JMP STSHLP /GO DO ANOTHER LOADIT, 0 /LOAD ROUTINE STR /TRANSFER UP? JMP BUTSRT /NO, TRY DONE ALSO XDR /TRANSFER A WORD JMP I LOADIT /RETURN BTUNIT, CML RAL /RAL IF UNIT 0, ETC. BT6030, CML RAL+RAL /MAGIC SUM ENPUNCH / RX8B EQUATES DEVCOD= 75^10+6000 /SKELETON IOT CODE OF DISK LCD= DEVCOD+1 /LOAD COMMAND REGISTER XDR= DEVCOD+2 /TRANSFER DATA REGISTER STR= DEVCOD+3 /SKIP ON, CLEAR TRANSFER FLAG SER= DEVCOD+4 /SKIP ON, CLEAR ERROR FLAG SDN= DEVCOD+5 /SKIP ON, CLEAR DONE FLAG INTR= DEVCOD+6 /INTERRUPT ENABLE/DISABLE PER AC[11] INIT= DEVCOD+7 /INITIALIZE CONTROLLER, RECALIBRATE DRIVES /MICRO-PROGRAM EQUATES NL0002= CLA STL RTL /LOAD AC WITH 0002 /SYSTEM EQUATES SBOOT= 7600 /SYSTEM BOOTSTRAP LOCATION