File MOSTL.PA (PAL assembler source file)

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

	/M.O.S.T. C.D.NABAVI 18/4/73
  	/MODULAR OPERATING SYSTEM TOOL...... MARK 6


/DEFINE MOST INSTRUCTIONS

RCHAR=JMS I 20
TCHAR=JMS I 21
RTCHAR=JMS I 22
TDC=JMS I 23
LINE=JMS I 24
CHECK=JMS I 25
CHBLOK=JMS I 26
TYDER=JMS I 27
RTCOMD=JMS I 30
MOSTSR=JMS I 31
CHOCT=JMS I 32
ROCT=JMS I 33
TOCT=JMS I 34
MOSTGO=JMP I 35
CHKCHN=JMS I 36



/SET PAGE 0 POINTERS

	*545
	NOPUNCH
        *20
	ENPUNCH

FIRST,	SRRCH
        SRTCH
        SRRTCH
        SRTDC
        SRLINE
        SRCH
        SRCHBK
	SRTYD
	SRRTCM
        SRMOST
        SRCHOC
        SRROCT
        SRTOCT
        RETBAK
LAST,	SRCKCN




*200 SRTOCT, 0 /TYPE OCTAL RAL DCA TEMPB TAD M4 DCA TEMP NEXTO, TAD TEMPB RAL RTL DCA TEMPB TAD TEMPB AND MASK TAD P260 TCHAR PS8I, 7600 /CLA AND PS8 ADDR. ISZ TEMP JMP NEXTO JMP I SRTOCT SRRTCM, 0 /READ AND TYPE A COMMAND RTCHAR CHECK 203 /CONTR/C JMP TO PS/8 JMP I PS8I CHECK 250 /IGNORE COMMENTS JMP COMMNT CMNRET, JMP I SRRTCM COMMNT, RTCHAR CHECK 203 /CONTR/C. JMP TO PS8 JMP I PS8I CHECK 215 /END OF COMMENT JMP CMNRET CHECK 212 /END OF COMMENT JMP CMNRET CHECK 251 /END OF COMMENT JMP SRRTCM+1 JMP COMMNT
SRRCH, 0 /READ A CHARACTER KSF JMP .-1 KRB JMP I SRRCH SRTCH, 0 /TYPE A CHARACTER TSF JMP .-1 TLS JMP I SRTCH TEMPB, SRRTCH, 0 /READ AND TYPE A CHARACTER RCHAR TCHAR JMP I SRRTCH TEMPA, SRTDC, 0 /TYPE DIAGNOSTIC SYMBOL CLA TDCLP, TAD I SRTDC ISZ SRTDC TCHAR SPA CLA JMP TDCLP JMP I SRTDC
TEMP, SRLINE, 0 /TYPE "CR LF" TDC 4215 212 JMP I SRLINE SRCH, 0 /CHECK AND SKIP IF WRONG DCA TEMP /SAVE AC TAD I SRCH ISZ SRCH CIA TAD TEMP SZA CLA ISZ SRCH TAD TEMP /RESTORE AC JMP I SRCH SRCHBK, 0 /SKIP IF NOT IN BLOCK DCA TEMP /SAVE AC TAD I SRCHBK ISZ SRCHBK CIA TAD TEMP SPA JMP NO CMA TAD I SRCHBK SPA NO, ISZ SRCHBK ISZ SRCHBK CLA TAD TEMP /RESTORE AC JMP I SRCHBK
TEMPC, SRCHOC, 0 /SKIP IF OCTAL DIGIT CHBLOK P260, 260 10 ISZ SRCHOC JMP I SRCHOC SRROCT, 0 /READ AND TYPE OCTAL NUMBER CHOCT /1ST. CHAR. IN AC. ON ENTRY TYDER /ENTERED WITH NON-OCTAL CHAR AND MASK DCA TEMP TAD M4 DCA TEMPA DCA I OCNUMI ROCTA, TAD I OCNUMI RAL CLL RTL TAD TEMP DCA I OCNUMI RTCOMD CHOCT JMP I SRROCT /EXIT ON NON-OCT CHAR. ISZ TEMPA SKP JMP I SRROCT AND MASK DCA TEMP JMP ROCTA M4, -4 MASK, 0007 OCNUMI, OCNUM
*5000 NOPUNCH *400 ENPUNCH RMOST, TLS JMS SAVSTT JMS I INI TAD NCAM DCA I SRMSWA RETBAK, LINE JMS I INI JMP I BACK2I SRMSTI, SRMSTA SRMSWA, SRMSWT SRMOST, 0 KSF JMP I SRMOST /IMMEDIATE RETURN QMOST, JMS SAVSTT /UNLESS KEYBOARD STRUCK RTCOMD /HERE FOR SPEED DCA TEMST JMS I INI JMP I SRMSTI MSTRET, JMS I OUTI RETFLD, CDF CIF 0 TAD FGSAV RAL CLA TAD ACSAV JMP I SRMOST OCNUM, 0 OCNUMH, 0 MQSAV, 0 ACSAV, 0 FGSAV, 0 BACK2I, BACK SAVSTT, 0 /SAVE ACTIVE REGISTERS ON ENTERING MOST DCA ACSAV MQA DCA MQSAV 6004 DCA FGSAV RDF TAD .+2 DCA RETFLD CDF CIF 0 JMP I SAVSTT
NCAM, CONEND, CAM /REPLACE ARG. BY CONTENTS OF ARG. JMS I GETRGI JMS CONTNT JMS I INI JMS I PUTRGI RTCOMD DCA I TEM2I JMP I CONRTI CKCNCT, CONTNT, 0 /REPLACE ACC,MQ BY CONTENTS OF ACC,MQ SPA TYDER /ARG UNDEFINED : CONTENTS NOT AVAILABLE AND CN0007 DST OCNUM JMS I GTDFNI DCA CONINS JMS I OUTI CONINS, CDF 0 TAD I OCNUM DCA OCNUM CDF 0 CAM DAD OCNUM JMP I CONTNT GETRGI, GETARG PUTRGI, PUTARG CN0007, 0007 CONRTI, CONRT1 TEMST, SRCKCN, 0 /CHECK CHAIN OF TAGS DCA I TEM2I TAD I SRCKCN CIA DCA CKCNCT CHCNLP, ISZ SRCKCN TAD I SRCKCN CIA TAD I TEM2I ISZ SRCKCN SNA CLA JMP CHKADD ISZ CKCNCT JMP CHCNLP TAD I TEM2I ISZ SRCKCN JMP I SRCKCN CHKADD, TAD I SRCKCN DCA CKCNCT JMP I CKCNCT TEM2I, TEM
SETGO, JMS I OUTI STRINS, 0 JMP I TEMST GTDFNI, GTDFIN CHKRTI, CHKRET GETI, GET CHKRGI, CHKARG OUTI, OUT INI, IN SRTYD, 0 LINE TDC 277 CLA CMA TAD SRTYD TOCT MOSTGO BOT, 0 0 *600 TOP, HLT /USED IN SETTING UP. DO NOT MOVE JMP I TEM401
TEM401, SLSHGT, 401 /GET NEXT CONTENTS FOR SLASH CAM DAD BOT DPIC DST BOT AND SL0007 DCM DAD TOP SMA CLA ISZ SLSHGT CAM DAD BOT JMS I CNTNTI CLA MQA JMP I SLSHGT SL0007, 0007 CNTNTI, CONTNT TEM5, SLTYP, 0 JMS SLSHGT NOP TOCT TDC 240 JMP I SLTYP SLPUT, 0 /PUT TYPED NUM INTO OPENED LOC CAM DAD BOT DST OCNUM CLA MQA DCA TEM5 JMS GTDFIN DCA SLINS JMS OUT TAD VALUE SLINS, CDF 0 DCA I TEM5 NCDF, CDF 0 JMP I SLPUT VALUE, 0 LISTEM, GTDFIN, 0 /GET DATA FIELD INSTR. CAM TAD I OCNMH4 AND SL0007 CLL RAL RTL TAD NCDF JMP I GTDFIN OCNMH4, OCNUMH
SLSHA, JMS SLTYP JMS IN JMS I SLSHBI JMS SLPUT JMS IN JMP I SLENDI SLENDI, SLEND SLSHBI, SLSHB WDMASK, 0 LISPUT=JMP . SLSPUT, JMS SLPUT LISTA, JMS SLSHGT JMP I RETBK4 DCA LISTEM TAD LISTEM AND WDMASK /LINK MUST BE CLEAR HERE TAD MSRCWD MASKSW, SKP /SWITCHED BETWEEN VARIOUS SKIPS JMP LISTA FOUNSW, LISTYP /OR LISPUT LISTYP=JMP . SLSTYP, CAM DAD BOT JMS ADDTYP TAD LISTEM TOCT LINE JMP LISTA RETBK4, RETBAK MSRCWD, 0 ADDTYP, 0 AND SL0007 TAD SL260 TCHAR CLA MQA TOCT TDC 257 JMP I ADDTYP SL260, 260
IN, 0 /SWAP REST OF MOST INTO CORE ISZ INFLG SKP JMP REPLIN JMS I SYS 6200 1000 INSCR, 0 HLT JMS I SYS 2200 1000 INMST, 6 HLT REPLIN, CLA CMA DCA INFLG TAD OUTMST DCA INMST JMP I IN OUT, 0 /SWAP SCRATCH AREA BACK INTO CORE OUTSW, ISZ INFLG /SWITCH JMP OUTREP JMS I SYS 6200 1000 OUTMST, 6 HLT JMS I SYS 2200 1000 OUTSCR, 0 HLT OUTREP, CLA DCA INFLG JMP I OUT INFLG, 0 OUTOK=ISZ INFLG INHOLD=JMP I OUT SYS, 7607
*1000 ARGGET, 0 /ENTER WITH CHAR IN ACC. DCA TEM CLA CMA DCA THRFLG SKP NEXTRG, DCA TEM CLA CMA MQL CLA CMA DST ORLOC DCA DEFFLG TAD TEM NEWARG, CHECK 243 /# JMP I PRVRGI CHECK 256 /. JMP SYMGET CHBLOK 301 32 SKP JMP BYPASS SYMGET, JMS I SYMBLI JMP FLD0RT BYPASS, CHOCT JMP PLUMIN OCTALN, ROCT /READS 5 DIGIT NUM. CHOCT JMP FLD0 AND N0007 CLL RTR RTR MQL TAD I OCNUM2 LSR 11 OCRET, DST OCNUM2, OCNUM ALPRET, RTCOMD DCA TEM JMP FLD0RT OCNMH2, OCNUMH PRVRGI, PREVRG
MINUS, ISZ MINFLG CLA CMA DCA MINFLG NEXTCM, ISZ DEFFLG N0007, 0007 SPARET, RTCOMD JMP NEWARG MINFLG, 0 /-1 FOR MINUS TEM, 0 THRFLG, 0 GETARG, 0 DAD ARGPOI, 0 JMP I GETARG LNGTHI, LENGTH PUTRG3, PUTARG
MAXARG=10 /SIZE OF ARG. TABLE NUMRGI, NUMARG MARGMX, -MAXARG-MAXARG-ARGTAB FLD0, DCA TEM DCA I OCNMH2 FLD0RT, DAD CAM OCNUM PREVRT, DCA I SAVE DCA THRFLG TAD I SAVE AND N7770 CMA DCA I FLAGS ISZ MINFLG JMP POSITV TAD I SAVE DCM DCA I SAVE POSITV, TAD I SAVE AND N0007 JMS GETARG CMA AND I FLAGS CMA JMS I PUTRG3 CLA CONRT1, TAD TEM /CHECK FOR SEPARATOR PRTRET, CHKCHN 2 336 /^ CONEND 254 /, COMMA PLUMIN, CHKCHN 3 253 /+ NEXTCM 255 /- MINUS 240 SPACE2 JMS I ORI ISZ THRFLG JMS I LNGTHI TAD TEM JMP I ARGGET
N7770, 7770 FLAGS, ORI, OR SAVE, SYMBLI, SYMBOL SPACAI, SPACEA SPACE2, JMS I ORI JMS GETARG DPIC DCM DST ORLOC CAM DCA DEFFLG OCNUM JMS I PUTRG3 RTCOMD CHECK 311 /I JMP I SPACAI JMP NEWARG
DEFFLG, 0 /FLAG TO ALLOW DEFINITIONS *1200 BACK, SWAB JMS ARGINT RTCOMD BACKGO, JMS I ARGETI CHKCHN 15 215 /RETURN SRMRET 252 /* START 275 /= EQUALS 272 /: COLON 257 // SLASH 212 /L.F. LNFEED 210 /CONTR/H HOLDIN 222 /CONTR/R RELEAS 205 /CONTR/E CONTRE 207 /CONTR/G CONTRG 223 /CONTR/S CONTRS 213 /CONTR/K CONTRK 224 /CONTR/T CONTRT TYDER /UNDEFINED OPERATOR OR ILLEGAL MIXTURE /OF ARGUMENTS AND SEPARATORS ARGINT, 0 /INITIALISE ARGUMENT FETCHING ROUTINE CAM DCA NUMARG TAD ARGADD DCA I ARGPII DCA I MNFLGI JMS I PUTRG2 JMP I ARGINT ARGPII, ARGPOI PUTRG2, PUTARG MNFLGI, MINFLG ARGETI, ARGGET NUMARG, 0 ARGADD, ARGTAB
PREVRG, RTCOMD /EVALUATE DUMMY ARG ROCT DCA I TEMI CLA CMA TAD I OCNUM4 CLL RAL TAD ARGADD DCA .+2 CAM DAD 0 JMP I PRVRTI TEMI, TEM OCNUM4, OCNUM PRVRTI, PREVRT CHKRET, 0 /CHECK FOR C/R RTCOMD JMS I ARGETI CHECK 273 /; JMP SEMCOL CHECK 215 SKP JMP I CHKRET LINE SEMCOL, ISZ CHKRET CLA JMP I CHKRET LENGTH, 0 ISZ NUMARG CAM ISZ I ARGPII ISZ I ARGPII JMS I PUTRG4 TAD I ARGPII TAD I MRGMXI SMA SZA CLA TYDER /TOO MANY ARGUMENTS : TABLE FULL JMP I LENGTH MRGMXI, MARGMX
TEMGT, CHKARG, 0 /SKPS IF NO. OF ARGS =ARGUMENT CAM TAD I CHKARG ISZ CHKARG CIA TAD NUMARG SNA CLA ISZ CHKARG JMP I CHKARG GET, 0 /GETS N TH ARG ON LINE, SKIPS IF DEFINED DCA TEMGT TAD NUMARG CMA TAD I GET ISZ GET CLL RAL TAD I ARGPII DCA .+2 DAD 0 SMA ISZ GET TAD TEMGT JMP I GET COMMA, JMS LENGTH JMS I ORI2 RTCOMD JMP I NXTRGI NXTRGI, NEXTRG PUTRG4, PUTARG ORI2, OR
*1400 EQUALS, JMS I CHKRG3 1 TYDER /1 ARG NEEDED BEFORE EQUALS TAD I DEFADI DCA SETDEF JMS I GET3 1 JMP UNDEF DCA DEFHI TAD DEFHI AND EQ0007 SZA JMP FLDPRT TDC 240 EQPRNT, SWP TOCT TAD DEFHI UNDEF, CMA RTL RAL SPA SZL CLA JMP I RETBK3 /CANNOT BE DEFINED DEFINE, TAD NORFLG DCA DEFHI TDC 240 JMS I CHKRT3 JMP STRDEF JMS I CHKRG3 1 SKP JMP I BACK3 STDFRT, JMS I CHKRG3 2 TYDER /2 ARGUMENTS NEEDED FOR DEFNS. CAM JMS I GET3 2 TYDER /SECOND ARG. UNDEFINED AND EQ0007 TAD DEFHI KILLRT, DST SETDEF, 0 JMP I BACK3 FLDPRT, TAD N260 TCHAR JMP EQPRNT N260, 260
STRDEF, CHKCHN 3 252 /* DEFSTR 206 /CONTR/F FIX SYMBOL LOKSYM 337 /_ KILDEF TYDER /ILLEGAL TERMINATOR TO EQUALS DEFSTR, TAD DEFHI AND STRFLG DCA DEFHI JMS I CHKRT3 JMP STRDEF JMP STDFRT LOKSYM, JMS I ECHOI 306 /F TAD DEFHI AND LOKFLG JMP DEFSTR+2 KILDEF, LINE TAD KILFLG JMP KILLRT ECHOI, ECHO CHKRG3, CHKARG GET3, GET EQ0007, 0007 DEFHI, 0 RETBK3, RETBAK NORFLG, 3600 CHKRT3, CHKRET BACK3, BACK DEFADI, DEFADD STRFLG, 5777 LOKFLG, 7377 KILFLG, N
COLON, JMS I CHKRG3 1 TYDER TAD I DEFADI DCA SETDEF JMS I GET3 1 NOP DCA DEFHI TAD DEFHI TOCT SWP TOCT TAD DEFHI RTL SMA CLA JMP I RETBK3 JMP DEFINE START, JMS I CHKRT3 TYDER /CARR. RET. EXPECTED AFTER * JMS I CHKRG3 1 TYDER /MUST HAVE 1 AND ONLY 1 ARG IN * JMS I GET3 1 TYDER /UNDEFINED SYMBOL IN ARGUMENT DST OCNUM3, OCNUM RTL SZL CLA TYDER /ARG NOT DEFINED AS *TYPE TAD I OCNUM3 DCA TEMST JMS I GTDFN4 IAC IAC DCA I STRNSI JMP I SETGOI SETGOI, SETGO STRNSI, STRINS GTDFN4, GTDFIN
*1600 PUTARG, 0 DCA TEMPUT TAD I ARGPI2 DCA .+3 TAD TEMPUT DST 0 JMP I PUTARG ARGPI2, ARGPOI ADTYPI, ADDTYP SLEND, ISZ SLNEXT JMP I BACK4 TDC 215 TCHAR /TO GIVE DELAY FOR CARR. RET. LNFEED, JMS I ARGNTI JMS I LNGTH4 CAM DAD DOT SPA TYDER /DOT UNDEFINED DPIC JMS I ADTYPI CAM DAD DOT JMP LNFDRT
SLASH, CAM DPIC DCM JMS I GET4 1 TYDER /UNDEFINED ARG TO SLASH LNFDRT, DST BOT AND SK0007 DST TOP TAD DOTMSK DPIC DST DOT JMS I CHKRG4 1 JMP LIST JMP I SLSHAI ARGNTI, ARGINT LNGTH4, LENGTH SLSHAI, SLSHA SK0007, 0007 DOTMSK, 3600 CHKRG4, CHKARG CHKRT4, CHKRET BACK4, BACK GET4, GET NUMRG2, NUMARG
SLSHB, 0 JMS I CHKRT4 JMP ISITLF IILFRT, DCA SLNEXT JMS I CHKRG4 1 SKP JMP SLEND JMS I CHKRG4 2 TYDER /TOO MANY ARGS. JMS I GET4 2 TYDER /SECOND ARG. UNDEFINED JMS SETVAL JMS I CPGOKI JMP I SLSHB TEMPUT, SETVAL, 0 CLA MQA DCA I VALUEI JMP I SETVAL CPGOKI, CPAGOK VALUEI, VALUE ISITLF, CHECK 212 NSKP, SKP TYDER /ILLEGAL TERMINATOR TO SLASH CLA CMA JMP IILFRT
LIST, JMS I CHKRG4 2 TYDER /1 OR 2 ARGS NEEDED FOR SLASH TAD NSKP DCA I MSKSWI TAD NLSTYP DCA I FUNSWI JMS I GET4 2 TYDER /SECOND ARG NOT DEFINED DST DOT AND SK0007 DST TOP JMS I CHKRT4 JMP I STMSKI JMS SLSCON LINE JMP I LISTAI MSKSWI, MASKSW FUNSWI, FOUNSW NLSTYP, LISTYP STMSKI, SETMSK LISTAI, LISTA WDMSKI, WDMASK
SLNEXT, SLSCON, 0 JMS I CHKRG4 2 SKP JMP I SLSCON /NOTHING TO PUT JMS I CHKRG4 3 TYDER /TOO MANY ARGS. JMS I GET4 3 TYDER /THIRD ARG NOT DEFINED JMS SETVAL TAD NLSPUT DCA I FUNSWI JMP I SLSCON NLSPUT, LISPUT
*2000 CPAGOK, 0 TAD I PAGNOI SNA CLA JMP I CPAGOK JMS I CHMRFI JMP I CPAGOK CAM DAD BOT CLA SHL 5 CIA TAD I PAGNOI NSZA, SZA TYDER /CROSS PAGE REF CCAM, CAM JMP I CPAGOK PAGNOI, PAGENO CHMRFI, CHMREF SETMSK, CHECK 275 /= JMP MSEQU TYDER /ILLEGAL TERMINATOR MSKTPR, JMS I SLCON5 JMS I ARGNT5 CLA CMA DCA I WDMSK5 RTCOMD JMS I ARGGT5 JMP ISITCM ARGGT5, ARGGET MSEQU, CLA TAD NSZA DCA I MSKSW5 JMP MSKTPR
ISITCM, CHECK 215 JMP WHTMSK+2 CHECK 247 /' :COMPLEMENT LOGICAL OPERATOR SKP CLA TYDER /ILLEGAL TERMINATOR TAD I MSKSW5 TAD REVERS PTMZRT, DCA I MSKSW5 WHTMSK, JMS I CHKRT5 TYDER /ILLEGAL TERMINATOR LINE JMS I CHKRG5 2 JMP NOMASK JMS I GET5 2 TYDER /UNDEFINED SEARCH WORD CLA MQA DCA I WDMSK5 JMP NOMASK+4 SLCON5, SLSCON ARGNT5, ARGINT CHKRG5, CHKARG CHKRT5, CHKRET MSKSW5, MASKSW GET5, GET WDMSK5, WDMASK LISTA5, LISTA NOMASK, JMS I CHKRG5 1 TYDER /WRONG NO OF ARGS. CSKP, SKP LINE CAM JMS I GET5 1 TYDER /UNDEFINED MASK CLA MQA AND I WDMSK5 CIA DCA I MSCWD5 JMP I LISTA5 MSCWD5, MSRCWD REVERS, 0010
SRMSTA, CAM DPSZ CLA CMA DCA EAEFLG /REMEMBER MODE TAD CSKP DCA SRMSWT SWAB JMS I ARGNT5 TAD I TEMSTI JMP I BAKGOI SRMRET, JMS I CHKRG5 0 JMP I RETBK5 SRMSWT, CAM JMP I RETBK5 TAD CCAM DCA SRMSWT TDC "' LINE TAD EAEFLG SZA CLA SWBA TAD I MQSAVI MQL JMP I MSTRTI RETBK5, RETBAK MSTRTI, MSTRET MQSAVI, MQSAV EAEFLG, 0 BACK6I, BACK CHKRG6, CHKARG CHKRT6, CHKRET BAKGOI, BACKGO TEMSTI, TEMST NOARG, 0 /CHECK NO ARGS AND CARR RET. JMS I CHKRT6 TYDER /ILLEGAL TERMINATOR JMS I CHKRG6 0 TYDER /NO ARGS NEEDED JMP I NOARG
*2200 HOLDIN, JMS ECHO 310 /H JMS I NOARGI TAD INHLDA RELRET, DCA I OUTSWI JMP I BACK7I RELEAS, JMS ECHO 322 /R JMS I NOARGI TAD OUTOKA JMP RELRET INHLDA, INHOLD OUTOKA, OUTOK OUTSWI, OUTSW NOARGI, NOARG BACK7I, BACK N7600, 7600 MRFFLG, ECHO, 0 /ECHO CONTROL CHAR. TDC 336 /^ ECHOLP, TAD I ECHO TCHAR ISZ ECHO SPA CLA JMP ECHOLP JMP I ECHO OCNUM5, OCNUM TEMST3, TEMST TAGSV2, TAGSAV GTDFN3, GTDFIN
CONTRE, JMS ECHO /JMP TO PS8 VIA TIDING ROUTINE 305 /E JMS I NOARGI JMS I TAGSV2 NAME5 SVEXIT, CLA IAC CIF 10 JMS I USRI 2 /LOOKUP ARG91, NAME4 ARG92, 0 TYDER TAD ARG91 IAC DCA BLOCK9 JMS I SYSI 200 /READ 2 PAGES OF MOST.SV N200, 200 BLOCK9, 7402 HLT TAD N7600 DCA I OUTADD TAD NJP565 DCA I ASKI JMP I OUTSWI ASKI, ASK NJP565, 5365 USRI, 7700 SYSI, 7607 OUTADD, OUT
SPACEA, JMS I SYMBL2 TAD I PCKTBI TAD NMIND SZA CLA JMP I FD0RT3 JMS CHMREF JMP I FD0RT3 TAD ORLOC AND N7377 DCA ORLOC JMP I SPARTI CHMREF, 0 /SKIP IF MEM. REF. INSTR. CAM CLA CLL IAC BSW AND ORLOC+1 SNA CLA ISZ CHMREF CLA CMA DCA MRFFLG JMP I CHMREF OR, 0 JMS CHMREF JMP NOTMRF JMS I GETRG3 CLA SHL 5 DCA PAGENO TAD PAGENO SZA CLA TAD N200 CMA CLL CML AND ORLOC DCA ORLOC DCA MRFFLG NOTMRF, CAM JMS I GETRG3 SWP ISZ MRFFLG AND N177 DPIC DCM AND ORLOC SWP AND ORLOC+1 DPIC DCM ISZ I DEFLGI AND DEFMSK JMS I PUTRG5 CAM JMP I OR ORLOC, 0 0 PCKTBI, PACKTB N7377, 7377 SYMBL2, SYMBOL NMIND, -1100 FD0RT3, FLD0RT PAGENO, 0 N177, 177 PUTRG5, PUTARG GETRG3, GETARG SPARTI, SPARET DEFLGI, DEFFLG DEFMSK, 6777
*2400 FIND, 0 /SEARCH SYMBOL TABLE CAM FINDLP, TAD I TBPOII TAD NM5 DCA I TBPOII TAD I TBPOII CIA TAD I TABADI SMA SZA CLA JMP I FIND JMS COMPAR JMP FOUND TAD I TBPOII CIA TAD PERMAD SMA SZA CLA JMP FINDLP CLA CLL IAC RTL TAD I TBPOII DCA SYMTEM TAD I SYMTEM SMA CLA JMP FINDLP ISZ I SYMFGI CLA CLL IAC CML RAL TAD I TBPOII DCA DEFADD JMP FINDLP SYMOCT, 0 /SYMBOL TO OCNUM CAM DAD DEFADD, 0 DST OCNUM CAM JMP I SYMOCT TBPOII, TABPOI MOVEI, MOVE TABADI, TABADD PERMAD, PERSYM SYMFGI, SYMFLG
STRIP, 0 /STRIPS ASCII AND N0077 BSW DCA I PAKADD TAD PAKADD DCA PAKPOI TAD NM5 DCA SYMCNT RDNXSY, RTCOMD JMS LEGAL JMP FILL0 JMS SRPACK JMP RDNXSY RTCOMD DCA I TEMI2 JMP I STRIP FILL0, DCA I TEMI2 /FILLS REST OF TABLE WITH 0 JMS SRPACK JMP .-1 JMP I STRIP SRPACK, 0 /PACKS AND SKIPS ON 6 TH. CHAR. AND N0077 MQL TAD SYMCNT RAR CLA MQA SNL JMP FIRSTL SECOND, TAD I PAKPOI DCA I PAKPOI ISZ PAKPOI FIRRET, DCA I PAKPOI ISZ SYMCNT JMP I SRPACK ISZ SRPACK JMP I SRPACK FIRSTL, BSW JMP FIRRET SYMTEM, LEGAL, 0 /SKIPS IF ASCII OR DECIMAL CHBLOK 301 32 ISZ LEGAL CHBLOK 260 12 ISZ LEGAL JMP I LEGAL
N0077, 77 PAKADD, PACKTB PAKPOI, PACKTB NM5, -5 SYMCNT, 0 TEMI2, TEM PACKTB, 0 0 0 EXTENS, 0 SYMVAL, 0 COMPAR, 0 /SKIPS IF NAMES NOT EQUAL. FIRST NAME IN PACKTB CLA CLL CMA RTL /ADDR. OF SECOND NAME IN TABPOI DCA SYMCNT TAD I TBPOII DCA SYMTEM TAD PAKADD DCA PAKPOI COMLOP, TAD I PAKPOI CIA TAD I SYMTEM SZA CLA JMP COMSKP ISZ PAKPOI ISZ SYMTEM ISZ SYMCNT JMP COMLOP JMP I COMPAR COMSKP, ISZ COMPAR JMP I COMPAR FOUND, CLA CLL IAC CML RAL TAD I TBPOII DCA DEFADD JMP I FUNRTI FUNRTI, FOUNRT NAME4, FILENAME MOST.SV
*2600 SYMBOL, 0 /LOOK UP SYMBOL IN TABLE JMS I STRIPI TAD TABNDI DCA TABPOI TAD I SYMSKI DCA I SYMVLI DCA I EXTNSI CLA CLL IAC CML RAL TAD TABPOI DCA I DEFAD2 DCA SYMFLG JMS I FINDI TAD SYMFLG SNA CLA TAD N5 TAD TABNDI DCA TABNDI JMS MOVE FOUNRT, JMS I SYMOTI JMP I SYMBOL MOVE, 0 /MOVES 5 LOCS FROM PACKTB INTO (TABPOI) CLA CLL CMA RTL TAD I DEFAD2 DCA TABPOI TAD NM5A DCA I SYMCTI TAD TABPOI DCA SYMTM2 TAD I PAKADI DCA PAKPII MOVELP, TAD I PAKPII DCA I SYMTM2 ISZ PAKPII ISZ SYMTM2 ISZ I SYMCTI JMP MOVELP JMP I MOVE TABPOI, 0 TABADD, TABLE SYMSKI, KILFLG TABNDI, TABEND DEFAD2, DEFADD SYMVLI, SYMVAL EXTNSI, EXTENS STRIPI, STRIP FINDI, FIND NM5A, -5 SYMCTI, SYMCNT SYMTM2, 0 PAKADI, PAKADD PAKPII, 0 SYMFLG, 0 N5, 5 SYMOTI, SYMOCT
TAGSAV, 0 CLA TAD I TAGSAV ISZ TAGSAV DCA SYNAM1 TAD SYNAM1 DCA SYNAM2 TAD PERSMI CIA TAD N405 TAD I TBNDII AND N7400 DCA CLSIZE CLA CMA TAD CLSIZE TAD PERSMI DCA SYMSIZ TAD PERSMI CIA TAD I TBNDII DCA I SYMSIZ TAD CLSIZE CLL RTR RTR IAC CIF 10 JMS I USRAD2 3 /ENTER SYNAM1, PACKTB 0 TYDER TAD SYNAM1 DCA BLOCK8 TAD CLSIZE CLL CML RAR DCA SYMSIZ JMS I SYSAD2 SYMSIZ, 0 PERSYM BLOCK8, 7402 TYDER TAD CLSIZE BSW RTR CLL DCA CLSIZE
CLA IAC CIF 10 JMS I USRAD2 4 /CLOSE SYNAM2, PACKTB CLSIZE, 0 TYDER JMP I TAGSAV PERSMI, PERSYM N405, 405 N7400, 7400 TBNDII, TABNDI NAME5, FILENAME MOSTMT.MT USRAD2, 7700 SYSAD2, 7607
*3000 CONTRG, JMS I ECHO2 /GET SYMBOL TABLE 4307 4305 324 JMS FILE TYDER CLA TAD EXTMT DCA I EXTNS2 TAD PAKTBI DCA ARG101 CLA IAC CIF 10 JMS I USRAD3 2 /LOOK UP ARG101, PACKTB ARG102, 0 TYDER TAD I TBNDI2 DCA COREA TAD ARG101 DCA BLOK10 TAD ARG102 CIA BSW CLL RAL DCA FUNCT JMS I SYSAD3 FUNCT, 0 COREA, PERSYM BLOK10, 7402 TYDER CLA CMA TAD FUNCT RAL CLL CML TAD I TBNDI2 DCA COREA TAD I COREA TAD I TBNDI2 DCA I TBNDI2 JMP I RTBCK7
PAKTBI, PACKTB USRAD3, 7700 SYSAD3, 7607 TBNDI2, TABNDI ECHO2, ECHO TAGSVI, TAGSAV EXTMT, 1524 /MT EXTNS2, EXTENS SVXITI, SVEXIT RTBCK7, RETBAK CHKRG7, CHKARG LEGALI, LEGAL STRIP2, STRIP TEMI3, TEM CNTSFG, FILE, 0 JMS I CHKRG7 0 TYDER /NO ARGS. NEEDED TDC 4240 4272 240 RTCOMD JMS I LEGALI TYDER /ILLEGAL FILE CHARACTER JMS I STRIP2 TAD I TEMI3 CHECK 273 /; ISZ FILE CHECK 215 ISZ FILE JMP I FILE
CONTRS, JMS I ECHO2 4323 4301 4326 305 JMS FILE JMP ISITCE CLA CMA IICERT, DCA CNTSFG TAD EXTMT DCA I EXTNS2 JMS I TAGSVI PACKTB ISZ CNTSFG JMP I SVXITI JMP I RTBCK7 ISITCE, CHECK 205 SKP TYDER /ILLEGAL TERMINATOR TO SAVE TDC 240 JMS I ECHO2 305 RTCOMD CHECK 215 JMP IICERT TYDER CONTRK, JMS I ECHO2 /CONTROL K 313 JMS I NOARG2 TAD PERSM2 DCA I TBNDI2 JMP I RTBCK7 PERSM2, PERSYM NOARG2, NOARG
*3200 CONTRT, JMS I ECHO3 324 JMS I NOARG3 TAD I TBNDI3 DCA I TBPOI3 JMP PRNTRT PRNTLP, CLA CMA TAD I TBPOI3 DCA TEMTYP TAD NM5D TAD I TBPOI3 DCA I TBPOI3 TAD I TEMTYP SMA CLA /SYMBOL UNDEFINED JMP PRINT TDC 247 PRNTRT, TAD I TBPOI3 CIA TAD PERSM3 SPA JMP PRNTLP LINE JMP I RTBCK8 CHRTYP, 0 SNA JMP TYPSPC TAD N300 CHBLOK 301 32 SKP TAD NM100 TCHAR CLA JMP I CHRTYP TYPSPC, TDC 240 JMP I CHRTYP NOARG3, NOARG TBNDI3, TABNDI TBPOI3, TABPOI NM5D, -5 PERSM3, PERSYM N300, 300 RTBCK8, RETBAK NM100, -100
SYMTYP, 0 CLA CLL CMA RTL DCA TYPCNT TAD I TBPOI3 DCA TEMTYP TYPLP, TAD I TEMTYP LSR 6 JMS CHRTYP SHL 6 JMS CHRTYP ISZ TEMTYP ISZ TYPCNT JMP TYPLP JMP I SYMTYP PRINT, LINE JMS SYMTYP TDC 4240 4275 240 CAM DAD TEMTYP, 0 AND N0007D SNA JMP SPCTYP TAD N260D TCHAR SPTPRT, CLA MQA TOCT JMP PRNTRT SPCTYP, TDC 240 JMP SPTPRT N0007D, 0007 N260D, 260 TYPCNT, 0 ECHO3, ECHO
ARGTAB, ZBLOCK MAXARG N=7600 M=3200 R=3300 TABLE, 5600 /. 0000 0000 DOT, 0000 N 5601 0303 0000 ACSAV 2200 5615 2100 0000 MQSAV 2200 5606 1407 2300 FGSAV 2200 5622 0524 0000 SRMOST 2200 2203 1001 2200 RCHAR 2200 2403 1001 2200 TCHAR 2200 2224 0310 0122 RTCHAR 2200 2404 0300 0000 TDC 2200 1411 1605 0000 LINE 2200 0310 0503 1300 CHECK 2200 0310 0214 1713 CHBLOK 2200 2431 0405 2200 TYDER 2200 2224 0317 1504 RTCOMD 2200 1517 2324 2322 MOSTSR 2200 0310 1703 2400 CHOCT 2200 2217 0324 0000 ROCT 2200 2417 0324 0000 TOCT 2200 1517 2324 0717 MOSTGO 2200 0310 1303 1016 CHKCHN 2200 0116 /MEM REF INSTRS. 0400 0000 AND R 2401 0400 0000 TAD R 1123 3200 0000 ISZ R 0403 0100 0000 DCA R 1215 2300 0000 JMS R 1215 2000 0000 JMP R
1617 2000 0000 NOP M 0314 0100 0000 CLA M 0314 1400 0000 CLL M 0315 0100 0000 CMA M 0315 1400 0000 CML M 2201 2200 0000 RAR M 2201 1400 0000 RAL M 2224 2200 0000 RTR M 2224 1400 0000 RTL M
1101 0300 0000 IAC M 0223 2700 0000 BSW M GROUP2, 2315 0100 0000 SMA M 2332 0100 0000 SZA M 2320 0100 0000 SPA M 2316 0100 0000 SNA M 2316 1400 0000 SNL M 2332 1400 0000 SZL M 2313 2000 0000 SKP M
1723 2200 0000 OSR M 1014 2400 0000 HLT M 0311 0100 0000 CIA M 1401 2300 0000 LAS M PERSYM, TABEND, /MUST BE LAST LOC IN PROGRAM /OTHER THAN STARTER PAGES AND FIELD 1
*400 /STARTER PAGE. RUN ONCE ONLY WHEN LOADED THEN OVERLAID. /SECTION BETWEEN 'INCORP'+1 AND 'RELOAD'-1 IS /RUN ONLY WHEN BINARY FILE STARTED FOR FIRST TIME /A VERSION IN IMAGE MODE IS THEN AUTOMATICALLY SAVED ON /DISC AND FUTURE CALLS TO MOST SHOULD BE 'R MOST' INCORP, CLA TLS TAD JUMPIN DCA . JMP I SETUPI RELOAD, CLA IAC CIF 10 JMS I USRADD 2 /LOOKUP ARG51, NAME2 ARG52, 0 NHLT, HLT TAD ARG51 DCA BLOCK4 TAD ARG51 IAC DCA I INMSTI TAD I INMSTI TAD MSTLNG DCA I OTMSTI TAD I OTMSTI TAD MSTLNG DCA I INSCRI TAD I INSCRI DCA I OTSCRI
PAG0LP, TAD I POINTA DCA I POINTB ISZ POINTA ISZ POINTB ISZ COUNT JMP PAG0LP CLA IAC CIF 10 JMS I USRADD 2 /LOOKUP ARG61, NAME3 ARG62, 0 JMP 565 ASK, LINE TDC 4000 "F 4000 "L 4000 "D 4000 "S 4240 "? ASKNXT, TDC 240 VARRET, RTCOMD CHECK 215 JMP 565 CHBLOK 261 2 /HIGHEST FIELD NUMBER JUMPIN, SKP JMP ASK CLL RTL RAL AND N70 TAD N200S DCA VARBLK TAD VARBLK AND N70 TAD C6203 DCA VARFLD TAD ARG61 DCA BLOCK6 JMS I SYSADD VARBLK, 210 /READ 2 PAGES INTO FIELD 1 ETC. N200S, 200 BLOCK6, 7402 HLT
VARFLD, CDF CIF 10 JMP PG0LP1 C6203, CDF CIF N70, 70 SETUPI, SETUP POINTA, 545 POINTB, 20 COUNT, FIRST-LAST-1 USRADD, 7700 SYSADD, 7607 NAME2, FILENAME MOSTOV.SV NAME3, FILENAME MOSTF1 INSCRI, INSCR INMSTI, INMST OTSCRI, OUTSCR OTMSTI, OUTMST TOPI, TOP TOPAN1, TOP+1 TM401I, TEM401 NJUMP, 5602 N401, 401 MSTLNG, 11 /PAGE 0 POINTERS ARE STORED HERE AT LOC 545 ONWARDS *565 CLA TAD NHLT DCA I TOPI TAD NJUMP DCA I TOPAN1 TAD N401 DCA I TM401I JMS I SYSADD 100 /READ OVERLAY DOWN OVER CURRENT PAGE 400 BLOCK4, 7402 /ERROR RETURN AND NORMAL RET. ARE AT 600 /IN TEMPORARY LOCS TO BE USED LATER FOR DATA
*5200 SETUP, TAD VAL1 CDF 0 CIF 10 JMS I USRAD1 3 /ENTER ARG11, NAME1 ARG12, 0 HLT CLA TAD ARG11 DCA BLOCKA CLL CLA IAC TAD BLOCKA DCA BLOCK1 JMS I SYSAD1 4100 /WRITE CORE CONTROL BLOCK CORCON BLOCKA, 7402 HLT JMS I SYSAD1 4300 200 /TRANSFER LOCS 200-777 BLOCK1, 7402 HLT CLA TAD VAL2 CDF 0 CIF 10 JMS I USRAD1 4 /CLOSE ARG21, NAME1 ARG22, 3 HLT CLA TAD VAL3 CDF 0 CIF 10 JMS I USRAD1 3 /ENTER ARG31, NAME2 ARG32, 0 HLT
CLA TAD ARG31 DCA BLOCK2 TAD BLOCK2 IAC DCA BLOCK3 TAD BLOCK3 TAD I MSTLGI DCA BLCK3A JMS I SYSAD1 4100 /WRITE 1 PAGE 5000 BLOCK2, 7402 HLT JMS I SYSAD1 6200 /WRITE 22 PAGES 1000 BLOCK3, 7402 HLT JMS I SYSAD1 6200 /WRITE 22 PAGES :LEAVE ANOTHER 22 FOR SCRATCH AREA 1000 BLCK3A, 7402 HLT CLA TAD VAL4 CDF 0 CIF 10 JMS I USRAD1 4 /CLOSE ARG41, NAME2 ARG42, 34 HLT
CLA TAD VAL7 CDF 0 CIF 10 JMS I USRAD1 3 /ENTER ARG71, NAME3 ARG72, 0 HLT CLA TAD ARG71 DCA BLOCK7 JMS I SYSAD1 4210 /WRITE FIELD 1 200 BLOCK7, 7402 HLT CLA TAD VAL8 CDF 0 CIF 10 JMS I USRAD1 4 /CLOSE ARG81, NAME3 ARG82, 1 HLT JMP I RLOADI RLOADI, RELOAD SYSAD1, 7607 USRAD1, 7700 VAL1, 61 VAL2, 1 VAL3, 701 VAL4, 1 VAL7, 21 VAL8, 1 MSTLGI, MSTLNG NAME1, FILENAME MOST.SV CORCON, -1 CDF CIF 400 0 200 300
FIELD 1 /SET PAGE 0 POINTERS FOR FIELD 1 *560 NOPUNCH *20 ENPUNCH FRRCH FRTCH FRRTCH FRTDC FRLINE FRCH FRCHBK FRTYD FRRTCM FRMOST FRCHOC FRROCT FRTOCT FSTGOA FRCKCN
*200 FRTOCT, 0 /TYPE OCTAL RAL DCA FTEMPB TAD FM4 DCA FTEMP FNEXTO, TAD FTEMPB RAL RTL DCA FTEMPB TAD FTEMPB AND FMASK TAD FP260 TCHAR CLA ISZ FTEMP JMP FNEXTO JMP I FRTOCT FRRCH, 0 /READ A CHARACTER KSF JMP .-1 KRB JMP I FRRCH FRTCH, 0 /TYPE A CHARACTER TSF JMP .-1 TLS JMP I FRTCH FTEMPB, FRRTCH, 0 /READ AND TYPE A CHARACTER RCHAR TCHAR JMP I FRRTCH FTEMPA, FRTDC, 0 /TYPE DIAGNOSTIC SYMBOL CLA FTDCLP, TAD I FRTDC ISZ FRTDC TCHAR CLA SPA JMP FTDCLP JMP I FRTDC
FTEMP, FRLINE, 0 /TYPE "CR LF" TDC 4215 212 JMP I FRLINE FRCH, 0 /CHECK AND SKIP IF WRONG DCA FTEMP /SAVE AC TAD I FRCH ISZ FRCH CIA TAD FTEMP SZA CLA ISZ FRCH TAD FTEMP /RESTORE AC JMP I FRCH FRCHBK, 0 /SKIP IF NOT IN BLOCK DCA FTEMP /SAVE AC TAD I FRCHBK ISZ FRCHBK CIA TAD FTEMP SPA JMP FNO CMA TAD I FRCHBK SPA FNO, ISZ FRCHBK ISZ FRCHBK CLA TAD FTEMP /RESTORE AC JMP I FRCHBK
FTEMPC, FRCHOC, 0 /SKIP IF OCTAL DIGIT CHBLOK FP260, 260 10 ISZ FRCHOC JMP I FRCHOC FRROCT, 0 /READ AND TYPE OCTAL NUMBER CHOCT /1ST. CHAR. IN AC. ON ENTRY TYDER /ENTERED WITH NON-OCTAL CHAR. OR AND FMASK /% USED WITH NOWHERE TO GO DCA FTEMP TAD FM4 DCA FTEMPA DCA I FCNUMI FROCTA, TAD I FCNUMI RAL CLL RTL TAD FTEMP DCA I FCNUMI RTCOMD CHOCT JMP I FRROCT /EXIT ON NON-OCT CHAR. ISZ FTEMPA SKP JMP I FRROCT AND FMASK DCA FTEMP JMP FROCTA FM4, -4 FMASK, 0007 FCNUMI, FOCNUM FOCNUM, 0 /TO BE MOVED
FRRTCM, 0 RTCHAR CHECK 203 /CONTR/C JMP TO PS/8 JMP FPS8 CHECK 250 /IGNORE COMMENTS JMP FOMMNT NORRET, JMP I FRRTCM FOMMNT, RTCHAR CHKCHN 4 203 /CONTR/C JMP TO PS/8 FPS8 215 /END OF COMMENT NORRET 212 /END OF COMMENT NORRET 251 /END OF COMMENT FRRTCM+1 JMP FOMMNT FPS8, CDF CIF 0 JMP I PS8QAD PS8QAD, 7600 *400 FMOST, CDF CIF 0 JMP .-1 FRMOST, 0 KSF JMP I FRMOST /IMMEDIATE RETURN DCA TEMQ /UNLESS KEYBOARD STRUCK RIF TAD CCDF DCA THSFLD TAD FRMOST CDF CIF 0 DCA I SRMSTQ /SIMULATE SUBROUTINE TAD TEMQ THSFLD, CDF 10 /TO GET BACK JMP I QSRMST CCDF, CDF TEMQ, 0 SRMSTQ, SRMOST QSRMST, QMOST FRCKCN, 0 /CHECK CHAIN OF TAGS DCA TEMQ TAD I FRCKCN CIA DCA FKCNCT FHCNLP, ISZ FRCKCN TAD I FRCKCN CIA TAD TEMQ ISZ FRCKCN SNA CLA JMP FHKADD ISZ FKCNCT JMP FHCNLP TAD TEMQ ISZ FRCKCN JMP I FRCKCN FHKADD, TAD I FRCKCN DCA FKCNCT JMP I FKCNCT FKCNCT, 0 FRTYD, 0 LINE TDC 277 RDF CLL RTR RAR TAD F260 TCHAR CLA CMA TAD FRTYD TOCT MOSTGO FSTGOA, CDF CIF 0 JMP I FMSTGQ F260, 260 FMSTGQ, RETBAK PG0LP1, CLA /SET UP ROUTINE TAD I POINTC DCA I POINTD ISZ POINTC ISZ POINTD ISZ COUNT2 JMP PG0LP1 CDF CIF 0 JMP ASKNXT POINTC, 560 POINTD, 20 COUNT2, FIRST-LAST-1 $$$$$$$$$$$$$$$



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