File LOW.MA (MACREL macro assembler source file)

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

	TITLE	LOW - PPL LOW SEGMENT    /EAT/  20-SEP-72   

	SEARCH	PPL

;NO NONZERO DATA IS INITIALLY PRESENT IN THE LOW SEGMENT.
;USE 'BLOCK N' STATEMENTS

	DEFINE	ZZ
<	BLOCK	1	>

PPLLOW:	

;COMMONLY USED SYSTEM CELLS

PZBEG:	ZZ		;POINTS TO START OF POINTER ZONE (PZ)
PZEND:	ZZ		;POINTS TO LAST CELL OF PZ
DZBEG:	ZZ		;POINTS TO START OF DATA ZONE (DZ)
DZEND:	ZZ		;POINTS TO LAST CELL OF DZ

;****** NOTE: *******
;THE DZ MUST BEGIN AT A 1K BLOCK BOUNDARY, AND BE AN INTEGRAL NUMBER OF
;BLOCKS LONG.  THUS, UNDER MOST CONDITIONS C(DZEND) WILL BE EQUAL TO
;THE RHS OF JOBREL.  PZEND ALWAYS CONTAINS ONE LESS
;THAN DZBEG.

LAPS:	ZZ		;POINTS TO FIRST CELL IN FREE CHAIN IN PZ
NEXT:	ZZ		;POINTS TO FIRST FREE CELL IN DZ

TSAV: ZZ ;TEMP DURING UUO PROCESSING CRSHSV: BLOCK 20 ;AC'S DUMPED HERE IF A SYSTEM ERROR OCCURS CRSHPD: BLOCK 20 ;TEMP PDL DURING SYSTEM ERROR PROCESSING SYSSTK: BLOCK STKLEN ;SYSTEM STACK TXTBUF: BLOCK TXTSIZ ;EDITING BUFFER SYNSTK: BLOCK SSLEN ;SYNTAX ANALYSIS STACK PCKDIG: ZZ ;USED DURING RELOC. LINE # PROCESSING PKDIGP: ZZ DOTCNT: ZZ ;COUNTS CONSECUTIVE PERIODS FOR RECOGNIZING COMMENTS TPSVNS: ZZ ;SAVES THE NUMBER OF ARGS TO TUPLE TPSVUF: ZZ ;SAVES USER FUNCTION DURING TUPARG CALCULATION TPSVAP: ZZ ;SAVES ARGP DURING TUPARG CALCULATION LXBUF: BLOCK LXBSIZ ;TEMP BUFFER DURING LEXICAL ANALYSIS IDTP: ZZ ;PZ POINTER TO IDT (ID TABLE) OPTP: ZZ ;PZ POINTER TO OPT (OPERATOR TABLE) LEXSAV: ZZ ;HOLDS -NUMBER OF LEXEMES TO BE PROTECTED IN LXMBUF PZSAV: ZZ ;HOLDS BYTE POINTER TO PZ SAVE STACK PZSTK: BLOCK 5 ;HOLDS PZ ADDRESSES TO BE PROTECTED
TSV1: ZZ ;TEMP EDIREC: ZZ ;CONTENTS OF P FOR RECOVERY FROM EDITING ERROR LXMBUF: BLOCK LXMBSZ ;LEXEME TEMP BUFFER L0BUF: BLOCK L0BSIZ ;LINE 0 TEMP BUFFER LBLBUF: BLOCK LBLBSZ ;LABEL TEMP BUFFER LINENO: ZZ ;HOLDS LINE # THISFN: ZZ ;HOLDS INTERNAL NAME OF CURRENTLY OPEN FN OVAC: ZZ ;HOLDS AC ADDRESS FOR FLOATING PT TRAP OVINST: ZZ ;HOLDS OFFENDING INST OVFIX: ZZ ;THE CORRECT RESULT CALCULATED FOR FLOATING OV DZBDY1: ZZ ;ADDRESS BELOW WHICH CORE EXPANSION NEVER TAKES PLACE RAF: ZZ ;POINTER TO RING OF ACTIVE FUNCTIONS RSF: ZZ ;POINTER TO RING OF SUSPENDED FUNCTIONS SUSPND: ZZ ;SET TO -1 BY ^C, REENTER SAVCAR: ZZ ;SAVES POINTER TO CAR CFNAM: ZZ ;RH HOLDS NAME OF CURRENT (I.E. MOST RECENTLY ; CALLED) FUNCTION. USED IN PRINTING NAME OF ; SYSTEM FN IN WHICH AN ERROR OCCURS CPRMPT: ZZ ;ID LEXEME INDICATING CURRENT PROMPT TO BE USED LEXPDP: ZZ ;SAVES P DURING LEXICAL ANALYSIS AND PARSING RANDOM: ZZ ;CURRENT RANDOM NUMBER FOR RANDOM NUMBER GENERATOR LXSV1: ZZ ;SAVES AC'S DURING CORETURNS BETWEEN PARSE AND LEX LXSV2: ZZ LXSV6: ZZ LXSV7: ZZ LXSVPC: ZZ LXSVR: ZZ LXSVR2: ZZ COUNT: ZZ ;REMEMBERS PREVIOUS CHAIN COUNTER FOR PARSE THSLXP: ZZ ;THIS LEXEME PTR (FOR LEX ERROR RECOVERY) IFN ARDS,< AMODE: ZZ ;HOLDS CURRENT ARDS GRAPHICAL OUTPUT MODE > FORMWD: ZZ ;CURRENT NUMERIC OUTPUT FORMAT SPECIFICATION IFN ARDS,<IFE MITS,< T37: ZZ ;REMEMBERS PREVIOUS STATE OF TTY ON ARDMODE SYS FN >> LSTZER: ;FIRST CELL NOT TO BE ZEROED ON RESTART DMPSIZ==.-PPLLOW ;SIZE OF IMAGE TO BE DUMPED ON SAVE MDMSIZ==-DMPSIZ ;-SAME (CANT NEGATE EXTERNALS!)
;THE FOLLOWING DATA IS NOT SAVED AND RESTORED. RWFCB: BLOCK FCBSIZ ;FILE CHANNEL BLOCK FOR READ/WRITE/SAVE/RESTORE FILBLK: BLOCK 406 ;I/O BUFFER SPACE FOR ABOVE FCBLST: BLOCK NFCBLK*FCBSIZ ;REGION FOR USER FILE CONTROL BLOCKS TSTTYP: ZZ ;ARG FOR ENUMERATION CHECKING FUNCTIONS EVALBP: ZZ ;BYTE PTR FOR EVAL ROUTINE IFILE: ZZ ;FCB ADR OF CURRENT INPUT FILE OFILE: ZZ ;FCB ADR OF CURRENT OUTPUT FILE IMGFLG: ZZ ;0 IF IMAGE MODE TTY ILLEGAL (EARLIER THAN 5.02) ;#0 IF IMAGE MODE LEGAL ; -1 IF EARLIER THAN 5.03 ; +1 IF 5.03 OR LATER IFN FTCCIN,< INTVEC: BLOCK 4 ;CONTROL-C INTERCEPT VECTOR > INTFLG: ZZ ;LH=-1 IF PREVIOUS ^C INTERCEPT STILL PENDING ;RH=-1 IF PREVIOUS REENTER STILL PENDING IFN FTSTAT,< ; CELLS FOR STATISTICAL REPORTING OUTPUT STFLG: ZZ ;NONZERO IF STATISTICAL REPORTING ENABLED STHDR: BLOCK 3 ;OUTPUT BUFFER HEADER STBUF: BLOCK 406 ;OUTPUT BUFFER STDIST: BLOCK DSTSIZ ;TABLE FOR COMPUTING BLOCK SIZE DISTRIBUTIONS > IFN FTEMF,< EMFLST: BLOCK 2 ;DUMP COMMAND LIST FOR ERROR MESSAGE FILE EMFBUF: BLOCK 200 ;BUFFER FOR ERROR MESSAGE FILE > IFN FTBAKG,< ENBWRD: ZZ ;APR ENABLE BITS IN EFFECT JIFCNT: ZZ ;CLOCK CHECK INTERVAL COUNTER SLPTIM: ZZ ;TIME FOR NEXT SLEEP > OUTPOS: ZZ ;LH = TYPEHEAD POSITION AFTER PROMPT PRINTED ;RH = OUTPUT TYPEHEAD POSITION (NOW)
IFN MITS,< ;IMPURE TRAP HANDLER FOR MIT TTYOFL: 0 ;REMEMBERS ^O STATE TSINT: 0 ;INTERRUPT MASK GOES HERE 0 ;OLD PC PUT HERE EXCH R,TSINT+1 ;GET OLD PC MOVEM R,JOBOPC ;PUT IN JOB DATA AREA LOCATIONS MOVEM R,JOBTPC EXCH R,TSINT+1 EXCH R,TSINT ;GET INTERRUPT MASK JUMPL R,TSINTC ;JUMP IF TTY TRAP EXCH R,TSINT ;RESTORE OLD R CONI APR,JOBCNI ;STORE APR STATUS .DISMISS [0,,TRAPS] ;GO TO TRAP HANDLING ROUTINE TSINTC: MOVEI R,.TTYI ;HERE ON TTY TRAP .ITYIC R, ;LOOK AT CHARACTER JUST TYPED .VALUE [ASCIZ/?UNIDENTIFIED CHANNEL INTERRUPT? /] CAIN R,3 ;CONTROL-C? JRST TSINTR ;YES, INTERRUPT PPL CAIN R,17 ;CONTROL-O? SETCMM TTYOFL ;YES, COMPLEMENT SUPPRESSION FLAG EXCH R,TSINT .DISMISS TSINT+1 ;DISMISS INTERRUPT TSINTR: EXCH R,TSINT ;HERE ON ^C TRAP JRST PPLREN ;PERFORM A "REENTER" > LOWEND: END



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