X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fos8%2Fv3d%2Fsources%2Fextensions%2Fdectapes%2Fdectape2%2Fbload.pa;fp=sw%2Fos8%2Fv3d%2Fsources%2Fextensions%2Fdectapes%2Fdectape2%2Fbload.pa;h=4bd98b2b9d871bdf49bbb807f8663d949285b78c;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/os8/v3d/sources/extensions/dectapes/dectape2/bload.pa b/sw/os8/v3d/sources/extensions/dectapes/dectape2/bload.pa new file mode 100644 index 0000000..4bd98b2 --- /dev/null +++ b/sw/os8/v3d/sources/extensions/dectapes/dectape2/bload.pa @@ -0,0 +1,1560 @@ +/OS8 BASIC LOADER, V5 +/ +/ +/ +/ +/ +/ +// +/ +/ +/ +/ +/COPYRIGHT (C) 1972, 1973, 1974, 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 INCLU- +/SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANT OTHER +/COPIES THEREOF, MAY NOT BR PROVIDED 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 SOFTWARE IS SUBJECT TO CHANGE WITHOUT +/NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL +/EQUIPMRNT COROPATION. +/ +/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS +/SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. +/ +/ +/ +/ +/ +/ + /DEC-S8-LBASA-B-LA +/ +/COPYRIGHT C 1972, 1973, 1974 +/ +/DIGITAL EQUIPMENT CORPORATION +/MAYNARD,MASSACHUSETTS 01754 +/ +/AUGUST 19, 1972 +/ +/HANK MAURER, 1972 +/SHAWN SPILMAN, 1973 +/ +/ +/ +/ +/ASSEMBLE AND LOAD AS FOLLOWS: +/ +/ .R PAL8 +/ *BLOAD,BLOAD1 HERE + SNA CLA + ISZ TEMP + TAD TEMP + CLL CMA + TAD HIFLD + SNL CLA /WHICH HAS MORE CORE? + JMP .+3 /TARGET MACHINE: TOUGH + TAD TEMP /HOST MACHINE + DCA HIFLD /FAKE OUT LOADER + TAD HIFLD + CIA + DCA I (FLDCNT /INIT CI BUILDER + TAD I (FLDCNT + DCA I (MYCORE /AND CI STARTER + CDF 10 + DCA I (7646 /CLEAR =N BITS + DCA I (7643 /AND EARLY OPTIONS + TAD I (7644 /GET OPTION BITS + CDF + RTL + SZL CLA /HAVE N SWITCH? + JMP NOTDSY /NEVER SEES TD8E SYSTEM + TAD HIFLD + CLL RAR + SNA CLA /HAVE OVER 8K CORE? + JMP NOTDSY + TAD (NOP + DCA I (GOTTD /YES: FORCE SYS=TD8E + CDF 10 /THE QUESTION IS, + TAD I (DCB /WAS IT A LITTLE WHITE ONE + AND (770 /OR NOT? + TAD (-210 + CDF + SNA CLA + TAD I (7612 + TAD (-3 + SNA CLA + JMP .+3 /IT WAS TRUTH! + TAD (SWAP-LOADER+5600 + DCA I (TDLIE /LIES: MUST LIE TO SWAPPER ALSO + CLA IAC +NOTDSY, DCA I (TDFLAG /NOT 0 MEANS HAVE TD8E + CMA + DCA I (ERMSG /FORCE LOAD ABORT +LSTART, TAD (BLDCI-1 /MOVE CI BUILDER + DCA X10 /INTO LOW CORE + TAD (MAKECI-1 + DCA X11 + TAD I X11 + DCA I X10 + ISZ ICTR + JMP .-3 + TAD HIFLD /START OF BLOAD V1 + DCA FREEHI + JMP I IMAGE /RETURN TO LOADER + +ICTR, -200 +CCLIST, 0 /1ST 4 WORDS OF CCB + 6203 + CISTRT + 1000 /JOB STATUS WORD + + PAGE + CCB=1000 /LOC TO START BUILDING CCB + +MAKECI, 0 /THIS PAGE GETS MOVED! + TSF + JMP .-1 /SEE TAG "ABORT" IN BLOAD V1 + ISZ I (ERMSG /WHY ARE WE HERE? + JMP BOSFIX /GENUINE ABORTION + TAD (CCB-1 + DCA X10 + TAD (CCLIST-1 + DCA X11 + TAD I X11 /1ST FOUR WORDS OF CCB + DCA I X10 + ISZ MKCCNT + JMP .-3 +CCSEGS, TAD FLDCNT + CLL CIA RAL + RTL /THIS FIELD + DCA TEMP + TAD (70 + AND CODCDF /LOWEST FIELD USED + CLL CIA + TAD TEMP + SNL /THIS FIELD USED? + JMP NOCODE /NO: BYPASS IT + SZA CLA /IS IT FULL? + JMP ALLCODE /YES + TAD CODBGN /PROBABLY NOT + AND (7400 + DCA TEMP2 + TAD TEMP2 + CIA + CLL RAR + TAD TEMP + DCA TEMP + TAD TEMP2 +ALLCODE,DCA I X10 + TAD FLDCNT + IAC + TAD TDFLAG + SMA CLA /NEED TOP PAGE? + TAD (3700 /NO: 37 PAGES + TAD TEMP /YES: 40 PAGES + AND K3777 + DCA I X10 + ISZ I (CCB +NOCODE, CLA CLL + ISZ FLDCNT /NEXT FIELD ZERO? + JMP CCSEGS /NO: LOOP + TAD FLGRTS + SZA CLA /NEED BRTS? + TAD (CISTRT + DCA I X10 + TAD FLGRTS + SZA CLA + TAD (200-3700 + TAD (3700 + DCA I X10 + TAD I (CCB + CMA + DCA I (CCB /NEGATE SEG COUNT + JMS I (7607 /READ CI STARTER +KP200, 200 /FROM END OF BLOAD.SV + CISTRT /INTO HI CORE +LDRBLK, 0 /INIT BY "IMAGE" +BOSPT1, 7600 /CAN'T GET THIS ERROR + JMS I JCIP + TAD TDFLAG /PASS TD8E FLAG + DCA I (FLAGTD + TAD FLGRTS + DCA I (RTSFLG /AND BRTS FLAG + TAD MYCORE + DCA I (NOCORE /AND CORE LIMIT + TAD (17 /SAVE 10 KEY LOCATIONS + DCA X10 + TAD (KEYLOC-1 + DCA X11 + TAD I X10 + DCA I X11 + ISZ MCICNT + JMP .-3 + JMS I (7607 /CALL SYS HANDLER + 4200 /TO WRITE CCB + CCB-200 /(AND PRECEDING PG) + 37 /INTO SCRATCH BLOCK +K3777, 3777 /CAN'T GET THIS ERROR + JMP I (EXEUIT + +MKCCNT, -4 +MCICNT, -12 +FLDCNT, -7 +TDFLAG, 1 /0 MEANS TD8E IS DEATH AT RT +FLGRTS, -1 /0 MEANS INCL BRTS IN CI + +BOSFIX, TAD I (BIPCCL + RAL + SMA CLA + JMP I MAKECI /BATCH NOT RUNNING + TAD I (7777 + AND (70 + TAD CDFZRO + DCA BOSCDF /CDF TO BATCH FIELD +BOSLUP, CDF 10 + TAD I BOSPT1 /GET BATCH WRDS +BOSCDF, CDF 10 + DCA I BOSPT2 /BACK INTO POSITION +CDFZRO, CDF + ISZ BOSPT1 + ISZ BOSPT2 + JMP BOSLUP + JMP I MAKECI + +BOSPT2, 7774 +MYCORE, 0 +JCIP, CIPAT + + PAGE + VERNUM, 0 + TAD (VTEXT + DCA TEMP +MOREV, TAD I TEMP + SNA + JMP VOUT + CLL RTR + RTR + RTR + JMS I (TTY + TAD I TEMP + JMS I (TTY + ISZ TEMP + JMP MOREV +VOUT, TAD (215 + JMS I (TTX + TAD (212 + JMS I (TTX + JMP I VERNUM + +VTEXT, TEXT /BLOAD V/ + *.-1 +VERLOC, 100^VERSON+6001 + 0 + + PAGE + *7000 + BSTART=200 /START ADDR FOR BRTS +CISTRT, SKP /RUNNED + JMP CHAIN /CHAINED + TAD (7603 + DCA X10 + TAD (NAMLST-1 + DCA X11 + CDF 10 + DCA I X10 /ZERO EDITOR + DCA I X10 /COMPILER + DCA I X10 /AND LOADER BLOCK #S + CDF + CIF 10 + JMS I (7700 + 10 /USRIN +FINDSV, TAD I X11 /LOOKUP SOME SAVE FILES + SNA + JMP LUBUF /GO LOOK FOR BASIC.UF + DCA XXXXSV /SAVE POINTER TO NAME + CLA IAC /THEY'RE ON SYS + CIF 10 + JMS I (200 + 2 +XXXXSV, 0 + 0 + JMS I (ERRORX /ERROR + TAD XXXXSV /GET STARTING BLOCK + IAC /PLUS 1 + CDF 10 + DCA I X10 /INTO INFO AREA + CDF + JMP FINDSV /LOOP +LUBUF, CLA IAC + CIF 10 + JMS I (200 /LOOKUP BASIC.UF + 2 + BUFN /(USER DEFINED FUNCTIONS) + 0 + JMP .+3 /OK IF NOT THERE + TAD .-3 /GET STARTING BLOCK +1 + IAC + CDF 10 + DCA I X10 /INTO INFO BLOCK + CDF 0 + CIF 10 + JMS I (200 + 11 /USR OUT +CHAIN, CDF 10 + TAD I (7607 /GET BRTS STARTING BLK + CDF + DCA I (BRTSST /INTO RTS READER + JMP I (BINIT + +NAMLST, BRTSN + BAFN + BSFN + BFFN + 0 +BRTSN, FILENAME BRTS.SV +BAFN, FILENAME BASIC.AF +BSFN, FILENAME BASIC.SF +BFFN, FILENAME BASIC.FF +BUFN, FILENAME BASIC.UF + CORE, 0 + TAD I (BIPCCL + AND COR70 + CLL RAR + RTR + SZA /IS THERE A SYSTEM VALUE? + JMP I CORE /YES: USE IT +COR0, CDF + TAD CORSIZ + RTL + RAL + AND COR70 + TAD COREX + DCA .+1 +COR1, CDF + TAD I CORLOC +COR2, NOP + DCA COR1 + TAD COR2 + DCA I CORLOC +COR70, 70 + TAD I CORLOC +CORX, 7400 + TAD CORX + TAD CORV + SZA CLA + JMP COREX + TAD COR1 + DCA I CORLOC + ISZ CORSIZ + JMP COR0 +COREX, CDF + CLA CMA /HI FIELD IS #FIELDS-1 + TAD CORSIZ + JMP I CORE +CORLOC, CORX +CORV, 1400 +CORSIZ, 1 + + PAGE + GETRTS, 0 /READ BRTS INTO 0-6777 + TAD BRTS + DCA BRTSBB + JMS I (7607 + BRTSIZ + 0 +BRTSBB, 0 +NOCORE, -1 /CAN'T GET THIS ERROR + JMP I GETRTS +BINIT, ISZ RTSFLG /NEED BRTS? + JMP BRTSIN /GOT IT: START IT + JMS I (7607 + BRTSIZ + 0 +BRTSST, 0 +SR2, 20 /CAN'T GET THIS ERROR +BRTSIN, CDF 10 /WHAT ARE WE RUNNING ON? + ISZ EKOUNT + TAD I (DCB /CHECK FOR TD8E SYSTEM + AND (770 /ED FRIEDMAN GAVE ME THIS CODE + TAD (-210 /AND I'M TAKING IT ON FAITH + CDF + SNA CLA + TAD I (7642 /IS IT A ROM SYSTEM ? + TAD (-6223 + SZA CLA + JMP PSADJ /NO TD/8E OR ELSE ROM TD/8E + TAD FLAGTD + SNA CLA /IMAGE OK ON TD8E? + JMS ERRORX /NO: DONT RUN IT + TAD KEYLOC + DCA CDFTOP +SWPLOOP,CDF 20 + TAD I TDCTR + DCA GETRTS +CDFTOP, CDF 70 + TAD I TDCTR + DCA ERRORX + TAD GETRTS + DCA I TDCTR + CDF 20 + TAD ERRORX + DCA I TDCTR + ISZ TDCTR + JMP SWPLOOP + CDF + CLL CML RTL + TAD CDFTOP /PATCH MONITOR FIELD STUFF + DCA I (7642 /CDF CIF HI CORE + IAC + TAD CDFTOP + DCA I (7721 /CIF HI CORE + TAD I (7721 + DCA I (7727 +CCHEK, ISZ EKOUNT + JMS I (CORE /HOW MUCH CORE DO WE HAVE? + TAD NOCORE /HOW MUCH DO WE NEED? + SPA CLA + JMS ERRORX /INSUFFICIENT CORE + TAD I SR1 /RESTORE KEY LOCATIONS + DCA I SR2 + ISZ SR1 + ISZ SR2 + ISZ SR3 + JMP .-5 + TAD (JMP I FSTOP1 /PATCH CTRL/C LOCS + DCA I (7600 + TAD (JMP I FSTOP1 + DCA I (7605 + TAD SWPINF /TELL BRTS OS/8 PG 17600 OUT NOW + RAR + STL RAL + DCA SWPINF + JMP I (BSTART /START BRTS + +ERRORX, 0 + CIF 10 + JMS I (7700 + 7 +EKOUNT, 1 + JMP I (7605 + +EXEUIT, TAD RTSFLG + SNA CLA /NEED BRTS? + JMS GETRTS /YES: READ IT + TAD (4207 /RESTORE ^C HOOKS + DCA I (7600 + TAD (6213 + DCA I (7605 + JMP I (7600 /BACK TO OS8 +KEYLOC, ZBLOCK 12 +SR1, KEYLOC +SR3, -12 +RTSFLG, -1 /0 MEANS BRTS IS IN CORE +FLAGTD, 1 /1 IF TD8E IS OK AT RUNTIME +PSADJ, TAD (4001 + AND KEYLOC+11 + TAD (2000 + DCA KEYLOC+11 + JMP CCHEK +TDCTR, 7600 + + PAGE + $$$$$ +