/BOOTV4.PA /ORIGINALLY BOOT.PA (17) /OS/8 V3D WITH RL01,RX02 AND VXA0 DEVICES / / / / / / / / / /COPYRIGHT (C) 1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / / /SR /FIXES MADE FOR MAINTENANCE RELEASE: /1. ADDED RX01 (FLOPPY BOOTSTRAP) /2. LEFT PATCH SPACE IN NAME TABLE / 26-DEC-77 /1. ADDED RL BOOTSTRAP (S.R.) /OS/78 V4 RELEASE: ADDED SOME COMMENTS /RL BOOT WILL WORK WITH EITHER RL01 OR -02 *1 HLT JMP I (7600 *100 INNER, 0 OUTR, -20 CODE, 0 LENGTH, 0 *200 START, CLA /ALLOW BEING CHAINED TO TAD I (7600 SPA CLA JMP OS8IN ISZ INNER JMP .-1 ISZ OUTR JMP .-3 JMS I (TESTRK /RECALIBRATE IF RK08 COSIN, TAD I (7776 COMN, CIA DCA CODE TAD (TABLE DCA PTR LOOP, TAD I PTR SNA JMP I (OS8 TAD CODE SZA CLA JMP NXT IOF /SET UP THE BOOTSTRAP TO BE USED ISZ PTR TAD I PTR DCA OLDLOC /ADDRESS OF BOOTSTRAP TO BE USED ISZ PTR TAD I PTR DCA NEWLOC /WHERE IT WILL BE EXECUTED ISZ PTR TAD I PTR CIA DCA LENGTH /SIZE OF BOOTSTRAP TO MOVE XXLUP, TAD I OLDLOC DCA I NEWLOC ISZ OLDLOC ISZ NEWLOC ISZ LENGTH JMP XXLUP ISZ PTR TAD I PTR DCA TEMP /ENTRY POINT TO USE IN BOOTSTRAP TAD HLTSWT /COMMAND LINE ENDED WITH "." SAYS HALT AFTER EXECUTING BOOT SNA CLA HLT CLL JMP I TEMP HLTSWT, 1 NXT, TAD PTR TAD (5 DCA PTR JMP LOOP OLDLOC, 0 NEWLOC, 0 PTR, 0 SCAN, 0 OS8IN, TAD I (7600 /SYS DEVICE HANDLER HOME? TAD (-4207 SZA CLA JMP I (RETRY TAD I (1000 TAD (777 /FIND WHICH BUFFER TO READ BOOT FROM-- SNA CLA TAD (600 /PS8 TAD (1000-1 /OS8 DCA SCAN SKAN, ISZ SCAN TAD I SCAN SNA JMP I (RETRY /BUFFER IS EMPTY--ASK FOR THE DEVICE TO BOOT AND (177 TAD (-"/!7600 SZA CLA JMP SKAN ISZ SCAN TAD I SCAN AND (77 /THEN PACK IT UP IN 2 X 6-BIT FORM CLL RTL RTL RTL DCA TEMP ISZ SCAN TAD I SCAN AND (77 TAD TEMP DCA TEMP ISZ SCAN TAD I SCAN AND (177 TAD (-".!7600 DCA HLTSWT TAD TEMP JMP COMN /FOR COMPARISON WITH LEGAL DEVICES IN OUR TABLE. TEMP, 0 PAGE /TABLE OF VALID DEVICES /WORD 1: POINTER TO BOOTSTRAP TO USE /WORD 2: POINTER TO BEGINNING LOADING ADDRESS /WORD 3: SIZE (POSITIVE) /WORD 4: STARTING ADDRESS TABLE, 2403 /TC ANY DECTAPE DECTAP 7554 25 7554 2213 /RK RK08 RKADR, RK8 21 11 21 2404 /TD TD8E TD8E 7277 34 7277 1424 /LT LINKTAPE LINCTP 4400 7 4400 2206 /RF RF08 RF08 7746 7 7746 2024 /PT BINARY LOADER BINLDR 7626 152 7700 3205 /ZE ZEROES OUT FIELD 0 ZERO 4 6 4 2431 /TY BOOTS TMS-8 DECSET SYSTEM (ONLY PRIOR TO V5) TYPSET 7730 42 7730 0414 /DL DIAL-V2, DIAL-MS DIAL 4012 6 4012 0301 /CA TA8E CASSETTE SYSTEM CAS 4000 40 4000 0415 /DM RF08, DF32 DISK MONITOR DSKMON 171 16 174 2605 /VE PRINTS BOOT.PA VERSION NUMBER VERS VERS 1 VERS 0424 /DT TC08, TD8E, LINKTAPE TAPE TAPE 1 TAPE 0413 /DK RF08, DF32, RK8E OR RK8 DISK BASED SYSTEM DISK DISK 1 DISK 2205 /RE RK05 (RK8E CONTROLLER) BASED SYSTEM RK8E 21 11 21 2523 /US UNUSED 1 1 1 RETRY 2230 /RX RX01, -02 SYSTEM RX01 RX8E 42 RXSTRT 2214 /RL RL01, -02 SYSTEM RL01 1 35 1 2630 /VX KT8-A MEMORY (IF TREATED AS DF32) VXA0 0 7 0 ZBLOCK 3^5 /PATCH SPACE 0 /PLACE HOLDER /BOOTSTRAPS: /FORMAT: /SIXBIT OF 2-CHARACTER NAME /ADDRESS OF BOOTSTRAP CODE IN BOOT /ADDRESS WHERE BOOTSTRAP CODE IS TO BE MOVED TO /LENGTH OF BOOTSTRAP IN WORDS /STARTING ADDRESS OF BOOTSTRAP DECTAP, 7600 6774 1374 6766 6771 5360 7240 1354 3773 1354 3772 1375 6766 5376 7754 7755 0600 0220 6771 5376 RK8, 6732 6751 6745 5023 6742 6753 6755 6733 5031 RK8E, 7000 7000 7000 7000 7201 6742 6742 6743 5031 TD8E, 6007 1312 4312 4312 6773 5303 6777 3726 2326 5303 5732 2000 1300 6774 6771 5315 6776 0331 1327 7640 5315 2321 5712 7354 7756 7747 0077 7400 LINCTP, 6141 1020 0020 0004 0700 0000 6020 RF08, 6643 6615 7600 6603 6622 5352 5752 / 1000 IS OS/8 LINE BUUFFER / 1600 IS PS/8 LINE BUFFERE *2000 BINLDR, 0000 3212 4260 1300 7750 5237 2212 7040 5227 1212 7640 5230 1214 0274 1341 7510 2226 7750 5626 1214 0256 1257 3213 5230 0070 6201 0000 0000 6031 5262 6036 3214 1214 5660 6011 5270 6016 5265 0300 4343 7041 1215 7402 6032 6014 6214 1257 3213 7604 7700 1353 1352 3261 4226 5313 3215 1213 3336 1214 3376 4260 3355 4226 5275 4343 7420 5336 3216 1376 1355 1215 5315 0000 3616 2216 7600 5332 0000 1376 7106 7006 7006 1355 5743 5262 0006 0000 0000 6014 6011 5357 6016 7106 7006 7510 5374 7006 6011 5367 6016 7420 3776 3376 5357 0000 5301 ZERO, 1005 3410 5004 5404 0011 2010 DIAL, 6141 1020 0020 0004 0701 7300 / 7300 / 6002 / 6042 / 6022 / 6012 / 6032 / 6601 / 6764 / 1221 / 3010 / 1622 / 2222 / 7450 / 5620 / 3410 / 5212 / 7730 / 7727 / 0223 TYPSET, 6774 1347 4341 7240 1353 3355 1352 4341 5753 7777 6766 3354 6771 5344 5741 4600 7777 7777 4220 7400 7777 7777 7777 6014 6011 5360 7106 6012 7420 5357 5756 4356 3373 4356 VXA0, 7200 1206 6200 6207 5605 0000 7000 PTCLEV, "0 L3, "A //V4: VERSION IS "A0" LV, "V VERS, TAD LV JMS I (PUT TAD L3 JMS I (PUT TAD PTCLEV JMS I (PUT JMP I PRETRY PRETRY, RETRY DSKMON, 7577 7750 7751 1171 3572 1172 3573 6643 6615 6603 6602 5203 5606 7600 CAS, 1237 1206 6704 6706 6703 5204 7264 6702 7610 3211 3636 1205 6704 6706 6701 5216 7002 7430 1636 7022 3636 7420 2236 2235 5215 7346 7002 3235 5201 7737 3557 7730 LCD=6751 SDN=6755 SER=6754 STR=6753 XDR=6752 RX01, RELOC 20 RX8E, / DEVICE IOT SYMBOLIC EQUATES / LCD=6751 /LOAD COMMAND XDR=6752 /TRANSFER DATA STR=6753 /SKIP IF READY TO TRANSFER SER=6754 /SKIP ON ERROR SDN=6755 /SKIP ON DONE / / / / READ, TAD UNIT /TRY NEXT COMBINATION OF DENSITY AND UNIT TAD CON360 /ADDING IN 360 AND CON420 /KEEPING ONLY 420 BITS DCA UNIT /CYCLES 400,420,0,20,400,,,,,,,, CLL CLA CML IAC RTL /COMMAND TO READ DISK - MUST BE ON OMNIBUS! TAD UNIT /UNIT AND DENSITY LCD /COMMAND TO CONTROLLER CLL CLA IAC /TO SET SECTOR AND TRACK TO 1 JMS LOAD /SECTOR TO CONTROLLER, LEAVES AC ALONE JMS LOAD /AND TRACK LITRAL, 7004 /LEAVING A 2 IN AC; SERVES AS LITERAL / / FOLLOWING IS PART OF WAIT LOOP, SAME SECONDARY BOOTS, OLD PRIMARY BOOT / RXSTRT, XSTRT, SDN /HAS DONE COME UP; CODE STARTS HERE! JMP LOAD+1 /NO, GO CHECK FOR READY TO TRANSFER / / NOW, DONE OR ERROR / SER /SKIP ON AN ERROR, TRY ANOTHER DENSITY ETC. SNA /NASTY, AC=2 FOR ABOUT TO DO SILO, 0 ON START-UP JMP READ /START-UP, GO SET UP UNIT, THEN READ TO SILO TAD UNIT /AC ALREADY 2, PUT IN UNIT, DENSITY LCD /TO EMPTY THE SILO TAD UNIT /SET UP LOC 60 FOR OLD SECONDARY BOOT AND CON360 /KEEPING UNLY DENSITY BIT TAD LITRAL /ADDING IN 7004, BECAUSE THAT'S WHAT SYS WANTS DCA RX1SAV /OLD SECONDARY BOOT MOVES IT TO HANDLER CON360, 360 /LITERAL; EXECUTES IN LINE AS A NO-OP / /FALLS THRU TO NEXT PAGE OF LISTING / / / FOLLOWING CODE SAME AS OLD PRIMARY BOOT / JMS LOAD /GRAB NEXT ITEM FROM SILO DCA 2 /TRADITION; SECONDARY BOOT STARTS LOADING AT 2 ! ISZ 50 /INCREMENT LOAD ADDRESS JMP 47 /GO BACK FOR ANOTHER / / SECONDARY BOOT LOADS OVER PRIMARY BOOT UNIT LOCATION 47 IS LOADED, / THEN CONTROL PASSES TO SECONDARY BOOT / LOAD, 0 /SUBROUTINE TO GIVE AND TAKE DATA FROM CONTROLLER STR /IS HE READY TO TALK TO US? JMP XSTRT /NO, IS HE PERHAPS DONE WITH SILO, OR IN ERROR? XDR /YES, DATA IN OR OUT;IF DATA TO CONTROLLER, AC UNCHANGED JMP I LOAD /NO MAGIC, JUST EXIT FROM SUBROUTINE / / 60 GOES TO OLD SECONDARY BOOT / 61 HAS DENSITY AND UNIT THAT BOOTED SUCCESSFULLY / / CON420, /USE IT TO HOLD 420 LITERAL TO START OUT RX1SAV, 420 /UNIT^20+7004 TO GO TO SYS HANDLER UNIT, 20 /+ THAT BOOTED OK / RELOC PAGE L2213, 2213 DIML=6615 DISK, CLA IAC DIML SNA CLA JMP GOTRF TAD (70 6732 SNA CLA JMP GOTRK8 CLA IAC 6744 SZA CLA JMP I PRETR STA /RE GOTRF, TAD L2206 /RF JMP I PCOMN L2206, 2206 GOTRK8, TAD L2213 /RK JMP I PCOMN PRETR, RETRY TAPE, 6141 /LINC 17 /COMPL AC 2 /PDP IAC SNA CLA JMP GOTLTA TAD (70 6774 CLA 6772 NOP TAD M70 SNA CLA JMP GOTTC STL CLA RAR 6774 CLA 6776 SMA CLA JMP I PRETR GOTTD, CLA IAC GOTTC, TAD L2403 /TC JMP I PCOMN GOTLTA, TAD L1424 /LT JMP I PCOMN L1424, 1424 L2403, 2403 PCOMN, COMN M70, -70 / 0000 CRLF, 0 TAD L215 JMS PUT TAD L212 JMS PUT JMP I CRLF L215, 215 L212, 212 PUT, 0 TLS TSF JMP .-1 CLA JMP I PUT GET, 0 KSF JMP .-1 KRB AND (177 TLS TSF JMP .-1 TAD (-003 SNA JMP I (7605 TAD (003-177 SNA JMP I (RETRY TAD (177-015 SNA ISZ GET TAD (015 AND (77 JMP I GET TESTRK, 0 TAD (70 6732 SNA CLA JMP I TESTRK RK05, TAD (RK8E DCA I (RKADR JMP I TESTRK PAGE OS8, TAD ("N JMS I (PUT TAD ("O JMS I (PUT CLA IAC DCA I (HLTSWT RETRY, JMS I (CRLF TAD ("/ JMS I (PUT JMS I (GET SKP JMP RETRY CLL RTL RTL RTL DCA I (TEMP JMS I (GET SKP JMP RETRY TAD I (TEMP DCA I (TEMP JMS I (GET JMP .-1 CLA JMS I (CRLF TAD I (TEMP JMP I (COMN RL01, 6600 7201 4027 1004 4027 6615 7002 7012 6615 0025 7004 6603 7325 4027 7332 6605 1026 6607 7327 4027 0377 7600 0000 6604 6601 5031 6617 5427 5001 PAGE FIELD 0 *200 $