File QBOLPA.P1

Directory of image this file is from
This file as a plain text file

/QBOL PATCH FILE
/
/
/QBOLP1.PA  V1.023 1:56 A.M.  3/3/78
/
/ABSTRACT: THIS PATCH FILE WHEN OVERLAYED ONTO QBOL.SV
/(FORMERLY MSI1.SV) CONVERTS MINBOL TO QBOL.  IT ALSO
/FIXES VARIOUS BUGS AND ALLOWS QBOL TO RUN UNDER ETOS
/OR STAND-ALONE WITHOUT MODIFICATION.
/
/FIRST SOME ETOS DEFINITIONS
/
LLS=6666
SKETOS=6107
SETSTAT=6047
/
/NOW DEFINE LOCATIONS IN QBOL.SV
/
CURBLK=110
MAXBLK=115
CURBPT=111
BSEFLD=0
CURCTL=106
AREG=22
TEMP1=101
XMITIT=3000
SCRBLK=40
LDDRV=5010
LOADER=5400
RNI=203
FNT=6631
CHNFLG=4532
FINI=4435
/
/NOW DEFINE POINTERS TO QBOL LOCATIONS
/
K232=6374
KTOUTT=135
KIOWRAP=142
K7777=145
KRN1=167
KCHNCD=4575
KSYDRV=133
KUSR=174
KSETPC=140
KXICHR=7174
/
/
FIELD 1
/
/MAKE QBOL.SV LOOK FOR QBOLCM.CB INSTEAD OF MINBOL.
/
*16731
MINNAM,	FILENAME QBOLCM.CB	/FORMERLY TEXT "MINBOL"
/
/ALLOW QBOL TO DETERMINE IF ITS RUNNING UNDER ETOS.
/
*16601
	SKETOS			/FORMERLY CAF
	JMP	STNDAL		/FORMERLY TAD (377
	JMS I	CORLPO		/FORMERLY LLS
	JMP	STRTA		/FORMERLY CLL CLA
STNDAL,	CAF			/FORMERLY TAD I (7666
	TAD 6777		/FORMERLY SNA CLA
	JMP	NTEST		/FORMERLY JMP NDT
STRTA,	JMS I	6775		/NO CHANGE

*16722
NDT,	JMS I	6775		/NO CHANGE

*16735
NTEST,	LLS
	CLA CLL
	TAD I	6776		/TAD I (7666
	SZA CLA			/DATE WORD ZERO?
	JMP	STRTA		/NO, CONTINUE
	JMP	NDT		/YES, PRINT ERROR
/
CORLPO,	CORLOO			/POINTER TO CORE CHECK ROUTINE
/
/CHANGE DEVICE TABLE FOR VT78 AND ETOS
/
*7106
INITTB,	DEVICE SYS		/NO CHANGE
	DEVICE DSK		/NO CHANGE
	DEVICE CHN0		/FORMERLY DEVICE DSK0
	DEVICE CHN1		/FORMERLY DEVICE DSK1
	DEVICE CHN2		/FORMERLY DEVICE DSK2
	DEVICE CHN3		/FORMERLY DEVICE DSK3
	DEVICE RXA0		/FORMERLY DEVICE DSK4
	DEVICE RXA1		/FORMERLY DEVICE DSK5
	DEVICE RXA2		/FORMERLY DEVICE DSK6
	DEVICE RXA3		/FORMERLY DEVICE DSK7
	DEVICE LPT		/NO CHANGE
	DEVICE TTY		/NO CHANGE
	DEVICE SLU2		/FORMERLY DEVICE DTA0
	DEVICE SLU3		/FORMERLY DEVICE DTA1
	DEVICE LQP		/FORMERLY DEVICE PTR
	DEVICE QLP		/FORMERLY DEVICE PTP
	DEVICE CDR		/NO CHANGE
	0			/NO CHANGE
/
/CHANGE DEVICE DESCRIPTION TABLE TO REFLECT NEW
/CONTENTS OF DEVICE TABLE.
/
*7557
MU200,	100			/NO CHANGE
	100			/NO CHANGE
	100	/CHN0		/FORMERLY DSK0
	100	/CHN1		/FORMERLY DSK1
	100	/CHN2		/FORMERLY DSK2
	100	/CHN3		/FORMERLY DSK3
	100	/RXA0		/FORMERLY DSK4
	100	/RXA1		/FORMERLY DSK7
	100	/RXA2		/FORMERLY DSK6
	100	/RXA3		/FORMERLY DSK7
	020			/NO CHANGE
	040			/NO CHANGE
	060	/SLU2		/FORMERLY DTA0
	060	/SLU3		/FORMERLY DTA1
	020	/LQP		/FORMERLY PTR
	020	/QLP		/FORMERLY PTP
	000	/CDR		/FORMERLY VT8E
/
/CHANGE DEFAULT COMPILED FILE EXTENSION FROM MB TO QB
/
*6727
TXTMB,	TEXT "QB"		/FORMERLY TEXT "MB"
/
/
/MAKE SURE THAT YOU HAVE 16K ALLOCATED UNDER ETOS.
/
*7151
CORLOO,	0
	CDF 0
	TAD I	CORWRD		/GET CONTENTS OF 07777
	CDF 10
	AND	CORMAS		/LOOK ONLY AT BITS 6-7
	SZA CLA			/AT LEAST 12K?
	JMP I	CORLOO		/YES, CONTINUE
	HLT			/NO, HALT
/
CORWRD,	7777
CORMAS,	0060
/
/
/ALLOW PROGRAMS TO RUN FROM DSK AND CHAIN TO DSK.  MAKE
/SURE COMPILER STILL CHAINS TO QBOLCM.CB.
/
*6642
	JMP	STRT3		/FORMERLY JMP STRT2
*6645
STRT2,	CLA IAC RAL		/NO CHANGE
*6670
	NOP			/FORMERLY CDF IOFLD
	NOP			/FORMERLY NOC, CLA CLL CMA RAL
	NOP			/FORMERLY TAD TSYSOF
	NOP			/CLL RAR
	NOP			/TAD (7600
	NOP			/DCA MCHAIN
	NOP			/CLA IAC
	NOP			/DCA I MCHAIN
*6744
STRT3,	CLA IAC			/DEVICE # 1
	DCA I	6773		/FORCE INTO SYS
	JMP	STRT2		/CONTINUE
/
/
/SET LOCATION 07600 TO JUMP TO FINI LOOP.  THIS
/FORCES ALL FILES CLOSED UPON EXECUTION OF A STOP OR END.
/
*7101
	JMP I	.+1		/FORMERLY CDF CIF BSEFLD
	EXISET			/FORMERLY JMP I (RN1

*7400
EXISET,	TAD	KFIN		/JMP I .+1
	CDF BSEFLD
	DCA I	K7600A		/FORCE JMP INTO 07600
	TAD	KFIN1		/POINTER TO FINEXI
	DCA I	K7601A		/INTO 07601
	CIF BSEFLD
	JMP I	KRNI1		/RUN LOADER
KFIN,	5601
KFIN1,	FINEXI
KRNI1,	RNI
K7600A,	7600
K7601A,	7601
/
/
FIELD 0

/FIRST SET UP VERSION NUMBER
/
*7
	27			/THIS CHANGES EACH EDIT
 /
/
/SAVE LINE COUNT INSTAED OF TOP OF FORM FLAG FOR
/PSEUDO LINE PRINTER HANDLER
/
*3760
TOF,	7704			/FORMERLY 1

*3761
SKIP,	SKETOS			/ETOS RUNNING?
	TAD	CURCTL		/NO, GET CTRL
	JMP I	.+1		/AC CLEAR IF ETOS
	LD1

*3773
	5756			/FORMERLY 5777

*5053
	JMP I	KSKIP		/FORMERLY TAD CURCTL
LD1,	AND	5174		/NO CHANGE

*5164
KSKIP,	SKIP

*5171
	5756			/FORMERLY 5777
/
/
/MAKE ACCEPT BREAK ON EVERY CHARACTER UNDER ETOS.
/ELIMINATE DOUBLE ECHO UNDER ETOS.
/ALLOW ACCEPT FROM TTY-LIKE DEVICE.
/
*7006
	SKETOS			/FORMERLY ACPTLP, TAD CURCTL
	JMP	ACPTLP		/FORMERLY AND (60
	TAD	KKSTAT		/FORMERLY SNA
	SETSTAT			/FORMERLY JMP ANTTY
ACPTLP,	TAD CURCTL		/FORMERLY TAD (-60
	AND	K40		/FORMERLY SNA CLA
	SNA CLA			/FORMERLY JMP VT8ACP
	JMP	ANTTY		/FORMERLY KSF
	KSF			/FORMERLY JMP .-1
	JMP	.-1		/FORMERLY KRB
	KRB			/FORMERLY JMS ACCTST
	JMS	ACCTST		/FORMERLY MQA
	MQA			/FORMERLY JMS I [TOUTT
	JMS I	KTOUTT		/FORMERLY JMP ANTTY1
	JMP	ANTTY1		/FORMERLY VT8ACP, DSKF

ENDACC,	TAD	KRSTAT		/FORMERLY JMP .-1

SETSTAT /FORMERLY DKRB JMP I KIOWRAP /FORMERLY JMS ACCTST KKSTAT, KSTAT /FORMERLY MQA KSTAT, 0044 /FORMERLY DCA VT8BF 4000 /FORMERLY JMS I (CALDRV KRSTAT, RSTAT /FORMERLY 4100 K40, 40 /FORMERLY VT8BF NOP /FORMERLY VT8BF, 0 NOP /FORMERLY 232 NOP /FORMERLY JMP ANTTY1 ANTTY, JMS I KXICHR /NO CHANGE *7043 ANTTY1, MQA /NO CHANGE *7050 JMP ACPTLP /NO CHANGE *7064 JMP ENDACC /FORMERLY JMP I [IOWRAP ACCTST, 0 /NO CHANGE *7155 RSTAT, 4374 0207 FINEXI+1 / / /FIX DISPLAY TO POSITION ONLY IF CONSOLE TERMINAL AND /PRINT <CR> BEFORE DISPLAY. / *7410 AND K60 /FORMERLY AND (40 SNA CLA /NO CHANGE JMP DSPNPS /NO CHANGE AND K20 /FORMERLY TAD AREG+4 SZA CLA /FORMERLY SNA CLA JMP DSPNPS /NO CHANGE JMP DCLEAR /FORMERLY TAD (33 DISPL1, JMS I KTOUTT /NO CHANGE *7430 DSPNPS, CLL CLA IAC /NO CHANGE *7471 DCLEAR, TAD AREG+4 SNA CLA /POSITION? JMP DSPNPS /NO TAD K215 DCA TEMP1 /SET UP CR JMS I KXOCHR /OUTPUT CR JMS I KOUCTZ /SEE IF BUFFER NEEDS TO BE FORCED TAD K33 /GET ESCAPE JMP DISPL1 /RESUME K215, 215 K20, 20 K60, 60 K33, 33 KXOCHR, 3044 KOUCTZ, 6710 / / /FIX DATE FORMAT FOR OS/8 V3D / *126 K106, 106 K0600, 0600 *4354 TAD K106 /FORMERLY TAD (106 *4356 JMP EXTDAT /FORMERLY JMP I [RN1 *4362 EXTDAT, TAD I K7777 /GET EXTENDED DATE WORD AND K0600 /LOOK AT BITS 3-4 BSW /INTO BITS 9-10 RTL /BRING INTO BITS 7-8 TAD AREG+2 /GET LOW ORDER YEAR DCA AREG+2 /RESTORE JMP I KRN1 /CONTINUE / /
/CHANGE XMIT TO CONVERT LOWER CASE TO UPPER CASE / *3212 XMTILP, CLL CLA /NO CHANGE *3217 JMP I KLCCHK /FORMERLY JMP XMTILP *3223 XMTIOK, TAD 3371 /NO CHANGE *3361 KLCCHK, LCCHEK *4534 LCCHEK, TAD K37M41 SPA /337 OR 340? JMP I KXMTLP /YES, IGNORE TAD K41M73 SMA /MORE THAN 372? JMP I KXMTLP /YES, IGNORE TAD KLCUC /CONVERT FROM LOWER TO UPPER CASE JMP I KXMIOK /ALL DONE, RESUME KXMTLP, XMTILP KXMIOK, XMTIOK K37M41, -341+337 K41M73, -373+341 KLCUC, -334+373-40 / / /ALLOW PROGRAMS TO BE EXECUTED FROM NON-RESIDENT DEVICES. / *4420 JMP NONCLR /FORMERLY JMP I (CHNCD *4551 NONCLR, DCA NONSWI /CLEAR NON-RESIDENT SWITCH JMP I KCHNCD /GO RUN LOADER-OVERLAY *5024 JMP I KDECID /FORMERLY JMP .+3 *5027 LOANON, CIF 10 /NO CHANGE *5150 KDECID, DECIDE *3155 DECIDE, CLL CLA TAD NONSWI /ALREADY DONE SWITCH? SNA CLA JMS I KWRIXM /PERFORM SWITCH JMP I KLOAN /RESUME KLOAN, LOANON *5644 JMP I KREXMI /FORMERLY JMP I [SETPCT *5652 JMP I KREXMI /FORMERLY JMP I [SETPCT *5756 KREXMI, REXMIT *5400 LOADER, JMS I KLOFIX /FORMERLY JMS I (LDDRV *5577 KLOFIX, LOAFIX /FORMERLY LDDRV *5151 WRIXMT, 0 JMS I KSYDRV /WRITE OUT XMIT CODE 4200 /ONE BLOCK XMITIT /LOCATION 3000 SCRBLK+5 /BLOCK 45 HLT TAD KXMIT DCA I KDEV1 /CHANGE NON-RESIDENT LOAD JMP I WRIXMT /EXIT KXMIT, XMITIT+1 KDEV1, 5175 *4160 LOAFIX, 0 JMS I KLDDR STA DCA NONSWI /SET SWITCH JMP I LOAFIX /CONTINUE KLDDR, LDDRV *7510 REXMIT, TAD I KWRIXM /HAVE WE SWITCHED? SNA CLA JMP I KSETPC /NO, RESUME TAD KDRIVE /YES, SWITCH BACK DCA I KDEV /RESTORE DEVICE CALL JMS I KSYDRV /CALL SYSTEM DEVICE DRIVER 0200 /READ ONE BLOCK XMITIT /INTO LOCS 3000-3377 SCRBLK+5 /RESTORE XMIT PROCESSOR (45) HLT CIF 10 JMS I KUSR 13 /PERFORM RESET 0 /SAVE TEMPORARY FILES JMP I KSETPC /GO START USER JUNQUE KDRIVE, LOADER+1 KDEV, 5175 *124 NONSWI, 0 KWRIXM, WRIXMT / /
/ / /MAKE STOP, END, RUN AND OLD STYLE CHANGE FINI ALL FILES. / / *4403 JMP CRFINI /FORMERLY DCA CHNFLG RUN1, JMS I KSYDRV /NO CHANGE *4553 CRFINI, DCA CHNFLG JMS I KFINAL /FINI ALL FILES FOR RUN & CHAIN JMP RUN1 /RESUME KFINAL, FINALL *4602 NOP /FORMERLY JMS I [TURNIO *6750 FINEXI, JMS I KFINL1 /FINI ALL FILES TAD K4207 DCA I K7600 /RESTORE 07600 TAD K5000 DCA I K7601 JMP I K7600 /EXIT TO OS/8 K7600, 7600 K7601, 7601 K4207, 4207 K5000, 5000 KFINL1, FINALL *7531 FINALL, 0 TAD KFINLP DCA KRN1 /COME TO PAPA INSTEAD OF LOADER TAD M17 DCA FINCNT /17(8) POSSIBLES IN THEORY DCA FINDEX FINLP, TAD FINDEX /I.F.N. TAD KFNT DCA FINPNT /POINTER TO STATUS TAD I FINPNT SNA CLA /OPEN? JMP FINLP1 /NO, NEXT I.F.N. TAD FINDEX DCA AREG+7 /SET UP FINI FORMAT JMP I KFINI /GO PERFORM FINI FINLP1, ISZ FINDEX ISZ FINCNT /ALL DONE? JMP FINLP /NO, GET NEXT I.F.N. TAD KRUN DCA KRN1 JMP I FINALL KFINLP, FINLP M17, -17 FINCNT, 0 FINDEX, 0 KRUN, RNI KFNT, FNT KFINI, FINI FINPNT, 0 / / /DON'T FORCE OUTPUT TO THE LINE PRINTER AFTER EACH LINE. / / *6036 JMP SETBLK /FORMERLY DCA CURBLK OPEN1A, DCA MAXBLK /NO CHANGE *6153 SETBLK, CLA IAC DCA CURBLK /SET CURRENT BLOCK TO 1 JMP OPEN1A /FOR LPT FORM SKIP *6212 STA /FORMERLY TAD (214 TAD CURBLK /FORMERLY DCA TEMP1 SNA CLA /FORMERLY JMS I (XOCHR JMP LPTEST /FORMERLY TAD (232 FIN1, DCA TEMP1 /NO CHANGE *6233 TSTCLO, TAD CURCTL /NO CHANGE *6346 LPTEST, TAD CURBPT /CURRENT BUFFER POINTER SPA CLA /CHARACTERS IN BUFFER? JMP TSTCLO /NO, EXIT TAD K232 JMP FIN1 /YES, RESUME *6377 4040 /FORMERLY 4060 *6773 0040 /FORMERLY 0060 / / /ON CTRL/C, RESTORE CONTENTS OF 7600 BEFORE EXITING. /ALTERNATIVE IS REVOLVING DOOR EFFECT DUE TO FINI /PATCH. THAT'S LIFE / / *374 FINEXI+1 /FORMERLY 7600 *3165 FINEXI+1 /FORMERLY 7600 *7171 FINEXI+1 /FORMERLY 7600 / /



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search