/RX8B (DSD-210) BOOTSTRAP /RX8B AND DSD-210 PROTOTYPE BOOTSTRAP FOR P?S/8 AND DEC USAGE / LAST EDIT: 08-SEP-1977 21:37:59 CJL /THIS IS THE BOOTSTRAP NEEDED FOR TOTAL DEC AND P?S/8 COMPATIBILITY /ISZ'ING LOCATION "BUTZAP" WILL BOOTSTRAP DEC'S OS/8 (THE ONE THAT WRITES /AS IT COMES UP!), AND THE DEC-BOOTSTRAP COMPATIBLE P?S/8 VERSION. /AS IT STANDS THIS CODE WILL BOOT THE NON-DEC-BOOTSTRAP COMPATIBLE /VERSION OF P?S/8 (THE ONE WHICH IS STILL DEC BLOCK COMPATIBLE BUT /USES THIS BOOTSTRAP TO ALLOW SANER I/O ROUTINES WITH BETTER ERROR /RECOVERY), AND ALSO LASNER'S BETTER OS/8 SYSTEM HANDLER BOOTSTRAP /VERSION (WHICH DOESN'T TRY TO WRITE AS IT COMES UP!) /THIS BOOTSTRAP IS ONE WORD LONGER THAN DEC'S TO ALLOW FOR THE SELECTION /OF BOOTSTRAP OPTIONS AND IS INTENDED TO BE PUT INTO FIRMWARE ON /MI-8/E'S, 8/A'S, IM6100 CP MEMORY ROMS, ETC. /THIS CODE IS INFERIOR TO THE BOOTSTRAPS KNOWN AS "RXBUT0" AND /"RXBUT1" BECAUSE: / A) IT'S LONGER THAN EITHER OF THEM / B) IT BOOTSTRAPS ON UNIT ONE IF AN ERROR ON / UNIT ZERO OCCURS LEADING TO CONFUSION AS / TO WHICH UNIT IS THE SYSTEMS DEVICE (P?S/8 / DOESN'T HAVE THIS PROBLEM BECAUSE UNIT ONE / WOULD THEN BOOT TO UNIT 0 AUTOMATICALLY / THIS JUST APPLIES TO OS/8) *23 /WHERE IT GOES NUBOOT, NL0002 /SETUP READ COMMAND TAD BUNIT /IN PROPER UNIT LCD /LOAD COMMAND CLA IAC /WANT SECTOR ONE JMS LOADIT /READ IN BUTZAP, CLA /CLA IAC IF DEC BOOTSTRAP NEEDED 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 BUNIT /GET CURRENT UNIT CIA /INVERT TAD BT6030 /ADD MAGIC SUM DCA BUNIT /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 BUNIT, CML RAL /RAL IF UNIT 0, ETC. BT6030, CML RAL+RAL /MAGIC SUM PAGE /TO START STRTIT, KCC /CLEAN UP KSF /WAIT FOR JMP .-1 /A CHARACTER KCC /CLEAN UP LAS /READ SWITCHES SMA CLA /SKIP IF BIT[0] IS UP ISZ BUTZAP /USE DEC BOOTSTRAP IF DOWN JMP BUTSRT /START IT UP / 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 BUTLOC= 0002 /WHERE TO LOAD INTO NL0002= CLA STL RTL /LOAD AC WITH 0002 $ /THAT'S ALL FOLK!