/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 /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 $