File ABINOS.PA (PAL assembler source file)

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

	DCA OPTION; TAD I (7645; CDF 0	/ NUMBER OPTIONS
	RTL; AND (7760; SNA; JMP .+5
	ISZ OPTION; RAL; SNL; JMP .-3
	CLA; DCA ERROR; JMP I SAVOPT

IFDEF ALBIN <
SAVFIL,	0	/ CLEAR OPTION BIT 0 IF NON FILE
	TAD NAM; SNA; TAD NAM+1; SNA CLA
	CLL CML RAR; CMA; AND OPTION
	DCA OPTION; JMP I SAVFIL	>

	PAGE
	EJECT
ALRNAM, FILENAME RALGOL.SV
	FILENAME MACROA.SV
CHAIN,	DCA PO; JMS GETLNAM	/ GET FIRST OUTPUT
	TAD FOBN; CDF 10; DCA I (7620
IFDEF ALBIN < TAD I (7617; DCA OPTION-1 >
	TAD I (7600; DCA I (7617
	DCA I (7621; CDF 0
IFDEF ALBIN <
	TAD ONAM+1; TAD (-6060; SNA CLA; JMS DELONAM
	TAD OPTION-1; DCA ONAM 
	ISZ ONAM+4; JMS DELQ	/ CHECK DELETE OF .AC
	NOP; TAD OPTION; AND (400; SNA CLA
	JMP EXOS8	>
IFNDEF ALBIN <	TAD OPTION; AND (2400; SNA CLA	/ OPT G OR M?
	JMP GOS8; TAD OPTION; AND K3000	/ M OR MACH CODE?
	SNA CLA; JMS DELQ; TAD K4	>
	TAD (ALRNAM; DCA AR1; TAD I PNULOUT
K3000,	DCA 0
	TAD I 0; TAD ERROR	/ ERRORS?
	SZA CLA; E14, JMS ERR1	/YES!
	CLA IAC; JMS LOOKUP; SKP	/ OK ITS THERE
E15,	JMS ERR1
	TAD AR1; DCA BLOCK
	CIF 10
	JMS I USR
	6	/ GO CHAIN
BLOCK,	0
E16,	JMS ERR1	/ SHOULD NOT GET HERE!
GOS8,	JMS DELQ; K4, 4; JMP EXOS8
PNULOUT, NULOUT
NULL,	TAD I PNULOUT; DCA POUT
	TAD OPTION; AND (2400; SNA CLA; JMP EXITFH
	CDF 10; TAD I (7643; AND (7377; TAD (400
	DCA I (7643; TAD (7600; DCA 14
	CLA IAC; DCA I (7600
	TAD (6060; DCA I 14
	TAD (6060; DCA I 14
	TAD (6060; DCA I 14
	CDF 0; TAD (7600; DCA PO
	JMP LOADON
PREROR,	TAD ERR0; DCA ERR1; JMP ERR1+2
ERR1,	0
	DCA 15
	JMS MESAGE; TEXT /OS8 ERROR AT /
	JMS OUTUSR; CLA CMA; TAD ERR1; JMS OPS
EXOS8,	JMS KBDCHK; TSF; JMP .-2; JMP 7600

	PAGE
	EJECT
STAVE,	DCA MEM; TAD (7700; DCA USR; JMS I (7607
	4400	/ SAVE 4 PAGES
	IBUFFR
	40	/ WHERE THEY CAN BE RECALLED
E17,	HLT
	TAD GORUN+1	/ =DCA MEM ON THAT PAGE
	DCA FHANDL+1
	TAD (FEX; DCA EXITFH+3
CHANGE,	NOP	/ OR JMP FHANDL+2
	TAD (7600-1; DCA 14; TAD (-47; DCA CT
	CDF 10; DCA I 14; ISZ CT; JMP .-2
	CDF 0;	/ THAT SHOULD CLEAR IN-OUT TABLES
	DCA 201	/ ALSO CLEAR ANY RE-ENTRY
SAVEX,	JMP DISKIT

	/ SET EXTENSION .AC OR .AB AS DEFINED
STAVE2,	TAD (OEXTN; CDF 10; DCA I (7604
	CDF 0; JMS SAVOPT
	TAD SAVEX; DCA CHANGE; DCA 201; JMP 200
CT,	0
$$$$$$

/ ABINOS.PA -8- S.F. 10-JAN-1977 / DELETE POINTER TO OUTPUT FILE IF CHAINING TO RALGOL / THIS VERSION ALLOWS OPT L (LOAD). / CORRECTS CHAINING FAULT AND DELETES 2ND INPUT FILE IF ANY ! / DON'T CLEAR 17600! / OVERLAY FOR ALGOL COMPILER MARK 34(M) AND 40 IFDEF ERRORS <XLIST> ALBIN=0 OSSTRT=5600 / START OF OS8 ROUTINES IBUFFR=OSSTRT+400 OBUFFR=IBUFFR+400 HPAGE=IBUFFR+1000 / PAGES FOR HANDLERS NOPAGE=2 / THIS DEFINES NO OF PAGES / FOR HANDLERS IFDEF ALBIN < OPTGM=400 / ONLY CHECK G IF ALBIN OEXTN=0102 / OUTPUT TO .AB IEXTN=0103 / INPUT FROM .AC OPTLOC=20; FHLOC=70; INLOC=53; OUTLOC=63; ERROR=140; NULOUT=ERROR; OPS=5200; KBDCHK=OPTLOC+3 > / DUMMY FOR NOW IFNDEF ALBIN < OPTGM=2400 / CHECK BOTH IF OSACOM OEXTN=0103 / OUTPUT TO .AC IEXTN=0114 / INPUT FROM .AL OPTLOC=60; FHLOC=77; INLOC=1203; OUTLOC=1213; ERROR=1457; OPS=1410 /OCTAL OUT NULOUT=1210 / NULL OUTPUT WAIT=1467 *1472 0; NOP; JMP I WAIT2; NOP KBDCHK, 0 > IFDEF ERRORS <XLIST> NOPUNCH / NOW FOR ERROR DEFINITIONS. ERRORS OF THE FORM / OS8 ERROR AT XXXX. XXXX DEFINED BELOW E1 / INPUT FILE NOT OPEN E2 / FAIL TO READ INPUT E3 / OUTPUT FILE NOT OPEN E4 / OUTPUT FULL E8 / FAIL TO WRITE OUTPUT E10 / DISK(XX) OR JMS FHANDLE WITH ILLEGAL NO XX E11 / FAIL TO CLOSE FILE E12 / FAIL TO ENTER FILE E13 / FAIL TO ENTER HANDLER. DUE TO EITHER NO SPACE / OR HANDLER NOT AVAILABLE E14 / CANNOT CHAIN AS ERROR OCCURED E15 / CANNOT CHAIN AS RALGOL OR ABSLDR NOT FOUND E16 / FAIL IN ACTUAL CHAIN / OR CAN GET HALTS / DUE TO BAD READ / WRITE OF BUFFER AREAS AT: E5 / WRITE E6 / READ E7 / READ E17 / WRITE ENPUNCH IFDEF ERRORS <XLIST> *0 PSAVE2, STAVE2 *OPTLOC OPTION, 0040 / OPTIONS SAVED HERE FOR LATER USE / 4000 MEANS OPT T / 2000 OPT M / 1000 SET BY COMPILER IF EMBEDDED TEXT / 400 OPT G / 40 JUST TO SET TO NON ZERO TO SHOW OS8 SYS WAIT2, GORUN USR, 7700 0; CLA; JMP I .-2 / DUMMY KBDCHK *FHLOC PFH, FHANDL *201 JMP I PSAVE2 *INLOC PIN, OSIN *OUTLOC POUT, OSOUT *OSSTRT
OSIN, (7400 /MUST BE FIRST LOC TO SET UP AND (7400=377 CLA; TAD IOPEN; SZA CLA E1, JMS ERR0 OSIN2, ISZ ICCT; JMP GETON; JMS I IHNDL 200 IBUF, IBUFFR NXIB, 0 SMA CLA; SKP;E2, JMS ERR0; ISZ NXIB CLA CMA; TAD IBUF; DCA IBPTR; TAD MNCH DCA ICCT; TAD K10; DCA W3 GETON, TAD W3; SPA; JMP C3 MNCH, CLA; ISZ IBPTR; TAD I IBPTR K377, AND (7400; CLL RAL; TAD W3 FIX10, RTL; RTL; DCA W3; TAD I IBPTR AND K377; TAD (-232; SZA CLA / IS IT CTRL/Z? JMP NOTCZ; JMS SETNXB; JMP CZ; IAC /IAC IF DEVHANDL NOT THERE SZA; JMS FHANDL; JMP OSIN2 K10, 10 CZ, ISZ IOPEN NOTCZ, TAD I IBPTR; AND K377 INEX, JMP I OSIN C3, DCA I IBPTR; CLL CML; JMP FIX10 / OS8 OUTPUT OSOUT, 0 AND K377 DCA OPBLOK; TAD OOPEN; SZA CLA E3, JMS ERR0; TAD OCCT; SZA CLA JMPINS, JMP JMPSW; TAD MNCH; DCA OCCT; CMA TAD OBUF; DCA OBFPTR; JMP .+4 JMPSW, NOP; JMP CH2; JMP CH3; TAD JMPINS DCA JMPSW CH2, TAD OBFPTR; DCA TMPTR; ISZ OBFPTR; TAD OPBLOK P3, DCA I OBFPTR; ISZ JMPSW; TAD OPBLOK TAD (-232; SNA CLA JMP ATEF; ISZ OCCT; JMP OUTEX; JMS OPBLOK ISZ OFL; JMP OUTEX;E4, JMS ERR0 ATEF, JMS OPBLOK; CMA; JMS FHANDL OUTEX, JMP I OSOUT CH3, TAD OPBLOK; RTL;RTL; AND (7400 TAD I TMPTR; DCA I TMPTR; TAD OPBLOK RTR; RTR; RAR; AND (7400 TAD I OBFPTR; JMP P3 OBFPTR, 0 IBPTR, 0 OCCT, 0 OOPEN, -1 ICCT, -1 IHNDL, ERR0 IOPEN, -1 W3, 0 TMPTR, 0 OFL, 0 FOBN, 0 /  p{ <@< LI )0)
lJC&EK L01 $K=% L%0) L)0 L1 1 6K L;1p[@Y{Z0%OR.n bDB(|h T&\*
]-1LLM=V]VV]VV]VV]J, h Z.C$=B"&L5 DB |
LC&+J^}g}@ ZJ(/VJ$]F"+,X,:Z9eZJ!.KJbKH.G ,EH+-S-HIbEIKJb!HnG& KBzzno7 JbJej7  <~ t7  <} t7  <| t7  <{ tz!.7hQ#!yb!(ox0:d!.wH/v8
u BE M /S)H : H lq@(
u \E E _ i,(x{c ,|t7{s7r*}s7x*rD@ |&Sb `TzSR*Q.B H ~H @U ,}78U' H hFU.7U x
~ $E * '1!'ki@ ~H TH!n|{' {E{!>zH/Ny#FxcGzbB H H @KE
4 E @wb: l,`2 liq'+z
' )@ ~H IE Hv:\  ^0 1TS*/I)THE(NA!C"G?(lq@(
~ L(E E }!|c({{%( ~ 0E j /g+``# D`` `U `@` 1`'g1H1 1hlX'1Hl `: '
5,6FC z, g g3SHNNS!TNASQ 9hg@j ~I BHE H);.(I   ~I \HE HE @}(?|: {G {E{!>zH/yx3&wc'vbB H ~I @U7(U#! l}(?2u+ ~I AIE HE @L'*O h  I )@ tC(2zH2zSs"! lt(?rH?r\:q!. tC(cz2 ,xp7wo7v*zq7y*l*c : F T SH*I(B H ~J @U7(U' H hFU7(U' ~J %JE HE @9'* 5 C4L!R' l<`ES1H'@}+ l|{7 H hFU.7U x
~ ,(E z^yc_xbB H H @c(E E w o"!jr @   T S(j '!H' l<`z:' i@ J JE H '*H' i@ J =JS1&T2&~(B
  6 E @E @E'*(i ^Ii} |k} 8O ),
y , ~Ch}ci|bB H yJ @pz"B H @ @:~qt0 j7  <~t7  <}td!.|H/{8 <hn7(?z.:!ny&B!xbHw{ ~CD}cExbB K K @7hc(v{M ,~Y6}Z6x(B < <7!>u!.(gzHgzv <~t7}s7x* H @ K 0!;!#;
 nB K K @ l~6}6|(B < <7>7~{>zy2 xG!n wC vG vEv!>yH/uv3!yb wC tGs |ssS!xcHr{q(B  <p < ~W6}X6|(B  <p <7 <o7xc! lo(?hn+ mGt"H{\ K ^K0= 002;  n%~%X~s!}bHVz |C{c}bB K K @7hc zG|)6{*6}(B  < < |C {c9}bB K K @7hc7 ||M6{N6}(B
 < < zC7z!n yCyx{wk |Cj{ck}bB K vL @7hc(u{t:$\; .[ > `>%~ |~~S!}cH|{{6z6y(B  <x L7(?w+ {C*zc+ybB K xL @vbB K xL @7hc7 |u |uuS!ybHt{{Q6zR6y(B  < <7 <s{sdzceybB K K @ l{r7zq y*.=[$[ *
n,[>B K K @7hc7 |~6}6|(B  < < {C7z{!n yCy.zxkwk vG vEv!>yH?L ,~E6}F6|(B  <u \72z!n tC sG sEs!>rH/q~3d}ce|bB K pM @7hc!ob!j @ ,;K?K  n(zHz3 ,~6}6|(B  <{ \ ~C }c!|bB K {M @(zRB K @
@7hc7 |~?6}@6|(B  <y \7!>z!.(MzHMzx <~Y6}Z6|(B  <y \ ~Ch}ci|bB K yM @pzRB K @ @j }M`   nz778g ~C}c|bB K |N @7hc(zHz3 ,~+6},6|(B  <| l{7(gz <~?6}@6|(B  <| l7!>y!.(MzHMzz <~Y6}Z6|(B  <| l ~Ch}ci|bB K |N @pybB K @
@7hc d`  nz7~ 8 }N ?M zN A yC! l~x } l? \x l\wr vCvwruu7w{#{wryy7ts# rGq ,p8G ongm |mmS!lbHk{j(H < \i l\Mr78Mwj(H < \h l\Mn:f<;@P`:P0Hx0\ `?R]OR!W7(T(?'LX LV #O pY *bWb7U(zLx '&(&[&\(0Z"
b;`F6C;dEE70;c;LE{ 7ES'L1<=ajwao[2h \LhTuRSbhc t|~vGwizCVDyo\`XH p{<@< LI )0)
lJC&EKL01 $K=%L%0) L)0L1 1 6KL;1 LI )0)
lJC&EK[@Y{Z0%sLLL L LL LLLLLLLLLLL L Lnl2!}4 G+ H
=)n [[ Lmo*%9+6;:<[*r^aO'?)-7676_7 B*)j).c77c l& C_g L )&/767-6-(6 B*-d-_77d)b720-7) l-&IK8-7'7B7g)&JK87y2*7d776*@ @p cN((bG*&(C[*c(]z7`K <H%abE
H NI|z&l%+ |N)mBRzb nO`bPwjEOR)@Cz NN&O&PH/&.NNC|DP.PfNU:NP~! )bE;T;JQ C3$Wsf-JC;*SP*.f| MM7.|`SS7/;&SUJSM&SBS)tC _T&2S&/;&W>>
I)e3&Wenu:m 
)QFs l
@ 
PPsRPs N( n((/("); (b.)Q @S Q(S)8TU'XW'hV' K FnY&&!&'&.&3&8&)2Z & &[ &F& C G DJ;K 80
hOe``fOed L^ fGfgD]d.i|e'0'pp E&,('H/)"<b~*rC (2<+b ' J,&H"z)=&}~'*C( K(=&+*$C |{0(,{z(&y)&x*&w+&vu'tBtr} |,0sss!rgCK> qp0(J{Jn okXp8ug]o?CU #2qVq0"1c!!bL~9!!&! J!F.(b Iw ( ,w0"iw> Pocplho6XcnobXoWn"/ Wc( nbDobXoFn">V*n!&o!..X.nlhZofn- !!b@,rnlh1.Zr  . ?G+0hcKrpc+ Aw n~)pp&l@9AER0uH>`1`RPS2 l(+2@i O AEwnX/ < ?&A9@T8U3<why I 
-@9a8!V&r(ByK>]bWrmcLtEJ+M.qjU]"k!|QT+ois\idi[6m6e["u]]idM ,lr@rdJ`0*w) J n `(rHnu0 Note: Lines longer than 256 characters were wrapped



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