.TITLE UNICHANNEL 15 ABSOLUTE BINARY LOADER / /COPYRIGHT (C) 1975 /DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. / /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY /ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH /THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS /SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO- /VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON /EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO /THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE /WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM- /MITMENT BY DIGITAL EQUIPMENT CORPORATION. / /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY /OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. .EJECT / /EDIT #010 JAH 21-MAR-74 /EDIT #011 SCR 5/13/74 /EDIT #012 SCR 5/13/74 /SCRAP PDP-11 CODE /EDIT #014 SCR 5/15/74 /MAKE EDIT # 14 NOT 12, AS 13 FAILED /EDIT #015 SCR 11/14/74 /FIX TOMOVE 12K TO PDP11 /EDIT #100 SCR 7/25/75 XVM VERSION, MOSTLY NEW /EDIT #101 SCR 7/25/75 FIX FOR POSSIBLE 0 START ADDR /EDIT #102 MJH 8/20/75 DISCLAIMER /EDIT #103 SCR 10/29/75 LONG RANGE CHANGE: FOR PDP-11'S WITH / FLOATED ADDRESS SPACE, DISPATCH WITHIN / OWN 4K, NOT GO TO END!! / !WARNING! / / CODE CHANGERS, FIELD SERVICE REQUESTS NO EAE INSTRUCTIONS BE USED! / / INSTRUCTIONS FOR USE OF PRODUCT / / A 24K MACHINE IS ASSUMED! / / 1. PLACE THE ABSL11 LOADER IN THE PDP-15 READER. / 2. SET THE PDP-15 ADDRESS SWITCHES TO 17700 (8). / 3. PRESS RESET AND THEN READ IN. / THE LOADER IS READ IN AND THE PDP-15 HALTS. / 4. SET THE PDP-11 ADDRESS SWITCHES TO 140000 / (ANY MULTIPLE OF 20000 IN PDP-15 MEMORY UP TO 140000 / WILL FUNCTION CORRECTLY, INCLUDING OLD START VALUES.) / 5. PRESS THE 11'S LOAD ADDRESS SWITCH, AND THE START SWITCH. / 6. PLACE THE PDP-11 BINARY TAPE IN THE PDP-15 READER. / 7. PRESS THE CONTINUE SWITCH ON THE PDP-15 TO READ IN THE TAPE. / THE PDP-15 HALTS WITH THE AC=0 FOR A SUCCESSFUL READ, / AND WITH AC=-1 FOR A CHECKSUM ERROR. / 8. TO READ ANOTHER TAPE (ONLY IF NO START ADDR ON / THE PREVIOUS TAPE) GO TO STEP 6 / / .ABSP / / / START OF LOADER .LOC 0 / / PDP-11 CODE FOR EACH PAGE TO TRANSFER TO WORKING LOOP / LOOPAD=ENTER+ENTER-4 /(#103) / 000167 /START: JMP ENTER ;(#103)ALWAYS SAME RELATIVE! LOOPAD / / / PDP-15 CODE / .LOC 7460 /TO END OF PAGE / START DBA /PAGE MODE CAF+10 /CLEAR ALL FLAGS AND DISABLE INTERRUPTS IOF LAC (47636 /LOOP CONTROL FOR REPLICATE PAL CLX MOVIT LAC 0,X /REPLICATE IN PAGES UPTO DAC* PAGE,X /THE 24K DOS BOOTSTRAP AXS 1 JMP MOVIT HLT!CLA /HALT HERE TO MAKE LOOK LIKE OLD VERS. JMP* VECTOR /EXECUTE JUST UNDER 24 K BOOT VECTOR LOOK+50000 /ADDRESS IN COPY IN PAGE 5 / / / FIND OUT WHICH PAGE PDP-11 IS WORKING IN!! / LOOK PXA /UPDATE XR TO NEXT PAGE TAD PAGE SMA!SZA /IF LESS=PRESENT, OK LAC M5P /730000 TO REFERENCE PAGE 0 PAX LAC POINT,X /DID PDP-11 WAKE UP IN THIS PAGE SAD LM1 /IS STILL -1 JMP LOOK /PDP-11 NOT HERE, KEEP LOOKING / / / LOOK FOR BEGINNING OF A BLOCK / LD2 DZM CKSUM /INITIALIZE CHECKSUM JMS READ /READ A FRAME SZA!CLL!RAR /ACCEPT ONLY 1 SZA JMP LD2 /LOOK UNTIL +1 IS FOUND JMS READ /READ ANOTHER FRAME SZA /ACCEPT ONLY 0 JMP LD2 /KEEP SCANNING FOR +1 / / INPUT AND SAVE BYTE COUNT. IF BYTE COUNT = 6, GO TO PROCESS / JUMP START. / JMS GETWRD /GET FULL BYTE COUNT AAC -6 /CORRECT FOR HEADER COUNT SNA!CMA!IAC /SKIP IF REAL DATA, MAKE - FOR CONTROL JMP LJMP /NO MORE DATA, GO JUMP TO LOADED CODE DAC BYTECT JMS GETWRD /GET LOAD ADDRESS DAC POINT,X /TO PDP-11 ADDR POINTER LD3 JMS READ /GET A DATA BYTE DAC CHAR,X /DATA SLOT FOR PLACEMENT IN PDP-11 MEMORY ISZ FLAG,X /FLAG = 1; SAY DATA TO TRANSFER ISZ BYTECT /ANY MORE JMP LD3 /DO THEM JMS READ /CHECKSUM FRAME LAC CKSUM SZA /SKIP IF OK BADHLT CLA!CMA!HLT /WASN'T, HALT WITH -1 IN AC JMP LD2 /GET NEXT BLOCK / / INPUT A FRAME, DO CHECKSUM, LEAVE BYTE IN AC / RSF=700101 RSA=700104 RRB=700112 READ 0 RSA /READ IN ALPHANUMERIC MODE RSF /WAIT FOR IT JMP .-1 RRB /PUT THE FRAME IN THE AC AND (377 /MASK OFF JUNK BITS PAL /AND TEMPORARY SAVE TAD CKSUM /ADD TO CHECKSUM AND (377 /USE ONLY 8 BITS OF CHECKSUM DAC CKSUM PLA /BYTE IN AC FOR CONVENIENCE JMP* READ /RETURN / / ASSEMBLE ONE FULL WORD OF DATA / GETWRD 0 JMS READ /GET ONE CHARACTER DAC CHAR /SAFE TEMPORARY JMS READ /GET ANOTHER FRAME SWHA CLL!RAR TAD CHAR /FINISH TEMPORARY USE OF CHAR JMP* GETWRD /RETURN / / PROCESS TRANSFER ADDRESS / HALTAD=FLAG+FLAG+140000 /IF NO START ADDR, GO HERE TO HALT / LJMP JMS GETWRD /GET POSSIBLE TRANSFER ADDRESS DAC BYTECT /SAVE TEMPORARILY JMS READ /CHECKSUM LAC CKSUM /IS IT OK SZA /SKIP IF YES JMP BADHLT /NOPE, LAC BYTECT /GET BACK ADDR CLL!RAR /ODD BYTE BIT TO LINK SZL!RAL /SKIP IF LEGAL START LAC (HALTAD /NOT START, VECTOR PDP-11 TO HALT DAC CHAR,X /VECTOR THRU CHAR HOLDER LM1 LAW -1 /SET FLAG TO SAY END OF TAPE DAC FLAG,X CLA!HLT /HALT WITH AC=0 TO SAY OK JMP LD2 /DO NEXT TAPE / / BYTECT 0 CKSUM 0 PAGE 10000 /SIZE OF PAGE M5P 730000 /MINUS ADDR OF EXECUTING PAGE / / / BULK OF PDP-11 CODE / / 116737 /TOP: MOVB CHAR,@#POINT ;DATA BYTE INTO LOAD 000026 / POINT 777777 / ;FILLED FROM PDP-15 ENTER 005267 / INC POINT ;POINTR MOVE 1 BYTE 177772 / ;KICK POINT TO SHOW ENTR 016700 /WAIT: MOVE FLAG,R0 ;IS PDP-15 READY 000016 / 001775 / BEQ WAIT ;IF STILL 0, NO 005067 / CLR FLAG ;RESET NEXT TIME 000010 / 005300 / DEC R0 ;DATA OR END 001764 / BEQ TOP ;ORIG=1; DATA 000137 / JMP @#?? ;GO TO START ADDR OR FLAG CHAR 000000 / ;DATA CHAR;VECTOR FLAG 000000 / ;1,0,-1 FLAG;HALT 000765 / BR WAIT ;NEXT TAPE .END START