mirror of
https://github.com/PDP-10/its.git
synced 2026-01-18 01:02:15 +00:00
2074 lines
68 KiB
Diff
2074 lines
68 KiB
Diff
|
||
;COMPARISON OF DSK:SYSEN1;@ 695 AND DSK:GUEST4;SKEF NEWAT
|
||
;OPTIONS ARE /E /L /W /3
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 2-5 (1616) AFTER P=:
|
||
1) ;;; GLS Guy L. Steele Jr. (GLS@MIT-MC)
|
||
1) ;;; RMS Richard M. Stallman (RMS@MIT-AI)
|
||
1) ;;; RHG/RG02 Richard H. Gumpertz (Gumpertz@CMU-10A)
|
||
1) ;;; MRC Mark Crispin (MRC@SU-AI)
|
||
1) ;;; MOON David A. Moon (MOON@MIT-MC)
|
||
1) ;;; EAK Earl A. Killian (EAK@MIT-MC)
|
||
1) ;;; MT Michael Travers (MT@MIT-XX)
|
||
1) ;;; JMN Joseph M. Newcomer (Newcomer@CMU-10A)
|
||
1) ;;; KLH Ken Harrenstien (KLH@MIT-AI/SRI-NIC)
|
||
1) ;;; THE AUTHORITATIVE SOURCE FOR @ IS [MIT-AI]SYSEN1;@ >
|
||
1) ;; WARNING: RMS, MRC, AND GLS DON'T TAKE THIS BUREAUCRACY VERY SERIOUSLY.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 2-5 (1616) AFTER P=:
|
||
2) ;;; GLS Guy L. Steele Jr. (GLS@MIT-MC)
|
||
2) ;;; RMS Richard M. Stallman (RMS@MIT-AI)
|
||
2) ;;; RHG/RG02 Richard H. Gumpertz (Gumpertz@CMU-10A)
|
||
2) ;;; MRC Mark Crispin (MRC@SU-AI)
|
||
2) ;;; MOON David A. Moon (MOON@MIT-MC)
|
||
2) ;;; EAK Earl A. Killian (EAK@MIT-MC)
|
||
2) ;;; MT Michael Travers (MT@MIT-XX)
|
||
2) ;;; JMN Joseph M. Newcomer (Newcomer@CMU-10A)
|
||
2) ;;; KLH Ken Harrenstien (KLH@MIT-AI/SRI-NIC)
|
||
2) ;;; LNZ Leonard N. Zubkoff (Zubkoff@CMU-20C)
|
||
2) ;;; SKEF J. Skeffington Wholey (Wholey@CMU-20C)
|
||
2) ;;; THE AUTHORITATIVE SOURCE FOR @ IS [MIT-AI]QUUX;@ >
|
||
2) ;; WARNING: RMS, MRC, AND GLS DON'T TAKE THIS BUREAUCRACY VERY SERIOUSLY.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 2-476 (27936) AFTER P=:
|
||
1) ;;; 16-Jan-81 KLH Added /D[Canon] as an ersatz XGP which accepts
|
||
1) ;;; ITS XGP format files, but has different resolution.
|
||
1) ;;; Fixed bug at FPSFN3, the minus-flag in B wasn't
|
||
1) ;;; being saved during font filename parsing.
|
||
1) ;;; Notiüyr à 10X monitor bug: GTJFN of a FùÌPaÙl by itself
|
||
1) ;;; will cause "No such version" error on 10X, even tho
|
||
1) ;;; the GJ%OFG bit is set!!! Not sure if buggy on T20 too.
|
||
1) ;;; Apparently only sure way to win is to parse the string
|
||
1) ;;; completely like MIDAS does, rather than trying to
|
||
1) ;;; get GTJFN to do the work.
|
||
1) ;;; Fixeüˆ#P‰FN3 to only zap last 3 chars of file extension
|
||
1) ;;; if on DOS system, rather than NOITS.
|
||
1) ;;; Fixed MCRFN4 to account for overlarge page #'s (was
|
||
1) ;;; running CREF lines off the right margin). In general,
|
||
1) ;;; any text of more than 10,000 lines per page is going
|
||
1) ;;; to lose grossly... in case anyone didn't know this.
|
||
1) ;;; (the doc doesn't mention this sort of thing)
|
||
1) ;;; 1-Mar-82 JMN Added device Florida (Florida Data Systems OSP-130)
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 2-478 (28007) AFTER P=:
|
||
2) ;;; 1-Mar-82 JMN Added device Florida (Florida Data Systems OSP-130)
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 2-499 (29260) AFTER P=:
|
||
1) ;;; 29-Jun-82 KLH Took out the ADD C,FNTBAS at FNTCPP-3 (calculating
|
||
1) ;;; default # lines on page) because it seems to be
|
||
1) ;;; completely wrong-headed; it was screwing up
|
||
1) ;;; our Canon spooler (which is diligent about going to
|
||
1) ;;; ñ;²øé page if a line runs over BOTMø4”®A If someone
|
||
1) ;;; can explain why it works for XGP, and prove it isn't
|
||
1) ;;; an XGP bug, please do so.
|
||
1) ;;; FINALLY!!!!! Rü¼6aÇed losing TNX GTJFN filename parser
|
||
1) ;;; with by-hand parser from MIDAS source. Incomplete
|
||
1) ;;; filenames now default sensibly, tho still have sixbit
|
||
1) ;;; restrictiýû¹ ßn FN1 and EXT.
|
||
1) ;;; 25-Sep-82 KLH Increased DIRDLN to 4000 (so can list ITS)
|
||
1) SUBTTL SYSTEM-DEPENDENT DEFINITIONS
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 2-484 (28366) AFTER P=:
|
||
2) ;;; 17-Mar-82 JMN Removed device Florida since we didn't get it after all
|
||
2) ;;; ñ0rdËüˆ2eíice Sanders
|
||
2) ;;; 17-Mar-82 JMN Experienced numerous problems with copyrights coming
|
||
2) ;;; out on the next page. Looking at the code after
|
||
2) ;;; OUTPP2, I found that the IDIVI and test for
|
||
2) ;;; zero remainder make sense only if the increment is
|
||
2) ;;; 1! Stepping by more than 1, as is done a few
|
||
2) ;;; instructions before that, will cause the
|
||
2) ;;; test to fail.
|
||
2) ;;; 28-May-82 LNZ Change Sanders support to handle margins properly; that
|
||
2) ;;; is, send VMON rather than VMOFF.
|
||
2) ;;; 7-Jun-82 JMN Fixed GETHST code so that if it fails (such as on a
|
||
2) ;;; non-TOPS-20AN system) AT keeps running
|
||
2) ;;; 21-Aug-82 SKEF Added "new" LREC format for TNX sites. Groups start
|
||
2) ;;; with an ascii string which is the name of the file,
|
||
2) ;;; followed by a zero WORD, followed by data. In @ file
|
||
2) ;;; blocks, SNAME is a byte pointer to the file name.
|
||
2) ;;; NAMBLK is now an area in which name strings are consed.
|
||
2) SUBTTL SYSTEM-DEPENDENT DEFINITIONS
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 3-85 (32031) AFTER P=:
|
||
1) ; True site-dependent (as opposed to OS-dependent) stuff
|
||
1) IFE <.SITE 0>-<SIXBIT /SRI-NI/>,[
|
||
1) XGPFMT==:ITSFLG ; ITS type XGP cmds, but require /D[C]
|
||
1) ; to select Canon. Later fix up?
|
||
1) FNTDSN==:144 ; <FONTS> directory on SRI-NIC
|
||
1) ] ;SRI-NIC
|
||
1) IFNDEF XGPFMT,[ ;WHAT SORT OF XGP COMMANDS DO WE WANT TO OUTPUT?
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 4-2 (31482) AFTER P=:
|
||
2) IFNDEF XGPFMT,[ ;WHAT SORT OF XGP COMMANDS DO WE WANT TO OUTPUT?
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 4-13 (32674) AFTER P=:
|
||
1) IFNDEF FLAFLG,[ ; Support Florida Data Systems OSP/130
|
||
1) FLAFLG==:1 ; yes
|
||
1) IFNDEF FLAFLG, FLAFLG==:0
|
||
1) ];IFNDEF FLAFLG
|
||
1) ;NONZERO TO ALLOW PRESS FILE OUTPUT.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 4-12 (31871) AFTER P=:
|
||
2) ifNDEF VFXFLG,[ ; Support Sanders VariFlex S700
|
||
2) VFXFLG==:1 ; yes
|
||
2) IFNDEF VFXFLG, VFXFLG==:0
|
||
2) ];IFNDEF VFXFLG
|
||
2) ;NONZERO TO ALLOW PRESS FILE OUTPUT.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 4-48 (33345) AFTER P=:
|
||
1) DEFINE FLORIDA
|
||
1) ù1§ <20>LAFLG!TERMIN
|
||
1) DEFINE NOFLORIDA
|
||
1) IFE FLAFLG!TERMIN
|
||
1) DEFINE XGPRES
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 4-47 (32535) AFTER P=:
|
||
2) DEFINE VARIFLEX
|
||
2) IFN VFXFLG!TERMIN
|
||
2) DEFINE NOVARIFLEX
|
||
2) IFE VFXFLG!TERMIN
|
||
2) ñ1"Æ“NE XGPRES
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 7-44 (40070) AFTER OLOOP:
|
||
1) IFNDEF DIRDLN,DIRDLN==:4000 ;DEFAULT DIRBUF SIZE IN 18-BIT BYTES
|
||
1) CMU,IFNDEF DFMARG,DFMARG==:394. ;AT CMU, USE 1CM MARGINS
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 7-44 (39264) AFTER OLOOP:
|
||
2) IFNDEF DIRDLN,DIRDLN==:2000 ;DEFAULT DIRBUF SIZE IN 18-BIT BYTES
|
||
2) CMU,IFNDEF DFMARG,DFMARG==:394. ;AT CMU, USE 1CM MARGINS
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 10-4 (46919) AFTER C.CREF==:
|
||
1) ;THE FIRST WORD OF AN LREC FILE SHOULD NOW BE SIXBIT/LREC/+1.
|
||
1) ;ATTEMPTS TO USE FILES WHICH DO NOT SATISFY THAT CRITERION
|
||
1) ;CAUSE ERROR MESSAGES.
|
||
1) ;THE REST OF FILE IS COMPOSED OF ENTRIES, ONE AFTER THE OTHER.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 10-4 (46113) AFTER C.CREF==:
|
||
2) ;THE FIRST WORD OF AN LREC FILE SHOULD NOW BE SIXBIT/LREC/+1 FOR NOTNX SYSTEMS
|
||
2) ;AND SIXBIT/LREC/+2 FOR TNX SYSTEMS. THE LREC FORMATS DIFFER IN THE WAY A
|
||
2) ;FILENAME IS STORED. THE FORMAT FOR NOTNX SYSTEMS WILL BE CALLED THE "OLD"
|
||
2) ;FORMAT, AND THE TNX FORMAT WILL BE CALLED THE "NEW" FORMAT.
|
||
2) ;ATTEMPTS TO USE FILES WHICH DO NOT SATISFY THE PROPER CRITERION (WITH RESPECT
|
||
2) ;TO TNX-ISHNESS) CAUSE ERROR MESSAGES.
|
||
2) ;THE REST OF FILE IS COMPOSED OF ENTRIES, ONE AFTER THE OTHER.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 10-11 (47310) AFTER C.CREF==:
|
||
1) ;AN ENTRY BEGINS WITH 4 WORDS GIVING THE SNAME, DEV, FN1 AND FN2 OF THE FILE.
|
||
1) ;THEN COME 0 OR MORE SUBENTRIES, FOLLOWED BY A -1 SIGNIFYING THE END
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 10-14 (46772) AFTER C.CREF==:
|
||
2) ;AN OLD FORMAT ENTRY BEGINS WITH 4 WORDS GIVING THE SNAME, DEV, FN1 AND FN2 OF
|
||
2) ;THE FILE. A NEW FORMAT ENTRY BEGINS WITH AN ASCIZ STRING GIVING THE FILENAME
|
||
2) ;FOLLOWED BY A 0 WORD.
|
||
2) ;THEN COME 0 OR MORE SUBENTRIES, FOLLOWED BY A -1 SIGNIFYING THE END
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 13-14 (52678) AFTER DEVPDO==:
|
||
1) DEVANA==:6 ; Anadex something
|
||
1) DEVCGP==:7 ; Canon LBP-10 hacking XGP-type input
|
||
1) DEVFLA==:10 ; Florida something
|
||
1) DEVMAX==:1ö"]±A+ <LARGEST LEGAL DEVICE VALUE>
|
||
1) XGPP:ñ,»a => DEVICE DOESN'T CONTAIN XGP, -1 => DEVIXG, +1 => DEVCXG
|
||
1) ;-2 => DEVCGP (ersatz ITS XGP)
|
||
1) øsâT³P: DFLANG ;TYPE OF INPUT EXPECTED (WHAT LANGUAGE IT'S IN)
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 13-14 (52245) AFTER DEVPDO==:
|
||
2) DEVMAX==:10 ;1 + <LARGEST LEGAL DEVICE VALUE>
|
||
2) XGPP: 0 ;0 => DEVICE DOESN'T CONTAIN XGP, -1 => DEVIXG, +1 => DEVCXG
|
||
2) CODTYP: DFLANG ;TYPE OF INPUT EXPECTED (WHAT LANGUAGE IT'S IN)
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 15-56 (61203) AFTER FWIDFL:
|
||
1) FWIDFL: XWD 0,0
|
||
1) SIXBIT /FON/ ;on FON:
|
||
1) SIXBIT /FONTS/
|
||
1) SIXBù5/¯ID/
|
||
1) ];CMU20
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 15-56 (60622) AFTER FWIDFL:
|
||
2) FWIDFL: 440700,,[asciz /FON:Fonts.Wid/]
|
||
2) ];CMU20
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 15-63 (61337) AFTER FWIDFL:
|
||
1) FWIDFL: 0
|
||
1) SIXBIT /SYS/
|
||
1) SIXBIT /FONTS/
|
||
1) SIXBIT /WID/
|
||
1) ];NOCMU20
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 15-60 (60723) AFTER FWIDFL:
|
||
2) øÕäÄ<C3A4>L: 440700,,[asciz /PúnžFßýÝ9¾<39>onts.Wid/]
|
||
2) û®çO‡MU20
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 19-6 (69932) AFTER F.==:
|
||
1) F.ISNM==:0 ;INPUT SNAME
|
||
1) F.IDEV==:1 ;INPUT DEVICE
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 19-6 (69307) AFTER øËž½u
|
||
2) øË¤Ó<C2A4>M==:0 ;INPUT SNAME, or byte pointer to name string
|
||
2) F.IDEV==:1 ;INPUT DEVICE
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 19-55 (72246) AFTER MULTI:
|
||
1) NAMSIZ==:40. ; big buffer for accumulating filenames
|
||
1) NAMBLK: BLOCK NAMSIZ ; here it is
|
||
1) JFNBLK: BLOCK 17 ; for longform JFN
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 19-55 (71653) AFTER MULTI:
|
||
2) NAMSIZ==:200. ; big buffer for accumulating filenames
|
||
2) NAMBLK: BLOCK NAMSIZ ; here it is
|
||
2) NAMEND:: ; and here it isn't
|
||
2) NAMNXT: NAMBLK ; pointer to next free word in it
|
||
2) JFNBLK: BLOCK 17 ; for longform JFN
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 22-14 (78304) AFTER CRDFN2:
|
||
1) IPTFN2: OFFSET -.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 22-14 (77795) AFTER CRDFN2:
|
||
2) NOTNX,[
|
||
2) IPTFN2: OFFSET -.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 22-26 (78555) AFTER T10,CODTXT
|
||
1) TNX,CODTXT::0
|
||
1) CODMDL:: SIXBIT/MDL/
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 22-27 (78055) AFTER T10,CODTXT
|
||
2) CODMDL:: SIXBIT/MDL/
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 22-36 (78734) AFTER T10,FNDFN2
|
||
1) TNX,FNDFN2: SIXBIT/KST/
|
||
1) CMU,FNDFN2: SIXBIT/KST/
|
||
1) SAI,FNDFN2: SIXBIT/FNT/
|
||
1) û®çO“TS
|
||
1) OPTFN2: OFFSET -.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 22-36 (78219) AFTER T10,FNDFN2
|
||
2) CMU,FNDFN2: SIXBIT/KST/
|
||
2) SAI,FNDFN2: SIXBIT/FNT/
|
||
2) ];NOTNX
|
||
2) TNX,[
|
||
2) IPTFN2: OFFSET -.
|
||
2) CODMID:: 440700,,[ASCIZ /MID/]
|
||
2) CODRND:: 440700,,[0]
|
||
2) CODFAI:: 440700,,[ASCIZ /FAI/]
|
||
2) CODP11:: 440700,,[ASCIZ /M11/]
|
||
2) CODLSP:: 440700,,[ASCIZ /LSP/]
|
||
2) CODM10:: 440700,,[ASCIZ /MAC/]
|
||
2) CODUCO:: 440700,,[0]
|
||
2) CODTXT:: 440700,,[0]
|
||
2) CODMDL:: 440700,,[ASCIZ /MDL/]
|
||
2) CODH16:: 440700,,[ASCIZ /H16/]
|
||
2) CODMAX:: OFFSET 0
|
||
2) LRCFN2: 440700,,[ASCIZ /LREC/]
|
||
2) ALRFN2: 440700,,[ASCIZ /LRC/]
|
||
2) ùó)F<>2: 440700,,[ASCIZ /OLR/]
|
||
2) CRDFN2: 440700,,[ASCIZ /ATC/]
|
||
2) TNX,FNDFN2: 440700,,[ASCIZ /KST/]
|
||
2) ];TNX
|
||
2) ];NOITS
|
||
2) NOTNX,[
|
||
2) OPTFN2: OFFSET -.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 22-56 (79111) AFTER OPTFN2:
|
||
1) DEVCGP:: SIXBIT/CGP/
|
||
1) DEVFLA:: SIXBIT/FLA/
|
||
1) DEVMAX::OFFSET 0
|
||
1) SUBTTL LINE AND PAGE LENGTH BY DEVICE
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 22-80 (79099) AFTER OPTFN2:
|
||
2) DEVVFX:: SIXBIT/VFX/
|
||
2) DEVMAX::OFFSET 0
|
||
2) ];NOTNX
|
||
2) TNX,[
|
||
2) OPTFN2: OFFSET -.
|
||
2) DEVLPT:: 440700,,[ASCIZ/LST/]
|
||
2) ø‘kI±øî<C3B8> i40700,,[ASCIZ/XGP/]
|
||
2) DEVCXG:: 440700,,[ASCIZ/XGO/]
|
||
2) DEVGLD:: 440700,,[ASCIZ/GLD/]
|
||
2) DEVLDO:: 440700,,[ASCIZ/PRESS/]
|
||
2) DEVPDO:: 440700,,[ASCIZ/PRESS/]
|
||
2) DEVANA:: 440700,,[ASCIZ/ANA/]
|
||
2) DEVVFX:: 440700,,[ASCIZ/VFX/]
|
||
2) DEVMAX::OFFSET 0
|
||
2) ];TNX
|
||
2) SUBTTL LINE AND PAGE LENGTH BY DEVICE
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 23-14 (79460) AFTER DEVANA:
|
||
1) DEVCGP:: 119.
|
||
1) DEVFLA:: 132.
|
||
1) DEVMAX::OFFSET 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 23-14 (79739) AFTER DEVANA:
|
||
2) DEVVFX:: 132.
|
||
2) DEVMAX::OFFSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 23-28 (79753) AFTER DEVANA:
|
||
1) DEVCGP:: 85.
|
||
1) DEVFLA:: 60.
|
||
1) DEVMAX::OFFSET 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 23-27 (80017) AFTER DEVANA:
|
||
2) DEVVFX:: 60.
|
||
2) DEVMAX::OFFSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 23-42 (80043) AFTER DEVANA:
|
||
1) DEVCGP:: 240.
|
||
1) DEVFLA:: 0
|
||
1) DEVMAX::OFFSET 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 23-40 (80293) AFTER DEVANA:
|
||
2) DEVVFX:: 960.
|
||
2) DEVMAû<0E>O<EFBFBD>FSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 23-56 (80346) AFTER DEVANA:
|
||
1) DEVCGP:: 240.
|
||
1) DEVFLA:: 0
|
||
1) DEVMAX::OFFSET 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 23-53 (80584) AFTER DEVANA:
|
||
2) DEVVFX:: 288.
|
||
2) DEVMAX::OFFSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 23-70 (80642) AFTER DEVANA:
|
||
1) DEVCGP:: 1980. ; Theoretically 2040 but right margin has 60-pixel bug
|
||
1) DEVFLA:: 0
|
||
1) DEVMAX::OFFSET 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 23-66 (80868) AFTER DEVANA:
|
||
2) DEVVFX:: 8160.
|
||
2) DEVMAX::OFFSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 23-84 (81015) AFTER DEVANA:
|
||
1) DEVCGP:: 240.*11. ; Should be able to hack full page.
|
||
1) ø‘kF™ø.<2E> a
|
||
1) ø‘kMƒX::OFøÔâÔA0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 23-79 (81174) AFTER DEVANA:
|
||
2) DEVVFX:: 3168.
|
||
2) DEVMAX::OFFSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 23-100 (81416) AFTER DEVANA:
|
||
1) DEVCGP:: 0,,-2
|
||
1) DEVFLA:: 0
|
||
1) DEVMAX::OFFSET 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 23-94 (81523) AFTER DEVANA:
|
||
2) DEVVFX:: 0
|
||
2) DEVMAX::OFFSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 26-20 (84247) AFTER FLSNLR:
|
||
1) FLSFNT::[ASCIZ /Font file not in known format (KST or FNT)/]
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 26-20 (84338) AFTER FLSNLR:
|
||
2) TNX,FLSNNL::[ASCIZ /Old format LREC file. Run ZAPLRC.EXE to convert this file to the new format./]
|
||
2) FLSFNúŽ<C3BA>[ƒSCIZ õñ·îé file not in known format (KSTôù <20>ùÕ¯»
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 37-19 (105886) AFTER SYSINI:
|
||
1) TNX,.ERR This 1-word lossage should be fixed.
|
||
1) T20,[
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 37-19 (106078) AFTER SYSINI:
|
||
2) T20,[
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 37-28 (106160) AFTER SYSINI:
|
||
1) jrst MFail ; couldn't
|
||
1) setzm machine ; indicate ASCII value is valid
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 37-27 (106305) AFTER SYSINI:
|
||
2) erjmp MFail ; couldn't
|
||
2) setzm machine ; indicate ASCII value is valid
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 37-106 (107924) AFTER GOSCEL:
|
||
1) CAIE A,"a
|
||
1) CAIN A,"A ; If not "A" for "ATSIGN"
|
||
1) JRST RSCAN1
|
||
1) øóéËùŽ„Ãƒù3<C3B9>AYûÒ„‰w assume line is not ü(3ïßd cmd string.
|
||
1) JRST POPJ1 ; (this is pretty dumb, though)
|
||
1) PBIN
|
||
1) JRST GOSCEL
|
||
1) úTáÁ<C3A1>ö.„Ð…IN ÷h)åÃrch for space
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 37-105 (108070) AFTER GOSCEL:
|
||
2) ; CAIE A,"a
|
||
2) ; CAIN A,"A ; If not "A" for "ATSIGN"
|
||
2) ; JRST RSCAN1
|
||
2) ;GOSCEL: CAIN A,^J ; assume line is not a good cmd string.
|
||
2) ; JRST POPJ1 ; (this is pretty dumb, though)
|
||
2) ; PBIN
|
||
2) ; JRST GOSCEL
|
||
2) RSCAN1: PBIN ; Search for space
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-7 (117783) AFTER FPFILE:
|
||
1) MOVE CP,[440700,,NAMBLK]
|
||
1) SETZ CC,
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-7 (117936) AFTER FPFILE:
|
||
2) move cp, namnxt ; get addr of next file name word
|
||
2) hrli cp, 440700 ; make it a 7 bit byte pointer
|
||
2) ñ;wöËm cp,ôLSñ.Ðséore bÿ=2 áýúwtËr in file block
|
||
2) SETZ CC,
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-35 (118577) AFTER FPLOO2:
|
||
1) JRST FPLOOP ; get more
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-37 (118858) AFTER FPLOO2:
|
||
2) hrrz a, cp ; get address
|
||
2) cail a, namend ; skip if we haven't destroyed things
|
||
2) jrsþ‚PfÝþy÷îñ"] Ëýœò ïe ranôúôAýù<C3BD>fÓlenamü¨9ðÃce
|
||
2) JRST FPLOOP ; get more
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-40 (118702) AFTER FPSPC:
|
||
1) MOVE A,[440700,,NAMBLK]
|
||
1) PUSHJ P,TNXRFD
|
||
1) IFN 0,[
|
||
1) ;;; Now, sü½uá the longform GTJFN arguments that are nýýaÙready
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-45 (119122) AFTER FPSPC:
|
||
2) ;;; Now, set up the longform GTJFN arguments that are not already
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-63 (119336) AFTER FPSPC:
|
||
1) HRROI B,NAMBLK
|
||
1) PUSHJ P,CVJFN ; Get JFN
|
||
1) JRST FILBOG ; bogus filespec
|
||
1) PUSHJ P,UNJFN
|
||
1) RLJFN ÷h)eÙü¸yåAJFN, don'tô²åÉ any more
|
||
1) NOP
|
||
1) ] ;IFN 0
|
||
1) FPSWL:
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-64 (119701) AFTER FPSPC:
|
||
2) MOVE B,0(P) ; Filename from file block
|
||
2) PUSHJ P,CVJFN ; Get JFN
|
||
2) JRST FILBOG ; bogus filespec
|
||
2) HRRI B,1(CP) ; 1 plus addr of last char -> A
|
||
2) MOVEM B,NAMNXT ; point to next free name word
|
||
2) RLJFN ; Release JFN, don't need any more
|
||
2) NOP
|
||
2)
|
||
2) FPSWL:
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-96 (119991) AFTER FILBOG:
|
||
1) ;;; SIXBIT word
|
||
1) UNJFN: PUSH P,D
|
||
1) PUSH P,A ; save JFN
|
||
1) HRROI A,NAMBLK ; where to write string
|
||
1) HRRZ B,(P) ; get JFN back
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-97 (120455) AFTER FILBOG:
|
||
2) ;;; SIXBIT word.
|
||
2) UNJFN: pusýx,Ar
|
||
2) PUSH P,D
|
||
2) PUSH P,A ; save JFN
|
||
2) hrro a, namnxt ; where to write string
|
||
2) hrr r, a ; address for call to JFN6
|
||
2) HRRZñ0–(¡õ"D‰wôòôAùQ§ Åack
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-105 (120219) AFTER UNJFN:
|
||
1) PUSHJ P,JFN6 ; convertô7 çixbit, return in A
|
||
1) MOVEM A,1(L)
|
||
1) ; Convert dev:<directory> to PPN
|
||
1) T20,[ HRROI A,NAMBLK
|
||
1) HRRZ B,(P)
|
||
1) ñ3gÖ‹ñ0Ö[c00000,,0] ; device and no punctuation
|
||
1) SETZ D,
|
||
1) JFNS
|
||
1) PUSH P,A ; save string pointer
|
||
1) PUSHJ P,JFN6 ; check for nullness
|
||
1) JUMPN A,JFNNZD ; non-null
|
||
1) MOVE A,[ASCII /PS/] ; dummy device
|
||
1) MOVEM A,NAMBLK
|
||
1) MOVE A,[260700,,NAMBLK] ; pointer to just past it
|
||
1) MOVEM A,(P)
|
||
1) JFNNZD:
|
||
1) MOVEI A,": ; Punctuation
|
||
1) IDPB A,(P) ; put it into string
|
||
1) MOVE A,NAMBLK ;PRESERVE STRUCTURE NAME
|
||
1) MOVE B,NAMBLK+1
|
||
1) MOVEM A,STRBUF
|
||
1) MOVEM B,STRBUF+1
|
||
1) MOVE A,(P) ; where to write directory name
|
||
1) HRRZ B,-1(P) ; get JFN back
|
||
1) MOVE C,[20000,,1] ; <directory>
|
||
1) JFNS ; convert to string
|
||
1) POP P,A ; pointer to where it should be
|
||
1) ILDB B,A ; anything?
|
||
1) SKIPN B
|
||
1) JRST FILZPP
|
||
1) MOVSI A,(RC%EMO) ; Want exact match
|
||
1) HRROI B,NAMBLK
|
||
1) RCDIR ; Error shouldn't happen
|
||
1) MOVE B,C ; Get dir # into B
|
||
1) ];T20
|
||
1) 10X,[ HRROI A,NAMBLK
|
||
1) HRRZ B,(P)
|
||
1) MOVE C,[20000,,0] ; "directory"
|
||
1) JFNS
|
||
1) MOVE A,[440700,,NAMBLK]
|
||
1) ILDB B,A ; Anything?
|
||
1) JUMPE B,FILZPP
|
||
1) SETZ A,
|
||
1) HRROI B,NAMBLK
|
||
1) STDIR
|
||
1) .VALUE ; No match - should never happen
|
||
1) .VALUE ; ambiguous - ditto
|
||
1) MOVE B,A ; Get dir # into B
|
||
1) ];10X
|
||
1)
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-108 (120736) AFTER UNJFN:
|
||
2) hrri d, 1(a) ; see if we ran out of string space
|
||
2) cail d, namend
|
||
2) jrst fnsgon ; yup, all gone
|
||
2) movem d, namnxt ; update next filename pointer
|
||
2) PUSHJ P,JFN6 ; convert to sixbit, return in A
|
||
2) ñ3gÖ‹ù¢`¬c(L)
|
||
2) ; Convert dev:<directory> to PPN@@@@We have to hack this sometime?
|
||
2) ;T20,ûbtråo a, namnxt ; pointer to next filename string
|
||
2) ; HRRZ B,(P)
|
||
2) ; MOVE C,[100000,,0] ; device and no punctuation
|
||
2) ; SETZ D,
|
||
2) ; JFNS
|
||
2) ; hrri d, 1(a) ; see if we ran out of string space
|
||
2) ; cail d, namend
|
||
2) ÷bPjåst fnsgon ; yup, all gone
|
||
2) ; movem d, namnxt ; update next filename pointer
|
||
2) ; PUSH P,A ; save string pointer
|
||
2) ; PUSHJ P,JFN6 ; check for nullness
|
||
2) ; JUMPN A,JFNNZD ; non-null
|
||
2) ; MOVE A,[ASCII /PS/] ; dummy device
|
||
2) ; MOVEM A,NAMBLK
|
||
2) ; MOVE A,[260700,,NAMBLK] ; pointer to just past it
|
||
2) ; MOVEM A,(P)
|
||
2) ;JFNNZD: MOVEI A,": ; punctuation
|
||
2) ; IDPB A,(P) ; put it into string
|
||
2) ; MOVE A,NAMBLK ;PRESERVE STRUCTURE NAME
|
||
2) ; MOVE B,NAMBLK+1
|
||
2) ; MOVEM A,STRBUF
|
||
2) ; MOVEM B,STRBUF+1
|
||
2) ; MOVE A,(P) ; where to write directory name
|
||
2) ; HRRZ B,-1(P) ; get JFN back
|
||
2) ; MOVE C,[20000,,1] ; <directory>
|
||
2) ; JFNS ; convert to string
|
||
2) ; POP P,A ; pointer to where it should be
|
||
2) ; ILDB B,A ; anything?
|
||
2) ; SKIPN B
|
||
2) ; JRST FILZPP
|
||
2) ; MOVSI A,(RC%EMO) ; Want exact match
|
||
2) ; HRROI B,NAMBLK
|
||
2) ; RCDIR ; Error shouldn't happen
|
||
2) ; MOVE B,C ; Get dir # into B
|
||
2) ;];T20
|
||
2) ;10X,[ HRROI A,NAMBLK
|
||
2) ; HRRZ B,(P)
|
||
2) ; MOVE C,[20000,,0] ; "directory"
|
||
2) ; JFNS
|
||
2) ; MOVE A,[440700,,NAMBLK]
|
||
2) ; ILDB B,A ; Anything?
|
||
2) ; JUMPE B,FILZPP
|
||
2) ; SETZ A,
|
||
2) ; HRROI B,NAMBLK
|
||
2) ; STDIR
|
||
2) ; .VALUE ; No match - should never happen
|
||
2) ; .VALUE ; ambiguous - ditto
|
||
2) ; MOVE B,A ; Get dir # into B
|
||
2) ;];10X
|
||
2)
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-158 (121533) AFTER FILZPP:
|
||
1) HRROI A,NAMBLK
|
||
1) HRRZ B,(P)
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-168 (122474) AFTER FILZPP:
|
||
2) hrro a, namnxt ; next free filename string
|
||
2) ñ:9rþKa ; address for call þ›ÐJ<C390>N6
|
||
2) HRRZ B,(P)
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-162 (121591) AFTER FILZPP:
|
||
1) PUSHJ P,JFN6
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-173 (122599) AFTER FILZPP:
|
||
2) hrri d, 1(a) ; see if we ran out of string space
|
||
2) cail d, namend
|
||
2) jrst fnsgon ; yup, all gone
|
||
2) movem d, namnxt ; update next filename pointer
|
||
2) PUSHJ P,JFN6
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-165 (121654) AFTER FILZPP:
|
||
1) HRROI A,NAMBLK
|
||
1) HRRZ B,(P)
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-180 (122813) AFTER FILZPP:
|
||
2) hrro a, namnxt ; next free filename string
|
||
2) hrr þKa ; address for call þ›ÐJ<C390>N6
|
||
2) HRRZ B,(P)
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-169 (121712) AFTER FILZPP:
|
||
1) PUSHJ P,JFN6
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-185 (122938) AFTER FILZPP:
|
||
2) hrri d, 1(a) ; see if we ran out of string space
|
||
2) cail d, namend
|
||
2) jrst fnsgon ; yup, all gone
|
||
2) movem d, namnxt ; update next filename pointer
|
||
2) PUSHJ P,JFN6
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-173 (121777) AFTER FILZPP:
|
||
1) POPJ P,
|
||
1) ÷nÝ Çýû»eåþˆ9ôåing in NAMøS% éo SIXBIT and leave in A
|
||
1) JFN6: PUSH P,CH
|
||
1) MOVE B,[440600,,A]
|
||
1) MOVE C,[440700,,NAMBLK]
|
||
1) SETZ A,
|
||
1) JFN6A: ILDB CH,C
|
||
1) ñ2ªÍ¡E CH,JFN6B
|
||
1) SUBI CH,40
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-193 (123154) AFTER FILZPP:
|
||
2) pop p, r
|
||
2) POPJ P,
|
||
2) ;;; convert string starting at what R points to to SIXBIT and leave in A
|
||
2) JFN6: PUSH P,CH
|
||
2) MOVE B,[440600,,A]
|
||
2) hrli r, 440700
|
||
2) SETZ A,
|
||
2) JFN6A: ILDB CH,r
|
||
2) JUMPE CH,JFN6B
|
||
2) SUBI CH,40
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 43-185 (121994) AFTER JFN6A:
|
||
1) JRST JFN6A
|
||
1) JFN6B: POP P,CH
|
||
1) POPJ P,
|
||
1) ÷nÝ ‡onvert the JFNBLK spü¸ÐtßôPJ<50>N
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 43-206 (123392) AFTER JFN6A:
|
||
2) JRST JFN6A
|
||
2) JFN6B: POP P,CH
|
||
2) POPJ P,
|
||
2) ;;; Cýû»eåþˆ:hË JFNBLK spec to a JFN
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 44-2 (122328) AFTER CVJFN:
|
||
1) SUBTTL File Description Storage (FILBLK's)
|
||
1) TNXSW==<T20FLG+10XFLG>
|
||
1) IFN TùÖ)×Y[
|
||
1) ITSSW==<DECSW==0>
|
||
1) ;VBLK
|
||
1) ; Definitions for indices into a FILBLK.
|
||
1) ; Scratch block FB is formed while defining indices...
|
||
1) FB: OFFSET -.
|
||
1) ; Lots of crocks depend on the exact order of these 4 items.
|
||
1) $F6DEV:: 0 ; SIXBIT Device name
|
||
1) $F6FNM:: $F6FN1:: 0 ; SIXBIT Filename (on ITS, FN1)
|
||
1) $F6TYP:: $F6FN2:: $F6EXT:: 0 ; SIXBIT Extension (on ITS, FN2)
|
||
1) $F6DIR:: 0ñ"D»ASIXBIT Directory (may be numerical PPN)
|
||
1) L$F6BLK==.
|
||
1) $FVERún<C3BA> IFGEN:÷H w File versý;÷ Qor generation). NUMBER, not string.
|
||
1) IFN TNXSW,[ ; Almost all entries here are BP's to ASCIZ strings.
|
||
1) $FDEV:: 0 ; Device name
|
||
1) $FDIR:: 0 ; Directory name
|
||
1) $FNAME:: 0 ; File name (i.e. main name)
|
||
1) $FTYPE:: $FEXT:: 0 ; File type (or extension)
|
||
1) $FTEMP:: 0 ; -1 => File is a temporary file.
|
||
1) $FACCT:: 0 ; Account string
|
||
1) $FPROT:: 0 ; Protection string
|
||
1) $FJFN:: 0 ; JFN for file (may be <desired JFN>,,<temp JFN>)
|
||
1) ]
|
||
1) IFN ITSSW\ø‘aÓ¯,[
|
||
1) $FDEV==:$F6DEV ; These definitions made so some common code can do
|
||
1) $FDIR==:$F6DIR ; the right things.
|
||
1) $FNAME==:$F6FNM
|
||
1) $FTYPE==:$F6TYP
|
||
1) $FEXT==:$F6TYP
|
||
1) ]
|
||
1) L$FBLK==. ; Length of a FILBLK.
|
||
1) OFFSET 0 ; End of index definitions.
|
||
1) ] ;TNXSW
|
||
1) IFN TNXSW,[ ; Moby conditional for Tenex reader.
|
||
1) ; TNXRFD - ATSIGN TNX filename reader.
|
||
1) ; Takes BP in A to ASCIZ string to parse.
|
||
1) ; Takes L as ptr to filename block to fill out.
|
||
1) ÷baìßüX²òç nothing.
|
||
1) TNXRFD:
|
||
1) .BEGIN RFDBLK
|
||
1) MAXIND==100.
|
||
1) FL20X==400000
|
||
1) FLUNRD==200000
|
||
1) FRCMND==2
|
||
1) FRNNUL==1
|
||
1) IFNDEF FRFDEV,FRFDEV==2 ; Set if read device.
|
||
1) IFNDEF FRFDIR,FRFDIR==1 ; Set if read directory.
|
||
1) FRFN1==4
|
||
1) IFNDEF FRFEXT,FRFEXT==FRFN1 ; Borrow this bit. Set if read extension.
|
||
1) FRARRO==10
|
||
1) F=R ; F must not == L.
|
||
1) FF=R+1
|
||
1) AA=R+2
|
||
1) T=R+3
|
||
1) TT=R+4
|
||
1) INSIRP PUSH P, A B C D F FF AA T TT
|
||
1) SETZ FF, ; set up flags
|
||
1) T20, TLO FF,FL20X
|
||
1) MOVEI F,FB ; Point to scratch FB
|
||
1) MOVEM A,RCHBP ; Save BP to asciz string
|
||
1) SETZM FB
|
||
1) MOVE A,[FB,,FB+1]
|
||
1) BLT A,FB+L$FBLK-1
|
||
1) PUSHJ P,TRFD
|
||
1) INSIRP POP P, TT T AA FF F D C B
|
||
1) PUSH P,F
|
||
1) MOVEI F,FB
|
||
1) PUSHJ P,CVFSIX ; Convert to sixbit entries
|
||
1) IRP STF,,[DIR,DEV,FN1,FN2]
|
||
1) MOVE A,$F6!STF(F)
|
||
1) MOVEM A,(L).IRPCNT
|
||
1) TERMIN
|
||
1) PUSHJ P,TDIRNM
|
||
1) CAIE A, ; If got a dir number,
|
||
1) SETZM 1(L) ; Zap the device field.
|
||
1) MOVEM A,0(L) ; Else keep it anyway, store result.
|
||
1) POP P,F
|
||
1) POP P,A
|
||
1) APOPJ: POPJ P,
|
||
1) ; TDIRNM - Given filblk pointed to by F, returns in A the dir #
|
||
1) ; for dev/dir combination. Returns 0 if failure.
|
||
1) TDIRNM: SKIPN A,$FDIR(F) ; Get BP to dir name
|
||
1) POPJ P, ; Not specified, leave all alone.
|
||
1) PUSH P,B
|
||
1) 10X,[
|
||
1) MOVE B,A
|
||
1) SETZ A,
|
||
1) STDIR
|
||
1) SETZ A, ; No match - should never happen
|
||
1) SETZ A, ; ambiguous - ditto
|
||
1) ];10X
|
||
1) T20,[ PUSH P,C
|
||
1) SKIPN A,$FDEV(F) ; Device exists?
|
||
1) MOVE A,[440700,,[ASCIZ /PS/]] ; dummy device
|
||
1) SKIPA B,[440700,,STRBUF]
|
||
1) IDPB C,B
|
||
1) ILDB C,A
|
||
1) JUMPN C,.-2
|
||
1) MOVEI C,":
|
||
1) IDPB C,B
|
||
1) MOVEI C,"< ;>
|
||
1) IDPB C,B
|
||
1) SKIPA A,$FDIR(F)
|
||
1) IDBP C,B
|
||
1) ILDB C,A
|
||
1) JUMPN C,.-2 ;<
|
||
1) MOVEI C,">
|
||
1) IDPB C,B
|
||
1) SETZ C,
|
||
1) IDPB C,B
|
||
1) MOVSI A,(RC%EMO) ; Want exact match
|
||
1) HRROI B,STRBUF
|
||
1) RCDIR ; Error shouldn't happen
|
||
1) ERJMP [SETZ C, ? JRST .+1]
|
||
1) MOVE A,C ; Get dir # into A
|
||
1) POP P,C
|
||
1) ];T20
|
||
1) POP P,B
|
||
1) POPJ P,
|
||
1) ; TRFD - TENEX-style Filename Reader.
|
||
1) ; Takes input from RCH.
|
||
1) ; Deposits name strings into filblk F points to.
|
||
1) ; Clobbers A,B,C,D, (and AA,T,TT due to FNCHK)
|
||
1) ; Uses FRFEXT flag to see if already read extension (type) or not.
|
||
1) ; Refuses to accept existing defaults for version, ;T, account,
|
||
1) ; protection, or JFN. It will also zap an existing directory
|
||
1) ; default if a device is specified, and vice versa. This is so that
|
||
1) ; logical names will win a little better.
|
||
1) ; Implements crufty ^R hack (if see ^R, act as if just starting to
|
||
1) ; read filename, so effect is stuff before ^R has set defaults.)
|
||
1) TRFD: TRZ FF,FRNNUL
|
||
1) SETZM $FJFN(F) ; Zap JFN since the filename we'll read won't match it.
|
||
1) SETZM $FACCT(F) ; Also zap other things that we don't want defaulted.
|
||
1) SETZM $FPROT(F)
|
||
1) SETZM $FTEMP(F)
|
||
1) SETZM $FVERS(F)
|
||
1) TRFD01: TRZ FF,FRFEXT+FRFDEV+FRFDIR ; Jump here if ^R seen.
|
||
1) TRFD10: PUSHJ P,GPASST ; remove tabs, spaces and get first non-tab/space
|
||
1) TRNN FF,FRCMND ; If parsing command line,
|
||
1) CAIE A,"; ; or if char isn't semicolon,
|
||
1) JRST TRFD21 ; just handle normally.
|
||
1) TRFD15: PUSHJ P,RCH ; Semi-colon and not command line, it's a comment!
|
||
1) CAIE A,^M ; So flush rest, up to EOL.
|
||
1) JRST TRFD15
|
||
1) POPJ P,
|
||
1) TRFD1: TLO FF,FLUNRD ; come here to re-read last char
|
||
1) TRFD2: PUSHJ P,RCH ; Get char
|
||
1) TRFD21: CAIE A,40 ; Space? (come here to scan already-read char)
|
||
1) CAIN A,^I ; or tab?
|
||
1) JRST [TRNE FF,FRCMND ; Space/tab, if reading command line
|
||
1) JRST TRFD2 ; then ignore and continue scanning (for switches), but
|
||
1) JRST TRFD15] ; if not in cmd line, go flush entire rest of line!
|
||
1) CAIN A,^M ; End of line?
|
||
1) POPJ P, ; If so, obviously done.
|
||
1) CAIN A,^R ; Crufty ^R hack?
|
||
1) JRST TRFD01 ; Sigh, pretend starting over.
|
||
1) TRNN FF,FRCMND ; Must we check for cmd line frobs?
|
||
1) JRST TRFD22 ; Nope, skip them.
|
||
1) ; Must check for chars special only in command line.
|
||
1) CAIN A,"=
|
||
1) MOVEI A,"_
|
||
1) CAIE A,"_ ; backarrow is filename terminator...
|
||
1) CAIN A,", ; as is comma.
|
||
1) POPJ P,
|
||
1) CAIN A,"! ; For CCL hacking...
|
||
1) POPJ P, .SEE RFDRUN
|
||
1) ; PUSHJ P,CMDSW ; Check for switches...
|
||
1) ; JRST TRFD21 ; got some, process next char (returned by CMDSW)
|
||
1) ; Skips if none, drop thru.
|
||
1) ; Now see if char signifies start of anything in particular.
|
||
1) TRFD22: CAIE A,"< ; Start of directory name?
|
||
1) JRST TRFD24 ; No
|
||
1) PUSHJ P,RCH
|
||
1) PUSHJ P,TRFDW ; Read word, starting with next char
|
||
1) TRFD23: CAIN A,". ; Allow . as part of directory name
|
||
1) JRST [ PUSHJ P,TRFDW5 ; Read a continuation to this word
|
||
1) JRST TRFD23] ; And try again
|
||
1) MOVEI D,$FDIR ; Set up index.
|
||
1) CAIN A,"> ; Terminator should be end of dir name...
|
||
1) PUSHJ P,RCH ; If so, get next to avoid scan of ">".
|
||
1) ; else bleah, but aren't supposed to fail...
|
||
1) TRNN FF,FRFDEV ; Unless a device has been explicitly given,
|
||
1) SETZM $FDEV(F) ; zap any furnished default. 0 means DSK.
|
||
1) TRO FF,FRFDIR ; Now say dir was explicitly given.
|
||
1) JRST TRFD6 ; Go store it.
|
||
1) TRFD24: CAIN A,". ; Start of $FTYPE or $FVERS (20x)?
|
||
1) JRST [ MOVEI D,$FTYPE ; Assume reading $FTYPE field,
|
||
1) TLNE FF,FL20X ; always if 10X, but if really on 20X, then
|
||
1) TRON FF,FRFEXT ; use $FTYPE only if not already seen.
|
||
1) JRST TRFD4 ; $FTYPE - jump to get word & store.
|
||
1) PUSHJ P,TRFDNM ; $FVERS - 20X and $FTYPE already seen. Get #.
|
||
1) MOVEM B,$FVERS(F) ; Store it away if successful.
|
||
1) JRST TRFD1] ; and go re-read delimiting char.
|
||
1) CAIN A,"; ; Start of $FVERS (10x) or attribute?
|
||
1) JRST [ PUSHJ P,RCH ; Find what next char is.
|
||
1) CAIL A,"a ; Must uppercasify.
|
||
1) CAILE A,"z
|
||
1) CAIA
|
||
1) SUBI A,40
|
||
1) CAIN A,"T ; Temporary file?
|
||
1) JRST [ SETOM $FTEMP(C)
|
||
1) JRST TRFD2]
|
||
1) CAIN A,"A ; Account?
|
||
1) JRST [ MOVEI D,$FACCT ; Set index, and
|
||
1) JRST TRFD4] ; go gobble following word.
|
||
1) CAIN A,"P ; Protection?
|
||
1) JRST [ MOVEI D,$FPROT ; Set index, and
|
||
1) JRST TRFD4] ; go gobble following word.
|
||
1) TLO FF,FLUNRD ; Not alpha, try numeric. Re-read char,
|
||
1) PUSHJ P,TRFDNM ; trying to parse as number.
|
||
1) MOVEM B,$FVERS(F) ; Win, parsed as number! Store it.
|
||
1) JRST TRFD1] ; If none of above, ignore ";" entirely.
|
||
1) PUSHJ P,TRFDW ; Let's try reading it as word,
|
||
1) JUMPLE C,APOPJ ; If nothing read, assume it's some terminating delimiter.
|
||
1) CAIN A,": ; Else have something, check trailing delim for special cases
|
||
1) JRST [ MOVEI D,$FDEV ; Aha, a device.
|
||
1) PUSHJ P,RCH ; Flush the terminator & get next char.
|
||
1) TRNN FF,FRFDIR ; Unless dir was explicitly given,
|
||
1) SETZM $FDIR(F) ; zap furnished default. 0 uses connected dir.
|
||
1) TRO FF,FRFDEV ; Say device was explicitly given, and
|
||
1) JRST TRFD6] ; store name away.
|
||
1) MOVEI D,$FNAME ; Else assume it's the filename.
|
||
1) JRST TRFD6
|
||
1) TRFD4: PUSHJ P,RCH ; Here when must gobble next char,
|
||
1) TRFD5: PUSHJ P,TRFDW ; here when first char of wd already read.
|
||
1) TRFD6: PUSHJ P,FNCHKZ ; Note this can return and store a null string!
|
||
1) ADDI D,(F) ; Get address (filblk+index), and
|
||
1) MOVEM A,(D) ; store string pointer in the appropriate place.
|
||
1) TRO FF,FRNNUL ; Say non-null spec seen,
|
||
1) JRST TRFD1 ; and go re-read the delimiter, to process it.
|
||
1) ; TRFDW - Read a word (string), for use by TNXRFD. Copies sequence of
|
||
1) ; acceptable filename chars into FNBUF, until non-valid char seen.
|
||
1) ; A/ First char of word,
|
||
1) ; Returns A/ delimiting char, C/ count of chars in string,
|
||
1) ; clobbers nothing else.
|
||
1) TRFDW4: SUBI A,40 ; Make lowercase
|
||
1) TRFDW5: IDPB A,FNBWP ; Deposit into FNBUF,
|
||
1) PUSHJ P,RCH ; get next char,
|
||
1) AOSA C ; and bump count, skipping over zap instruction.
|
||
1) TRFDW: SETZ C, ; When called, zero cnt of chars in string.
|
||
1) CAIL A,"A ; See if char is uppercase alpha,
|
||
1) CAILE A,"Z
|
||
1) CAIA
|
||
1) JRST TRFDW5
|
||
1) CAIL A,"a ; or lowercase alpha,
|
||
1) CAILE A,"z
|
||
1) CAIA
|
||
1) JRST TRFDW4
|
||
1) CAIL A,"0 ; or numeric,
|
||
1) CAILE A,"9
|
||
1) CAIA
|
||
1) JRST TRFDW5
|
||
1) CAIE A,"$ ; or dollarsign
|
||
1) CAIN A,"- ; or hyphen
|
||
1) JRST TRFDW5
|
||
1) CAIN A,"_ ; Backarrow is special case, because
|
||
1) JRST [ TRNN FF,FRCMND ; if reading command,
|
||
1) TLNN FF,FL20X ; or running on 10X,
|
||
1) POPJ P, ; must treat as delimiter.
|
||
1) JRST TRFDW5]
|
||
1) CAIN A,^V ; ^V is quote char...
|
||
1) JRST [ PUSHJ P,RCH ; Quote, get next.
|
||
1) CAIE A,^M ; Quote anything but this.
|
||
1) CAIN A,0 ; or this.
|
||
1) POPJ P, ; time to exit.
|
||
1) PUSH P,A ; Quote it! Save char,
|
||
1) MOVEI A,^V ; so that a quoter can precede it.
|
||
1) IDPB A,FNBWP ; Fortunately this hair
|
||
1) POP P,A ; only needs care
|
||
1) IDPB A,FNBWP ; for quoted chars, which are
|
||
1) JRST TRFDW5] ; rare.
|
||
1) TLNE FF,FL20X ; Are we on a 10X?
|
||
1) POPJ P, ; If not, anything at this point is delimiter.
|
||
1) CAIL A,41 ; Check general bounds
|
||
1) CAIL A,137 ; Range from space to _ exclusive.
|
||
1) POPJ P, ; If outside that, delimiter.
|
||
1) CAIL A,72 ; This range includes :, ;, <, =, >
|
||
1) CAILE A,76
|
||
1) CAIA
|
||
1) POPJ P, ; delimiter.
|
||
1) CAIE A,".
|
||
1) CAIN A,",
|
||
1) POPJ P,
|
||
1) CAIE A,"*
|
||
1) CAIN A,"@
|
||
1) POPJ P,
|
||
1) ; Finally, check out chars which are acceptable to 10X but which
|
||
1) ; might be delimiter in cmd line...
|
||
1) TRNN FF,FRCMND
|
||
1) JRST TRFDW5 ; Not hacking cmd line, it's an OK char.
|
||
1) CAIE A,"/
|
||
1) CAIN A,"(
|
||
1) POPJ P,
|
||
1) CAIN A,"!
|
||
1) POPJ P,
|
||
1) JRST TRFDW5 ; at long last done.
|
||
1) ; TRFDNM - Read numerical string, halt when non-digit
|
||
1) ; seen, leaves result (decimal) in B, with delimiting char in A.
|
||
1) ; One peculiarity is skip return if no numerical char is seen at all;
|
||
1) ; else doesn't skip and B has a valid number.
|
||
1) TRFDNM: PUSHJ P,RCH ; First char needs special check.
|
||
1) CAIL A,"0
|
||
1) CAILE A,"9
|
||
1) JRST POPJ1 ; Not a number at all?
|
||
1) TDZA B,B
|
||
1) TRFDN2: IMULI B,10.
|
||
1) ADDI B,-"0(A) ; Convert to number
|
||
1) PUSHJ P,RCH ; Get following chars.
|
||
1) CAIL A,"0
|
||
1) CAILE A,"9
|
||
1) POPJ P, ; Nope, not digit so treat as delimiter.
|
||
1) JRST TRFDN2 ; Yep, a number
|
||
1) ;; Extra stuff to support ATSIGN use of MIDAS code
|
||
1) .SCALAR LASTCH, RCHBP
|
||
1) RCH: TLZE FF,FLUNRD
|
||
1) SKIPA A,LASTCH
|
||
1) ILDB A,RCHBP
|
||
1) CAIN A,
|
||
1) MOVEI A,^M
|
||
1) MOVEM A,LASTCH
|
||
1) POPJ P,
|
||
1) GPASST: PUSHJ P,RCH
|
||
1) CAIE A,40
|
||
1) CAIN A,^I
|
||
1) JRST GPASST
|
||
1) POPJ P,
|
||
1) ] ;IFN TNXSW
|
||
1) SUBTTL TENEX misc. Filename Routines, FS string storage
|
||
1) IFN TNXSW,[ .SEE FSDSK ; Part of this page is NOT conditionalized!!
|
||
1) ; To handle filenames of ASCIZ strings instead of SIXBIT words, each
|
||
1) ; word has instead a byte pointer to an ASCIZ string. For purposes of
|
||
1) ; easy comparison, all of these bp's point into FNBUF, and a routine
|
||
1) ; (FNCHK) is provided which checks a just-stored string and returns a bp
|
||
1) ; to either this string, if unique, or to a previously stored string if
|
||
1) ; it is the same as the one just stored (which is then flushed). Thus
|
||
1) ; strings can be compared for equality simply by a comparison of their
|
||
1) ; byte pointers. While not necessary, strings are stored beginning on
|
||
1) ; word boundaries for easier hacking.
|
||
1) ; <# files>*<avg # strings/file>*<avg # words/string>+<# wds for constants>
|
||
1) LFNBUF==<MAXIND+5>*5*3+20 ; Enough to hold strings for all output files,
|
||
1) ; all translated files, and all .insrt files encountered.
|
||
1) ; Later a GC'er can be hacked up so that of the latter only
|
||
1) ; enough for the max .insrt level need be allocated.
|
||
1) FNBUF: block LFNBUF
|
||
1) ; Macro to easily define constant strings for comparison purposes
|
||
1) DEFINE DEFSTR *STR*
|
||
1) 440700,,%%FNLC
|
||
1) %%LSAV==.
|
||
1) LOC %%FNLC
|
||
1) ASCIZ STR
|
||
1) %%FNLC==.
|
||
1) LOC %%LSAV
|
||
1) TERMIN
|
||
1) %%FNLC==FNBUF
|
||
1) ] ; IFN TNXSW!!!
|
||
1) ; If not assembling for TENEX, the following strings become
|
||
1) ; simple SIXBIT values. This makes it possible to write simple
|
||
1) ; code to work for both TENEX and non-TENEX without messy conditionals.
|
||
1) IFE TNXSW,[EQUALS DEFSTR,SIXBIT]
|
||
1) FSDSK: DEFSTR /DSK/ ; This stuff defines various BP's into FNBUF to
|
||
1) FSSYS: DEFSTR /SYS/ ; use for comparison purposes later.
|
||
1) FSTTY: DEFSTR /TTY/
|
||
1) FSNUL: DEFSTR /NUL/
|
||
1) FSPTP: DEFSTR /PTP/
|
||
1) FSATSN: DEFSTR /@/
|
||
1) FSSBSY: DEFSTR /SUBSYS/
|
||
1) FSPROG: DEFSTR /PROG/
|
||
1) FSMID: DEFSTR /MID/
|
||
1) FSMDAS: DEFSTR /MIDAS/
|
||
1) FSGRTN: DEFSTR />/
|
||
1) FSCRF: DEFSTR /CRF/
|
||
1) FSCREF: DEFSTR /CREF/
|
||
1) FSERR: DEFSTR /ERR/
|
||
1) FSLST: DEFSTR /LST/
|
||
1) FSLIST: DEFSTR /LIST/
|
||
1) FSSAV: DEFSTR /SAV/
|
||
1) FSEXE: DEFSTR /EXE/
|
||
1) IFN TNXSW,[
|
||
1) ;VBLK
|
||
1) FNBBP: 440700,,FNBUF ; Points to beg of FNBUF (hook for dynamic alloc)
|
||
1) FNBEP: FNBUF+LFNBUF-1 ; Points to last wd in FNBUF (address, not BP)
|
||
1) FNBWP: 440700,,%%FNLC ; Write Pointer into FNBUF.
|
||
1) FNBLWP: 440700,,%%FNLC ; Last Write Pointer, points to beg of string being stored
|
||
1) ;PBLK
|
||
1) EXPUNG %%FNLC
|
||
1) ; NOTE - provided MIDAS never restarts, no initialization is necessary to
|
||
1) ; start using FNCHK. (Unless of course FNBUF is dynamically allocated someday)
|
||
1) ; FNCHK - Check out just-stored filename. Returns BP in A to ASCIZ string,
|
||
1) ; which will be "canonical" for comparison purposes.
|
||
1) ; Clobbers A,B,T,TT,AA
|
||
1) ; FNCHKZ - Makes sure just-writ string is ASCIZ'd out before FNCHK'ing.
|
||
1) FNCHKZ: MOVE B,FNBWP ; Get write ptr,
|
||
1) LDB A,B ; see if last char was 0,
|
||
1) JUMPE A,FNCHK0 ; if so can skip one clobberage.
|
||
1) SETZ A,
|
||
1) IDPB A,B ; zero out bytes,
|
||
1) FNCHK0: TLNE B,760000 ; until at end of word.
|
||
1) JRST .-2
|
||
1) ADD B,[<440700,,1>-<010700,,>] ; bump BP to point canonically at next.
|
||
1) MOVEM B,FNBWP
|
||
1) FNCHK: HRRZ B,FNBWP ; See if write ptr
|
||
1) CAML B,FNBEP ; has hit end of FNBUF, and
|
||
1) ; ETF [ASCIZ /Filename buffer overflow/] ; barf horribly if so.
|
||
1) .VALUE ; sigh
|
||
1) MOVE A,FNBBP ; A - bp to start of existing string
|
||
1) MOVE AA,FNBLWP ; AA - bp to start of new string to store
|
||
1) FNCHK2: MOVEI T,(A) ; T - current addr being checked, existing str
|
||
1) MOVEI TT,(AA) ; TT - current addr, new str
|
||
1) CAIL T,(TT) ; If addrs are same, or overran somehow,
|
||
1) JRST [ MOVE A,AA ; didn't find any match, accept new string.
|
||
1) MOVE B,FNBWP
|
||
1) MOVEM B,FNBLWP ; Set up new last-write-ptr
|
||
1) POPJ P,]
|
||
1) FNCHK3: MOVE B,(T)
|
||
1) CAMN B,(TT) ; Compare strings, full word swoops.
|
||
1) JRST [ TRNE B,377 ; equal, last char zero?
|
||
1) AOJA T,[AOJA TT,FNCHK3] ; no, continue for whole string
|
||
1) ; Found it! Flush just-stored string, don't want duplicate.
|
||
1) MOVEM AA,FNBWP ; Clobber write ptr to previous value.
|
||
1) POPJ P,]
|
||
1) ; Not equal, move to next string to compare
|
||
1) MOVEI B,377 ; Check for ASCIZ,
|
||
1) TDNE B,(T) ; moving to end of current string
|
||
1) AOJA T,.-1
|
||
1) HRRI A,1(T) ; and updating BP to point at new string.
|
||
1) JRST FNCHK2 ; (T gets pointed there too at FNCHK2).
|
||
1) ; CVSSIX - Converts ASCIZ string to SIXBIT word.
|
||
1) ; A/ BP to ASCIZ string,
|
||
1) ; Returns SIXBIT word in A. Clobbers nothing else.
|
||
1) CVSSIX: PUSH P,B
|
||
1) PUSH P,C
|
||
1) PUSH P,D
|
||
1) MOVE D,A
|
||
1) SETZ A,
|
||
1) MOVE B,[440600,,A]
|
||
1) JRST CVSSX3
|
||
1) CVSSX2: CAIL C,140
|
||
1) SUBI C,40 ; Uppercase force
|
||
1) SUBI C,40 ; cvt to 6bit
|
||
1) IDPB C,B ; deposit
|
||
1) TLNN B,770000 ; If BP at end of word,
|
||
1) JRST CVSSX5 ; leave loop.
|
||
1) CVSSX3: ILDB C,D
|
||
1) JUMPN C,CVSSX2
|
||
1) CVSSX5: POP P,D
|
||
1) POP P,C
|
||
1) POP P,B
|
||
1) POPJ P,
|
||
1) ; CVFSIX - Takes current filblk (pointed to by F) and puts the
|
||
1) ; right stuff in $F6 entries.
|
||
1) CVFSIX: PUSH P,A
|
||
1) PUSH P,B
|
||
1) MOVSI B,-L$F6BL
|
||
1) CVFSX2: MOVE A,@CVFTAB(B) ; Get BP to string
|
||
1) PUSHJ P,CVSSIX ; Convert to 6bit
|
||
1) ADDI B,$F6DEV(F) ; Get index to right place to store.
|
||
1) MOVEM A,(B)
|
||
1) SUBI B,$F6DEV(F) ; restore aobjn pointer...
|
||
1) AOBJN B,CVFSX2
|
||
1) POP P,B
|
||
1) POP P,A
|
||
1) POPJ P,
|
||
1) CVFTAB: $FDEV(F)
|
||
1) $FNAME(F)
|
||
1) $FEXT(F)
|
||
1) $FDIR(F)
|
||
1) IFN <.-CVFTAB>-L$F6BL, .ERR CVFTAB loses.
|
||
1) .END RFDBLK
|
||
1) ] ;IFN TNXSW
|
||
1) SUBTTL COMMAND LINE SWITCH PARSER
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 44-2 (123727) AFTER CVJFN:
|
||
2) SUBTTL COMMAND LINE SWITCH PARSER
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 57-36 (150988) AFTER FPSFN0:
|
||
1) FPSFN3: INSIRP PUSH P,CC CP FPNTBP L R D F B
|
||
1) FPSFNP==:.-FPSFN3
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 52-36 (135982) AFTER FPSFN0:
|
||
2) FPSFN3: INSIRP PUSH P,CC CP FPNTBP L R D F
|
||
2) FPSFNP==:.-FPSFN3
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 57-47 (151442) AFTER FPSFN1:
|
||
1) INSIRP POP P,B F D R L FPNTBP CP CC
|
||
1) JRST FPSXGP
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 52-47 (136434) AFTER FPSFN1:
|
||
2) INSIRP POP P,F D R L FPNTBP CP CC
|
||
2) JRST FPSXGP
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 59-22 (152532) AFTER FPSDE1:
|
||
1) CAIN A,'C
|
||
1) JRST [ MOVEI A,DEVCGP ;"C" => CGP (Canon ersatz XGP)
|
||
1) JRST FPSDV3]
|
||
1) ];XGP
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 54-22 (137522) AFTER FPSDE1:
|
||
2) ];XGP
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 59-30 (152709) AFTER FPSDE1:
|
||
1) FLORIDA,[CAIN A,'F ; F => FLORIDA
|
||
1) jrst [MOVEI A,DEVFLA
|
||
1) JRST FPSDV4]
|
||
1) ];FLORIDA
|
||
1) PRESS,[ CAIE A,'D
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 54-27 (137615) AFTER FPSDE1:
|
||
2) VARIFLEX,[CAIN A,'V ; V - Variflex
|
||
2) jrst [MOVEI A,DEVVFX
|
||
2) JRST FPSDV4]
|
||
2) ];VARIFLEX
|
||
2) PRESS,[ CAIE A,'D
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 64-10 (164749) AFTER FPDFN2:
|
||
1) MOVE H,CODTYP
|
||
1) MOVE H,IPTFN2(H) ;NOITS, DEFAULT FN2 IS APPROPRIATE TO LANGUAGE.
|
||
1) ];NOITS
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 59-10 (149657) AFTER FPDFN2:
|
||
2) NOTNX,[ MOVE H,CODTYP
|
||
2) MOVE H,IPTFN2(H) ;NOITS, DEFAULT FN2 IS APPROPRIATE TO LANGUAGE.
|
||
2) ];NOTNX
|
||
2) ú“¬,· move b, codtyp ; get codü¨2øéü»¹éßn
|
||
2) move b, (b)
|
||
2) call defext ; default extension of block in a to name in b
|
||
2) ];TNX
|
||
2) ];NOITS
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 64-18 (164962) AFTER FPDFN2:
|
||
1) MOVEM H,F.IFN2(A)
|
||
1) FPDFN3:
|
||
1) DOS, HLLZS F.IFN2(A) ;DEFAULTING'S PAST, SO FLUSH THE RH "FOO." USES TO AVOID IT.
|
||
1) JRST 2INOPN ;IF IT SKIPS, WE DO TOO!
|
||
1) ;DEFAULT DIRECTORY OF LREC FILE.
|
||
1) ;NOTE OUTPUT FN2 DEFAULTED IN WLREC. INPUT FN2 DEFAULTED IN RLREC.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 59-23 (150012) AFTER FPDFN2:
|
||
2) NOTNX, MOVEM H,F.IFN2(A)
|
||
2) FPDFN3:
|
||
2) NOITS, HLLZS F.IFN2(A) ;DEFAULTING'S PAST, SO FLUSH THE RH "FOO." USES TO AVOID IT.
|
||
2) JRST 2INOPN ;IF IT SKIPS, WE DO TOO!
|
||
2) ;DEFAULT DIRECTORY OF LREC FILE.@*@*
|
||
2) ;NOTE OUTPUT FN2 DEFAULTED IN WLREC. INPUT FN2 DEFAULTED IN RLREC.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 68-33 (171942) AFTER FPRCHS:
|
||
1) ]
|
||
1) DOS,[ LSH CH,LGEXTL
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 63-33 (157004) AFTER FPRCHS:
|
||
2) ];TNX
|
||
2) DOS,[ LSH CH,LGEXTL
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 70-100 (177986) AFTER FNTCP6:
|
||
1) ;COMPUTE PAGEL FROM FONTS AND VSP.
|
||
1) ADD C,D ;ASSUME 1ST LINE VSP IS IGNORED, SO RECLAIM IT
|
||
1) ADD D,FNTHGT ;FIND TOTAL POIùÕ) ¡ER LINE
|
||
1) ;;; ADD C,FNTBAS ;WHAT THE FUCK WAS THIS FOR????
|
||
1) IDIV C,D ;FIND # WHOLE LINES THATôäÌ™ FIT
|
||
1) MOVEM C,PAGEL
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 65-100 (163052) AFTER FNTCP6:
|
||
2) ADD C,D ;COMPUTE PAGEL FROM FONTS AND VSP.
|
||
2) ADD D,FNTHGT
|
||
2) ADD C,FNTBAS
|
||
2) IDIV C,D
|
||
2) MOVEM C,PAGEL
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 72-32 (185721) AFTER RLRR1:
|
||
1) PUSHJ P,[ SKIPN F.IFN2(A)
|
||
1) JRST RLRRD ;OPEN INPUT LREC FILE WITH RLRRD TO DEFAULT FN2
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 67-33 (170638) AFTER RLRR1:
|
||
2) TNX,[ call getext ; see if this file has an extension
|
||
2) call [skipn b
|
||
2) jrst rlrrd
|
||
2) jrst 2inopn]
|
||
2) caia
|
||
2) jrst rlrr1a
|
||
2) ];TNX
|
||
2) NOTNX,[ PUSHJ P,[ SKIPN F.IFN2(A)
|
||
2) JRST RLRRD ;OPEN INPUT LREC FILE WITH RLRRD TO DEFAULT FN2
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 72-37 (185873) AFTER RLRR1:
|
||
1) ITS, .STATUS UTIC,B ;ON ITS, ANY ERROR OTHER THAN "FILE NOT FOUND"
|
||
1) ITS, LDB B,[220600,,B] ;MEANS WE WOULD PROBABLY BE UNABLE TO CREATE THE LREC FILE,
|
||
1) ITS, øpdÅAB,%ENúq¦ ;SO WE SHOú³" ‰ø±¤Î“ú‘fYACOMPLAIN.
|
||
1) ITS, JRST RLRR1E
|
||
1) MOVE R,SFILE ;CAN'T FIND THE INPUT LREC FILE!! WAS IT THE ONLY FILE SPEC'D?
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 67-45 (170932) AFTER RLRR1:
|
||
2) ITS,[ .STATUS UTIC,B ;ON ITS, ANY ERROR OTHER THAN "FILE NOT FOUND"
|
||
2) LDB B,[220600,,B] ;MEANS WE WOULD PROBABLY BE UNABLE TO CREATE THE LREC FILE,
|
||
2) CAIE B,%ENSFL ;SO WE SHOULD DEFINITELY COMPLAIN.
|
||
2) JRST RLRR1E
|
||
2) ];ITS
|
||
2) MOVE R,SFILE ;CAN'T FIND THE INPUT LREC FILE!! WAS IT THE ONLY FILE SPEC'D?
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 72-49 (186599) AFTER RLRR1E:
|
||
1) RLRR1B: STRT [ASCIZ /(LREC file new - listing all files in full)
|
||
1) /]
|
||
1) POPJ P,
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 67-57 (171652) AFTER RLRR1E:
|
||
2) ];NOTNX
|
||
2) RLRR1B: STRT [ASCIZ /(LREC file new - listing all files in full)
|
||
2) /] ; @@@@ make this work
|
||
2) POPJ P,
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 72-62 (186971) AFTER RLRR1C:
|
||
1) RLRRD: MOVE CH,LRCFN2 ;FIRST TRY "LREC" OR "LRC" AS FN2.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 67-72 (172060) AFTER RLRR1C:
|
||
2) TNX,[
|
||
2) rlrrd: push p, f.isnm(a) ; save pointer to file name
|
||
2) moveñ8– Ùrcfn2 ; while we munüùPoÝce...
|
||
2) call defext
|
||
2) call 2inopn ; try to open with first try at extension
|
||
2) jrst rlrrd1
|
||
2) pop p, ch ; throw away old file name pointer
|
||
2) move ch, f.isnm(a) ; copy into output file name
|
||
2) movem ch, f.osnm(a)
|
||
2) jrst popj1
|
||
2) rlrrd1: pop p, f.isnm(a) ; restore the unmunged file name
|
||
2) move b, alrfn2 ; munge again with alternate extension
|
||
2) call defext
|
||
2) call 2inopn
|
||
2) jfcl ; this is our last chance
|
||
2) move ch, f.isnm(a) ÷h1ïáy into output file name
|
||
2) movem ch, f.osnm(a)
|
||
2) dropthruto popj1
|
||
2) ];TNX
|
||
2) NOTNX,[
|
||
2) RLRRD: MOVE CH,LRCFN2 ;FIRST TRY "LREC" OR "LRC" AS FN2.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 72-72 (187224) AFTER RLRRD1:
|
||
1) POPJ1: AOSA (P)
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 67-103 (172924) AFTER RLRRD1:
|
||
2) ];NOTNX
|
||
2) POPJ1: AOSA (P)
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 73-23 (187753) AFTER RLRR1A:
|
||
1) CAMN R,[SIXBIT/LREC/+1] ;THIS IS WHAT IT SHOULD BE.
|
||
1) JRST RLRR2 ;FILE LOOKS LIKE LREC FILE.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 68-23 (173464) AFTER RLRR1A:
|
||
2) TNX,[ camn r, [sixbit /LREC/ + 2] ; this is what iþˆ9èßuld be for new lrec
|
||
2) jrst rlrr2
|
||
2) came r, [sixbit /LREC/ + 1] ; might be old format
|
||
2) jrst rlrr1y ; nope, just a losing file
|
||
2) flosei flsnnl, 0(a) ; "File is old format LREC file."
|
||
2) jrst rlrr1z ; he wants to press on anyway...
|
||
2) ];TNX
|
||
2) NOTNX,[ CAMN R,[SIXBIT/LREC/+1] ;THIS IS WHAT IT SHOULD BE.
|
||
2) JRST RLRR2 ;FILE ù“ç˧ô$Ë‹ LREC FILE.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 73-27 (187961) AFTER RLRR1A:
|
||
1) FLOSEI FLSNLR,F.ISNM(A) ;"FILE IS NOT AN LREC FILE".
|
||
1) JFCL [ PUSH DP,R ;BUT USER INSISTS? OK, ASSUME IT IS ONE
|
||
1) JRST RLRR2]
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 68-34 (173979) AFTER RLRR1A:
|
||
2) ];NOTNX
|
||
2) rlrr1y: FLOSEI FLSNLR,F.ISNM(A) ;"FILE IS NOT AN LREC FILE".
|
||
2) rlrr1z: JFCL [ PUSH DP,R ;BUT USER INSISTS? OK, ASSUME IT IS ONE
|
||
2) JRST RLRR2]
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 73-76 (189630) AFTER úS)R™3:
|
||
1) RLRRE: HRLZI D,(C) ;COME HERE FOR EACH ENTRY IN FILE. C -> ENTRY.
|
||
1) HRRI D,INSSNM
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 68-84 (175671) AFTER RLRRL3:
|
||
2) RLRRE: hlrz d,(c) ;COME HERE FOR EACH ENTRY IN FILE. C -> ENTRY.
|
||
2) TNX,[ hrr ü‹c ; build byte pointer for TNX long file name
|
||
2) hrli d, 440700
|
||
2) movem d, inssnm ; store as input file name
|
||
2) skipe (c) ; move ahead until 0 word
|
||
2) aobjn c, .-1
|
||
2) push p, [0] ; save specified fn2
|
||
2) add c, [1,,1] ; move to subentries
|
||
2) ];TNX
|
||
2) NOTNX,[ HRLZI D,(C)
|
||
2) HRRI D,INSSNM
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 73-82 (189902) AFTER RLRRE:
|
||
1) PUSHùH(,¥ù”©S ;NOW SKIP OVER SUBEùÕ)I‹úkP¥OCESSù3£ §AVED SWITCHES, ETC.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 68-101 (176224) AFTER RLRRE:
|
||
2) ];NOTNX
|
||
2) PUSHJ P,RLRRS ;NOW SKIP OVER SUBENTRIES, PROCESSING SAVED SWITCHES, ETC.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 76-16 (196657) AFTER MLREC1:
|
||
1) ADD B,[4,,4] ;ADVANCE PAST FILENAMES AT BEGINNING OF ENTRY.
|
||
1) ;ADVANCE PAST THE NEXT SUBENTRY.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 71-16 (182990) AFTER MLREC1:
|
||
2) TNX,[ skipe (b) ; move ahead until 0 word
|
||
2) aobjn b,.-1
|
||
2) add b,[1,,1] ; movü¨:oAþ}qeÝþœ´åç
|
||
2) ];TNX
|
||
2) NOTNXõ‚`ĉô–[i,,4] ñ.àÄANCE PAST FILENAMES ø5B‹GINNING OF ENTRY.
|
||
2) ;ADVANCE PAST THE NEXT SUBENTRY.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 77-31 (199464) AFTER XLREC2:
|
||
1) WLRDF: SKIPE A,WLRECP
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 72-31 (185905) AFTER XLREC2:
|
||
2) TNX,[
|
||
2) wlrdf: skipn a, wlrecp
|
||
2) ret
|
||
2) call getext ; get extension for file in a
|
||
2) skipü¢q ; if b = 0, no ü¾:eÝþzwîAgiven
|
||
2) ñ(9eé ; otherwise there was one
|
||
2) move b, lrcfn2 ; just grab default extension
|
||
2) jrst defext ; cons up name with extension & return
|
||
2) ];TNX
|
||
2) NOTNX,[
|
||
2) WLRDF: SKIPE A,WLRECP
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 78-2 (200251) AFTER WLREC3:
|
||
1) SUBTTL LREC DUMPING ROUTINES (øÓé ‰EBUGGING)
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 72-67 (186969) AFTER WLREC3:
|
||
2) ];NOTNX
|
||
2) SUBTTL LREC DUMPING ROUTINES (FOR DEBUGGING)
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 82-42 (208231) AFTER WLREC:
|
||
1) WLRWWD B,[SIXBIT/LREC/+1] ;1ST WORD OF LREC FILE IS SIXBIT/LREC/+1
|
||
1) MOVEI A,FILES ;LOOK AT ALL FILES,
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 77-42 (194961) AFTER WLREC:
|
||
2) TNX, wlrwwd b,[sixbit /LREC/ + 2] ; 1st word is sixbit /LREC/ + 2 for TNX
|
||
2) NOTNX, WLRWWD B,[SIXBIT/LREC/+1] ;1ST WORD OF LREC FILE IS SIXBIT/LREC/+1
|
||
2) ñ3gÖ‹ù( ¬<>ù3"Ó ;LOùòÐA© ALL FILES,
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 84-50 (212474) AFTER WLRW:
|
||
1) WLRWWD B
|
||
1) NOCMU,[ ;UNDER CMU, USE THE SPECIFIED DEVICE, NùõT‘E REAL DEVICE
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 79-50 (199285) AFTER WLRW:
|
||
2) TNX,[ hrrz b, b ; address of file block pointer
|
||
2) hrrz b, (b) ; address of file block
|
||
2) hrrz b, (b) ; address of filename string
|
||
2) push p,l ? push p,r ; save good old l & r
|
||
2) wlrwn0: move l,(b) ; get the word
|
||
2) wlrwwd l ; write it out
|
||
2) aos b
|
||
2) ldb r, [350700,,l] ; see if first byte was 0
|
||
2) jumpe r, wlrwn1 ; finish up if so
|
||
2) ldb r, [260700,,l] ; how about 2nd?
|
||
2) jumpe r, wlrwn1
|
||
2) ldb r, [170700,,l] ; etc.
|
||
2) jumpü¢y,Aþû9wÝ1
|
||
2) ldb r, [100700,,l]
|
||
2) ñ:ºíáe r, wlrwn1
|
||
2) ldb r, [010700,,l]
|
||
2) jumpe r, wlrwn1
|
||
2) jrst wlrwn0 ; go for next word of file name
|
||
2) wlrwn1: setz l, ; write out a zero word
|
||
2) wlrwwd l
|
||
2) pop p,r ? pop þ6 wô²óéýü² Ïood old r & l
|
||
2) jrst wlrwss ; go down to switch setting writing outing ing
|
||
2) ];TNX
|
||
2) NOTNX, WLRWWD B
|
||
2) NOCMU,[ ;UNDER CMU, USE THE SPECIFIED DEVICE, NOT THE REAL DEVICE
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 84-65 (212813) AFTER WLRW:
|
||
1) WLRWWI R,LR.PSW ;SAVE ALL SWITCH SETTINGS.
|
||
1) WLRWúòPLY-14. ñ.Ö±iõÈ$ÎAL.H.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 79-88 (200355) AFTER wlrwn1:
|
||
2) WLRWSS: WLRWWI R,LR.PSW ;SAVE ALL SWITCH SETTINGS.
|
||
2) WLRWWI L,-14. ;-14. IN L.H.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 86-24 (216834) AFTER CPRF:
|
||
1) JRST [ CAIE D,DEVIXG ;IT PROBABLY CONTAINS XGP COMMANDS WHOSE LOSS WOULD SCREW.
|
||
1) CAIN D,DEVCGP
|
||
1) SETZM (B)
|
||
1) JRST .+1]
|
||
1) ];ITSXGP
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 81-24 (204383) AFTER CPRF:
|
||
2) CAIE D,DEVIXG ;IT PROBABLY CONTAINS XGP COMMANDS WHOSE LOSS WOULD SCREW.
|
||
2) CAIA
|
||
2) SETZM (B)
|
||
2) ];ITSXGP
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 143-14 (316870) AFTER 2OCLS:
|
||
1) ; This is also set up to do the same for the Florida Data Systems OSP-130
|
||
1) ùÛàîÃü™|,·
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 138-14 (304391) AFTER 2OCLS:
|
||
2) ; This is also set up to do the same for the Sanders S700 Variflex
|
||
2) NoAnadex,[
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 143-19 (317052) AFTER 2OCLS:
|
||
1) IFN ANAFLG!FLAFLG,[
|
||
1) MOVE B,DEVICE
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 138-19 (304566) AFTER 2OCLS:
|
||
2) IFN ANAFLG!VFXFLG,[
|
||
2) MOVE B,DEVICE
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 143-24 (317165) AFTER 2OCLS:
|
||
1) CAIN B,DEVFLA ; skip if not Florida OSP-130
|
||
1) pushj p,CRLOUT
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 138-24 (304679) AFTER 2OCLS:
|
||
2) CAIN B,DEVVFX ; skip if not Sanders Variflex
|
||
2) pushj p,CRLOUT
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 144-61 (319863) AFTER DEVPDO:
|
||
1) DEVANA:: 0
|
||
1) DEVCGP:: 0
|
||
1) DEVFLA:: 0
|
||
1) DEVMAX::OFFSET 0
|
||
1) ];ITS
|
||
1) CMU, 2QUEUE: POPJ P,
|
||
1) T10, 2QUEUE: POPJ P,
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 139-61 (307378) AFTER DEVPDO:
|
||
2) DEVANA:: 0
|
||
2) DEVVFX:: 0
|
||
2) DEVMAX::OFFSET 0
|
||
2) ];ITS
|
||
2) ;CMU, 2QUEUE: POPJ P, ; screwing assembly with SITE==CMU20FLG!
|
||
2) T10, 2QUEUE: POPJ P,
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 145-43 (321133) AFTER DEVPDO:
|
||
1) DEVANA:: 0
|
||
1) DEVCGP:: 0
|
||
1) DEVFLA:: 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 140-43 (308681) AFTER DEVPDO:
|
||
2) DEVANA:: 0
|
||
2) DEVFLA:: 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 147-6 (323316) AFTER 2LOOPD:
|
||
1) REPEAT 4,[
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 142-6 (310853) AFTER 2LOOPD:
|
||
2) TNX,[ skipn b, outfil ; skip if outfil was given
|
||
2) jrst 2loopo
|
||
2) movem b, f.osnm(a) ; make that the filename here
|
||
2) jrst 2loopz ; go and open it up
|
||
2) 2loopo: push p, a ; save a
|
||
2) skipe a, ofile ; close output file if one is open
|
||
2) call 2oclsq
|
||
2) move a, (p) ; look at file block again
|
||
2) move b, f.isnm(a) ; get input name
|
||
2) movem b, f.osnm(a) ; copy to output name
|
||
2) movei a, f.osnm(a) ; move to output filename
|
||
2) skipe b, fntspc ; grab default extension in b
|
||
2) skipl b, device
|
||
2) cail b, devmax
|
||
2) .value
|
||
2) move b, optfn2(b)
|
||
2) call defext ; defaultify extension of output name
|
||
2) ñ;wöË a, (þ
|
||
D‰w restore pointer to þú7ìË fileô¶oÇk
|
||
2) movem a, ofile
|
||
2) 2loopz:
|
||
2) ];TNX
|
||
2) NOTNX,[
|
||
2) REPEAT 4,[
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 147-48 (324663) AFTER 2LOOPO:
|
||
1) ITS, MOVE H,[SIXBIT/OUTPUT/]
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 142-70 (312887) AFTER 2LOOPO:
|
||
2) ];NOTNX
|
||
2) ITS, MOVE H,[SIXBIT/OUTPUT/]
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 147-69 (325124) AFTER DEVANA:
|
||
1) DEVCGP::2FNTIX ; Like ITS XGP
|
||
1) DEVFLA::FLAINI
|
||
1) DEVMAX::OFFSET 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 142-92 (313357) AFTER DEVANA:
|
||
2) DEVVFX::VFXINI
|
||
2) DEVMAX::OFFSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 152-2 (329558) AFTER ADAINI:
|
||
1) SUBTTL Assorted Florida Data OSP-130 code
|
||
1) NOFLOúRbAYFLAINI==:CPOPJ
|
||
1) FLORIDA,[
|
||
1) FLAINI:
|
||
1) POPJ P,
|
||
1) ];FLORIDA
|
||
1) SUBTTL PASS 2 INPUT FILE OPEN ROUTINES
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 147-1 (317757) AFTER ADAINI:
|
||
2) SUBTTL Assorted Sanders Variflex
|
||
2) NOVARIFLEX,FLAINI==:CPOPJ
|
||
2) VARIFLEX,[
|
||
2) VFXINI:
|
||
2) ; first of all, compute number of lines per page and establish all the
|
||
2) ; vertical formatting parameters
|
||
2) move A,PGLDOT+DEVVFX ; get paper height
|
||
2) movei B,[ASCIZ /FL/]
|
||
2) pushj P,RCLNUM ; output numeric RCL
|
||
2) movei B,[ASCIZ /VMON/]
|
||
2) pushj P,OUTRCL ; turn on vertical forms control
|
||
2) move B,MARG.T ; get top marg in mils
|
||
2) imul B,DOTPIV+DEVVFX ; compute in 1K VEPs
|
||
2) addi B,500. ; round
|
||
2) idivi B,1000. ; convert to VEPs
|
||
2) push P,A
|
||
2) push P,B
|
||
2) move A,B ; send it out
|
||
2) movei B,[ASCIZ /TM/]
|
||
2) pushj P,RCLNUM
|
||
2) pop P,B
|
||
2) pop P,A
|
||
2) sub A,B ; deduct top margin
|
||
2) move B,MARG.B ; get bottom margin in mils
|
||
2) imul B,DOTPIV+DEVVFX ; compute in ö2ÐV‹Ps
|
||
2) addi B,500. ; round
|
||
2) idivi B,1000. ; convert to VEPs
|
||
2) push P,A
|
||
2) push P,B
|
||
2) move A,B
|
||
2) movei B,[ASCIZ /BM/]
|
||
2) pushj P,RCLNUM
|
||
2) pop P,B
|
||
2) pop P,A
|
||
2) sub A,B ; deduct býý:oÛôpòÏin
|
||
2) idivi A,48. ; divide by Veps/Line
|
||
2) skipn EPAGEL ; did user give explicit page length?
|
||
2) movem A,PAGEL ; no, store this value
|
||
2) ; Now output the horizontal parameters, and update the LNL parameter
|
||
2)
|
||
2) move A,LNLDOT+DEVVFX ; get paper width
|
||
2) movei B,[ASCIZ /FW/]
|
||
2) pushj P,RCLNUM ; output numeric RCL
|
||
2) move B,MARG.L ; get left marg in mils
|
||
2) add B,MARG.H ; add hole margin in mils
|
||
2) imul B,DOTPIH+ø‘kV<6B>X ; compute in 1K HEPs
|
||
2) addi B,500. ; round
|
||
2) idivi B,1000. ; convert to HEPs
|
||
2) push P,A
|
||
2) push P,B
|
||
2) move A,B ; send it out
|
||
2) movei B,[ASCIZ /LM/]
|
||
2) pushj P,RCLNUM
|
||
2) pop P,B
|
||
2) pop P,A
|
||
2) ñ<úâA,B ; deduct left margin
|
||
2) ñ;wöËñ0–MƒRG.R ; get right marüúw Ón mils
|
||
2) imul B,DOTPIH+DEVVFX ; compute in 1K HEPs
|
||
2) addi B,500. ; round
|
||
2) idivi B,1000. ; convert to HEPs
|
||
2) push P,A
|
||
2) push P,B
|
||
2) move A,B
|
||
2) movei B,[ASCIZ /RM/]
|
||
2) pushj P,Røs'U›
|
||
2) pop P,B
|
||
2) pop P,A
|
||
2) sub A,B ; deduct right margin
|
||
2) imuli A,16. ; multiply by Chars/In (Using GOUS1617)
|
||
2) idiv A,DOTPIH+DEVVFX ; divide by Heps/In
|
||
2) skipn ELINEL ; did user give /W?
|
||
2) movem A,LINEL ñ.Ðnßõˆ9ôßre as chars/line
|
||
2) ; now, finally select the font
|
||
2) movei B,[ASCIZ /AF0,GOUS1617/]
|
||
2) pushj P,outRCL
|
||
2) movei B,[ASCIZ /SF0/]
|
||
2) pushj P,outRCL
|
||
2) pushj P,2INIT ; re-initialize pass 2 values!
|
||
2) ñ4'Е P,
|
||
2) ; OUTRCL --- write an unparamterized RCL command
|
||
2) ; B - pointer to ASCIZ string
|
||
2) ÷hÁA- preserved
|
||
2) OUTRCL: push P,A
|
||
2) push P,B
|
||
2) 2patCH "!
|
||
2) pop P,B
|
||
2) pushj P,ASCRCL
|
||
2) 2patCH "!
|
||
2) pop P,A
|
||
2) popj P,
|
||
2) ; RCLNUM --- write an RCLô÷íÛand with a numeric argument
|
||
2) ; B - pointer to ASCIZ string
|
||
2) ; A - numeric value
|
||
2) ; -ô9eçerved
|
||
2) RCLNUM: push P,A
|
||
2) push P,B
|
||
2) 2patCH "!
|
||
2) pop P,B
|
||
2) pushj P,ASCRCL
|
||
2) move A,(P)
|
||
2) pushj P,000X ; write out number
|
||
2) 2patCH "!
|
||
2) pop P,A
|
||
2) popj P,
|
||
2) ];VARIFLEX
|
||
2) SUBTTL PASS 2 INPUT FILE OPEN ROUTINES
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 154-9 (332027) AFTER 2RDAHD:
|
||
1) TF6TOA: PUSH P,B
|
||
1) MOVE B,[440700õ‹*F“LNM]
|
||
1) SETZM TFILNM ; Ensure string initially empty
|
||
1) CALL TF6TOB
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 149-9 (322792) AFTER 2RDAHD:
|
||
2) ; If the left hand side of the SNAME is -1, the right hand side is the address
|
||
2) ; of a long file name. In this case, we just copy the string into TFILNM and
|
||
2) ; everyone should be happy.
|
||
2) TF6TOA: PUSH P,B
|
||
2) hlrz b,(a) ; check SNAME
|
||
2) ñ8ðéË b,440700;real quick hack for testing... would be õ¬W.]
|
||
2) jrst tf6to0
|
||
2) push p,a ; copy long file name into TFILNM
|
||
2) push p,c
|
||
2) hrrz a,(a)
|
||
2) hrli a,440700
|
||
2) move b,[440700,,tfilnm]
|
||
2) ildb c,a
|
||
2) idpb c,b
|
||
2) jumpn c,.-2
|
||
2) pop p,c
|
||
2) pop p,a
|
||
2) pop p,b
|
||
2) ret
|
||
2) tf6to0: STRT [asciz /Old format file block encountered. TNX @ Bug./]
|
||
2) MOVE B,[440700,,TFILNM]
|
||
2) push p,B ; insure string is initially empty because
|
||
2) ; of various problems with non-robust code
|
||
2) ; around JSYSes
|
||
2) setz B,
|
||
2) IDPB B,(P)
|
||
2) pop P,B
|
||
2) MOVE B,[440700,,TFILNM]
|
||
2) CALL TF6TOB
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 154-30 (332475) AFTER TF6TOB:
|
||
1) 10X, MOVEI C,"< ? IDPB C,A
|
||
1) MOVE C,A ; Preserve byte pointer in case of failure
|
||
1) DIRST ; T20 adds punctuation by itself.
|
||
1) ERCAL [MOVE A,C ; If fail, restore old byte pointer
|
||
1) POPJ P,]
|
||
1) 10X, MOVEI C,"> ? IDPB C,A
|
||
1) JRSúˆ+c]
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 149-56 (323925) AFTER TF6TOB:
|
||
2) 10X, MOVEI C,"<
|
||
2) 10X, IDPB C,A
|
||
2) move C,A ; preserve byte pointer
|
||
2) ñ"bI¥úu‰w T20 adds punctuatioýÈ1yAý=9åÙf.
|
||
2) ercal [ move A,C ; if fail, restore old byte pointer
|
||
2) popj P,]
|
||
2) ; ...otherwise, DIRST has updated the pointer
|
||
2) ö,,,ñ3gÖ‹I C,">
|
||
2) 10X, IDPB C,A
|
||
2) JRST .+1]
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 154-74 (333357) AFTER LBPAS1:
|
||
1) ];TNX
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 149-105 (324864) AFTER LBPAS1:
|
||
2) ;;; DefExt defaults the extension of a file name iýÈ:hË file blocýh8oÓnted to
|
||
2) ;;; by A to the string pointed to by B.
|
||
2) defext: push p,c ? push p,d ? push p,h ; save these things
|
||
2) push p, b ; save b on top
|
||
2) move b, 0(a) ; copy file name
|
||
2) move h, namnxt
|
||
2) hrli h, 440700
|
||
2) movem h, 0(a) ; replace file name with the one we're making
|
||
2) defex1: ildb c, b
|
||
2) jumpe c, ü™señ2 ; end of fileô°íË 1 if end of string
|
||
2) cain c, ". ; or we hit a dot
|
||
2) jrst defex2
|
||
2) idpb c, h
|
||
2) hrrz d, h ; see if we've run out of filename space
|
||
2) caige d, namend
|
||
2) jrst defex1 ; if not, keep looping
|
||
2) jrst fnsgon ; all gone
|
||
2) defex2: movei c, ". ; throw a dot down
|
||
2) idpb c, h
|
||
2) pop p, b ; get extü»¹éßn
|
||
2) defex3: ildb c, b
|
||
2) idpb c, h
|
||
2) jumpe c, defex4
|
||
2) hrrz d, h ; see if we've run out of filename space
|
||
2) caige d, namend
|
||
2) jrst defex3 ; nah, keep copying
|
||
2) jrst fnsgon ; all gone
|
||
2) defex4: aos h ; save new next filename pointer
|
||
2) hrrm h, namnxt
|
||
2) pop p,h ? pop p,d ? pop p,c
|
||
2) ret
|
||
2) ;;; GetExt returns aô¼ôËô7éÝter to the file's extensiýû<C3BD>iÝô– ßr zero.
|
||
2) getext: push p,c ? push p,d ; save c & d
|
||
2) move c, 0(a) ; get pointer to filename
|
||
2) getex1: ildb d, c
|
||
2) jumpe d, getex2 ; return zero if end of string
|
||
2) caie d, ". ; return pointer if we've hit a dot
|
||
2) jrst getex1 ; else keep on looping
|
||
2) move b, c
|
||
2) pop p,d ? pop p,c ; restore c & d
|
||
2) ret
|
||
2) getexöN„ðßp p,d ? pop p,c ; reþ}7òË c & d
|
||
2) setz b,
|
||
2) ret
|
||
2) ;;; FNSGon tells the luser that we're out of filename space, and dies.
|
||
2) fnsgon: STRT [ASCIZ /Out of filename space!
|
||
2) /]
|
||
2) jrst errdie
|
||
2) ];TNX
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 162-71 (349333) AFTER PRSD4:
|
||
1) CAIL L,EFILES ;PRESS FILE HEADER PAGE.
|
||
1) JRST PRSD5
|
||
1) MOVE CH,F.OFN1(L) ;BUT, IF THIS OUTPUT FILE CORRESPONDS TO AN INPUT FILE
|
||
1) CAMN CH,F.RFN1(L) ;WHICH HAS THE SAME FN1 AS THE OUTPUT FILE,
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 157-71 (342393) AFTER PRSD4:
|
||
2) TNX, NOP
|
||
2) NOTNX,[ CAIL L,EFILES ;PRESS FILE HEADER PAGE.
|
||
2) JRST PRSD5
|
||
2) ];NOTNX
|
||
2) TNX,[ move b, f.osnm(l) ; pointer to file name
|
||
2) call ascout ; shove it out
|
||
2) û®êN±
|
||
2) NOTNXõ–ÄÍŸúÑPC‘,F.OFN1(L) ;BUTõˆ$ÆATHIS ùõjP«T FILE CORúQiПNDS TO AN ù3¨U©ô¤Ì‹
|
||
2) CAMN CH,FõÔ£Nc(L) ;úò$Ñô ÓATHE SAME FN1 ASô$EAùõjP«úˆ#I™E,
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 162-78 (349705) AFTER PRSD5:
|
||
1) POP P,A
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 157-83 (342884) AFTER PRSD5:
|
||
2) ];NOTNX
|
||
2) POP P,A
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 181-26 (387191) AFTER SLURP3:
|
||
1) IFN ANAFLG!FLAFLG,[
|
||
1) SLGLEQ: PUSH P,B .SEE 2MXCRF ; to understand PUSH
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-25 (380377) AFTER SLURP3:
|
||
2) IFN ANAFLG!VFXFLG,[
|
||
2) SLGLEQ: PUSH P,B .SEE 2MXCRF ÷h:oAþ»²eåþ}0îÉô*Ó‘
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 181-48 (387767) AFTER SLGNC1:
|
||
1) FLORIDA,[
|
||
1) CAIE B,DEVFLA ; skip if OSP-130
|
||
1) JRST SLGNC2 ñ.ÐsËe if some ýý4eå type, or done
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-47 (380953) AFTER SLGNC1:
|
||
2) VARIFLEX,[
|
||
2) CAIE B,DEVVFX ; skip if Sanders S700
|
||
2) JRST SLGNC2 ; see if some other type, or done
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 181-53 (387917) AFTER SLGNC1:
|
||
1) MOVEI CH,33 ; underline on
|
||
1) 2PUTCH
|
||
1) MOVEI CH,'E ; <esc>E
|
||
1) 2PUTCH
|
||
1) MOVE CH,0(P) ; get input char back
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-52 (381109) AFTER SLGNC1:
|
||
2) movei B,[ASCIZ /BU/]
|
||
2) pushj P,OutRCL
|
||
2) MOVE CH,0(P) ; get input char back
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 181-62 (388148) AFTER SLGNC1:
|
||
1) MOVEI CH,33 ; underline off
|
||
1) 2PUTCH
|
||
1) MOVEI CH,'R
|
||
1) 2PUTCH
|
||
1) POP P,CH ; return original
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-59 (381308) AFTER SLGNC1:
|
||
2) movei B,[ASCIZ /EU/]
|
||
2) pushj P,OutRCL
|
||
2) ñ4'Ðú!È ; return ýü´çÓnal
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 181-72 (388364) AFTER SLGNC2:
|
||
1) ]; ANADEX!FLORIDA
|
||
1) SLLF: TRZE F,FRLCR
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-67 (381501) AFTER SLGNC2:
|
||
2) ]; ANADEX!VARIFLEX
|
||
2) SLLF: TRZE F,FRLCR
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 181-118 (389550) AFTER SLTAB:
|
||
1) FLORIDA,[
|
||
1) PUSH P,B
|
||
1) MOVE B,DEVICE
|
||
1) CAIN B,DEVFLA ; skip if not florida OSP-130
|
||
1) JRST [POP P,B
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-113 (382688) AFTER SLTAB:
|
||
2) VARIFLEX,[
|
||
2) PUSH P,B
|
||
2) MOVE B,DEVICE
|
||
2) CAIN B,DEVVFX ; skip if not Sanders S700
|
||
2) JRST [POP P,B
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 181-125 (389683) AFTER SLTAB:
|
||
1) ]; FLORIDA
|
||
1) TLNE F,FLXGP ;IN XGP LISTINGS, MUST CONVERT TABS TO SPACES
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-120 (382819) AFTER SLTAB:
|
||
2) ]; VARIFLEX
|
||
2) TLNE F,FLXGP ;IN XGP LISTINGS, MUST CONVERT TABS TO SPACES
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 181-153 (390317) AFTER SLURP4:
|
||
1) 2PUTCH "$
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-148 (383454) AFTER SLURP4:
|
||
2) VARIFLEX,[
|
||
2) ñ3gÖ‹ B,DEVICE
|
||
2) CAIE B,DEVVFX
|
||
2) jrst SLURP5
|
||
2) 2PUTCH "=
|
||
2) movei B,[ASCIZ /NE/]
|
||
2) pushj P,outRCL
|
||
2) 2PATCH "/
|
||
2) jrst SLALT1
|
||
2) SLURP5:
|
||
2) ];VARIFLEX
|
||
2) 2PUTCH "$
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 182-2 (390437) AFTER ANADEX,SLA
|
||
1) SLTBL: JRST SLNUL ;^@
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 176-164 (383733) AFTER ANADEX,SLA
|
||
2) SLVFX:
|
||
2) VARIFù‘l,·
|
||
2) move B,DEVICE
|
||
2) caie B,DEVVFX
|
||
2) jrst SLURP1 ; nothing special if not Variflex
|
||
2) movei B,[ASCIZ /IC/]
|
||
2) pushj P,OutRCL ; insert it
|
||
2) ];VARIFLEX
|
||
2) NOVARIFLEX,[
|
||
2) 2PUTCH "!
|
||
2) ];NOVARIFLEX
|
||
2) movei CH,'!
|
||
2) aojañ0á¬QH)
|
||
2) SLTBL: JRST SLNUL ;^@
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 182-14 (390705) AFTER SLTBL:
|
||
1) IFE ANAFLG!FLAFLG,[
|
||
1) REPEAT 4, JRST SLCTL ;^\-^_
|
||
1) ];ANAFLG!FLAFLG
|
||
1) IFN ANAFLG!FLAFLG,[
|
||
1) JRST SLGLEQ ;^\ - leq [
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 177-14 (384238) AFTER SLTBL:
|
||
2) IFE ANAFLG!VFXFLG,[
|
||
2) REPEAT 4, JRST SLCTL ;^\-^_
|
||
2) ];ANAFLG!VFXFLG
|
||
2) IFN ANAFLG!VFXFLG,[
|
||
2) JRST SLGLEQ ;^\ - leq [
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 182-21 (390878) AFTER SLTBL:
|
||
1) ];IFN ANAFLG!FLAFLG
|
||
1) TRO F,FRLTAB ;SPACE
|
||
1) REPEAT 14., TRZ F,FRLTAB ;! " # $ % & ' ( ) * + , - .
|
||
1) JRST SLSLSH ;/
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 177-21 (384411) AFTER ús*B™:
|
||
2) ];IFN ANAFLG!VFXFLG
|
||
2) TROô–F¥LTAB ;SPACE
|
||
2) IFE VFXFLG,[
|
||
2) TRZ F,FRLTAB ;!
|
||
2) ]
|
||
2) IFN VFXFLG,[
|
||
2) jrst SLVøÖ‰w!
|
||
2) ]
|
||
2) REPEAT 13., TRZ F,FRLTAB ;" # $ % & ' ( ) * + , - .
|
||
2) JRST SLSLSH ;/
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 196-26 (411285) AFTER SIXOUT:
|
||
1) ;OUTPUT ASCIZ STRING POINTED TO BY ADDRESS IN B.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 191-26 (404888) AFTER SIXOUT:
|
||
2) VARIFLEX,[
|
||
2) ; OUTPUT ASCIZ STRING POINTED TO BY ADDRESS IN B.
|
||
2) ; DOEúh'O©ôhDƒTE CC OR Oúµ+P] CRLF'S Mø6PB‹ INCLUDED.
|
||
2) ;
|
||
2) ASCRCL: HRLI B,440700
|
||
2) ASCRC1: ILDB CH,B
|
||
2) JUMPE CH,CPOPJ
|
||
2) 2PATCH
|
||
2) jrst ASCRC1
|
||
2) ]; VARIFLEX
|
||
2) ;OUTPUT ASCIZ STRING POINTED TO BY ADDRESS IN B.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 197-53 (414120) AFTER FILOU2:
|
||
1) MOVE CH,A ; Save BP in case of error
|
||
1) DIRST ; Dir # is in B
|
||
1) ERCAL [MOVE A,CH ; Error, restore BP
|
||
1) POPJ P,]
|
||
1) ö,,,MOVEI CH,"÷È “ø”! ‡H,A
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 192-53 (407943) AFTER FILOU2:
|
||
2) move ch,A
|
||
2) DIRST ; Dir # is in B
|
||
2) ercal [move A,CH ; in case of error, A was destroyed
|
||
2) popj P,]
|
||
2) 10X, MOVEI CH,"> ? IDPB CH,A
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 197-157 (416219) AFTER ITS,FNTOUT
|
||
1) NOITS,[
|
||
1) IFN <.SITE 0,>-<SIXBIT /MIT-XX/>,FNTOUT==:FILOUT
|
||
1) .ELSE [
|
||
1) ;Print an ITS-style file name on a non-ITS system (for XGP purposes).
|
||
1) ; Assumes directory is FONTS. MIT-XX
|
||
1) ;is the onýžPmÃüz4îËô4aé shouý™uçe this, moþ}lÓkely.
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 192-157 (410032) AFTER ITS,FNTOUT
|
||
2) SAI,FNTOUT==:FILOUT
|
||
2) NOITS,[
|
||
2) NOSAI,[
|
||
2) ;Print an ITS-style file name on a non-ITS system (for XGP purposes).
|
||
2) ÷púòåü»ºló onlyô÷ò×þh3oåô°Y and ü<ùõÛü¼ÐdÓrectory is FONTS. MIT-XX
|
||
2) ;is týPoÝly machineô4aé shouý™uçe thiþkmßþ}lÓkely.
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 200-23 (420801) AFTER BEGUN2:
|
||
1) FLORIDA,[
|
||
1) MOVE B,DEVICE
|
||
1) CAIE B,DEVFLA
|
||
1) JRST BEGUN3
|
||
1) 2PATCH 33
|
||
1) 2PATCH "E
|
||
1) POPJ P,
|
||
1) BEGUN3:
|
||
1) ];FLORIDA
|
||
1) TLNN F,FLXGP
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 195-23 (414618) AFTER BEGUN2:
|
||
2) VARIFLEX,[
|
||
2) MOVE B,DEVICE
|
||
2) CAIE B,DEVVFX
|
||
2) JRST BEGUN3
|
||
2) 2PATCH "!
|
||
2) 2PATCH "B
|
||
2) ñ,¨A©ør¢«
|
||
2) 2PATør E!
|
||
2) POPJ P,
|
||
2) BEGUN3:
|
||
2) ];VARIFLEX
|
||
2) TLNN F,FLXGP
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 200-58 (421286) AFTER ENDUN1:
|
||
1) FLORIDA,[
|
||
1) MOVE B,DEVICE
|
||
1) CAIE B,DEVFLA
|
||
1) JRST ENDUN2
|
||
1) 2PATCH 33
|
||
1) 2PATCH "R
|
||
1) POPJ P,
|
||
1) ENDUN2:
|
||
1) ];FLORIDA
|
||
1) TLNN F,FLXGP
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 195-60 (415130) AFTER ENDUN1:
|
||
2) VARIFLEX,[
|
||
2) MOVE B,DEVICE
|
||
2) CAIE B,DEVVFX
|
||
2) JRST ENDUN2
|
||
2) 2PATCH "!
|
||
2) 2PATCH "E
|
||
2) 2PATCH "U
|
||
2) 2PATCH "!
|
||
2) POPJ P,
|
||
2) ENDUN2:
|
||
2) ];VARIFLEX
|
||
2) TLNN F,FLXGP
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 203-22 (427429) AFTER DEVANA:
|
||
1) DEVCGP::[ASCIZ /Canon "XGP"/]
|
||
1) DEVFLA::[ASCIZ /Florida/]
|
||
1) DEVMAX::OFFSET 0
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 198-22 (421299) AFTER DEVANA:
|
||
2) DEVVFX::[ASCIZ /Variflex/]
|
||
2) DEVMAX::OFFSET 0
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 205-99 (431820) AFTER LRPRIN:
|
||
1) PUSH P,F.OFN2(L)
|
||
1) MOVE B,LRCFN2
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 200-99 (425660) AFTER LRPRIN:
|
||
2) NOTNX,[ PUSH P,F.OFN2(L)
|
||
2) MOVE B,LRCFN2
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 205-103 (431894) AFTER LRPRIN:
|
||
1) MOVEI B,[ASCIZ/LREC File: /]
|
||
1) PUSHJ P,ASCOUT
|
||
1) ADDI L,F.OFN1-F.RFN1
|
||
1) PUSHJ P,FILOUM
|
||
1) POP P,F.RFN2(L)
|
||
1) JRST CRLOUT
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 200-103 (425741) AFTER LRPRIN:
|
||
2) ];NOTNX
|
||
2) MOVEI B,[ASCIZ/LREC File: /]
|
||
2) PUSHJ P,ASCOUT
|
||
2) TNX,[ move b, f.osnm(l) ; get pointer to filename string
|
||
2) call ascou1 ; print that out
|
||
2) ];TNX
|
||
2) NOTNX,[ ADDI L,F.OFN1-F.RFN1
|
||
2) PUSHJ P,FILOUM
|
||
2) POP P,F.RFN2(L)
|
||
2) ];NOTNX
|
||
2) JRST CRLOUT
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 221-73 (464318) AFTER MCRFN6:
|
||
1) ADDI CC,1 ;Account for oversize page #.
|
||
1) MCRFN4: MOúÑPAYB
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 216-73 (458287) AFTER MCRFN6:
|
||
2) MCRFN4: MOVE A,B
|
||
***************
|
||
|
||
**** FILE DSK:SYSEN1;@ 695, 229-57 (471499) AFTER IMPTOP:
|
||
**** FILE DSK:GUEST4;SKEF NEWAT, 224-58 (465427) AFTER IMPTOP:
|
||
2) ;;; Things that need to be done before this thing will really fly:
|
||
2) ;;;
|
||
2) ;;; Maybe add some sort of reclaimation of filename space.
|
||
***************
|