File EDU30.PA (PAL assembler source file)

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

/BOOTSTRAP AND I/O FOR EDUSYSTEM-30

	EDITOR=1	/INTERACTIVE EDITOR BLOCK
	FILEREC=EDITOR+10	/(=11-1 FOR CCB)
	BPASS1=FILEREC+17	/(=16+1 FOR CCB)
	SYMPRT=BPASS1+5		/USED BY PASS 2
	SCRATCH=BPASS1+11	/(=12-1 FOR CCB)
	BPASS2=SCRATCH+17	/(=16+1 FOR CCB)
	BPASS3=BPASS2+7
	IORTNS=BPASS3+6
	FUNCS=BPASS3+10
	ERREC=BPASS3+12
	RDREDT=BPASS3+14
	BATLOG=RDREDT+5
	SHNDLR=7607
	HELLO=1000	/EDITOR ENTRY POINT

	IFDEF READ <NOPUNCH>	/FOR REFERENCE ONLY

	*7400		/THIS PAGE STAYS IN CORE ALWAYS

BOOT,	JMS DREAD	/LOAD THE INTERACTIVE (OR BATCH) EDITOR
	0000		/CORE
	-17		/ -PAGES
REC,	EDITOR		/BLOCK (RELATIVE TO EDU30.SV)
	JMP I (HELLO	/START UP EDITOR

DREAD,	0		/SYSTEM READ ROUTINE
	CLA CLL		/IN CASE OF NON-ZERO AC
	TAD DREAD	/MOVE ARG POINTER
	DCA DWRITE
	JMP DWRITE+2	/CALL WRITE (LINK = 0)

DWRITE,	0		/SYSTEM WRITE ROUTINE
	CLA CLL CML
	RAR		/SHIFT INTO POSITION
	RDF		/GET TRANSFER FIELD
	DCA DFUN
	CDF
	TAD I DWRITE	/GET CORE ADDRESS
	ISZ DWRITE
	DCA DCORE
	TAD I DWRITE	/GET - # OF PAGES
	ISZ DWRITE
	CLL CIA		/MAKE POSITIVE
	DCA DREAD	/SAVE FOR LATER
	TAD DREAD	/AND FOR NOW
	RTL		/MOVE TO PROPER PLACE
	RTL
	RTL
	TAD DFUN	/ADD FIELD, WRITE BITS
	DCA DFUN
	TAD I DWRITE	/STARTING BLOCK
	ISZ DWRITE
	TAD DOFFSET	/(ALL THINGS ARE RELATIVE, OF COURSE)
	DCA DBLOCK
	TAD DLAST	/IF LAST TRANSFER WAS >= 5 BLOCKS
	TAD (5		/BEFORE THIS ONE, START SEARCHING
	CLL CIA		/FORWARD (SAVE DECTAPE TIME)
	TAD DBLOCK
	SZL CLA
	ISZ DFUN	/(OH, GOODY!)
	JMS I (SHNDLR	/CALL THE HANDLER (RESIDENT)
DFUN,	0
DCORE,	0
DBLOCK,	0
	JMP DERROR	/OH-OH, AN I/O ERROR
	TAD DREAD	/SAVED PAGES
	IAC		/MAKE BLOCKS
	CLL RAR
	TAD DBLOCK	/FIND LAST TRANSFER BLOCK
	DCA DLAST	/SAVE FOR NEXT CALL
	JMP I DWRITE	/ALL DONE (AHHHH)

DLAST,	0		/LAST BLOCK TRANSFERRED
DOFFSET,0		/OFFSET OF 'EDU30.SV'

DERROR,	CLA CLL CMA	/SET I/O ERROR FLAG
	DCA SYSIO
	JMP BOOT	/LOAD THE EDITOR

/SYSTEM COMMUNICATIONS TABLES

SYSIO,	0		/DEVICE ERROR
MAXINS,	0		/MAXIMUM RUNTIME
RDTIM,	0		/READER TIMEOUT
LPTFLG,	0		/OUTPUT TO LINE PRINTER
DEBNOL,	0		/'DEBUG' AND 'NOLINE'
KFLG,	0		/KEYBOARD BATCH
RUNCNT,	0		/TIMES THIS JOB HAS RUN?
RUNNO,	0		/TIMES THIS JOB SHOULD RUN?
PFLG,	0		/0 -> NOT PRIVLEGED
TXTLEN,	0		/LENGTH OF TEXT
CHAIN,	0		/CHAIN FLAG
BREAK,	0		/?

/PROGRAM NAME AND HEADER LINE ARE HERE TOO

HEADLINE,	TEXT /*NONE*  EDUSYSTEM-30__/

PSNAME,	FILENAME NONE.30	/PS/8 FORMAT NAME

/** THIS SECTION IS ONCE-ONLY CODE TO FIND THE OFFSET
/** FOR ALL BLOCKS.  IT IS THEN USED FOR TEMPORARY
/** COMMUNICATION BETWEEN SECTIONS OF EDUSYSTEM-30.
/**
/** EDUSYSTEM-30 STARTS HERE!

SYSCOM,	CLA IAC		/LOOKUP 'EDU30.SV' ON THE SYSTEM
	CIF 10
	JMS I (200	/OF COURSE THE USR IS IN CORE!
	2
	DBASIC
	0
	JMP I (7600	/NOT FOUND - WE CAN'T DO ANYTHING
	CLA CLL CML RTL	/ADD 2 TO SKIP OVER CCB AND THIS PAGE
	TAD .-4		/STARTING BLOCK
	DCA DOFFSET
	JMP BOOT	/START UP

DBASIC,	FILENAME EDU30.SV

	PAGE
	ENPUNCH
	$



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