IMD 1.17: 24/11/2010 20:02:43 sysgen  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ߋtv ?BOOT-F-No boot on volume           RT11A DECRT11A z,c z\} f Qdv QdHS0 Qd`T0 Q`f :T,`f  !kQf kQf pqkQf kQf kQ f kQ!f kQ f kQ f kQ f z,v& f :K{t  3 z, z,  3             T (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. #SET MONITR=N #SET MTTY=N #SET BLSJFB=N #SET FBis being #PRINT generated, and about monitor and device support #PRINT options you may desire. You should have read the #XM=N #SET TIME=N #PRINT #PRINT RT-11 SYSTEM GENERATION PROGRAM V02.11 #PRINT #ASK Do you want the expanded form of PRINT RT-11 System Generation Manual before proceeding. #PRINT You can terminate SYSGEN at any time by typing CTRL/C. #PRINTdialogue [Y/N] (Y)?LONG/Y=Y #IF LONG #PRINT #PRINT All answers requiring a choice are indicated by [Y/N] #PRINT and req #PRINT The RT-11 system includes a variety of monitors, allowing #PRINT you to select the monitor best suited to your #uire you to type either 'Y' for yes or 'N' #PRINT for no followed by a carriage return. Answers requiring #PRINT numeric inPRINT application. The monitors are customized to your configuration #PRINT by this SYSGEN process, and, while you may build put are indicated by [D] for decimal input and #PRINT [O] for octal input. Answers requiring a device name #PRINT response any number of #PRINT monitors, you should realize that SYSGEN places a large #PRINT demand on time and data storage. #PRare indicated by [DD]; answers requiring a #PRINT device name followed by a unit number are indicated #PRINT by [DDU]. If yoINT #PRINT If you elect to build the base-line #PRINT single-job (SJ) monitor, no other monitors #PRINT may be built duriu enter no response (just a CARRIAGE RETURN), #PRINT your answer will default to the response indicated in #PRINT parentheses before the question mark (e.g. [DD] (RK)?). #PRINT Your responses are checked for validity wherever possible. #PRINT #PRINT The outputs of this SYSGEN program are two conditional #PRINT files (SYCND.MAC and SYSTBL.MAC) and three indirect #PRINT command files (SYSBLD.COM, MONBLD.COM and DEVBLD.COM) #PRINT which are used to assemble and link the monitor(s) and #PRIN ; SYSGEN.CND V02.11A RT-11 SYSGEN SCRIPT FILE ; ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASST device handlers for the target system. The assembly #PRINT and linking process requires a machine with at least #PRINT 16K. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED ; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENS words of memory and mass storage with at least 500 #PRINT free blocks on the output device and 128 free blocks #PRINT on thE. ; ; #NAME SYCND #FILE SYCND.MAC .SBTTL SYSTEM CONDITIONAL FILE ; SYCND.MAC--SYSTEM CONDITIONAL FILE ; ; COPYRIGHe system device. #PRINT #PRINT The following dialogue asks questions about #PRINT the configuration for which the system  E SYSGENED MONITOR #PRINT #ASK Do you want the base-line single-job monitor [Y/N] (N)?BLSJ/Y=N #IF BLSJ #SET SJ=N #SE #IF LONG #PRINT #PRINT The extended memory (XM) monitor is a version of the FB #PRINT monitor which supports up to 128T FB=N #SET XM=N #SET TIME$R=N #SET DS=N #SET DM=N #SET RF=N #SET RX2=N #SET DP=N #SET RP3=N #SET MTSP=N #SEK words of memory. It is #PRINT useful for advanced applications that require an extended #PRINT addressing space. The XM mT TM=N #SET TJU=N #SET GRAFX=N #SET CT=N #SET CR=N #SET BATC$H=N #SET ERL$G=N #SET MONITR=Y #SET BLSJFB=Y #SETonitor is larger than FB and #PRINT requires a resident USR and drivers. #ENDC LONG #PRINT #ASK Do you want the extende MTTY=N ; BASE-LINE SJ MONITOR TIME$R = 0 ;NO TIMER SUPPORT MPT$Y = 0 ;NO MEMORY PARITY SUPPORT BATC$H = 0 ;NO BATCH SUPd memory (XM) monitor [Y/N] (N)?XM/Y=N #IF XM #SET MONITR=Y #SET FBXM=Y #ENDC XM #ENDC BLSJ #IFN MONITR #PRINT PORT ERL$G = 0 ;NO ERROR LOG SUPPORT ESC$P = 0 ;NO ESCAPE SEQUENCE SUPPORT RDF$L = 0 ;NO MESSAGE ON SYS I/O ERRORS (SJ) #PRINT ?SYSGEN-F-No monitor requested #PRINT #EXIT #ENDC MONITR #IFN BLSJ #IF LONG #PRINT #PRINT There are a num#IFF #IF LONG #PRINT #PRINT The single-job (SJ) monitor provides an environment suitable #PRINT for the development of ber of monitor options you may select: #ENDC LONG #IF SJ #IF LONG #PRINT #PRINT The following options apply only to tsimple applications in FORTRAN or #PRINT BASIC. It provides a subset of the foreground/background #PRINT (FB) features and he SJ monitor. #PRINT #PRINT The SJ monitor normally does not have timer support. #PRINT You may optionally include the offers maximum ability for minimum size. #PRINT Some additional features may be added during SYSGEN, but at #PRINT the cost .MRKT and .CMKT requests. #ENDC LONG #PRINT #ASK Do you want timer support in the SJ monitor [Y/N] (N)?TIME$R/Y=N #IF Tof increased monitor size. #ENDC LONG #PRINT #ASK Do you want the single-job (SJ) monitor [Y/N] (Y)?SJ/Y=Y #IF SJ #SEIME$R TIME$R = 1 ;ADD TIMER SUPPORT (SJ) #ENDC TIME$R #IF LONG #PRINT #PRINT The device time-out option permits devicng the same SYSGEN pass. #PRINT #PRINT The base-line single-job (SJ) monitor is the minimal monitor #PRINT necessary to T BLSJFB=Y #SET MONITR=Y #ENDC SJ #IF LONG #PRINT #PRINT The foreground/background (FB) monitor offers an extended execute standard system functions. It is intended #PRINT for systems with only 8K words of memory, or for larger #PRINT syst#PRINT set of facilities which are helpful for applications #PRINT involving real-time or data acquisition. These #PRINT incems that require the lowest possible monitor overhead. #PRINT Device support is limited, and some features of the #PRINT SJ lude timer support, serialized asynchronous I/O, and #PRINT support for a foreground job. #ENDC LONG #PRINT #ASK Do yomonitor usable in larger configurations are omitted, #PRINT such as BATCH and VT11 support. #ENDC LONG SYSG$N = 1 ;INDICATu want the foreground/background (FB) monitor [Y/N] (Y)?FB/Y=Y #IF FB #SET BLSJFB=Y #SET MONITR=Y #SET FBXM=Y #ENDC FB ry for DECNET support. #PRINT Select this option if you are planning to use DECNET #PRINT with your monitor. #ENDC LONG . You may optionally select multi- #PRINT terminal support of up to 16 terminals interfaced through #PRINT a choice of DL11 #PRINT #ASK Do you want device time-out support [Y/N] (N)?DEVTO/Y=N #IF DEVTO #IFN TIME TIM$IT = 1 ;ADD DEVICE TIMER SUand DZ11 interfaces. #ENDC LONG #PRINT #ASK Do you want support of more than one terminal [Y/N] (N)?MTTY/Y=N #IF MTTY PPORT #SET TIME=Y #ENDC TIME #IF SJ #IFN TIME$R TIME$R = 1 ;ADD TIMER SUPPORT (SJ) #ENDC TIME$R #ENDC SJ #ENDC DMTT$Y = 1 ;MULTIPLE TERMINAL SUPPORT (FB,XM) #ENDC MTTY #ENDC FBXM #ENDC BLSJ #IF LONG #PRINT #PRINT The followingEVTO #IF LONG #PRINT #PRINT The SJ monitor will normally halt at the "system halt" #PRINT if there is a fatal system I/ options apply to all monitors. #PRINT #PRINT RT-11 assumes a 60 Hz power line frequency, but can #PRINT optionally suppO error. This halt can #PRINT be replaced with a system error message at the cost of #PRINT about 30 words additional code iort a 50 Hz frequency. #ENDC LONG #PRINT #ASK Do you want the optional 50 Hz clock support [Y/N] (N)?CLOCK/Y=N #IF CLOCn the resident #PRINT monitor. This option is highly recommended if the system #PRINT is going to be used by anyone other thK CLOCK = 50. ;POWER LINE FREQUENCY (SJ,FB,XM) #IFF CLOCK = 60. ;POWER LINE FREQUENCY (SJ,FB,XM) #ENDC CLOCK #IFN BLSJan the expert. #ENDC LONG #PRINT #ASK Do you want an error message on system I/O errors [Y/N] (Y)?RDF$L/Y=Y #IF RDF$L  #IF LONG #PRINT #PRINT RT-11 normally uses a line clock for the system clock. #PRINT You may substitute the KW11-P proRDF$L = 1 ;ADD SYSTEM I/O ERROR MESSAGE (SJ) #IFF RDF$L = 0 ;NO SYSTEM I/O ERROR MESSAGE (SJ) #ENDC RDF$L #ENDC SJ #Igrammable clock if you wish, #PRINT in which case the KW11-P is not available for program use. #ENDC LONG #PRINT #ASKF FBXM #IF LONG #PRINT #PRINT The following options apply only to the FB and XM monitors. #PRINT #PRINT The FB and  Do you want to use the KW11-P clock as the system clock [Y/N] (N)?KW11$P/Y=N #IF KW11$P KW11$P = 1 ;USE KW11-P CLOCK AS SYSXM monitors' scheduler idle loop will display #PRINT a moving light pattern in the display register of any #PRINT PDP-11/45,TEM CLOCK (SJ,FB,XM) #ENDC KW11$P #ENDC BLSJ #IF LONG #PRINT #PRINT The bootstrap optionally executes an indirect fil 11/50, 11/55 or 11/70 processor. #ENDC LONG #PRINT #ASK Do you want idle loop light pattern [Y/N] (N)?LIGH$T/Y=N #IF Le when #PRINT starting the system. #ENDC LONG #PRINT #ASK Do you want the startup indirect file [Y/N] (Y)?START/Y=Y #IGH$T LIGH$T = 1 ;IDLE LOOP LIGHT PATTERN (FB,XM) #ENDC LIGH$T #IF LONG #PRINT #PRINT RT-11 normally supports a singlIF START STAR$T = 1 ;STARTUP COMMAND FILE (SJ,FB,XM) #ENDC START #IFN BLSJ #IF LONG #PRINT #PRINT RT-11 supports pae drives to issue #PRINT mark time requests. This feature is currently not used #PRINT by any RT-11 drivers, but is necessae terminal interfaced through #PRINT the console KL11 or DL11, which is shared by both background #PRINT and foreground jobs is support. #ENDC LONG #PRINT #ASK Do you want escape sequence processing [Y/N] (N)?ESC/Y=N #IF ESC #PRINT #ASK Do#PRINT allows the application program to dump the error log buffer #PRINT to the error file at regular intervals. Unless your  you want ANSI standard escape sequences [Y/N] (N)?ANSI/Y=N #IF ANSI ESC$P = 2 ;ANSI ESCAPE SEQUENCES (SJ,FB,XM) #IFF ESC #PRINT application specifically uses this feature, you do not need #PRINT this support. #ENDC LONG #PRINT #PRINT Do yrity memory and processes memory #PRINT parity errors. If error logging is present, parity errors #PRINT are also logged. $P = 1 ;DEC ESCAPE SEQUENCES (SJ,FB,XM) #PRINT #PRINT DEC standard escape sequences assumed. #ENDC ANSI #IFF ESC$P =  #ENDC LONG #PRINT #ASK Do you want memory parity support [Y/N] (N)?MPT$Y/Y=N #IF MPT$Y MPT$Y = 1 ;MEMORY PARITY (SJ,FB0 ;NO ESCAPE SEQUENCES (SJ,FB,XM) #ENDC ESC #IF LONG #PRINT #PRINT Selection of error logging creates the error loggin,XM) #ENDC MPT$Y #IF LONG #PRINT #PRINT The monitor normally halts on power recovery startup #PRINT after a power faig #PRINT driver EL and incorporates error logging into the device #PRINT handlers. When EL is loaded and initialized, logginlure. You may elect to have the monitor #PRINT print a message explaining that power failure caused the halt. #ENDC LONG g of #PRINT disk, DECtape and memory parity errors will occur. #ENDC LONG #PRINT #ASK Do you want error logging [Y/N] (#PRINT #ASK Do you want power failure messages [Y/N] (Y)?PWF$L/Y=Y #IF PWF$L PWF$L = 1 ;POWER FAIL (SJ,FB,XM) #ENDC PWFN)?ERL$G/Y=N #IF ERL$G ERL$G = 1 ;ERROR LOGGING (SJ,FB,XM) #IF SJ #IFN TIME$R TIME$R = 1 ;ADD TIMER SUPPORT (SJ) #EN$L #IF LONG #PRINT #PRINT RT-11 supports BATCH as an option. Indirect command #PRINT file support is separately availabDC TIME$R #ENDC SJ #IF LONG #PRINT #PRINT The error logger can capture either initial errors #PRINT or the most recenle in all monitors, #PRINT and BATCH support need not be selected to obtain #PRINT indirect command file support. #ENDC LOt errors that have occured. For most #PRINT types of problems, information concerning initial #PRINT errors is most useful. NG #PRINT #ASK Do you want BATCH support [Y/N] (N)?BATC$H/Y=N #IF BATC$H BATC$H = 1 ;BATCH SUPPORT (SJ,FB,XM) #ENDC B #ENDC LONG #PRINT #ASK Should the error logger capture the most recent errors [Y/N] (N)?ERLW/Y=N #IF ERLW ERL$W = 1 ;ATC$H #IF LONG #PRINT #PRINT The RT-11 terminal service is capable of recognizing #PRINT ANSI or DEC standard escape seLOG MOST RECENT ERROR (SJ,FB,XM) #ENDC ERLW #IF LONG #PRINT #PRINT Normal error logging usage requires the utility ERRUquences and processing #PRINT those sequences according to application instructions. #PRINT This support is not necessary foTL #PRINT to be run occasionally from the console #PRINT to write the error information out to the error log file. If #PRIr normal system operation; #PRINT if your application does not make special use of escape #PRINT sequences, do not select thNT an application is to be run continuously for a long period #PRINT of time, however, the error logger has a facility that  = ER.U. ;NUMBER OF UNITS TO BE LOGGED #ENDS #ENDC ERL$G #ENDC BLSJ #SET RK=N #SET RF=N #SET DT=N #SET DX=N #SEENDC RK #ENDC BLSJ #IFN BLSJ #IFN DS #IFN RF #PRINT #ASK Do you want RJS03 or RJS04 disk support [Y/N] (N)?DS/Y=N T DS=N #SET DP=N #SET DM=N #SET DL=N #SET DY=N #IF LONG #PRINT #PRINT The following questions ask about the #PR #ENDC RF #ENDC DS #IF DS #PRINT #ASK Do you want RJS03 support (as opposed to RJS04 support) [Y/N] (Y)?DS3/Y=Y #IF DINT peripheral devices that are to be supported by the #PRINT generated system. By selecting support for a specific #PRINT dS3 RJS0$3 = 1 ;RJS DISK IS RJS03 #IFF #PRINT #PRINT RJS04 support assumed. RJS0$3 = 0 ;RJS DISK IS RJS04 #ENDC DS3 evice, you make the device known to the monitor's #PRINT device tables, and you cause a device handler #PRINT to be generate #ENDC DS #IFN DS #IFN RF #PRINT #ASK Do you want RF11 fixed-head disk support [Y/N] (N)?RF/Y=N #ENDC RF #IF RF d for the device. If you do not select #PRINT a specific device, you will have to create the #PRINT device handler separatel#PRINT #ASK How many disk platters are installed on the RF11 controller [D] (1)?RFP/D=1,1,8 #SUBS "RF.P"RFP $RFNUM = RF.P.ou want a program other than ERRUTL #ASK - to write the error log buffer [Y/N] (N)?ERLA/Y=N #IF ERLA ERL$A = 1 ;AUTOMATIy and use the monitor #PRINT INSTALL command when device access is desired. #PRINT #PRINT RT-11 supports the following deC ERROR LOG DUMPING (SJ,FB,XM) #ENDC ERLA #IF LONG #PRINT #PRINT The error logger requires a resident buffer to collectvices as system devices: #IF BLSJ #PRINT RK RK05 Cartridge Disk #PRINT DT DECtape #PRINT DX Flexible Diskette #I #PRINT errors. The buffer size may be increased to accomodate #PRINT an unusual error load. #ENDC LONG #PRINT #PRINTFF #PRINT RK RK05 Cartridge Disk #PRINT DL RL01 Cartridge Disk #PRINT RF RF11 Fixed-head Disk #PRINT DT DECtape  How many 256 word memory blocks should be #ASK - set aside for the error buffer [D] (1)?ERLB/D=1,1,4 #SUBS "ER.B"ERLB ER #PRINT DX RX01 Flexible Diskette #PRINT DY RX02 Double Density Diskette #PRINT DS RJS03/4 Massbus Fixed-head Disk L$B = ER.B. ;NUMBER OF BLOCKS IN ERROR LOG BUFFER #ENDS #IF LONG #PRINT #PRINT The error logger can handle up to 35 in#PRINT DP RP11 Disk Pack #PRINT DM RK06/RK07 Cartridge Disk #ENDC BLSJ #PRINT #PRINT You must select one as your sdividual device #PRINT units. Space can be conserved by reducing the number #PRINT of units the logger can handle to the speystem device; use the #PRINT two character device name as indicated above. #ENDC LONG #PRINT #ASK What is the name of tcific number #PRINT of units present on the target configuration. Only disk #PRINT and DECtape units need be included. #ENhe system device [DD] (RK)?SYSDV/A=RK #SUBS "S$D."SYSDV $S$D.SYS = 1 ;SYSTEM DEVICE #SET S$D.=Y #ENDS #IF BLSJ #IFN DC LONG #PRINT #ASK How many disk and DECtape device units can be logged [D] (10)?ERLU/D=10,1,35 #SUBS "ER.U"ERLU ERL$U RK #IFN DT #IFN DX #PRINT #PRINT ?SYSGEN-F-Illegal system device for base-line monitor #EXIT #ENDC DX #ENDC DT # es for each controller. If your system contains four #PRINT diskette drives, there is a second controller present #PRINT sup the device #PRINT handler by specifying double density support only. #ENDC LONG #PRINT #ASK Do you want RX02 double deporting the third and fourth units. #ENDC LONG #PRINT #ASK Do you want support for a second RX11 controller [Y/N] (N)?DX2nsity support only [Y/N] (N)?DYD/Y=N #IF DYD DY$DD = 1 ;RX02 DOUBLE DENSITY ONLY #ENDC DYD #PRINT #PRINT What is the /Y=N #PRINT #PRINT What is the CSR address for the #ASK - first RX11 controller [O] (177170)?DXC1/O=177170,160000,17757CSR address for the #ASK - first RX02 controller [O] (177170)?DYC1/O=177170,160000,177570 #PRINT #ASK What is the vecto0 #PRINT #ASK What is the vector address for the first RX11 controller [O] (264)?DXV1/O=264,100,770 #SUBS "R.C"DXC1 DX$Cr address for the first RX02 controller [O] (264)?DYV1/O=264,100,770 #SUBS "R.C"DYC1 DY$CSR = R.C ;CSR OF FIRST RX02 #SUBS SR = R.C ;CSR OF FIRST RX11 #SUBS "R.V"DXV1 DX$VEC = R.V ;VECTOR OF FIRST RX11 #ENDS #IF DX2 DXT$O = 1 ;SECOND RX11 CO"R.V"DYV1 DY$VEC = R.V ;VECTOR OF FIRST RX02 #ENDS #IF DY2 DYT$O = 1 ;SECOND RX02 CONTROLLER #PRINT #PRINT What is NTROLLER #PRINT #PRINT What is the CSR address for the #ASK - second RX11 controller [O] (177150)?DXC/O=177150,160000,1the CSR address for the #ASK - second RX02 controller [O] (177150)?DYC/O=177150,160000,177564 #PRINT #ASK What is the v77570 #PRINT #ASK What is the vector address for the second RX11 controller [O] (270)?DXV/O=270,100,770 #SUBS "R.C"DXC Dector address for the second RX02 controller [O] (270)?DYV/O=270,100,770 #SUBS "R.C"DYC DY$CS2 = R.C ;CSR OF SECOND RX02 #SX$CS2 = R.C ;CSR OF SECOND RX11 #SUBS "R.V"DXV DX$VC2 = R.V ;VECTOR OF SECOND RX11 #ENDS #ENDC DX2 #ENDC DX #IFN BLSUBS "R.V"DYV DY$VC2 = R.V ;VECTOR OF SECOND RX02 #ENDS #ENDC DY2 #ENDC DY #IFN DL #PRINT #ASK Do you want RL01 di ;NUMBER OF RS11 PLATTERS #ENDS #ENDC RF #ENDC DS #IFN DP #PRINT #ASK Do you want RP11/RPR02 or RP11/RP03 disk supJ #IFN DY #PRINT #ASK Do you want RX02 diskette support [Y/N] (N)?DY/Y=N #ENDC DY #IF DY #IF LONG #PRINT #PRINport [Y/N] (N)?DP/Y=N #ENDC DP #IF DP #PRINT #ASK Do you want RPR02 support (as opposed to RPR02/RP03) [Y/N] (Y)?DP2/Y=T The RX02 diskette subsystem supports only two drives for #PRINT each controller. If your system contains four drives, #PRY #IF DP2 RP0$3 = 0 ;RP11 DISK IS RP02/RPR02 #IFF RP0$3 = 1 ;RP11 DISK IS RP03 #PRINT #PRINT RPR02 and RP03 supportINT there is a second controller present supporting the #PRINT third and fourth units. #ENDC LONG #PRINT #ASK Do you wa assumed. #ENDC DP2 #ENDC DP #ENDC BLSJ #IFN DX #PRINT #ASK Do you want RX01/RX11 flexible diskette support [Y/N] (nt support for a second RX02 controller [Y/N] (N)?DY2/Y=N #IF LONG #PRINT #PRINT The RX02 diskette supports both single aN)?DX/Y=N #ENDC DX #IF DX #IF LONG #PRINT #PRINT The RX11 flexible diskette subsystem supports only two #PRINT drivnd double densities #PRINT by default. You can obtain a slight performance #PRINT enhancement and a reduction in the size of  F disk support [Y/N] (N)?RK/Y=N #ENDC RK #IFN DT #PRINT #ASK Do you want TC11 DECtape support [Y/N] (N)?DT/Y=N #ENDC S "D.N"DRIVEN DRIVEN = D.N. ;NUMBER OF MAGTAPE UNITS #ENDS #ENDC MTF #PRINT #ASK Do you want TM11 (UNIBUS) magtape suDT #IFN BLSJ #IFN DM #PRINT #ASK Do you want RK06/RK07 disk support [Y/N] (N)?DM/Y=N #ENDC DM #PRINT #ASK Do youpport [Y/N] (Y)?TM/Y=Y #IF TM #SET TJU=N #IFF #PRINT #ASK Do you want TJU16 (MASSBUS) magtape support [Y/N] (Y)?TJU/Y want magnetic tape support [Y/N] (N)?MTSP/Y=N #IFN MTSP #SET TM=N #SET TJU=N #IFF #IF LONG #PRINT #PRINT RT-11 m=Y #IFN TJU #PRINT #PRINT ?SYSGEN-F-Magtape specification error #PRINT #EXIT #ENDC TJU #ENDC TM #ENDC MTSP #agtape support is available in two forms. The standard #PRINT form is file-structured magtape, which supports a subset of #PPRINT #ASK Do you want TA11 cassette support [Y/N] (N)?CT/Y=N #PRINT #ASK Do you want VT11 or VS60 graphics support [Y/NRINT ANSI file format. The file-structured handler may be used to #PRINT store and retrieve data in a file format usable with ] (N)?GRAFX/Y=N #IF GRAFX #PRINT #ASK Do you want VS60 support [Y/N] (N)?VS60$/Y=N #IF VS60$ VS60$ = 1 ;SUPPORT VS60 most #PRINT RT-11 system programs. The second form of magtape support #PRINT omits file structuring and reads and writes datDISPLAY #IFF VT11$ = 1 ;SUPPORT VT11 DISPLAY #PRINT #PRINT VT11 hardware is assumed. #ENDC VS60$ #IF LONG #PRINT a directly in variable #PRINT length records. This type of support is called the "hardware #PRINT handler", and while this h #PRINT The VT11/VS60 is normally installed at vector 320 with #PRINT its CSR address at 172000, but these addresses may floandler is significantly smaller than #PRINT the file-structured handler, it can not be used with any #PRINT system programs.at. #ENDC LONG #PRINT #ASK What is the CSR address for the VT11/VS60 [O] (172000)?VC/O=172000,160000,177570 #PRINT # The file-structured handler is also #PRINT capable of performing direct hardware functions. #ENDC LONG #PRINT #ASK Do ASK What is the vector address for the VT11/VS60 [O] (320)?VV/O=320,300,770 #SUBS "V.C"VC VT.CSR = V.C ;VT11/VS60 CSR #SUBSyou want the file-structured magtape handler [Y/N] (Y)?MTF/Y=Y #IF MTF FILES = 1 ;MAGTAPE FILES SUPPORT #IF LONG #PRINT  "V.V"VV VT.VEC = V.V ;VT11/VS60 VECTOR #ENDS #ENDC GRAFX #ENDC BLSJ #PRINT #ASK Do you want line printer support [ #PRINT The file-structured handler requires table space for #PRINT each magtape unit. You can minimize the size of #PRINTY/N] (Y)?LP/Y=Y #IF LP #IF LONG #PRINT #PRINT The line printer vector address is normally 200 #PRINT and the CSR addrsk support [Y/N] (N)?DL/Y=N #ENDC DL #IF DL #PRINT #ASK How many RL01 units are to be supported [D] (2)?DLUNIT/D=2,1,4  the magtape handler by limiting the number of units it can #PRINT simultaneously handle to the number actually present on the #SUBS "U.N"DLUNIT DL$UN = U.N ;NUMBER OF RL01 UNITS #ENDC DL #ENDC BLSJ #IFN RK #PRINT #ASK Do you want RK05/RK05 #PRINT target machine. #ENDC LONG #PRINT #ASK How many magtape units are to be supported [D] (2)?DRIVEN/D=2,1,8 #SUB  e monitor is allocated #PRINT only for the devices specified, but you may allocate additional #PRINT space by requesting emp Physical unit numbers of the DL11 lines are assigned #PRINT first to local lines and then to remote lines. This assignment ess is normally 177514. If your printer #PRINT is installed at another vector or CSR address, you #PRINT must specify the coty device slots. Allocate #PRINT one empty slot for each device you intend to add to #PRINT the system after it is built. rrect values. #ENDC LONG #PRINT #ASK Does your printer have a non-standard vector or CSR address [Y/N] (N)?NSLP/Y=N #IF#ENDC LONG #PRINT #ASK How many extra device slots do you want [D] (0)?EMPTY/D=0,0,10 #IF LONG #PRINT #PRINT The in NSLP #PRINT #ASK What is the CSR address for the printer [O] (177514)?LPCS/O=177514,160000,177570 #PRINT #ASK What isdirect command files generated by the SYSGEN program #PRINT contain commands that will delete the object modules #PRINT from the vector address for the printer [O] (200)?LPVC/O=200,100,770 #SUBS "LPC$"LPCS LP.S = LPC$ ;LINE PRINTER CSR #SUBS "LPV$ which the system is built when they are #PRINT no longer needed. This measure serves to conserve disk #PRINT space while th"LPVC LP.VEC = LPV$ ;LINE PRINTER VECTOR #ENDS #ENDC NSLP #ENDC LP #IF LONG #PRINT #PRINT The PC11 is a high speee system is being built. It is often useful, #PRINT however, to keep the object modules for later use in #PRINT patching thed paper tape reader/punch unit. #PRINT The PR11 is a similar unit with a high speed reader but no punch. #ENDC LONG #PRINT system. If your output device #PRINT has sufficient free space,you can elect to retain all #PRINT system object modules for #ASK Do you want PC11 high-speed paper tape reader/punch support [Y/N] (N)?PC/Y=N #IF PC #SET PR=N PR11$X = 0 ;PC11 HI future use. #ENDC LONG #PRINT #ASK Do you want to retain the system OBJ's [Y/N] (N)?OBJ/Y=N #IF MTTY #IF LONG #PR-SPEED READER/PUNCH #IFF #PRINT #ASK Do you want PR11 high-speed paper tape reader support [Y/N] (N)?PR/Y=N #IF PR PR1INT #PRINT The following questions ask about the terminal #PRINT interfaces installed in your system. RT-11 supports a #P1$X = 1 ;PR11 HI-SPEED READER #ENDC PR #ENDC PC #IFN BLSJ #PRINT #ASK Do you want card reader support [Y/N] (N)?CR/YRINT combination of serial asynchronous interfaces which include #PRINT the KL11, DLV11, DLV11-E, DLV11-F, DLV11-J, and the DL=N #ENDC BLSJ #IF LONG #PRINT #PRINT The null handler is a mechanism that allows logical #PRINT input and output to t11 #PRINT series. It also supports DL11-E and DLV11-E interfaces with #PRINT modem capabilities, and the DZ11 and DZV11 serake place without actual physical #PRINT data transfers. It is most useful in debugging applications. #ENDC LONG #PRINT ies of #PRINT asynchronous line multiplexors. #PRINT #PRINT The dialogue asks first for the number of local DL11 #PRIN #ASK Do you want the null handler [Y/N] (Y)?NULL/Y=Y #IF LONG #PRINT #PRINT This completes the device query. Space in thT lines, then the number of remote DL11 lines. The total #PRINT number of lines is the sum of local and remote #PRINT lines.  r the first (console) DL11 [O] (60)?DLV0/O=60,60,770 #SUBS "DL.C"DLC0 #SUBS "DL.V"DLV0 DLC$0 = DL.C ;CSR OF 1ST (CONSOLE) D (remote) DL11 [O] (310)?DLV2/O=310,60,770 #SUBS "DL.C"DLC2 #SUBS "DL.V"DLV2 DLC$2 = DL.C ;CSR OF 3RD (REMOTE) DL11 (MULTI-L11 (MULTI-TERM SUPPORT) DLV$0 = DL.V ;VECTOR OF 1ST (CONSOLE) DL11 (MULTI-TERM SUPPORT) #ENDS #DECR DLNUM #IFGT DLNUM TERM SUPPORT) DLV$2 = DL.V ;VECTOR OF 3RD (REMOTE) DL11 (MULTI-TERM SUPPORT) #ENDS #DECR DLMDM #ENDC DLMDM #ENDC DLNUM #PRINT #ASK What is the CSR address for the next (local) DL11 [O] (176500)?DLC1/O=176500,160000,177570 #PRINT #ASK What #DECR DLNUM #IFGT DLNUM #PRINT #ASK What is the CSR address for the next (local) DL11 [O] (176520)?DLC3/O=176520,16000 is the vector address for the next (local) DL11 [O] (300)?DLV1/O=300,60,770 #SUBS "DL.C"DLC1 #SUBS "DL.V"DLV1 DLC$1 = DL.C0,177570 #PRINT #ASK What is the vector address for the next (local) DL11 [O] (320)?DLV3/O=320,60,770 #SUBS "DL.C"DLC3 #PRINT is permanent and its order cannot be changed. #PRINT #PRINT After the dialogue has established the number of lines o ;CSR OF 2ND (LOCAL) DL11 (MULTI-TERM SUPPORT) DLV$1 = DL.V ;VECTOR OF 2ND (LOCAL) DL11 (MULTI-TERM SUPPORT) #ENDS #IFF f each #PRINT type, the CSR and vector addresses for each line must be #PRINT established. The first question corresponds to#IFGT DLMDM #PRINT #ASK What is the CSR address for the next (remote) DL11 [O] (175610)?DLC1/O=175610,160000,177570 #PRIN the first #PRINT local line (the console), the second to the second local #PRINT line, etc. until all local lines are accouT #ASK What is the vector address for the next (remote) DL11 [O] (300)?DLV1/O=300,60,770 #SUBS "DL.C"DLC1 #SUBS "DL.V"DLVnted for. At that #PRINT point, the next response applies to the first remote #PRINT line, the second to the second remote l1 DLC$1 = DL.C ;CSR OF 2ND (REMOTE) DL11 (MULTI-TERM SUPPORT) DLV$1 = DL.V ;VECTOR OF 2ND (REMOTE) DL11 (MULTI-TERM SUPPORT) ine, etc. until all #PRINT remote lines are accounted for. #ENDC LONG #PRINT #ASK How many local DL11's, including the  #ENDS #DECR DLMDM #ENDC DLMDM #ENDC DLNUM #DECR DLNUM #IFGT DLNUM #PRINT #ASK What is the CSR address for the nconsole [D] (1)?DLNUM/D=1,1,8 #SUBS "DLN$"DLNUM DL11$L = DLN$. ;# OF LOCAL DL11 INTERFACES (MULTI-TERM SUPPORT) #PRINT ext (local) DL11 [O] (176510)?DLC2/O=176510,160000,177570 #PRINT #ASK What is the vector address for the next (local) DL11 #ASK How many remote DL11 lines [D] (0)?DLMDM/D=0,0,7 #SUBS "DLM$"DLMDM DL11$M = DLM$. ;# OF REMOTE DL11-E LINES (MULTI-TERM[O] (310)?DLV2/O=310,60,770 #SUBS "DL.C"DLC2 #SUBS "DL.V"DLV2 DLC$2 = DL.C ;CSR OF 3RD (LOCAL) DL11 (MULTI-TERM SUPPORT) D SUPPORT) DL11$N = DLN$. + DLM$. ;TOTAL # OF DL11 LINES (MULTI-TERM SUPPORT) #ENDS #PRINT #PRINT What is the CSR addressLV$2 = DL.V ;VECTOR OF 3RD (LOCAL) DL11 (MULTI-TERM SUPPORT) #ENDS #IFF #IFGT DLMDM #PRINT #ASK What is the CSR addr for the #ASK - first (console) DL11 [O] (177560)?DLC0/O=177560,160000,177570 #PRINT #ASK What is the vector address foess for the next (remote) DL11 [O] (175620)?DLC2/O=175620,160000,177570 #PRINT #ASK What is the vector address for the next  ess for the next (local) DL11 [O] (330)?DLV4/O=330,60,770 #SUBS "DL.C"DLC4 #SUBS "DL.V"DLV4 DLC$4 = DL.C ;CSR OF 5TH (LOCAL #ASK What is the vector address for the next (local) DL11 [O] (350)?DLV6/O=350,60,770 #SUBS "DL.C"DLC6 #SUBS "DL.V"DLV6 D) DL11 (MULTI-TERM SUPPORT) DLV$4 = DL.V ;VECTOR OF 5TH (LOCAL) DL11 (MULTI-TERM SUPPORT) #ENDS #IFF #IFGT DLMDM #PRINLC$6 = DL.C ;CSR OF 7TH (LOCAL) DL11 (MULTI-TERM SUPPORT) DLV$6 = DL.V ;VECTOR OF 7TH (LOCAL) DL11 (MULTI-TERM SUPPORT) #ENDT #ASK What is the CSR address for the next (remote) DL11 [O] (175640)?DLC4/O=175640,160000,177570 #PRINT #ASK What is tS #IFF #IFGT DLMDM #PRINT #ASK What is the CSR address for the next (remote) DL11 [O] (175660)?DLC6/O=175660,160000,177he vector address for the next (remote) DL11 [O] (330)?DLV4/O=330,60,770 #SUBS "DL.C"DLC4 #SUBS "DL.V"DLV4 DLC$4 = DL.C ;CS570 #PRINT #ASK What is the vector address for the next (remote) DL11 [O] (350)?DLV6/O=350,60,770 #SUBS "DL.C"DLC6 #SUBR OF 5TH (REMOTE) DL11 (MULTI-TERM SUPPORT) DLV$4 = DL.V ;VECTOR OF 5TH (REMOTE) DL11 (MULTI-TERM SUPPORT) #ENDS #DECR DLMS "DL.V"DLV6 DLC$6 = DL.C ;CSR OF 7TH (REMOTE) DL11 (MULTI-TERM SUPPORT) DLV$6 = DL.V ;VECTOR OF 7TH (REMOTE) DL11 (MULTI-TERDM #ENDC DLMDM #ENDC DLNUM #DECR DLNUM #IFGT DLNUM #PRINT #ASK What is the CSR address for the next (local) DL11 [OM SUPPORT) #ENDS #DECR DLMDM #ENDC DLMDM #ENDC DLNUM #DECR DLNUM #IFGT DLNUM #PRINT #ASK What is the CSR addres] (176540)?DLC5/O=176540,160000,177570 #PRINT #ASK What is the vector address for the next (local) DL11 [O] (340)?DLV5/O=34s for the next (local) DL11 [O] (176560)?DLC7/O=176560,160000,177570 #PRINT #ASK What is the vector address for the next (l#SUBS "DL.V"DLV3 DLC$3 = DL.C ;CSR OF 4TH (LOCAL) DL11 (MULTI-TERM SUPPORT) DLV$3 = DL.V ;VECTOR OF 4TH (LOCAL) DL11 (MULTI-T0,60,770 #SUBS "DL.C"DLC5 #SUBS "DL.V"DLV5 DLC$5 = DL.C ;CSR OF 6TH (LOCAL) DL11 (MULTI-TERM SUPPORT) DLV$5 = DL.V ;VECTOERM SUPPORT) #ENDS #IFF #IFGT DLMDM #PRINT #ASK What is the CSR address for the next (remote) DL11 [O] (175630)?DLC3/R OF 6TH (LOCAL) DL11 (MULTI-TERM SUPPORT) #ENDS #IFF #IFGT DLMDM #PRINT #ASK What is the CSR address for the next (rO=175630,160000,177570 #PRINT #ASK What is the vector address for the next (remote) DL11 [O] (320)?DLV3/O=320,60,770 #SUBemote) DL11 [O] (175650)?DLC5/O=175650,160000,177570 #PRINT #ASK What is the vector address for the next (remote) DL11 [O] S "DL.C"DLC3 #SUBS "DL.V"DLV3 DLC$3 = DL.C ;CSR OF 4TH (REMOTE) DL11 (MULTI-TERM SUPPORT) DLV$3 = DL.V ;VECTOR OF 4TH (REMO(340)?DLV5/O=340,60,770 #SUBS "DL.C"DLC5 #SUBS "DL.V"DLV5 DLC$5 = DL.C ;CSR OF 6TH (REMOTE) DL11 (MULTI-TERM SUPPORT) DLV$TE) DL11 (MULTI-TERM SUPPORT) #ENDS #DECR DLMDM #ENDC DLMDM #ENDC DLNUM #DECR DLNUM #IFGT DLNUM #PRINT #ASK Wha5 = DL.V ;VECTOR OF 6TH (REMOTE) DL11 (MULTI-TERM SUPPORT) #ENDS #DECR DLMDM #ENDC DLMDM #ENDC DLNUM #DECR DLNUM #It is the CSR address for the next (local) DL11 [O] (176530)?DLC4/O=176530,160000,177570 #PRINT #ASK What is the vector addrFGT DLNUM #PRINT #ASK What is the CSR address for the next (local) DL11 [O] (176550)?DLC6/O=176550,160000,177570 #PRINT  or the next (remote) DL11 [O] (360)?DLV7/O=360,60,770 #SUBS "DL.C"DLC7 #SUBS "DL.V"DLV7 DLC$7 = DL.C ;CSR OF 8TH (REMOTE) DSTOP UNIT (MULTI-TERM SUPPORT) #IFF #PRINT #ASK Do you want the lines initialized to 150 baud [Y/N] (Y)?B150/Y=Y #IF B1L11 (MULTI-TERM SUPPORT) DLV$7 = DL.V ;VECTOR OF 8TH (REMOTE) DL11 (MULTI-TERM SUPPORT) #ENDS #DECR DLMDM #ENDC DLMDM 50 DZSP$D = 2000 ;INIT TO 150 BAUD (MULTI-TERM SUPPORT) DZST$P = 0 ;1 STOP UNIT (MULTI-TERM SUPPORT) #IFF DZSP$D = 1000 #ENDC DLNUM #IF LONG #PRINT #PRINT RT-11 supports one DZ11-A or -B eight line multiplexor #PRINT with an additional DZ1;INIT TO 110 BAUD (MULTI-TERM SUPPORT) DZST$P = 40 ;2 STOP UNITS (MULTI-TERM SUPPORT) #PRINT #PRINT 110 baud is assumed. 1-C or -D eight line multiplexor #PRINT for a maximum of 16 lines,or one DZV11 four line #PRINT multiplexor. Modem support  #ENDC B150 #ENDC B300 #IF LONG #PRINT #PRINT The vectors and CSR addresses are assigned to the floating #PRINT deviis available on #PRINT remote lines, but is limited to Bell 103 type modems or #PRINT equivalent with the "common clear to sce region and will vary with each installation. #ENDC LONG #IFN DZ11 #PRINT #ASK What is the CSR address for the DZV11 end and carrier" #PRINT option installed to operate the modem in an auto-answer mode. #ENDC LONG #PRINT #ASK Do you wan[O] (160010)?DZ1/O=160010,160000,177570 #PRINT #ASK What is the vector address for the DZV11 [O] (300)?DZV1/O=300,60,770 t DZ11 or DZV11 multiplexor support [Y/N] (N)?DZNEED/Y=N #IFN DZNEED DZ11$N = 0 ;NO DZ11 OR DZV11 SUPPORT (MULTI-TERM SUPPOR#SUBS "DZCS1"DZ1 #SUBS "DZVEC1"DZV1 DZVC$0 = DZVEC1 ;VECTOR OF FIRST DZ11 (MULTI-TERM SUPPORT) DZCS$0 = DZCS1 ;CSR OF FIRSTT) #IFF #PRINT #ASK Do you want DZ11 multiplexor support [Y/N] (Y)?DZ11/Y=Y #IF DZ11 #PRINT #ASK Do you want supp DZ11 (MULTI-TERM SUPPORT) #ENDS #IFF #PRINT #ASK What is the CSR address for the first DZ11 [O] (160010)?DZ1/O=160010ort for two DZ11's [Y/N] (N)?DZTWO/Y=N #IF DZTWO DZ11$N = 2 ;# OF DZ11 MULTIPLEXORS (MULTI-TERM SUPPORT) #IFF DZ11$N = 1,160000,177570 #PRINT #ASK What is the vector address for the first DZ11 [O] (300)?DZV1/O=300,60,770 #SUBS "DZCS1"DZ1 # ;# OF DZ11 MULTIPLEXORS (MULTI-TERM SUPPORT) #ENDC DZTWO #IFF #PRINT #PRINT One DZV11 four line multiplexor assumed.SUBS "DZVEC1"DZV1 DZVC$0 = DZVEC1 ;VECTOR OF FIRST DZ11 (MULTI-TERM SUPPORT) DZCS$0 = DZCS1 ;CSR OF FIRST DZ11 (MULTI-TERM SUocal) DL11 [O] (360)?DLV7/O=360,60,770 #SUBS "DL.C"DLC7 #SUBS "DL.V"DLV7 DLC$7 = DL.C ;CSR OF 8TH (LOCAL) DL11 (MULTI-TERM  DZ11$N = 1 ;# OF DZV11 MULTIPLEXORS (MULTI-TERM SUPPORT) #ENDC DZ11 #IF LONG #PRINT #PRINT The lines must be initialSUPPORT) DLV$7 = DL.V ;VECTOR OF 8TH (LOCAL) DL11 (MULTI-TERM SUPPORT) #ENDS #IFF #IFGT DLMDM #PRINT #ASK What is tized to a specific baud #PRINT rate. The choices are 300, 150, and 110 baud. #ENDC LONG #PRINT #ASK Do you want the linhe CSR address for the next (remote) DL11 [O] (175670)?DLC7/O=175670,160000,177570 #PRINT #ASK What is the vector address fes initialized to 300 baud [Y/N] (Y)?B300/Y=Y #IF B300 DZSP$D = 2400 ;INIT TO 300 BAUD (MULTI-TERM SUPPORT) DZST$P = 0 ;1  PPORT) #ENDS #IF DZTWO #PRINT #ASK What is the CSR address for the second DZ11 [O] (160020)?DZ2/O=160020,160000,177570 ult size is 40 characters. The input ring size #PRINT depends on terminal width and amount of type-ahead #PRINT expected. Th #PRINT #ASK What is the vector address of the second DZ11 [O] (310)?DZV2/O=310,60,770 #SUBS "DZCS2"DZ2 #SUBS "DZVEC2"DZe default size is 82 characters. #ENDC LONG #PRINT #ASK Size of the output buffers in characters [D] (40)?ORNG/D=40,10,13V2 DZVC$1 = DZVEC2 ;VECTOR OF SECOND DZ11 (MULTI-TERM SUPPORT) DZCS$1 = DZCS2 ;CSR OF SECOND DZ11 (MULTI-TERM SUPPORT) #END2 #PRINT #ASK Size of the input buffers in characters [D] (82)?IRNG/D=82,74,132 #SUBS "O.R"ORNG #SUBS "I.R"IRNG TTYOUTS #ENDC DZTWO #ENDC DZ11 #IF LONG #PRINT #PRINT The following dialogue will ask for the number of local #PRINT DZ11 = O.R. ;SIZE OF OUTPUT RING BUFFERS(MULTI-TERM SUPPORT) TTYIN = I.R. ;SIZE OF INPUT RING BUFFERS (MULTI-TERM SUPPORT) #END or DZV11 lines, then the number of remote lines. #PRINT The total number of lines is the sum of local and remote #PRINT linS #IF LONG #PRINT #PRINT Terminal status may be obtained by doing an .MTGET request #PRINT but some applications requires. Physical unit numbers of the DZ11 or DZV11 lines #PRINT are assigned first to local lines and then to remote #PRINT linee asynchronous notification of #PRINT changes in terminal status. RT-11 supports asynchronous #PRINT terminal status as an s. This assignment is permanent and its order cannot #PRINT be changed. #ENDC LONG #IF DZ11 #PRINT #ASK How many DZ11option to the .MTATCH #PRINT request and provides information on buffer and modem #PRINT status as well as double CTRL/C.  lines are local terminals [D] (0)?DZLCL/D=0,0,16 #PRINT #ASK How many remote DZ11 lines [D] (0)?DZM/D=0,0,16 #IFF #PR#ENDC LONG #PRINT #ASK Do you want asynchronous terminal status [Y/N] (Y)?MATS/Y=Y #IF MATS MAT$S = 1 ;ASYNCHRONOUS TERINT #ASK How many DZV11 lines are local terminals [D] (0)?DZLCL/D=0,0,4 #PRINT #ASK How many remote DZV11 lines [D] (0)?MINAL STATUS (MULTI-TERM SUPPORT) #ENDC MATS #IF LONG #PRINT #PRINT Time-out support will cause the monitor to reset atDZM/D=0,0,4 #ENDC DZ11 #SUBS "DZL$"DZLCL DZ11$L = DZL$. ;# OF LOCAL DZ11 LINES (MULTI-TERM SUPPORT) #ENDS #SUBS "DZM$" regular #PRINT intervals any terminal that may have gone off-line. This #PRINT helps to minimize the impact of static (and DZM DZ11$M = DZM$. ;# OF REMOTE DZ11 LINES (MULTI-TERM SUPPORT) #ENDS #IFGT DZM #IFN TIME TIM$IT = 1 ;GENERAL DEVICE Tsimilar) #PRINT problems, and is recommended if maximum availability #PRINT is important to the application. #ENDC LONG IME OUT (MULTI-TERM SUPPORT) #SET TIME=Y #ENDC TIME #ENDC DZM #ENDC DZNEED #IF LONG #PRINT #PRINT The terminal se#PRINT #ASK Do you want multi-terminal time-out support [Y/N] (Y)?MTTO/Y=Y #IF MTTO MTI$M = 1 ;TERMINAL TIME OUT (MULTI-Trvice requires a set of input and output #PRINT ring buffers for each terminal supported. The output ring #PRINT buffer defaERM SUPPORT) #IFN TIME TIM$IT = 1 ;GENERAL DEVICE TIME OUT (MULTI-TERM SUPPORT) #SET TIME=N #ENDC TIME #ENDC MTTO #E  LINK/EXE:BIN:S$D.MNSJ.BLG/BOU:1000/MAP:MAP:S$D.MNSJ BIN:(BT,RM,KM,TB,SY)BL #ENDS OVLY0 #IFN OBJ DELETE/NOQ BIN:(BT,RM,KM) MACRO/OBJ:BIN:BTXM SRC:(XM+SYCND+BSTRAP) #IF MTTY MACRO/OBJ:BIN:MEXM SRC:(XM+SYCND+MTTEMT) MACRO/OBJ:BIN:MIXM SRC:(XM+SYC,TB,SY)BL.OBJ #ENDC OBJ #ENDC BLSJ #IF SJ MACRO/OBJ:BIN:KMSJ SRC:(SJ+SYCND+EDTGBL+KMON+KMOVLY) MACRO/OBJ:BIN:RMSJ SRC:(SND+MTTINT) #SUBS "S$D."SYSDV LINK/EXE:BIN:S$D.MNXM.SYG/BOU:1000/PROMPT/MAP:MAP:S$D.MNXM BIN:BTXM BIN:RMXM,KMXM,MEXM,MIXM,TBXJ+SYCND+EDTGBL+USR+RMONSJ) #SUBS "S$D."SYSDV MACRO/OBJ:BIN:SYSJ SRC:(SJ+SYCND+SYSDEV+S$D.) #ENDS MACRO/OBJ:BIN:TBSJ SRC:(SM,SYXM// #ENDS OVLY0 #IFN OBJ DELETE/NOQ BIN:(BT,RM,ME,MI,TB,SY)XM.OBJ DELETE/NOQ BIN:KMXM.OBJ #ENDC OBJ #IFF #SUBSNDC MTTY #CALL SYSTBL.CND #NAME SYSBLD #FILE SYSBLD.COM @MONBLD @DEVBLD #NAME MONBLD #FILE MONBLD.COM ! MONBLD.COMJ+SYCND+SYSTBL) MACRO/OBJ:BIN:BTSJ SRC:(SJ+SYCND+BSTRAP) #SUBS "S$D."SYSDV LINK/EXE:BIN:S$D.MNSJ.SYG/BOU:1000/MAP:MAP:S$D.MN ! #IF LONG #PRINT #PRINT The SYSGEN assembling and linking process requires a #PRINT source input and a binaSJ BIN:(BT,RM,KM,TB,SY)SJ #ENDS OVLY0 #IFN OBJ DELETE/NOQ BIN:(BT,RM,KM,TB,SY)SJ.OBJ #ENDC OBJ #ENDC SJ #IF FB MACry output device, as well as an #PRINT output device for monitor link maps. You must specify #PRINT the physical name and unRO/OBJ:BIN:KMFB SRC:(FB+SYCND+EDTGBL+KMON+KMOVLY) MACRO/OBJ:BIN:RMFB SRC:(FB+SYCND+EDTGBL+USR+RMONFB) #SUBS "S$D."SYSDV MACRit number for each (for example, #PRINT RK1, DP4, etc.). For more explanation, see #PRINT Section 3.6.1 of the RT-11 System O/OBJ:BIN:SYFB SRC:(FB+SYCND+SYSDEV+S$D.) #ENDS MACRO/OBJ:BIN:TBFB SRC:(FB+SYCND+SYSTBL) MACRO/OBJ:BIN:BTFB SRC:(FB+SYCND+BSGeneration Manual. #ENDC LONG #PRINT #PRINT What is the PHYSICAL name and unit of the #ASK - source input device [DDUTRAP) #IF MTTY MACRO/OBJ:BIN:MEFB SRC:(FB+SYCND+MTTEMT) MACRO/OBJ:BIN:MIFB SRC:(FB+SYCND+MTTINT) #SUBS "S$D."SYSDV LINK/E] (RK1)?IN/A=RK1 #SUBS "IN$"IN ASS IN$ SRC #PRINT #PRINT What is the PHYSICAL name and unit of the #ASK - binary outXE:BIN:S$D.MNFB.SYG/BOU:1000/PROMPT/MAP:MAP:S$D.MNFB BIN:BTFB BIN:RMFB,KMFB,MEFB,MIFB,TBFB,SYFB// #ENDS OVLY0 #IFN OBJ DEput device [DDU] (RK0)?OUT/A=RK0 #SUBS "OUT$"OUT ASS OUT$ BIN #PRINT #PRINT What is the PHYSICAL name and unit of the LETE/NOQ BIN:(BT,RM,ME,MI,TB,SY)FB.OBJ DELETE/NOQ BIN:KMFB.OBJ #ENDC OBJ #IFF #SUBS "S$D."SYSDV LINK/EXE:BIN:S$D.MNFB.SY#ASK - map output device [DDU] (TT)?MAP/A=TT #SUBS "MAP$"MAP ASS MAP$ MAP #ENDS #IF BLSJ MACRO/OBJ:BIN:KMBL SRC:(SJ+SYG/BOU:1000/MAP:MAP:S$D.MNFB BIN:(BT,RM,KM,TB,SY)FB #ENDS OVLY0 #IFN OBJ DELETE/NOQ BIN:(BT,RM,KM,TB,SY)FB.OBJ #ENDC OBJCND+EDTGBL+KMON+KMOVLY) MACRO/OBJ:BIN:RMBL SRC:(SJ+SYCND+EDTGBL+USR+RMONSJ) #SUBS "S$D."SYSDV MACRO/OBJ:BIN:SYBL SRC:(SJ+SYC #ENDC MTTY #ENDC FB #IF XM MACRO/OBJ:BIN:KMXM SRC:(XM+SYCND+EDTGBL+KMON+KMOVLY) MACRO/OBJ:BIN:RMXM SRC:(XM+SYCND+EDTGBLND+SYSDEV+S$D.) #ENDS MACRO/OBJ:BIN:TBBL SRC:(SJ+SYCND+SYSTBL) MACRO/OBJ:BIN:BTBL SRC:(SJ+SYCND+BSTRAP) #SUBS "S$D."SYSDV +USR+RMONFB) #SUBS "S$D."SYSDV MACRO/OBJ:BIN:SYXM SRC:(XM+SYCND+SYSDEV+S$D.) #ENDS MACRO/OBJ:BIN:TBXM SRC:(XM+SYCND+SYSTBL ACRO/OBJ:BIN:BA SRC:(SYCND+BA) LINK/EXE:BIN:BA.SYG BIN:BA #IFN OBJ DELETE/NOQ BIN:BA.OBJ #ENDC OBJ #ENDC BLSJFB #IF XJ DELETE/NOQ BIN:DSX.OBJ #ENDC OBJ #ENDC XM #ENDC DS #IF PC #IF BLSJFB MACRO/OBJ:BIN:PC SRC:(SYCND+PC) LINK/EXE:BIM MACRO/OBJ:BIN:BAX SRC:(XM+SYCND+BA) LINK/EXE:BIN:BAX.SYG BIN:BAX #IFN OBJ DELETE/NOQ BIN:BAX.OBJ #ENDC OBJ #ENDC XM N:PC.SYG BIN:PC #IFN OBJ DELETE/NOQ BIN:PC.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:PCX SRC:(XM+SYCND+PC) LIN #ENDC BATC$H #IF LP #IF BLSJFB MACRO/OBJ:BIN:LP SRC:(SYCND+LP) LINK/EXE:BIN:LP.SYG BIN:LP #IFN OBJ DELETE/NOQ BIN:LP.K/EXE:BIN:PCX.SYG BIN:PCX #IFN OBJ DELETE/NOQ BIN:PCX.OBJ #ENDC OBJ #ENDC XM #ENDC PC #IF PR #IF BLSJFB MACRO/OBJOBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:LPX SRC:(XM+SYCND+LP) LINK/EXE:BIN:LPX.SYG BIN:LPX #IFN OBJ DELETE/N:BIN:PC SRC:(SYCND+PC) LINK/EXE:BIN:PC.SYG BIN:PC #IFN OBJ DELETE/NOQ BIN:PC.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACROOQ BIN:LPX.OBJ #ENDC OBJ #ENDC XM #ENDC LP #IF RK #IF BLSJFB MACRO/OBJ:BIN:RK SRC:(SYCND+RK) LINK/EXE:BIN:RK.SYG BI/OBJ:BIN:PCX SRC:(XM+SYCND+PC) LINK/EXE:BIN:PCX.SYG BIN:PCX #IFN OBJ DELETE/NOQ BIN:PCX.OBJ #ENDC OBJ #ENDC XM #ENDC N:RK #IFN OBJ DELETE/NOQ BIN:RK.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:RKX SRC:(XM+SYCND+RK) LINK/EXE:BIN:RPR #IF DM #IF BLSJFB MACRO/OBJ:BIN:DM SRC:(SYCND+DM) LINK/EXE:BIN:DM.SYG BIN:DM #IFN OBJ DELETE/NOQ BIN:DM.OBJ #ENDC "S$D."SYSDV LINK/EXE:BIN:S$D.MNXM.SYG/BOU:1000/MAP:MAP:S$D.MNXM BIN:(BT,RM,KM,TB,SY)XM #ENDS OVLY0 #IFN OBJ DELETE/NOQ KX.SYG BIN:RKX #IFN OBJ DELETE/NOQ BIN:RKX.OBJ #ENDC OBJ #ENDC XM #ENDC RK #IF DL #IF BLSJFB MACRO/OBJ:BIN:DL SRBIN:(BT,RM,KM,TB,SY)XM.OBJ #ENDC OBJ #ENDC MTTY #ENDC XM #NAME DEVBLD #FILE DEVBLD.COM ! DEVBLD.COM ! #SUBS "IN$"C:(SYCND+DL) LINK/EXE:BIN:DL.SYG BIN:DL #IFN OBJ DELETE/NOQ BIN:DL.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:DLIN ASS IN$ SRC #SUBS "OUT$"OUT ASS OUT$ BIN #ENDS #IF SJ MACRO/OBJ:BIN:TT SRC:(SYCND+TT) LINK/EXE:BIN:TT.SYG BIN:TT X SRC:(XM+SYCND+DL) LINK/EXE:BIN:DLX.SYG BIN:DLX #IFN OBJ DELETE/NOQ BIN:DLX.OBJ #ENDC OBJ #ENDC XM #ENDC DL #IF DT #IFN OBJ DELETE/NOQ BIN:TT.OBJ #ENDC OBJ #ENDC SJ #IF BLSJ MACRO/OBJ:BIN:TT SRC:(SYCND+TT) LINK/EXE:BIN:TT.SYG BIN:TT  #IF BLSJFB MACRO/OBJ:BIN:DT SRC:(SYCND+DT) LINK/EXE:BIN:DT.SYG BIN:DT #IFN OBJ DELETE/NOQ BIN:DT.OBJ #ENDC OBJ #ENDC #IFN OBJ DELETE/NOQ BIN:TT.OBJ #ENDC OBJ #ENDC BLSJ #IF ERL$G #IF BLSJFB MACRO/OBJ:BIN:EL SRC:(SYCND+EL) LINK/EXE:B BLSJFB #IF XM MACRO/OBJ:BIN:DTX SRC:(XM+SYCND+DT) LINK/EXE:BIN:DTX.SYG BIN:DTX #IFN OBJ DELETE/NOQ BIN:DTX.OBJ #ENDC IN:EL.SYG BIN:EL #IFN OBJ DELETE/NOQ BIN:EL.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:ELX SRC:(XM+SYCND+EL) LIOBJ #ENDC XM #ENDC DT #IF DS #IF BLSJFB MACRO/OBJ:BIN:DS SRC:(SYCND+DS) LINK/EXE:BIN:DS.SYG BIN:DS #IFN OBJ DELETE/NK/EXE:BIN:ELX.SYG BIN:ELX #IFN OBJ DELETE/NOQ BIN:ELX.OBJ #ENDC OBJ #ENDC XM #ENDC ERL$G #IF BATC$H #IF BLSJFB MNOQ BIN:DS.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:DSX SRC:(XM+SYCND+DS) LINK/EXE:BIN:DSX.SYG BIN:DSX #IFN OB  LINK/EXE:BIN:DY.SYG BIN:DY #IFN OBJ DELETE/NOQ BIN:DY.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:DYX SRC:(XM+SYCDC OBJ #ENDC XM #ENDC RF #IF MTSP #IF TM #IF BLSJFB MACRO/OBJ:BIN:MT SRC:(SYCND+TM) #IF MTF MACRO/OBJ:BIN:FSM SRC:ND+DY) LINK/EXE:BIN:DYX.SYG BIN:DYX #IFN OBJ DELETE/NOQ BIN:DYX.OBJ #ENDC OBJ #ENDC XM #ENDC DY #IF CR #IF BLSJFB (SYCND+FSM) LINK/EXE:BIN:MT.SYG BIN:(MT,FSM) #IFN OBJ DELETE/NOQ BIN:(FSM.OBJ,MT.OBJ) #ENDC 0BJ #IFF LINK/EXE:BIN:MTHD. MACRO/OBJ:BIN:CR SRC:(SYCND+CR) LINK/EXE:BIN:CR.SYG BIN:CR #IFN OBJ DELETE/NOQ BIN:CR.OBJ #ENDC OBJ #ENDC BLSJFB #IFSYG BIN:MT #IFN OBJ DELETE/NOQ BIN:MT.OBJ #ENDC OBJ #ENDC MTF #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:MTX SRC:(XM+SYCND+TM XM MACRO/OBJ:BIN:CRX SRC:(XM+SYCND+CR) LINK/EXE:BIN:CRX.SYG BIN:CRX #IFN OBJ DELETE/NOQ BIN:CRX.OBJ #ENDC OBJ #ENDC X) #IF MTF MACRO/OBJ:BIN:FSMX SRC:(XM+SYCND+FSM) LINK/EXE:BIN:MTX.SYG BIN:(MTX,FSMX) #IFN OBJ DELETE/NOQ BIN:(FSMX.OBJ,MTXM #ENDC CR #IF NULL #IF BLSJFB MACRO/OBJ:BIN:NL SRC:(SYCND+NL) LINK/EXE:BIN:NL.SYG BIN:NL #IFN OBJ DELETE/NOQ BIN:NL..OBJ) #ENDC 0BJ #IFF LINK/EXE:BIN:MTHDX.SYG BIN:MTX #IFN OBJ DELETE/NOQ BIN:MTX.OBJ #ENDC OBJ #ENDC MTF #ENDC XM OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:NLX SRC:(XM+SYCND+NL) LINK/EXE:BIN:NLX.SYG BIN:NLX #IFN OBJ DELETE/N #ENDC TM #IF TJU #IF BLSJFB MACRO/OBJ:BIN:MM SRC:(SYCND+TJ) #IF MTF MACRO/OBJ:BIN:FSM SRC:(SYCND+FSM) LINK/EXE:BIN:MM.OQ BIN:NLX.OBJ #ENDC OBJ #ENDC XM #ENDC NULL #IF DP #IF BLSJFB MACRO/OBJ:BIN:DP SRC:(SYCND+DP) LINK/EXE:BIN:DP.SYG SYG BIN:(MM,FSM) #IFN OBJ DELETE/NOQ BIN:(FSM.OBJ,MM.OBJ) #ENDC 0BJ #IFF LINK/EXE:BIN:MMHD.SYG BIN:MM #IFN OBJ DELETEBIN:DP #IFN OBJ DELETE/NOQ BIN:DP.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:DPX SRC:(XM+SYCND+DP) LINK/EXE:BIN/NOQ BIN:MM.OBJ #ENDC OBJ #ENDC MTF #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:MMX SRC:(XM+SYCND+TJ) #IF MTF MACRO/OBJ:BIN:FS:DPX.SYG BIN:DPX #IFN OBJ DELETE/NOQ BIN:DPX.OBJ #ENDC OBJ #ENDC XM #ENDC DP #IF CT #IF BLSJFB MACRO/OBJ:BIN:CT SMX SRC:(XM+SYCND+FSM) LINK/EXE:BIN:MMX.SYG BIN:(MMX,FSMX) #IFN OBJ DELETE/NOQ BIN:(FSMX.OBJ,MMX.OBJ) #ENDC 0BJ #IFF LIN OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:DMX SRC:(XM+SYCND+DM) LINK/EXE:BIN:DMX.SYG BIN:DMX #IFN OBJ DELETE/NOQ BIN:DMX.ORC:(SYCND+CT) LINK/EXE:BIN:CT.SYG BIN:CT #IFN OBJ DELETE/NOQ BIN:CT.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:BJ #ENDC OBJ #ENDC XM #ENDC DM #IF DX #IF BLSJFB MACRO/OBJ:BIN:DX SRC:(SYCND+DX) LINK/EXE:BIN:DX.SYG BIN:DX #IFN CTX SRC:(XM+SYCND+CT) LINK/EXE:BIN:CTX.SYG BIN:CTX #IFN OBJ DELETE/NOQ BIN:CTX.OBJ #ENDC OBJ #ENDC XM #ENDC CT #IF OBJ DELETE/NOQ BIN:DX.OBJ #ENDC OBJ #ENDC BLSJFB #IF XM MACRO/OBJ:BIN:DXX SRC:(XM+SYCND+DX) LINK/EXE:BIN:DXX.SYG BIN:DRF #IF BLSJFB MACRO/OBJ:BIN:RF SRC:(SYCND+RF) LINK/EXE:BIN:RF.SYG BIN:RF #IFN OBJ DELETE/NOQ BIN:RF.OBJ #ENDC OBJ #EXX #IFN OBJ DELETE/NOQ BIN:DXX.OBJ #ENDC OBJ #ENDC XM #ENDC DX #IF DY #IF BLSJFB MACRO/OBJ:BIN:DY SRC:(SYCND+DY) NDC BLSJFB #IF XM MACRO/OBJ:BIN:RFX SRC:(XM+SYCND+RF) LINK/EXE:BIN:RFX.SYG BIN:RFX #IFN OBJ DELETE/NOQ BIN:RFX.OBJ #EN  LONG #PRINT #PRINT To build an entire system, mount the source and #PRINT binary disks, copy the files SYCND.MAC and SYS MTS$J, MTS$J=0 .IIF EQ MTS$J + BF, MTT$Y=0 .ENABL GBL .GLOBL $SLOT .MACRO DEV NAME,S,TYPE .NLIST .NLIST CND .LIST ME .LTBL.MAC #PRINT to the source disk, and type "@SYSBLD". To build just the monitors, #PRINT type "@MONBLD". To build just the IST .IF NB TYPE .IF NB NAME .GLOBL NAME'SYS .ENDC .IFTF .PSECT PNAME$ $SLOT = $SLOT +1 .IF NB NAME .RAD50 /NAME/ ;PNAdevice handlers, type #PRINT "@DEVBLD". For more information, read Section 3.6 of the #PRINT RT-11 System Generation Manual.ME$ - DEVICE ->> NAME <<- .IFF .WORD 0 ;PNAME$ - DEVICE ->> EMPTY <<- .ENDC .PSECT STAT$ .IF NB S .WORD S ;STAT$ .IFF #ENDC LONG #PRINT #PRINT END OF SYSGEN PROGRAM--Don't forget to copy DK:SYCND.MAC and #PRINT DK:SYSTBL.MAC to the sou .WORD 0 ;STAT$ .ENDC .PSECT ENTRY$ .IFF .IF NB NAME .IF IDN NAME,BA BA.NUM == 2 * <$SLOT - 1> .ENDC .IF IDN NAME,TT rce disk before executing the #PRINT command file(s). Remember that SWAP.SYS must #PRINT be on all bootable volumes. #PR .IF NE BF!MTS$J .WORD TTLQE ;ENTRY$ - TT ENTRY POINT .IFF TT.NUM == 0 .WORD 0 ;ENTRY$ .ENDC .IFF .WORD 0 ;ENTRY$ INT .ENDC .IFF .WORD 0 ;ENTRY$ .ENDC .IFT .WORD NAME'SYS ;ENTRY$ - ENTRY POINT NAME .ENDC .PSECT UNAM1$ .WORD 0 ;UNAM1$ .PSECT UNAM2$ .WORD 0 ;UNAM2$ .IF NE BF .PSECT OWNER$ .WORD 0,0 ;OWNER$ .ENDC .PSECT DVREC$ .WORD 0 ;DVREC$ .NLIST .NLIST ME .LIST CND .LIST .ENDM FILST$ ==100000 ;RT-11 FILE STRUCTURED DEVICE RONLY$ == 40000 ;READ ONLY DEVICE WONLY$ == 20000 ;WRITE ONLY DEVICE SPECL$ == 10000 ;SPECIAL DIRECTORY STRUCTURED DEVICE HNDLR$ == 4000 ;CALL ABORT ENTRY ON EV; SYSTBL.MAC -- SYSTEM DEVICE TABLES V02.10 ; ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ERY HARD RESET SPFUN$ == 2000 ;DEVICE ACCEPTS SPECIAL FUNCTIONS ; FOLLOWING IS THE DECLARATION OF THE SYSTEM DEVICE TABLES; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED ; OR COPIED IN ACCORDANDE WITH THE TERMS OF SUCH LICENSE. . A DEVICE MAY BE ; ADDED TO THE SYSTEM BY EDITING SYSTBL, INSERTING IT VIA THE DEV MACRO. ; NOTE: THE TT DEVICE MUST BE POS ; ; #NAME SYSTBL #FILE SYSTBL.MAC .TITLE SYSTEM DEVICE TABLES ; SYSTBL.MAC -- SYSTEM DEVICE TABLES ; ; COPYRIGHT ITIONED FIRST IN THE TABLES!! $SLOT = 0 ;COUNT OF NUMBER OF DEVICES ; DEV TT,4 ;MUST BE FIRST DEVICE #IF RK DEV RK,0+FK/EXE:BIN:MMHDX.SYG BIN:MMX #IFN OBJ DELETE/NOQ BIN:MMX.OBJ #ENDC OBJ #ENDC MTF #ENDC XM #ENDC TJU #ENDC MTSP #IF(C) 1978 ; ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; .IIF NDF MMG$T, MMG$T=0 .IIF NDF BF, BF=0 .IIF NDF = 00 ;DEFAULT STOP CODE IS 1 UNIT STOP .IIF EQ DZSP$D-1000, DZST$P = 40 ;STOP CODE IS 2 UNIT STOPS FOR 110 BAUD .ENDC .IIF OMPT STRING DS T.TTLC ;2 LINE COUNT DS T.IRNG ;2 INPUT RING LOW LIMIT DS T.IPUT ;2 INPUT 'PUT' POINTER FOR INTERRUPTS EQ MTT$Y, .NLIST .IF NE MTT$Y ;+DV56 .SBTTL TCB DEFINITIONS ; ; DEFINITION OF TERMINAL CONTROL BLOCK ; .MACRO DSECT N DS T.ICTR ;2 INPUT CHARACTER COUNT DS T.IGET ;2 INPUT 'GET' POINTER FOR TTYIN DS T.ITOP ;2 INPUT RING HI LIMIT DS ,TTYILST$,SYS #ENDC #IF DL DEV DL,5+FILST$+SPFUN$,SYS #ENDC #IF DY DEV DY,6+FILST$+SPFUN$,SYS #ENDC #IF DS DEV DS,16+ ..TEMP = N .ENDM .MACRO DS NAME,SIZE,UNIT .IF NB NAME .LIST NAME == ..TEMP .NLIST .ENDC .IF B SIZE ..TEMP = ..TEMP+2 FILST$,SYS #ENDC #IF DM DEV DM,23+FILST$+SPFUN$,SYS #ENDC #IF RF DEV RF,12+FILST$,SYS #ENDC #IF DP DEV DP,21+FILS .IFF .IF NB UNIT ..TEMP = ..TEMP+SIZE .IFF ..TEMP = ..TEMP+<2*> .ENDC .ENDC .ENDM ; ; THE FOLLOWING MACROS DEFT$,SYS #ENDC #IF DX DEV DX,22+FILST$+SPFUN$,SYS #ENDC #IF DT DEV DT,1+FILST$,SYS #ENDC #IF TM DEV MT,11+SPECL$+SPINE THE OFFSETS WITHIN A TERMINAL CONTROL ; BLOCK (TCB). THERE IS ONE TCB FOR EACH TERMINAL INSTALLED ; IN THE SYSTEM. FUN$ #ENDC #IF TJU DEV MM,20+SPECL$+SPFUN$ #ENDC #IF CT DEV CT,13+SPECL$+SPFUN$ #ENDC #IF LP DEV LP,3+WONLY$ #EDSECT 0 DS T.CNFG ;1 TERMINAL CONFIGURATION WORD 1 DS T.CNF2 ;1 TERMINAL CONFIGURATION WORD 2 DS T.TFIL,1,BYTE ;1 CHAR RNDC #IF PC DEV PC,10 #ENDC #IF PR DEV PC,10+RONLY$ #ENDC #IF CR DEV CR,14+RONLY$ #ENDC #IF BATC$H DEV BA,4 #EQUIRING NULL FILLERS DS T.FCNT,1,BYTE ;1 # OF FILLS REQUIRED DS T.WID ;1 CARRIAGE WIDTH DS T.OCHR,1,BYTE ;1 CURRENT CHARENDC #IF ERL$G DEV EL,24 #ENDC #IF NULL DEV NL,24 #ENDC #SUBS "EX$"EMPTY .REPT EX$. DEV .ENDR .PSECT UNAM1$ DKACTER TO PRINT DS T.LPOS,1,BYTE ;1 CURRENT CARRIAGE POSITION DS T.OWNR ;PTR TO OWNING JOB'S IMPURE AREA DS T.STAT ;UNIT ASSG:: .RAD50 /DK0/ SYASSG:: .RAD50 /SY0/ .PSECT UNAM2$ .RAD50 /DK / .RAD50 /SY / .PSECT STAT$ .WORD 0,0 ;FOR MESSAGE CHSTATUS WORD DS T.CSR ;CSR OF KEYBOARD (RECEIVER) DS T.VEC ;DEVICE VECTOR DS T.PRI ;DEVICE PRIORITY .IF NE MTI$M!DL11$MANNEL .PSECT ENTRY$ .WORD -1 ;TABLE TERMINATOR .IF NE BF MSGENT::JBLQE ;MESSAGE HANDLER ENTRY POINT .ENDC #IF MTTY  DS T.RTRY ;RE-TRY COUNT FOR RE-TRANSMISSION OF OUTPUT CHR. ;SL12 DS T.TBLK,7 ;TIME OUT BLOCK .ENDC DS T.JOB,1,BYTE ;JOB ; MULTI-TERMINAL DEFAULT DEFINITIONS .IIF NDF DZ11$N, DZ11$N=0 .IIF NDF DZ11$M, DZ11$M=0 .IIF NDF DZ11$L, DZ11$L=0 .IIF # OF OWNER DS T.PUN,1,BYTE ;PHYSICAL UNIT # (0 FOR DL11) DS T.NFIL,1,BYTE ;ACTIVE FILL COUNT DS T.PTTI,1,BYTE ;PREVIOUS C NDF MTI$M, MTI$M=0 .IIF NDF MAT$S, MAT$S=0 .IIF NDF DLMD$M, DLMD$M=0 .IIF NDF DZMD$M, DZMD$M=0 .IF NE DZ11$N .IIF NDF DZHARACTER DS T.TCTF,1,BYTE ;CHARACTER FOR SPECIAL FILL DS T.TNFL,1,BYTE ;NUMBER OF SPECIAL FILLERS .IF NE MAT$S .IF EQ MMG$SP$D, DZSP$D = 2400 ;DEFAULT SPEED IS 300 BAUD .IIF NDF DZLE$N, DZLE$N = 30 ;DEFAULT CHAR LENGTH IS 8 .IIF NDF DZST$P, DZST$P T DS T.AST ;TERMINAL AST FLAG WORD .IFF DS T.AST,2 ;TERMINAL AST FLAG WORD .ENDC .ENDC DS T.TID,2 ;BUFFER, PAR OF PR PROCESSING ENABLED LINSP$ == 7400 ;8-11 LINE SPEED MASK TTSPC$ == 10000 ;12 CHAR MODE INPUT (SPECIAL MODE) REMOT$ == 20000IDN TYPE,DL .IF EQ CTRL .IF NE BF STMP = STMP + CONSL$ + SHARE$ CTMP = CTMP + FBTTY$ .IFF STMP = STMP + CONSL$ .ENDC .EN ;13 TERMINAL IS REMOTE IF SET TTLC$ == 40000 ;14 LOWER TO UPPER CASE CONVERSION DISABLED IF SET BKSP$ == 100000 ;15 USE BADC X=CTRL*TCBSZ+DLTCB .ENDC .IF IDN TYPE,DZ X=*TCBSZ+DZTCB CTMP = CTMP + DZSP$D STMP = STMP + DZ11$ .ENDC .CKSPACE FOR RUBOUT VT05$ == BKSP$ ; USE SAME BIT TO INDICATE VT05 INICF$ == HWTAB$ + FORM$ + ESCSQ$ + ESCFL$ + TCBIT$ + TTSIF NB LINE .IF IDN LINE,REMOTE CTMP = CTMP + REMOT$ STMP = STMP + HNGUP$ .ENDC .ENDC CTMP = CTMP + CRLF$ + PAGE$ .WORD CPC$ + TTLC$ +BKSP$ ; DEFINITION OF BITS IN T.STAT FILL$ == 1 ; 0 FILL SEQUENCE IN PROGRESS CTRLU$ == 2 ; 1 CTRL/U INTMP ;T.CNFG - TCB FOR TYPE CONTROLLER # CTRL PUN # UNIT (LINE) .WORD 0 ;T.CNF2 .BYTE 0,0 ;T.TFIL, T.FCNT .WORD 80. ; PROGRESS DTACH$ == 20 ; 4 DETACH IN PROGRESS WRWT$ == 40 ; 5 .PRINT <-> .WRITE SYNCH FLAG INEXP$ == 100 ; 6 OUTPUT INTT.WID .BYTE 0,0 ;T.OCHR, T.LPOS .IF NE BF .WORD 0 ;T.OWNR .IFF .IF EQ LUN-1 PBCTCB:: .WORD DLTCB ;T.OWNR .IFF .IN,BYTE ;2 INPUT RING BUFFER (SAME SIZE AS CONSOLE RING) DS T.OPUT ;2 OUTPUT 'PUT' POINTER FOR .TTYOUT DS T.OCTR,1,BYTE ;2 ERRUPT EXPECTED PAGE$ == 200 ; 7 TERMINAL IS X-ED OFF ;NOTE: SAME POSITION AS T.CNFG!! SHARE$ == 2000 ;10 TERMINAL ISOUTPUT CHARACTER COUNT DS ,1,BYTE ;2 CTRL/O FLAG DS T.OGET ;2 OUTPUT 'GET' POINTER FOR INTERRUPT DS T.OTOP ;2 OUTPUT RI SHARED CONSOLE HNGUP$ == 4000 ;11 TERMINAL HAS HUNG UP DZ11$ == 10000 ;12 TERMINAL INTERFACE IS DZ11 CTRLC$ == 40000 ;14NG HI LIMIT DS ,TTYOUT,BYTE ;2 OUTPUT RING BUFFER (SAME SIZE AS CONSOLE RING) .IF NE ESC$P DS T.ECEI,2 ;2 ESCAPE SEQUENCE E DOUBLE CTRL/C WAS STRUCK CONSL$ == 100000 ;15 TERMINAL IS ACTING AS CONSOLE (DL11 ONLY) INIST$ == FILL$ + CTRLU$ + PAGE$ + CMT INPUT BLOCK DS T.ECEO,2 ;2 " " EMT OUTPUT BLOCK DS T.ECII,2 ;2 " " INTERRUPT INPUT DS T.ECIO,2 ;2 " " " OUTPUT TRLC$ ; ASYNCHRONOUS TERMINAL STATUS WORD BIT DEFINITIONS: AS.CTC == 100000 ;DOUBLE CTRL/C AS.INP == 40000 ;INPUT IS AVDS T.ESCP ;2 PROGRAM ESC SEQ OUTPUT STATUS DS T.ESCK ;2 KBD ESC SEQ ECHO STATUS .ENDC TCBSZ == ..TEMP ;SIZE OF TCB IN AILABLE AS.OUT == 20000 ;OUTPUT BUFFER EMPTY AS.CAR == 200 ;MODEM CARRIER IS PRESENT ; TCBBLK IS A MACRO TO DEFINE A TBYTE ; DEFINITION OF BITS IN T.CNFG HWTAB$ == 1 ; 0 HARDWARE TAB IF SET CRLF$ == 2 ; 1 OUTPUT CR/LF WHEN T.TLPOS>T.WERMINAL CONTROL BLOCK. ; TYPE = [DL,DZ] ; LINE = [LOCAL,REMOTE] ; CSR = RECEIVER CSR ; UNIT = LINE # (0 FOR DL, 0-7 FORID FORM$ == 4 ; 2 HARDWARE FF IF SET FBTTY$ == 10 ; 3 PROCESS CTRL/F & CTRL/B IF SET ESCSQ$ == 20 ; 4 ENABLE ESC SEQUEN DZ) ; LUN = LOGICAL UNIT NUMBER (0-N) ; VEC = RECEIVER VECTOR ; CTRL = CONTROLLER NUMBER (E.G., 0 OR 1 FOR DZ; 0,1,...,7 CE PROCESSING ESCFL$ == 40 ; 5 FILTER ESC SEQUENCES TCBIT$ == 100 ; 6 INHIBIT TT WAIT IF SET PAGE$ == 200 ; 7 XON/XOFF FOR DL) .MACRO TCBBLK TYPE,LINE,CSR,VEC,UNIT,CTRL .NLIST .NLIST CND .LIST ME .LIST LUN = LUN + 1 CTMP = 0 STMP = 0 .IF  BUFFER .WORD X+T.OTOP+2 ;T.OPUT *** BOOT *** .WORD 0 ;T.OCTR .WORD X+T.OTOP+2 ;T.OGET *** BOOT *** .WORD X+T.OTOP+2+PSW SAVE AREA FOR DL11 .ENDC .IF NE DZ11$N DZTBL:: ;REFERENCE LABEL TTMP = 0 .REPT DZ11$N .WORD DZTCTB+ ;**TTYOUT ;T.OTOP *** BOOT *** .BLKB TTYOUT ;OUTPUT RING BUFFER .IF NE ESC$P .REPT 4 .WORD 0 ;UNINITIALIZED COROUTINE PO* BOOT *** ;POINTER TO TABLE OF TCB POINTERS TTMP = TTMP + 1 .ENDR .ENDC .IF GT DZ11$N-1 DZTMP::.WORD 0 ;PSW SAVE AINTER .WORD 0 ;ESCTST SCRATCHPAD .ENDR .WORD ;PROGRAM OUTPUT ESC SEQ STATUS .WORD ;KBD ECHO ESC SEQ STATUS .ENDREA FOR DZ11 .ENDC TCBPEND:: ;REFERENCE LABEL FOR BOOT .IF NE DZ11$N DZCSR:: ;TABLE OF CSR'S FOR DZ11 .IRP T,<0,1> C .NLIST .LIST CND .NLIST ME .LIST .ENDM DL11$N = DL11$L + DL11$M ;# OF DL11'S = LOCAL PLUS REMOTE .IIF EQ DL11$L, .ERROR.IF GT DZ11$N-T .WORD DZCS$'T .ENDC .ENDM .ENDC .IIF LT DL11$N-DL11$M, .ERROR ERROR IN DL11 SPECIFICATION ; ; TERMINA MUST HAVE AT LEAST ONE LOCAL DL11 FOR CONSOLE. .IIF GT DL11$N-8., .ERROR MAXIMUM OF 8 DL11 INTERFACES PERMITTED. .PSECT MTTY$L CONTROL BLOCKS ALLOCATED IN ORDER OF INCREASING UNIT NUMBER: ; LOCAL DL11 LINES FIRST, THEN REMOTE DL11S, THEN LOCAL DZ11 LI ; ; TABLE OF POINTERS TO TCB'S. ORDERED BY LOGICAL UNIT NUMBER. ; TCBLST IS A GLOBAL LABEL FOR THE START OF THE TCB POINTNES, THEN ; REMOTE DZ11 LINES. LOGICAL UNIT 0 IS THE BOOT-TIME CONSOLE LUN. LUN = 0 ;INITIALIZE LOGICAL UNIT COUNTER ER TABLE. ; DLTBL IS A LABEL FOR THE START OF THE DL11 POINTERS AND DZTBL IS A ; LABEL FOR THE START OF THE DZ11 POINTERS. DLTCB:: ;REFERENCE LABEL .IRP Q,<0,1,2,3,4,5,6,7> .IF GT DL11$L-Q TCBBLK DL,LOCAL,DLC$'Q,DLV$'Q,0,Q ;TCB FOR LOCAL DL11  ; TCBLST:: .IF NE DL11$N ; ; DL11'S COME FIRST IN TABLE ; DLTBL:: ;REFERENCE LABEL .IRP T,<0,1,2,3,4,5,6,7> TTMP =.IFF .IF GT DL11$M+DL11$L-Q ;DEFINE TCB'S FOR REMOTE LINES TCBBLK DL,REMOTE,DLC$'Q,DLV$'Q,0,Q ;TCB FOR REMOTE DL11-E .ENDC WORD 0 ;T.OWNR .ENDC .ENDC .WORD STMP ;T.STAT .WORD CSR ;T.CSR .WORD VEC,340+'CTRL ;T.VEC, T.PRI .IF NE MTI$M!DL 'T .IF GT DL11$N-TTMP .WORD DLTCB+ ;TCB PTR FOR DL11 #'T *** BOOT *** .ENDC .ENDM .ENDC .IF NE DZ11$N .IIF11$M .WORD 0 ;T.RTRY ;SL12 .WORD 0,0,0,0,177400+<*2>,-1,0 .ENDC .BYTE 0 ;T.JOB .BYTE UNIT ;T.PUN .BY GT DZ11$N-2, .ERROR TOO MANY DZ11 SPECIFIED, MAXIMUM IS TWO ; POINTERS TO TCB'S FOR DZ11 DZTCTB:: ;TABLE OF POINTERS TO TE 0,0 ;T.NFIL, T.PTTI .BYTE 0,0 ;T.TCTF, T.TNFL .IF NE MAT$S .WORD 0 ;T.AST .IF NE MMG$T .WORD 0 .ENDC .ENDC DZ11 TCB'S .IRP Q,<0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17> TTT = 'Q .IF GT DZ11$L - TTT .WORD DZTCB + ;TCB PT.WORD 0,0 ;T.TID .WORD 0 ;T.TTLC .WORD X+T.ITOP+2 ;T.IRNG *** BOOT *** .WORD X+T.ITOP+2 ;T.IPUT *** BOOT *** .WORDR FOR DZ11 LOCAL LINE #'Q **BOOT** .IFF .IF GT DZ11$L + DZ11$M - TTT .WORD DZTCB + ;TCB PTR FOR DZ11 REMOTE LIN 0 ;T.ICTR .WORD X+T.ITOP+2 ;T.IGET *** BOOT *** .WORD X+T.ITOP+2+TTYIN ;T.ITOP *** BOOT *** .BLKB TTYIN ;INPUT RING E #'Q **BOOT** .IFF .IF LT TTT- .WORD 0 .ENDC .ENDC .ENDC .ENDM .ENDC .IF GT DL11$N-1 DLTMP:: .WORD 0 ; 11 #'P LINE #'Q, LOCAL .IFF .IF GT DZ11$M + DZ11$L - - Q TCBBLK DZ,REMOTE,DZCS$'P, DZVC$'P,Q,P ;TCB FOR DZ11 #'P LINE w r Z X V  0 0 w 7 z xw & w  J $HD$R1  #'Q, REMOTE .ENDC .ENDC .ENDC .ENDM .ENDM .GLOBL TCBMAX TCBMAX = <.-DLTCB>/TCBSZ ;# OF TCB'S .ENDC ;-DV56 .IIF EQ w w   &LJw w e 7 7  > : 6 7 7 ww ~ MTT$Y,.LIST #ENDC .END YzdzSWAP .SYSZzXXMNSJ.SYS zTT .SYSMzLP .SYS`TzMT .SYSHSzMM .SYSxevPIP .SAVXvDUP .SAVzvDIR .SAVD  $wfl p0@i B ' v .     7 7 0 . @ f\7ZP  0  wU@pw   wnwd  !7e7(m wa7w z wj" 7w wwewBCh ^e wXW"4@  @"? :7  w0w 7 ( j mb  `&` n N^   8 LH2  w w ,er ef e` ( * " D @  ? $ `ɕe  w w @m7  17 w w e N  7 0 Z͋ww  B w& χ/ =^ɋw B `ыB ɋɋB  ew  y   7G:ŝԋ,*w(D&  F C lf`B   7  > ͋w0  w  `ЋЋЋe 7 AI 7 n wf 7 f j7 7 8   &WWw7v   M   ee UUU  m: w .ENDC .ENDM ; .IIF LT DZ11$N*8.-DZ11$L-DZ11$M, .ERROR ERROR IN DZ11 SPECIFICATION ; DZTCB:: ;REFERENCE LABEL .IRP P .  w  ߥ*w w $  e -V @w RKDSDPDM,<0,1> .IRP Q,<0,1,2,3,4,5,6,7> .IF GT DZ11$N - P .IF GT DZ11$L - - Q TCBBLK DZ,LOCAL,DZCS$'P,DZVC$'P,Q,P ;TCB FOR DZRF DXDTMT MMDLDY 88 Ћ  Ћ7B7? ( J & ee 7   ed e tn ? f X"w ͋w&6  A w  @ " lw "  >R"  , e7$  ww= P 6 ׭!7 www^ w w  " wz    RJwH 8ew 7.737 ( '7 &< ^& w@ ( @ e@W [RT11̕AeeDECRT11A B  ȭew w wHw"w7@%eW $e c    5mf A N  %  V x7 2@ ߋ*w~F#>U@$U$  A (ADe  E$E@$e , 00 w R   5  * \B>w<ew6ew0&f& & ȋ   7 ^e  0 4 B7 T7 NL &f~  f DF ȋ  ȝp0 &D$#& Ε,e   Be F  0 <   e we"$& &~ev\7 e" #" #" , Q /:F 鈀+wf@鈅 Owner name Vol id? MDUP V03.05A ?MDUP-F@舌TTT:S v>Q VfYZN-?MDUP-W-Bad directory blockIllegal commandRead errorWrite errorBad blocksSystem errorZNRBVKHFSICTVGI*F|_>;T?D4MUOYLXW:r2 %: X!}<}; zJ^f^J^f^>Q\?LQ Z2B]0(]D LQlZ0[@Hr  w: ѭ2ы @w 7 e7*%@ ,er ef e` ( * " D @  ? $ `ɕe    wj" 7w wwewBCh ^e wXW"4@  @"? :7 -?MDUP-W-Bad directory blockIllegal commandRead errorWrite errorBad blocksSystem errorZNRBVKHFSICT0w 7 ( j mb  `&` n N^   8 LH2  w w UOYLXW:r2vr@w w @m7  17 w w e N  7 0 Z͋ww  B wQdHS 0 %: X!}<}; zvQQQ7G:ŝԋ,*w(D&  F C lf`B   7  > ͋w0 DP1:**vvv ѭ2ы @w 7 e7*%@  w  `ЋЋЋe 7 AI 7 n wf 7 f j7 7 8   &WWw7v   M   ee UUU  m: w .  w  ߥ*w w $  e -V @w RKDSDPDM:2: 7,*"D wnD  0fV<JB f>&6RF DXDTMT MMDLDY 88 ЋDP  Ћ7B7? ( J & ee 7 , e7$  ww= P 6 ׭!7 ww r Z X V  0 0 w 7 z xw & w  J $HD$R1  7.737 ( '7 &< ^& w@ ( @ e@W [w w   &LJw w e 7 7  > : 6 7 7 ww ~ eW $e c    5mf A N  %  V x7 YzdzSWAP .SYSZzXXMNSJ.SYS zTT .SYSMzLP .SYS`TzMT .SYSHSzMM .SYSxevPIP .SAVXvDUP  00 w R   5  * \B>w<ew6ew0&f.SAVzvDIR .SAVD  $wfl p0@i B ' &f~  f DF ȋ  ȝp0 &D .     7 7 0 . @ f\7ZP  0 e"$& &~ev\7 e" #" #" wU@pw   wnwd  !7e7(m wa7w z , Q /:F 鈀+wf@鈅 Owner name Vol id? MDUP V03.05A ?MDUP-F $#& Ε,e   Be F  0 <   e we 7xwre7_77 ͥ/I7PNO<e p SW B#B ԁ`!!t ~'((U  EE ` ف E6%^CC  emDHa ҋ 3EfE%  ҋʵ@AwmE 77P|  C^!C%גPע! " C!$ @@   #   W: Wee. `? j!  hœ  ¥  aefbL= K3 aezН/P h 0˵@-•:) N N Zͥ- C! פ ר- 3~R _7 ^ & rp . J 4U ,B 4 H•.˵  B  ֆ 2ae  0 Oͥ: ͥ-  bR- # 3c     H7G  =R0&5B &]eЕ[ P ͥ. ww7?Mͥ:  f 7  77E faWWH <7 > ene.* $  &@ E &Ee eRe ͥ:  77e~ 2e 7 g7z~ ? Hf  v - D @&c%Lbttef ,e  f&e j ppU%pppͥ:!fefe  ed e tn ? f X"w ͋w` X (XK5$e  A w  @ " lw "  >R" BQtX ."  \I$QIeRU@W@as+DaWw w eD w4 el ! ww^ w w  " wz    RJwH 8ew s @r  wJ|D\f`|dP|D.8eAbw   RT11̕AeeDECRT11A B  ȭew w wHw"w7@%Da(D`D` Rvpbdͥ,͋jg,E  7 7| 2@ ߋ*w~F#>U@$U$  A (ADe  E$E@$e ,lwr  wa PO e @e`  e ͇  @  & & ȋ   7 ^e  0 4 B7 T7 NL 7w r`w} awnͥ  ͥ+ͥ,ͥ 7, ͥ*ͥ%  ee@a ȕa P  w7  n7 PUDM:1PD NUR 1&*E  2wwR e ы wae  8 $UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUJ^f^>Q\?QJ^f^J^J^f^t>Q_Q Zn%>] w=u  V7fe e LMG,7 0w:, F f ÝeL tj%&v>Qv &www Y u  M EI@R@ Z W S L@ M@B@T@E@U@Yaedw/   @RESORCPIPDIRDUPLINKBASICFORTRAMACRODUMPLIBRSRCCOMFILEXF4PDICOMPF/ w < DKw "feHB¥[ e ы jeOCALAPL     %m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[m[*@ wRUN deTe!  ͥ:feh wͥ:w g #  Y  " ""  LB:V 6 F > < z \z p \ Z D L DK:DK:SY:.SYS.LST.BOTkQ\ AK   7A""##DG`/RU w $O `﷊w 0 •Mw  ɕ•E  weQŠeɥ׭wfe: eZR5 $ W  ͋ g eJEZww(EXMALILIN :TT:PL:KDTDOFrom? To ? File? Files? Device? Device or file? File 1? File 2? Library? FilDR  FF W S  LSBOEXRBOAL P O  D RE Les ? File ? Physical device name? Logical device name? AW[ 0W:%%%f ) +e5@1`+|/1IMARE  * nee( ~Е Pee  `ͥ[R  ͥ- g z R ͥ]R -!)1)/+#+!h)-E-)--- -3++++ %%1RCODE DIDE T GLI ERECO  Еrnv e aew*W Е:ͥ: ( ͥ.* wJ  RESLC BSA RE SS GDE FO  AB DIFOSSTIN   DI@ʕ*  #ͥ.P J  v%* @.*   @P  .D IN RE LI Dz X` & z\}` & z X`T & z\}`T & z X, & z\},& z Xw 2  rw $*EW2 Z 7 H3zN 2R> Q f *8,QR7 2#2& z\}kQ& z XkQ& QdHS0Qd`TF QdHS0F z, & z\} & z,'? &  kQ@SD Og,e  ,0*5 # #e`#w 5%   t\ `C KSd' & pkQo & kQ& kQb& ^kQ& ^kQ& `kQ & akQ& kQ+& 8kQKU b$`1Cg, _#`R V ? 2B 7 T 63 f7 Ka& kQ* & 8kQ & kQ & 8kQ & kQ &  8kQ&  kQ& 38kQ& *y}}es S w ^ 5Sw 6I3W2Wl Ew C $ A!EE P &E& Iq Ԁ$& tT:kQa& ys%& ys%& XI:kQ & XFwkQ & ,kQ7& kQ(& kQ& ΒE? *# ?w QD%Q7  *Еȕ e 0HJE & &:&& >8kQ& 8kQ&  !kQ8 & \! kQ/ & %kQ & (kQ & 2dkQ & FykQ\& XrkQ& 0ee? Q  UzRwhw &fmw   E ŧvRŭ^ f egxR QdkQ& tT\!kQA& tTL"kQC& X_kQ-& `YkQ& xdkQ & pqkQ &  q8kQ &   BBE/aw "Ba5lafw nCRC!  BC 5aW, &* 8rkQ &  rrXkQ &  rZkQ &  PxkQ&  ǐ  R Q!ER(A W   xR`Be 7pEeR5d3 w w @w  W  |^? W0WW1 B ab 2.` "6w? ? F@w w B xPPPH (a(fECew EN  d FEUw 5@!eBB ` ? 0wH !7w #  eNSS t_[cw U 7   7 7 w w DwElme& ,w  Q$ 7 &w 8w  Be$B  wdQ$mw Qd?  w -7 \7 Zw <& 7 z5w @%.@% @#eee%7` 7 x   HS :  &  7v@Ŋ5$ߋ4Rz7 $B$* @5@+|R עGEe# ' R wEK]w  ۇf: N LW .1vELW!&* 5 `1   P$J5$E ӋU@UӋˋ 5 A Q E %=%< D  "Q & w    Q . \  T5!f w Zd $PPw Nw Dw 2 % % 5ŀ׭9Q *"CИBw( @'  7 e  5z5 w w5@d5l`*h5@ 5,a5^\  %# " ߝ %wx%5 gw%5@$5T   t%R%J T *>5@ ,55G25/B f *(5@5 ,!z%v-pj.@ 5 * 5 (5P 5 %$%%5@%  5   w * pR 5P wR  (U e,} 7 n % 7g%7&%5*$w _T6T(V ŝ"jl  T^VŝT5 Pe O  4U$:  N&r77  : `97Device full D ,   &`   f %% f5* 5 %l%d5%P 5  7File not found W,W=͋X7xIllegal commandͥ/N : U@ Rͥ. J  w. 35$ $ _&; 5*w& $块  6 7Illegal device* 7?CSI-F-鈀 U@dU9f >9w wŝ~&5*e _&ŝ^7_ ŝKs(@ 5 55g & 9ć W[ W]  2W:  eJW.  $  $  7%%w55@ .ߋ*A cE eLZ^>   %@**09AZaz&   Nl b e &N W-e E  C0Π a `%w wP f5eEE ES5 e< bCb eUe, @  6<Z?@H/MM.PUDM:1PDQ [E@ 4Q FA;U ̕M  & N"wUe,}  C E B B& TG C `6 EU:( B 7 e%  =,17C C Z^bR EU`R B 7 er%" <,163 583 50 )% *E% 1 Q$  w f Uw*e  (%  % 1 Q$  w  Uwe  CEAOMKIGV & yqCGU[YW$_" _&_ 7  w @ w5 85*%o ,^^*L5 _T_RR7 ] @ R\P5@@v `<vv00(5P1 4wZA5<'5P @M, 55 U 95355 5w: &;*5@, 55'55D2 w4.5F)P5 5 58E  RHU e<,}7 oP  5N, 5( ` ,"LU (e@,}Z^n4 W e~rw 84U w -  7  4*w<e,}% \ %w& E@Q W  mS5  2CՋ@E 5*E wPWWi ?E? E E@E@ U Pr  UJʋ ' 5O= eіw` w\5@*Z U7 @87NB7F5t 6Wedd e* WweRĝ `W   5 *  W>5 ; 7 "e7w .@ 5& 5  E w\Uw (f(UUK  ˀ ( A BeEAc"# "  ABwJ```   e* ``pW5U5 w550@z5w 5¡@m5! E 5@a JU>5c5`5` `5* wDZ^.w eb R#  wDwW-" 5@e7U 7ddC E d @ 0 x Ue,}07*Eŋ Lat Ue _Tŝl7,_RŝYceLZ^x˵)ӵU64UMwwU Bl2Ur . vRw-7 &w07 b w 0&e$ aC}  `  7>wv7& &U@wg @@x 6, N 5z 7 ,} e d EC e  A  5   Bm@EPC  b5@ 7RB  :% eC % C ``` e̋̋ ez@w,U? <@4e,}`8 p$ 7 55X 7  #̋ 7̋4 brW 0Z^6@E w7`W `w v t Z^ K &f@#B9E5@*B53'UUUCl 5 C  e@ P   E 5o%l wRL@J 74w< 7$  R5UM_N E55 lU ߕ eR,}ߋȁe%wvZ^f Fe J]b 8@ #7%w-7TEN7CfE( 56 <%9 dEWqd6 y r@5`  %(=  VLeF"E?e@7   L $^EUHJ55 5@  5 5    _FLFGZ?TDF$:|PEw  D eEE e NQ@N&$ v4 u# W%*L E  ?H#  4% 4  .? $ ̗/ ? %   7Dť+;  fe  amagHb|vNNjNNNNNNN`NNNvNN&LE w w Ea5' +7 5%5 E Eael B55 M NXU D   &7 <   uD*eaU6  + 6 $w  E E 7  s!5s  ENEae E % Άe`B`N _ *%e~T *^%Tw>5@.T^ 77 ?MON-F-P ˋ  w  5E  $ &77 R ower fail halt ? ac,6 "8@H(F2&   5 D wz\ 7p?MON-F-System read failure halt   <  $7 <7    d@e PH7  0F-g,)7&5$ ͋%X q"R@  , ͊  UU* " JĔ Ĕ &f&I e`  &e@^wQ3 @0 w( "U$7 <6 7  7 57 E$(7< 7 ĥ v _D w7 J\TQ*&\& t l  &7& V TT L *U$5$BwXV& zE [xW5@$azE e  `OFv    4Lf  &  &  V%&f&  U$E$ L-     Hɥ W#Q u#R > 5$  4   jX 7 zehF7 7 V7 e<xRJ&\ %J $ j ]@'( EM( U% (r&dC8 20`fE T Z^w00 w 5$  Ub3 UHr 7 h "(  .  t7 |?  * ^@@    D L  P bb? H 5 @f\e)U%Me u#eR 7 prtvH]<?30 .   V :@BQXXXXXXYH RUN DP1:MDUP DP1:MDUP.MM/H T RUN DP1:MDUP DP1:MDUP.MT/H UNL MT LOAD MM SMM/H .RUN DP1:zz 8r `THSpqM    MDUP *DP1:MDUP. D \$bEX% * " @fX7  A   wߋ$ɀf&CCe S J^J^f^&>Q_Q Z[B]&[ w w   &LJw w e 7 7  > : 6 7 7 ww ~ _[\tBD E` `E@% e`7C 2U%dd eI |YzdzSWAP .SYSZzXXMNSJ.SYS zTT .SYSMzLP .SYS`TzMT .SYSHSzMM .SYSxevPIP .SAVXvDUP @D 5  bX7sW#  LB͋T 5 MU<0U7 .e&,}Z^.SAVzvDIR .SAVD  $wfl p0@i B ' @舌TTT:S v>Q VfYZN .     7 7 0 . @ f\7ZP  0 VGI*F|_AT?D4M wU@pw   wnwd  !7e7(m wa7w z wj" 7w wwewBCh ^e wXW"4@  @"? :7 J^J^f^J^f^0>Q\?LQ Z7>]P50(]D LQlZ0[@Hr  w0w 7 ( j mb  `&` n N^   8 LH2  w w ,er ef e` ( * " D @  ? $ `ɕe  w w @m7  17 w w e N  7 0 Z͋ww  B w& χ/ =^ɋw B `ыB ɋɋB  ew  y   7G:ŝԋ,*w(D&  F C lf`B   7  > ͋w0  w  `ЋЋЋe 7 AI 7 n wf 7 f j7 7 8   &WWw7v   M   ee UUU  m: w .  w  ߥ*w w $  e -V @w RKDSDPDM:2: 7,*"D wnD  0fV<JB f>&6RF DXDTMT MMDLDY 88 ЋDP  Ћ7B7? ( J & ee 7 , e7$  ww= P 6 ׭!7 wD w5:wVB J  e  L$  HwD >E % * * w r Z X V  0 0 w 7 z xw & w  J $HD$R1      A w  @ " lw "  >R" @  e  %@Ae Fuu  ( T l \E $ \ .3 ? ]cef ww^ w w  " wz    RJwH 8ew `%Ԃ  f W +,e( (wv>&@7$e &  I hww% ? 7.737 ( '7 &< ^& w@ ( @ e@W [RT11̕AeeDECRT11A B  ȭew w wHw"w7@%eW $e c    5mf A N  %  V x7 2@ ߋ*w~F#>U@$U$  A (ADe  E$E@$e , 00 w R   5  * \B>w<ew6ew0&f& & ȋ   7 ^e  0 4 B7 T7 NL &f~  f DF ȋ  ȝp0 &D$#& Ε,e   Be F  0 <   e w3e"$& &~ev\7 e" #" #"6Ew( 5 7 < ̋? ( ? E,'+7 w5i ?  pebe.e@  , Q /:F 鈀+wf@鈅 Owner name Vol id? MDUP V03.05A ?MDUP-F@! c"   f b``U&? f& ʋ5&ŀaz  7 & ~鈷-?MDUP-W-Bad directory blockIllegal commandRead errorWrite errorBad blocksSystem errorZNRBVKHFSICT6 fW@CUV&F f 5f W@f x5C5&%@&^5weC UOYLXW:r2vr@˕ ˤ &툀鈷e2wZWfeͥ( 77777 ww  Qd`T 0 %: X!}<}; zvQQQ`Ceh EfE%  ҋҋG #ʵ@ e`a%A 7  w& ee^ & DP1:R/R/vvv ѭ2ы @w 7 e7*%@ gz[ E e%  78?KMON-F-Overlay read error 5A K ' +U@|$鈇  ed e tn ? f X"w ͋w d  5$f J,( ""@"5!  EP4H@ >` X (XK5$eBQtX ."  \I$QIeRU@R  ͥ- g z R ͥ]R Еrnv e aew*W Е:ͥ: ( ͥW@am0DaWw w eD w4 el ! s @r  wJ|D\f`|dP|.* wJ  @ʕ*  #ͥ.P J  v%* D.8eAbw   Da(D`D` Rvpbdͥ,@.*   @P  .ͥ*ͥ%  ee@a ȕa ͋jg,E  7 7| lwr  wa PO e @e`  e P  w7   n7 E  2wwR e ы w͇  @  7w r`w} aae  8 $ w=u  V7fe e LMG,& f F,e $&EΔNIQ%Ό%@ 2EQU E`H#Heebb,e(wnͥ  ͥ+ͥ,ͥ 7,7xwre7_77 ͥ/I7PNO< 0e>& & e$&w e !!t ~'((U  EEe p SW< B#Bg> ԁ`C  emDHa ҋ 3EfE%  ҋʵ@ ` ف E6%^CC^!C%גPע! " C!$ @@   #AwmE 77P|   hœ  ¥  aefbL= K3 aez   W: Wee. `? j! C! פ ר- 3~R _7 ^ Н/P h 0˵@-•:) N N Zͥ-,B 4 H•.˵  B  ֆ 2ae& rp . J 4U bR- # 3c       0 Oͥ: ͥ- ]eЕ[ P ͥ. ww7?Mͥ:  fH7G  =R0&5B &E f aW=QW=QH <7 > ene.* P 7  77e eRe ͥ: $  &@ E &E 7 g7z~ ? Hf   77e~ 2eef ,e  f&e j v - D @&c%Lbtt&b%0c0jW" ere.# 5o%%ppU%pppͥ:!fefe * nee( ~Е Pee  `ͥ[" Z:TT:PL:KDTDOFrom? To ? File? Files? Devg eJEZww(EXMALILIN DR  FF W S  LSBOEXRice? Device or file? File 1? File 2? Library? Files ? File ? Physical device name? Logical device name? AW[BOAL P O  D RE LIMARE  0W:%%%f ) +e5@1`+|/1-!)1)/+#+!h)-E-)--- -3++++ %%1RCODE/u~ zw& Zw& @Qw DIDE T GLI ERECO  RESLC BSA RE SS GDE FO & |C^w& ZI9w& \gyw& ,yw& z*E' & XI:^'& :r}^& z, c F Qd`T0 AB DIFOSSTIN   DID IN RE LIXr d & XrkQ F Xr^F XI:^F X#^F XFw^F X}y^F X_^ F X^F X^F Qf^F Q"h^F Q_d^F Q g^F Q`^F :T,`^F z,c z*^'PUDM:1PD NUR 1R+R/UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUJ^X_^X) &#kQ & [q`kQa & xekQ& z`TkQ& zzkQ& X N X_ N= |C^w& J^J^^>Q\?QJ^f^J^J^f^t>Q_Q Z*>]t*P+v>Qv&  www Y u  M EZI9w& \gyw& ,yw& z*^' & XI:^& X#^& XFw^& X}y^& X_^ & X7 0w:, F f ÝeL aedw/   @RESORCPIPDIRDUPLINKI@R@ Z W S L@ M@B@T@E@U@Y/ w < DKw "feHBASICFORTRAMACRODUMPLIBRSRCCOMFILEXF4PDICOMPFOCALAPL     *e>7 < z \z p \ Z D L DKwͥ:w g #  Y  " "" AK   7A""##DG`/RU:DK:SY:.SYS.LST.BOTkQ\ w $O `﷊w 0 •Mw  ɕ•E  weQŠeɥ׭wfe: eZR5 $ W  ͋ # & zzkQ& X N X_ N=  b  |^? W WW  B aBe 7pEeR5d3 w w @w w B xPPPH (a(fECew EN  d b 2.` "6w? ? F@w H !7w #  eNSS t_[cw UFEUw 5@!eBB ` ? 0wElme& ,w  Q$ 7 &w 8w  7   7 7 w w Dw?  w -7 \7 Zw <& 7 :w @% Be$B  wdQ$mw Qd`T 6?  &  7v@Ŋ5$ߋ4Rz7 $.@% @#eee%7` 7 x   e# ' R wEK]w  ۇf: N LW R31vEB$* @5@+|R עGEJ5$E ӋU@UӋˋ 5 A LW!\/ 5 `1   P$Q & w    Q . \  T5!fQ E %=%< D  "% % 5ŀ׭9Q *"CИ w Zd $PPw Nw Dw 2 w 2  rw Z/EW2 Z 7 H3zN 2R> QBw( @'  7 e  O  4U$6?  N&r77  : f *8,QR7 2#@SD Og,e  ,0*5 # #e `97Device full D ,   &` 7File not found W,W=͋X7xIllegal commandͥ/`#w :%   t\ `C KSdKU b$`6Cg, _#`R V ? 7BN : U@ Rͥ.   6 7Illegal device* 7?CSI-F-鈀 7 T 63 f7 Kaes S w ^ 5Sw 6I3W2Wl> E U@dU&?f > ?w & >ć W[ W]  2W:  w C $ A!EE P &EΒE? *# ?w QD%Q7  0R/eJW.  $  $  7%%**09AZaz&   Nl b e Еȕ e 0HJE & &:&& >0ee? Q  UzRwhw &&N W-e E  C0Π a `  6<Z?@^& X^& Q"h^& Q_d^& Q g^& Q`^& :T,`^& :r}^& Xr & Qffmw   E ŧvRŭ^ f egxR BBE/aw "Ba5lafw nCRC!^& X^ XrkQ F Xr^F XI:^F X_^* &#kQ & [q`kQa & xekQ& z`TkQ  BC 5aWp1 &*R Q!ER(A W   xR`$  b5@ 7RB  :% eC % C ``` e̋̋ ezH/TM.PUDM:1PDQ[& TG C `>   %@@w,U? <@4e,}`8 p$ 7 55X 7  #̋ 7̋4%w wP f5eEE ES5 e< bCb eUe, @ Z^ K &f@#B9E5@*B53'UUUCl 5E@ 4Q FA;U ̕M  & N"wUe,}  C E B B5UM_N E55 lU ߕ eR,}ߋȁe%wvZ^fC C Z^ EU`R B 7 er%" <,163 58CfE( 56 <%9 dEWqd6 y r@5`  %(=  VLeF (%  % 1 Q$  w  Uwe  CEAOMKIGV5N, 5( ` ,"LU (e@,}Z^n4 W e~r _T_RR7 ] @ R\P5@@v `<vv00(5P1 4wZA5<'5P @Q W  mS5  2CՋ@E 5*E wPWWi 5D2 w4.5F)P5 5 58E  RHU e<,}7 oP іw` w\5@*Z U7 @87NB7F5t 6Wedd %wx%5 gw%5@$5T   t%R%J T w .@ 5& 5  E w\Uw (f(UUK  ˀ ( 5P 5 %$%%5@%  5   w * pR 5P wR5U5 w550@z5w 5¡@m5! E 5@a JU>5c5`5` `5* w _T6T(V ŝ"jl  T^VŝT5 Pew eb R#  wDwW-" 5@e7U  _Tŝl7,_RŝYceLZ^x˵)ӵU64UMwwU Bl2Ur . vRw-7 &w07 b w 0&e$ aC}  `  7>wv7& &U@wg @@x 6, N 5z 7 ,} e d EC e  A  5   Bm@EPC % 7ddC E d @ 0 x Ue,}07*Eŋ Lat Ue     Hɥ W#Q u#R > 5$  4   jX dC8 20`fE T Z^w00 w 5$  Ub3 UHr 7 h "(  .  t7 |?  R/ ^@@    D L  P bb? H 5 @f\e)U%Me u#eR 7 prtvH]<?30 R3   V R?bRBQXXXX Y YYOAD DS LOAD DT LOAD DX LOAD MT RUN DP1:MDUP DP1:MDUP.MT/H OAD DL LOAD DM LDP1:MDUP *DP1:M brW 0Z^6@E w7`W `w v tzz 8r `THSpqM     C  e@ P   E 5o%l wRL@J 74w< 7$  R _FLFGZ?TDF@|PEw  D eEE e NQ@N Fe J]b 8@ #7%w-7TEN7  7Dť+;  fe  amagHb|vNNjNNNNNNN`NNNvNN"E?e@7   L $^EUHJ55 5@  5 5   NXU D   &7 <   uD*eaU6  + 6 $ww 84U w -  7  4*w<e,}% \ %w& E_ *%e~T *^%Tw>5@.T^ 77 ?MON-F-P?E? E E@E@ U Pr  UJʋ ' 5O= eower fail halt ? ac,6 "8@H(F2&   5 D e* WweRĝ `W   5 *  W>5 ; 7 "e7d@e PH7  0F-g,)7&5$ ͋%X q"R@  , ͊  UUA BeEAc"# "  ABwJ```   e* ``pW@0 w( "U$7 <6 7  7 57 E$(7< 7 ĥ wDZ^. *U$5$BwXV& zE [xW5@$azE e  `OFv    & R/ " JĔ Ĕ &f&I e`  &e@^wQ3 v _D w7 J\TQ0R/&\& t l  &7& V TT L4Lf  &  &  V%&f&  U$E$ L-7 zehF7 7 V7 e<xRJ&\ %J $ j ]@'( EM( U% (r& V*  Rѕ 7h.n  &.H> 0:A Z W .W ܃Rw5:wVB J  e  L$  HwD >E % * *  8 v @ -Z P`P  .@ڇ> $;:8  V P  wߋ$ɀf&CCe S J^f^&>Q_Q Z[>]&[ wj  $e " 5`  l ߋtv ?MSBOO_[\tBD E` `E@% e`7C 2U%dd eI |T-F-I/O error HDR1FILNAM.EXT DUP.MT/H .RUN D \$bEX% * " @fX7   A @D 5  bX7sW#  LB͋T 5 MU<0U7 .e&,}Z^&$ v4 u# W%*L E  ?H#  4% 4  .? $ ̗/ ? %  TTP  +*  6!  e-&LE w w Ea5' +7 5%5 E Eael B55 M  ߋtv ?BOOT-F-I/O error   E E 7  s!5s  ENEae E % Άe`B`N  9"ߋ*U (ߋ*&_$ ߋ*5*  ` ` `ߋRURߋR ˋ  w  5E  $ &77 R T_VRߋR5@P Rwz\ 7p?MON-F-System read failure halt   <  $7 <7   8' UF = 4 $PNAME = <<<'E-100>*50>+<'L-100>>*50+0 .DRBEG EL,0,M+1,ELSTS ELIO: BR ELRWIO EL: JMP ELENTE ELWRT: JMP .TITLE ERROR LOG V03.01 .IDENT /V03.01/ ; RT-11 ERROR LOG HANDLER ; ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATIONBUFWRT OVERF: .WORD -1 UBUFP: UBUF-ELSTRT RBUFP: RBUF-ELSTRT SEQN: .WORD 1 TIMEP: TIME-ELSTRT , MAYNARD, MASSACHUSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A ; SINGLE COMPUTER SYSTEM AND  .IF NE ERL$A CHDEFP: CHDEF-ELSTRT .IFF CHDEFP: .WORD 0 .ENDC ELRWIO: MOV ELCQE,R5 CMP #2,(R5) BLO READ BHI INMAY BE COPIED ONLY WITH THE INCLUSION ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER ; COPIES THEREOF, MAY NOT BITWR .IF NE ERL$W INITNW: CLR WRAP BR INIT INITWR: MOV #1,WRAP .IFF INITNW: INITWR: .ENDC INIT: MOV #-1,OVERF CLR E PROVIDED OR OTHERWISE MADE AVAILABLE ; TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO ; AGREES TO THESE LIREENTF MOV #1,SEQN MOV #-1,UBUF1 MOV PC,R5 ADD #UBUF1+2-.,R5 MOV #/2,R4 1$: CLR (R5)+ DEC R4 BNCENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS SOFTWARE E 1$ MOV PC,R5 ADD #RETRYP-.,R5 MOV #/2,R4 3$: MOV #-1,(R5)+ DEC R4 BNE 3$ MOV #-1,UBUF1D MOV #-1IS SUBJECT TO CHANGE WITHOUT ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION. ; ; DE,REGBUF .IF NE MPT$Y CLR LASTCP .ENDC TST (PC)+ INITF: .WORD 0 BEQ 2$ RTS PC 2$: BR ELIOEX READ: MOV PC,R3 C ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. .MCALL  ADD #OVERF-.,R3 MOV #4,R2 .IF NE MMG$T MOV ELCQE,R4 1$: MOV (R3)+,-(SP) JSR PC,@$PTWRD .IFF MOV QBUF(R5),R4 1.SYNCH,.WRITW,.DRBEG,.DREND,.DRFIN,.DATE,.PURGE ERL$G = 1 .IIF NDF TIM$IT,TIM$IT=0 .IIF NDF MMG$T,MMG$T=0 .IIF NDF ERL$B,ER$: MOV (R3)+,(R4)+ .ENDC DEC R2 BNE 1$ ELIOEX: .DRFIN EL .IF NE ERL$A BUFWRT: MOV R1,-(SP) MOV R2,-(SP) MOV R3L$B=1 .IIF NDF ERL$U,ERL$U=10. .IIF NDF ERL$W,ERL$W=0 .IIF NDF ERL$A,ERL$A=0 .IIF NDF MPT$Y,MPT$Y=0 UNIBMS = 172100 U,-(SP) MOV R4,-(SP) MOV R5,-(SP) TST R0 BMI BUFW1 TST OVERF BEQ BUFW1 MOV BOTTOM,R1 SUB NEXTE,R1 CMP R1,#10MSBOOT V01-06 ?MSBOOT-F-Illegal file name ?MSBOOT-F-File not found 7#ߋp—rENIBNE = 172136 MSYSER = 177744 MCONRG = 177746 MHITMS = 177752 SYSPTR = 54 CONFIG = 300 FB = 1 CNTXT = 320 B& Õ\ Õ\ v p7@E T   pÕ 4ATRN$ = 2 CONFG2 = 370 PDP60$ = 100000 PDP70$ = 40000 CACHE$ = 1 MPTY$ = 2 CACHID = 20000 PARID = 10000 ?MSBOOT-F-Line too long ^U ߋtߐv CPPC = 12 CPPS = 14 REGADD = 2 RCTNRG = 0 PARRGN = 16. N = ERL$U M = ERL$B UBUFSZ = 7 ELSTS = 24 QB( 0 BLO BUFW1 MOV SEQN,R0 BUFWEX: MOV @#SYSPTR,R1 BIT #FB,CONFIG(R1) BEQ 1$ BIC #BATRN$,@CNTXT(R1) 1$: MOV (SP)+,R5 0 .WORD 0 .IFF BUFWRT: RTS PC .ENDC ELENTE: TST REENTF BEQ 1$ RTS PC 1$: MOV #1,(PC)+ REENTF: 0  MOV (SP)+,R4 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 CLR REENTF RTS PC BUFW1: MOV #1,REENTF MOV @#SYSPTR,R1 BI MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV PC,R0 ADD #REGBUF-.,R0 MOV R0,BUFADD CMPB R4,#-2 BGTT #FB,CONFIG(R1) BEQ 3$ BIS #BATRN$,@CNTXT(R1) 3$: MOVB R0,R1 MOV PC,R0 ADD #AREA-.+4,R0 MOV PC,R2 ADD #TI 1$ JMP CERPER 1$: TSTB R4 BEQ HARDER BPL SOFTER GOODIO: JSR PC,UNITS BR 1$ JSR PC,ACTIVE BR 2$ ADD #,R0 INC (R0) MOV #-1,(R1) MOV #-1,-(R1) BR 1$ 2$: TST 6(R5) BPL 3$ ADD #,R0 3$: INC (R0D #CHDEF-.,R2 MOV PC,R0 ADD #AREA-.+4,R0 MOV R2,-(R0) MOVB #6,-(R0) MOVB R1,-(R0) EMT 375 BCC 1$ 2$: MOV #-4,R0 )+ BCC 1$ ADC (R0) 1$: JMP ELEXT HARDER: JSR PC,UNITS BR 2$ ADD #,R0 INC (R0)+ JSR PC,ACTIVE BR BR BUFWEX 1$: MOV #6,R3 MOV PC,R2 ADD #FILHED-.,R2 CLR R4 MOV #10,R5 JSR PC,REDWRT CLR R0 CMP (R2)+, 2$ CLRB @(R1)+ MOV #-1,-(R1) MOV #-1,-(R1) 2$: JMP ELEXT SOFTER: MOVB R4,RETRY JSR PC,UNITS BR ELEXT #101010 BNE BUFWFN CMP (R2)+,(R2)+ BEQ BUFWFF MOV #11,R5 MOV (R2),R4 MOV R2,(PC)+ BUFWS2: .WORD 0 MOV #256.,JSR PC,ACTIVE BR 1$ MOVB RETRY,@(R1)+ BR ELEXT 1$: JSR PC,ACTIV0 BR ELEXT MOV R4,-(R1) MOV (PC)+,R0 BUFADDR3 MOV PC,R2 ADD #UBUF-.,R2 JSR PC,REDWRT INC R4 MOV FILHED+10,R3 DEC R3 SWAB R3 MOV PC,R2 ADD #RBUF-: 0 ADD NEXTE,R0 MOV SEQN,R1 JSR PC,STORE MOV R4,R1 JSR PC,STORE MOV (R5)+,R1 JSR PC,STORE TST (R5)+ MOV .,R2 JSR PC,REDWRT MOV BUFWS2,R2 SWAB R3 INC R3 ADD R3,(R2) INC -(R2) CLR R4 MOV #6,R3 CMP -(R2),-(R2) (R5),R1 JSR PC,STORE MOV 2(R5),R1 BPL 2$ NEG R1 2$: JSR PC,STORE .IF NE MMG$T JSR PC,@$MPPTR MOV (SP)+,-4(R0) JSR PC,REDWRT .PURGE R1 INC INITF JSR PC,INIT CLR INITF CLR R0 BR BUFWXX BUFWFN: DEC R0 BUFWFF: DEC R0 BR B MOV (SP)+,R1 SWAB R1 .IFF CLR R1 .ENDC MOV R0,-(SP) ADD (PC)+,R1 RETRY: 0 JSR PC,STORE MOV (SP)+,@ATMP UFWXX REDWRT: MOV PC,R0 ADD #AREA-.+12,R0 CLR -(R0) MOV R3,-(R0) MOV R2,-(R0) MOV R4,-(R0) MOVB R5,-(R0) MOVB RMOV (SP),R1 JSR PC,STORE REGI: MOV REGADD(SP),R5 MOVB R1,R4 1$: MOV (R5)+,R1 JSR PC,STORE DEC R4 BNE 1$1,-(R0) EMT 375 BCS 1$ RTS PC 1$: TST (SP)+ MOV #-3,R0 BUFWXX: JMP BUFWEX CHDEF: .BLKW 5 FILHED: .WORD 0  ERREXT: INC SEQN BIC #170000,SEQN SOFTAB: MOV #-1,R1 JSR PC,STOR0 ELEXT: MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1  .WORD 0 .WORD 0 .WORD 0 .WORD 0 .WORD 0 AREA: .BYTE 0 .BYTE 0 .WORD 0 .WORD 0 .WORDMOV (SP)+,R0 CLR REENTF RTS PC ELINT: .IF NE MPT$Y CERPER: CLR R1 CMPB R4,#-2 BEQ PERR CERR: INC UCACH ) S PC ACTIV0:MOV #-1,ATMP BR ACTIV ACTIVE: MOV R4,ATMP ACTIV: MOV PC,R1 ADD #RETRYP-.,R1 MOV #5,R2 2$: CMP ATMP,(R1)Z* UBUF1D: .WORD -1 UPAR: .WORD 0 UCACH: .WORD 0 TIME: .WORD 0,0 DATE: .WORD 0 RETRYP: .WORD -1,-1,-1,-1,-1,-1,-+ BEQ 3$ TST (R1)+ DEC R2 BNE 2$ RTS PC 3$: ADD #2,(SP) MOV R1,ATMP RTS PC ATMP: .WORD 0 STOR0:1,-1,-1,-1 RETRYE: RGBDNR = 14 RGBPNR = 6 RGBDBS = 16 RGBPBS = 10 RBUF: OLDEST: .WORD 0  INC STRF BR STORES STORE: CLR STRF STORES: MOV R0,R3 SUB BUFADD,R3 .IF NE ERL$W TST WRAP BEQ STORV TST OVERF NEXTE: .WORD 0 BOTTOM: REGBFN-REGBUF REGBUF: .WORD -1 .BLKW <256.*M>-</2>-1 REGBFN: .DREND ELMOV #CACHID,R1 CMPB R4,#-3 BEQ CPCOM PERR: INC UPAR ADD #PARID,R1 CPCOM: MOV (PC)+,R4 LASTCP: 0 BEQ CPSTR  BNE STORV CMP R3,OLDEST BNE STORV ROLDST:MOV (R0),R2 BIC #7777,R2 CMP R2,#10000 BHIS 1$ MOV #RGBDNR,R2 BIT R1,(R4)+ BEQ CPSTR CMP CPPC(SP),(R4) BNE CPSTR INC @LASTRC JMP ELEXT CPSTR: MOV BUFADD,R0 ADD NEXTE, MOV #RGBDBS,-(SP) BR 2$ 1$: MOV #RGBPNR,R2 MOV #RGBPBS,-(SP) 2$: ADD R3,R2 CMP R2,BOTTOM BLO 4$ SUB BOTTOM,R2 R0 MOV R0,LASTCP ADD SEQN,R1 JSR PC,STORE MOV CPPC(SP),R1 JSR PC,STORE MOV CPPS(SP),R1 JSR PC,STORE MOV R0,LAST 4$: ADD BUFADD,R2 MOVB (R2),R2 ASL R2 ADD (SP)+,R2 ADD R3,R2 CMP R2,BOTTOM BLO 3$ SUB BOTTOM,R2 .IF NE MPT$YRC CLR R1 JSR PC,STORE CLR R4 MOV @#SYSPTR,R1 ADD #CONFG2,R1 BIT #CACHE$,(R1) BEQ CP1 MOV @#MSYSER,R1 JSR PC CLR LASTCP .ENDC 3$: MOV R2,OLDEST .ENDC STORV: CMP R3,BOTTOM BLO 1$ CLR OVERF TST WRAP BNE 6$ MOV BUFADD,,STORE MOV @#MCONRG,R1 JSR PC,STORE MOV @#MHITMS,R1 JSR PC,STORE MOV #3,R4 CP1: MOV #PARRGN,CPCNT RER0 ADD NEXTE,R0 MOV #-1,(R0) BR STOREX 6$: MOV BUFADD,R0 BR STORES .IF EQ ERL$W 1$: MOV R1,(R0)+ .ENDC .IF NE ERLADPR: TST (R5) BEQ CP3 MOV @(R5)+,R1 BPL CP2 JSR PC,STORE MOV -(R5),R1 JSR PC,STORE ADD #2,R4 TST (R5)+ CP$W 1$: MOV R1,(R0) MOV PC,R2 ADD #RETRYP+2-.,R2 MOV #5,-(SP) 2$: CMP R0,(R2) BEQ 3$ CMP2: DEC (PC)+ CPCNT: .WORD 0 BNE READPR CP3: MOV R4,@LASTRC MOV R0,(PC)+ LASTRC: 0 CLR R1 JSR PC,STORE JMP  (R2)+,(R2)+ DEC (SP) BNE 2$ BR 4$ 3$: MOV #-1,(R2) MOV #-1,-(R2) 4$: CMP (SP)+,(R0)+ .ENDC TST STRF BEQ STORERREXT .IFF CERPER: RTS PC .ENDC UNITS: MOVB 3(R5),R0 BIC #177770,R0 BIC #377,R4 ADD R0,R4 MOV PC,R0 ADD #UEX TST -(R0) MOV R0,NEXTE SUB BUFADD,NEXTE TST OVERF BEQ STOREX MOV BOTTOM,OVERF SUB R3,OVERF STOREBUF1-.,R0 MOV R0,R1 ADD UBUF,R1 1$: TST (R0) BMI 2$ CMP R4,(R0) BEQ 4$ ADD #,R0 BR 1$ 2$: CMP R0,X: RTS PC STRF: .WORD 0 .IF LT,<256.-> .ERROR .ENDC UBUF: UBUF1D-UBUF1 WRAP: .WORD 0 UBUF1: R1 BNE 3$ RTS PC 3$: MOV R4,(R0) MOV #-1,(R0);MARK END OF ENTRIES. 4$: TST (R0)+ ADD #2,(SP) RT.WORD -1 UBUFR: .WORD 0,0 UBUFW: .WORD 0,0 UBUFH: .WORD 0 UBUFS: .WORD 0 UBUFE: .BLKW UBUFS* NT IS SUBJECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ;IMAG: BR .+NXTCHR-XIM1 MOV @#CRB1,@(PC)+ .WORD 2 SET026: .BYTE 012,137 .BYTE 013,075 .BYTE 015,136 .BYTE 016,04 DEC ASSUMES NO RESPONSIBILITY FOR THE USE ; OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DEC. .7 .BYTE 017,134 .BYTE 052,073 .BYTE 054,050 .BYTE 055,042 .BYTE 056,043 .BYTE 057,045 .BYTE 112,072 .BYTMCALL .DRBEG,.FORK,.DREND,.DRAST,.DRFIN .IIF NDF MMG$T, MMG$T=0 .IIF NDF ERL$G, ERL$G=0 .IIF NDF TIM$IT, TIM$IT=0 .IIF NDF CE 115,133 .BYTE 116,076 .BYTE 117,046 .BYTE 200,053 .BYTE 212,077 .BYTE 214,051 .BYTE 215,135 .BYTE 216,074R$VEC, CR$VEC == 230 .IIF NDF CR$CSR, CR$CSR == 177160 CRB1 =CR$CSR+2 CRB2 =CR$CSR+4 CRSTS=40014 CRDSIZ=0 HDERR=1 CR=15 .WORD 0 SET029: .BYTE 012,072 .BYTE 013,043 .BYTE 015,047 .BYTE 016,075 .BYTE 017,042 .BYTE 052,134 .BYT LF=12 SPACE=40 EOF=41 READ=1 EJECT=2 INTEB=100 COLD=200 READY=400 BUSY=1000 ONLIN=2000 DATLAT=4000 MOTIN=10000E 054,045 .BYTE 055,137 .BYTE 056,076 .BYTE 057,077 .BYTE 112,135 .BYTE 115,051 .BYTE 116,073 .BYTE 117,136 HOPCK=20000 CARDN=40000 ERR=100000 .ASECT .=400 BR .+LXCRLF-XCRLF .RAD50 /CRLF/ .WORD /2+100000 B .BYTE 200,046 .BYTE 212,133 .BYTE 214,074 .BYTE 215,050 .BYTE 216,053 .WORD 0 .IIF GE -1 .END R .+LXTRIM-XTRIM .RAD50 /TRIM/ .WORD /2+100000 BNE .+LERROR-XHANG .RAD50 /HANG/ .WORD /2+100000 .WORD 026. .RAD50 /CODE/ .WORD /2+40000 .WORD NOIMAG-IMBASE .RAD50 /IMAGE/ .WORD /2+100000 .WOR.TITLE CR V03.01 .IDENT /V03.01/ ; RT-11 CARD READER (CR11) HANDLER ; ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATID 0 CRLF: MOV (PC)+,R3 NOP MOV R3,XCRLF RTS PC TRIM: MOV (PC)+,R3 NOP MOV R3,XTRIM RTS PC HANG: MOV (PC)+,R3 ON, MAYNARD, MASSACHUSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AN NOP MOV R3,XHANG RTS PC CODE: MOV PC,R1 ADD #SET026-.,R1 SUB R3,R0 BMI CODEXT BEQ SETCOD ADD #SET029-SET026D MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, ; OR ANY OTHER COPIES THEREOF, MAY NOT,R1 CMP #3,R0 BEQ SETCOD SEC CODEXT: RTS PC SETCOD: MOV PC,R3 ADD #CHRTBL-.,R3 SCODE: CLR R0 BISB (R1)+,R0  BE PROVIDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ; ONE WHO AGREES TO THESE  BEQ CODEXT ADD R3,R0 MOVB (R1)+,@R0 BR SCODE IMAGE: ADD #YAIMAG-NOIMAG,R3 ADD PC,R3 IMBASE: MOV (R3)+,XIM1 MOV LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS DOCUME(R3)+,XIM2 MOV (R3)+,XIM2+2 MOV (R3)+,XIM3+2 RTS PC NOIMAG: BEQ .+NXTCHR-XIM1 MOVB CHRTBL-XIM2(R4),@(PC)+ .WORD 1 YA+ 77003,@SP MOV @SP,-(SP) NEG @SP BIC (SP)+,(SP)+ XIM1: BEQ NXTCHR MOV #377,R4 NXTCHR: MOV CHRPTR,(PC)+ ENDPTR: .WOR$CHAR = $CHAR + 1 .ENDM C .NLIST BEX CHRTBL: .REPT 256. .BYTE 134 .ENDR .=CHRTBL $CHAR = 0 C <12,0,9,8,1> C <12,9,D 0 INCOLT: ADD PC,R4 XIM2: MOVB CHRTBL-.(R4),@(PC)+ CHRPTR: .WORD 0 XIM3: ADD #1,CHRPTR INTRET: BIS #INTEB,@#CR$CSR RTS1> C <12,9,2> C <12,9,3> C <9,7> C <0,9,8,5> C <0,9,8,6> C <0,9,8,7> C <11,9,6> C <12,9,5> C <0,9,5> C <12,9,8,3> C PC .IF EQ MMG$T .IFTF CARD: BIT #CARDN,R4 BEQ ERR1 CLR @#CR$CSR .FORK CRFBLK MOV (PC)+,R5 BUFPTR: .WORD 0 MOV  <12,9,8,4> C <12,9,8,5> C <12,9,8,6> C <12,9,8,7> C <12,11,9,8,1> C <11,9,1> C <11,9,2> C <11,9,3> C <9,8,4> C <9,8,5CRCQE,R4 .IFT CMP (R4)+,(R4)+ .IFTF CMP #7417,(PC)+ CHAR12: .WORD 0 BEQ ENDFIL MOV CHRPTR,R1 XTRIM: NOP MOV EN> C <9,2> C <0,9,6> C <11,9,8> C <11,9,8,1> C <9,8,7> C <0,9,7> C <11,9,8,4> C <11,9,8,5> C <11,9,8,6> C <11,9,8,DPTR,R1 INC R1 LXTRIM: XCRLF: NOP MOVB #CR,(R1)+ MOVB #LF,(R1)+ LXCRLF: MOV R1,ENDPTR BR CONT FILBUF: .IFT MOV7> C <> C <12,8,7> C <8,7> C <8,3> C <11,8,3> C <0,8,4> C <12> C <8,5> C <12,8,5> C <11,8,5> C <11,8,4> C <12,B (R5)+,@(R4)+ DEC @R4 BEQ RETMON INC -(R4) .IFF MOVB (R5)+,-(SP) JSR PC,@$PTBYT DEC 6(R4) BEQ RETMON .IFTF8,6> C <0,8,3> C <11> C <12,8,3> C <0,1> C <0> C <1> C <2> C <3> C <4> C <5> C <6> C <7> C <8> C <9>  CONT: CMP ENDPTR,R5 BHI FILBUF ERR1: BIT #READY+BUSY,@#CR$CSR BNE INTRET READR: MOV PC,R5 ADD #CHRBUF-.,R5 MOV R5 C <8,2> C <11,8,6> C <12,8,4> C <8,6> C <0,8,6> C <0,8,7> C <8,4> C <12,1> C <12,2> C <12,3> C <12,4> C <12,CHRPTR MOV R5,ENDPTR MOV R5,BUFPTR CLR CHAR12 MOV #80.,(PC)+ COLCNT: .WORD 0 MOV #READ+INTEB,@#CR$CSR RTS PC C,5> C <12,6> C <12,7> C <12,8> C <12,9> C <11,1> C <11,2> C <11,3> C <11,4> C <11,5> C <11,6> C <11,7> CLREOF: BIS #20000,@-2(R4) CLR EOFFLG BR RETMON LERROR: MOV CRCQE,R4 BIS #HDERR,@-(R4) ABORTB: BR ABORT ERROR: BIT #DA <11,8> C <11,9> C <0,2> C <0,3> C <0,4> C <0,5> C <0,6> C <0,7> C <0,8> C <0,9> C <12,8,2> C <0,8,2> C <000, .ERROR .DRBEG CR,CR$VEC,CRDSIZ,CRSTS CRHAND: MOV CRCQE,R4 MOV CHRPTR,R5 ASL 6(R4) BLOS LERROR TST EOFFLG TLAT,R4 BNE LERROR TST COLCNT BPL ERR1 BR CARD ENDFIL: .IFT MOV (R4)+,R5 .IFTF MOV SP,(PC)+ EOFFLG: .WO BNE CLREOF BIT #READY+BUSY,@#CR$CSR XHANG: NOP .IF EQ MMG$T TST (R4)+ .IFF TST (R4) .IFTF BEQ READR .IRD 0 CLRBUF: .IFT CLRB (R5)+ DEC @R4 .IFF CLRB -(SP) JSR PC,@$PTBYT DEC 6(R4) .IFTF BNE CLRBUF ABORT: CLR ENDFT TST (R4)+ .IFF .ENDC BR CONT .DRAST CR,6,ABORTB DEC COLCNT MOV @#CR$CSR,R4 BMI ERROR TSTB R4 PTR RETMON: MOV R5,CHRPTR CLR @#CR$CSR .DRFIN CR .ENDC .MACRO C $LIST T=0 .IRP X,<$LIST> .IF NE X'. .IF LE X'.- BPL CARD MOV @#CRB2,R4 BEQ INCOLT MOV @#CRB1,-(SP) CMP CHRPTR,BUFPTR BNE TSTPUN MOV @SP,CHAR12 TSTPUN: BIC #17 T=T+X'. .IFF U=10 .REPT X'.-8. U=U+U .ENDR T=T+U .ENDC .IFF T=T+40 .ENDC .ENDR .=CHRTBL+T .BYTE $CHAR ,  <12,0,8> C <12,0,9> C <12,11,1> C <12,11,2> C <12,11,3> C <12,11,4> C <12,11,5> C <12,11,6> C <12,11,7> C <12,11,8> CL $RFNUM .IIF NDF $RFNUM, $RFNUM=1 .IIF NDF RF$VEC, RF$VEC == 204 .IIF NDF RF$CSR, RF$CSR == 177460 RFCS = RF$CSR RFWC = R <12,11,9> C <11,0,2> C <11,0,3> C <11,0,4> C <11,0,5> C <11,0,6> C <11,0,7> C <11,0,8> C <11,0,9> C <12,0> C <12,11>FCS+2 RFMA = RFCS+4 RFDA = RFCS+6 RFAE = RFCS+10 CMAINH = 400 RFDSIZ = 2000*$RFNUM RFSTS = 100012 HDERR = 1 RD = 105 W C <11,0> C <11,0,1> C <12,9,7> . = CHRTBL + 256. .LIST BEX CHRBUF: .BLKW 81. CRFBLK: .WORD 0,0,0,0 .DREND CR .END R = 103 RKSYS == 0 DLSYS == 0 DTSYS == 0 DXSYS == 0 DPSYS == 0 DSSYS == 0 DMSYS == 0 DYSYS == 0 RFIDEN = 5000 R FIDS = 5377 RFRCNT = 3400 RFNREG = 10 RFREGA = 177460 .DRBEG RF,RF$VEC,RFDSIZ,RFSTS ENTRY: MOV #7,(PC)+ RFTRY: .WORD 0 .IF EQ MMG$T .IFTF AGAIN: JSR R0,RFCOMN ZERO: .WORD 0 .IFT MOV (R5)+,-(R4) .IFF JSR PC,@$MPPTR MOV (SP.TITLE RF V03.01 .IDENT /V03.01/ ; RT-11 RF11/RS11 HANDLER ; ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATION, MAYNA)+,-(R4) MOV (SP)+,R3 .IFTF MOV (R5)+,-(R4) MOV #WR,R5 TST @R4 BEQ RFEXIT BMI 1$ MOV #RD,R5 NEG @R4 1$: RD, MASSACHUSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE  .IFF BIS R3,R5 .IFTF MOV R5,-(R4) RTS PC .ENDC .DRAST RF,5,RFABORT MOV RFCQE,R5 TST @#RFCS BPL RFFILL .FOCOPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, ; OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVIRK RFFBLK .IF NE ERL$G BIT #6000,@#RFCS BNE RFHER BIT #2000,@#RFAE BNE RFHER MOV PC,R1 ADD #RFRBUF-.,R1 MOV RDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ; ONE WHO AGREES TO THESE LICENSE T1,R2 MOV #RFNREG,R4 MOV #RFREGA,R3 RFRREG: MOV (R3)+,(R1)+ DEC R4 BNE RFRREG MOV #RFNREG,R3 ADD #RFRCNT,R3 MOVB ERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBRFTRY,R4 DEC R4 ADD #RFIDEN,R4 JSR PC,@$ELPTR MOV RFCQE,R5 .ENDC RFRETY: DEC RFTRY BGT AGAIN RFHER: BIS #HDERR,@JECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DEC ASSU-2(R5) .IF NE ERL$G BR RFEXIT RFHOME: .FORK RFFBLK MOV #RFIDS,R4 MOV RFCQE,R5 JSR PC,@$ELPTR .IFF RFHOME: .ENDC MES NO RESPONSIBILITY FOR THE USE ; OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DEC. .MCALL .QERFEXIT: .DRFIN RF RFABORT:MOV #400,@#RFCS BR RFEXIT RFFILL: JSR R0,RFCOMN .WORD CMAINH MOV 2(R5),R5 BPL RFHOME TS11,8,2> C <11,8,7> C <0,8,5> C <8,1> C <12,0,1> C <12,0,2> C <12,0,3> C <12,0,4> C <12,0,5> C <12,0,6> C <12,0,7> CLDF,.DRBEG,.DRFIN,.DREND,.DRAST,.FORK .QELDF .IIF NDF TIM$IT,TIM$IT=0 .IIF NDF MMG$T, MMG$T=0 .IIF NDF ERL$G, ERL$G=0 .GLOB- DRBEG,.DREND,.FORK,.DRAST,.DRFIN .IIF NDF MMG$T,MMG$T=0 .IIF NDF ERL$G,ERL$G=0 .IIF NDF RK6$S,RK6$S=0 .IIF NDF TIM$IT,TIM INCB BADBLK 1$: INCB BADBLK MOV PC,R3 ADD #BBUF-.,R3 MOV R3,BADD JSR R3,STBQUE .WORD 64. .WORD 1 $IT=0 RK6$B=1 RK6$S=1 PR5=240 PR7=340 SYINPR=PR7 SYSPTR=54 OFFSET=270 DTSYS==0 RFSYS==0 RKSYS==0 DLSYS=.ENDC 4$: MOV #READ+GO+IE,DMFUNC .IF NE RK6$B MOV #SPFUNB,SPFUN CMPB 2(R5),#SPWRIT BHI DMRETY BEQ DMWRIT TB R5 BEQ RFHOME NEG R5 ADD R5,@R4 ADC 2(R4) BIS #177400,R5 MOV PC,-(R4) ADD #ZERO-.,@R4 MOV R5,-(R4) MOV=0 DSSYS==0 DXSYS==0 DYSYS==0 DPSYS==0 DMDSIZ=410.*3.*22. DMDSI7=814.*3.*22. .IF NE RK6$B DMSTS=102023 .IFF DM #WR,-(R4) RTS PC POPHOM: MOV (SP)+,R0 BR RFHOME RFCOMN: MOV #RFAE,R4 BIT @R0,@R4 BNE POPHOM MOV #400,@#RFCS MOSTS=100023 .ENDC RETRY=8. QBN= 0 QFC= 2 QUNIT= 3 QBUFAD= 4 QWC= 6 QPAR= 12 SPFUNB=100000 SPHARD=200 SV RFCQE,R5 MOV (R5)+,-(SP) SWAB @SP MOV @SP,@R4 BIC #177740,@R4 BIS (R0)+,@R4 CLRB @SP MOV (SP)+,-(R4) TST (RPECC=10 SPRETY=4 SPOFF=2 SPRCAL=1 SPREAD=377 SPWRIT=376 SPREP=374 SPDSIZ=373 SPERR=77400 DMIDS=11777 5)+ RTS R0 RFFBLK: .WORD 0,0,0,0 .IF NE ERL$G RFRBUF: .BLKW RFNREG .ENDC .DREND RF .END DMIDEN=11400 DMRCNT=4000 DMNREG=13. DMNRG1=9. DMNRG2=4. .IIF NDF DM$VEC, DM$VEC == 210 .IIF NDF DM$CSR, DM$CS.TITLE DM V03.01 .IDENT /V03.01/ ; RT-11 RK06/07 DISK HANDLER ; ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATION, MAR == 177440 RKCS1= DM$CSR RKWC= DM$CSR+2 RKBA= DM$CSR+4 RKDA= DM$CSR+6 RKCS2= DM$CSR+10 RKDS= DM$CSR+12 RKER= DM$CYNARD, MASSACHUSSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A ; SINGLE COMPUTER SYSTEM AND MASR+14 RKASOF= DM$CSR+16 RKDC= DM$CSR+20 RKECPS= DM$CSR+30 RKECPT= DM$CSR+32 CERR= 100000 DI= 40000 SPAR= 20000 Y BE COPIED ONLY WITH THE INCLUSION ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER ; COPIES THEREOF, MAY NOT BE CDT= 2000 CTO= 4000 RDY= 200 IE= 100 GO= 1 DLT= 100000 WCE= 40000 UPE= 20000 NED= 10000 NEM= 4000 PGE= 2000PROVIDED OR OTHERWISE MADE AVAILABLE ; TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO ; AGREES TO THESE LICE MDS= 1000 UFE= 400 SCLR= 40 DDT= 400 VV= 100 DROT= 40 DCLO= 20 ACLO= 10 DCK= 100000 UNS= 40000 OPI= 200NSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS SOFTWARE I00 DTE= 10000 WLE= 4000 IDAE= 2000 COE= 1000 HVRC= 400 BSE= 200 ECH= 100 DTYE= 40 FMTE= 20 DRPAR= 10 NXF= S SUBJECT TO CHANGE WITHOUT ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION. ; ; DEC4 SKI= 2 ILF= 1 RECAL= 12 WRITE= 22 READ= 20 SETOFF= 14 PCKACK= 2 .DRBEG DM,DM$VEC,DMDSIZ,DMSTS .ENABL LSB  ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. .MCALL . DMBEGN: MOV DMCQE,R5 .IF NE RK6$B CLR (PC)+ BADBLK: .WORD 0 CMPB 2(R5),#SPREP BEQ 1$ BR 4$ BLK1RD:. S2(R4) BEQ 3$ 4$: MOV R1,RKDC-RKCS2(R4) MOV R2,-(R4) .IF NE RK6$B TST SPFUN BPL BUSADD MOV (R5),(PC)+ SPBUFA: .W DMRRG1: MOV (R3)+,(R1)+ DEC R4 BNE DMRRG1 MOV #DMNREG,R3 ADD #DMRCNT,R3 MOVB RETCNT,R4 ADD #DMIDEN,R4 BIT #ORD 0 ADD #2,(R5) .ENDC .IF EQ MMG$T BUSADD: MOV (R5)+,-(R4) .IFF .IF NE RK6$B BUSADD: TSTB BADBLK BEQ 1$ MOV (R5),DMFUNC BEQ DMEL1 NEG QWC(R5) DMEL1: JSR PC,@$ELPTR MOV DMCQE,R5 BIT #,DMFUNC BEQ DMEL2 N+,-(R4) BR 2$ .ENDC 1$: JSR PC,@$MPPTR MOV (SP)+,-(R4) ASL (SP) ASL (SP) ASL (SP) ASL (SP) BIS (SP)+,DMFUNC .EG QWC(R5) DMEL2: MOV #RKCS1,R4 MOV #RKCS2,R3 MOV RKER-RKCS1(R4),R1 LOGERE: .ENDC BIT #UNS+DTYE+FMTE,R1 BNE DMHERR ENDC 2$: MOV (R5)+,-(R4) NEG @R4 BEQ DMDONJ MOV (PC)+,-(R4) DMFUNC: .WORD 0 DMWAIT: RTS PC DMDONJ: JMP DMDONE  BIT #CTO,@R4 BNE DMHERR TST @R3 BMI SUBDIV BIT #BSE+DCK+OPI+HVRC+ECH+SKI,R1 BEQ DMCERR .ENABL LSB SUBDIV: MOV .ENABL LSB .DRAST DM,5 MOV DMCQE,R5 MOV #RKCS1,R4 BIT #READ&WRITE,@R4 BNE DMRDWR .FORK DMFBLK BIT #CERR+DI,@R4 RKWC-RKCS1(R4),R0 ADD QWC(R5),R0 MOV R0,R2 BEQ BSECON BIT #BSE+HVRC+OPI+SKI,R1;NEED TO ROUND DOWN? BNE 2$ DEC R0  CLR (PC)+ SPFUN: .WORD 0 .ENDC TST QWC(R5) BEQ DMDONJ BPL DMRETY DMBEQ DMWAIT DMSETP: BPL DMST1 DMCERR: CLR R1 RECHK: BIC #^C,R1 NEG R1 DECB RETCNT BGT 1$ JMP DMHERR 1WRIT: MOV #WRITE+GO+IE,DMFUNC NEG QWC(R5) DMRETY: MOV #RETRY,(PC)+ RETCNT: .WORD 0 DMRSET: JSR PC,DMROFF .DSABL LSB $: .IF NE RK6$S BIS #SPRETY,SPFUN .ENDC BCS 2$ DMST1: JMP DMSET 2$: MOV #SCLR,@#RKCS2 MOV DMUNIT,@#RKCS2 .IF NE RK6 DMSET: MOV RKCS2P,R4 MOV (R5)+,R3 TSTB (R5)+ MOVB (R5)+,R0 BIC #177770,R0 MOV R0,@R4 MOV #GO,RKCS1-RKCS2(R4) 2$:$S BIS #SPRCAL,SPFUN .ENDC MOV DMTYPE,@R4 BIS #IE+RECAL+GO,@R4;START A RECALIBRATE JSR PC,DMROFF BR DMWAIT .DSABL L BIT #RDY+CERR,RKCS1-RKCS2(R4) BEQ 2$ MOV @#RKDS,R1 BIC #^C,R1 ASL R1 ASL R1 BIS R1,DMFUNC MOV R1,(PC)+ DMSB DMRDWR: TST @R4 .IF NE ERL$G BMI 1$ .FORK DMFBLK BR DMDONJ .IFF BPL DMDONJ .ENDC 1$: .FORK DMFBLK MOV (PCTYPE: .WORD 0 CMPB -2(R5),#SPDSIZ BNE 4$ MOV #DMDSIZ,SPFUN TST DMTYPE BEQ 3$ MOV #DMDSI7,SPFUN 3$: MOV (R5),SPB)+,R3 RKCS2P: .WORD RKCS2 MOV RKER-RKCS1(R4),R1 .IF NE RK6$B TST SPFUN BEQ USERR BIT #BSE,R1 BEQ USERR BIS #SPUFA MOV #SCLR,@R4 JMP DMSPEX 4$: BIT #VV,@#RKDS BNE 1$ MOV #-1,BADRB1 1$: MOV #SCLR,@R4 MOV R0,@R4 MOV DMTYPE,RHARD,SPFUN BR DMHENJ .ENDC USERR: BIT #WLE+COE+NXF+ILF,R1 BEQ USERR1 DMHENJ: JMP DMHENL USERR1: BIT #NED+NEKCS1-RKCS2(R4) BIS #PCKACK+GO,RKCS1-RKCS2(R4) MOV R0,(PC)+ DMUNIT: .WORD 0 CMP R0,BADRB1 BEQ 5$ MOV #-1,BADRB1 M+PGE,@R3;MORE TEST FOR HARD ERROR BNE DMHENJ .IF NE ERL$G BIT #BSE,R1 BNE LOGERE MOV PC,R1 ADD #DMRBUF-.,R1  5$: JSR R0,DIV .WORD 3.*22. MOV R2,R1 JSR R0,DIV .WORD 22. SWAB R2 BISB R3,R2 3$: BIT #CERR+RDY,RKCS1-RKC MOV R1,R2 MOV #DM$CSR,R3 MOV #DMNRG1,R4 DMRREG: MOV (R3)+,(R1)+ DEC R4 BNE DMRREG MOV #DMNRG2,R4 ADD #4,R3 /  6$: MOV (R2),NEWBLK MOV QBUFAD(R5),BADD .IF NE MMG$T MOV QPAR(R5),BPAR .ENDC MOV QWC(R5),NEWWC CMP QWC(R5),#256 MOV (SP)+,(PC)+ OFFPTR: .WORD 0 RTS PC DIV: MOV #-1,R2 1$: INC R2 SUB @R0,R3 BCC 1$ ADD (R0)+,R3 RTS R0 . BLOS 10$ MOV #256.,NEWWC 10$: JSR R3,STBQUE NEWWC: .WORD 256. NEWBLK: .WORD 0 INCB BADBLK+1 BR DMRSEJ .ENDC .ECC: MOV RKECPS-RKCS1(R4),R2 DEC R2 MOV R2,-(SP) BIC #17,@SP BIC @SP,R2 ASR @SP ASR @SP ASR @SP ASR @SP ADSABL LSB NOBSE: TST R0 BNE DMRSEJ BIT #HVRC+ECH,R1 BEQ RECHKJ DECB OFFCNT BPL DMRSEJ ADD #2,OFFPTR DD (SP)+,R0 MOV RKECPT-RKCS1(R4),R3 CLR R1 BR 2$ 1$: ASL R3 ROL R1 2$: DEC R2 BGE 1$ JSR PC,@PC CMP R0,QWCMOV @OFFPTR,R0 MOVB R0,OFFCNT BMI DMHERR .IF NE RK6$S BIS #SPOFF,SPFUN .ENDC CLRB R0 SWAB R0 MOV #SCLR,@R3 MO(R5) BHIS ECCDON MOV R0,R2 ASL R2 .IF NE MMG$T MOV R5,R4 MOV QBUFAD(R5),ECCBAD ADD R2,QBUFAD(R5) JSR PC,V DMUNIT,@R3 MOV R0,RKASOF-RKCS1(R4) MOV DMTYPE,@R4 BIS #IE+SETOFF+GO,@R4 RTS PC RECHKJ: JMP RECHK DMRSEJ: JMP DMRSET@$GTBYT MOVB (SP)+,R2 BIC #177400,R2 JSR PC,@$GTBYT SWAB (SP) BIC #377,(SP) BIS (SP)+,R2 SUB #2,QBUFAD(R5)  .IF NE ERL$G DMHERR: MOV #DMIDEN,R4 MOV DMCQE,R5 JSR PC,@$ELPTR MOV #RKCS1,R4 .IFF DMHERR: .ENDC DMHENL: BIS #1,@-( MOV R2,-(SP) BIC R3,(SP) BIC R2,R3 BIS R3,(SP) JSR PC,@$PTWRD MOV ECCBAD,QBUFAD(R5) MOV #RKCS1,R4 .IFF ADD QBUFR5) .IF NE RK6$B TST BADBLK BEQ 1$ MOV SAVCQE,DMCQE 1$: .ENDC .IF NE RK6$S BIS #SPERR,SPFUN .ENDC BR DMRRST .IAD(R5),R2 MOV @R2,-(SP) BIC R3,@R2 BIC (SP)+,R3 BIS R3,@R2 .ENDC MOV R1,R3 INC R0 ECCDON: RTS PC .IF NE RK6$F NE RK6$B DMDONE: TST BADBLK BEQ DMCOMP .IF EQ ERL$G .FORK DMFBLK .ENDC MOV SAVCQE,R5 MOV R5,DMCQE CMP BADB BQUE: .WORD -1 BBLK: .WORD -1 .BYTE 0 BUNT: .BYTE -1 BADD: .WORD -1 BWCT: .WORD -1 .IF NE MMG$T .WORD 0 BPAR 2$: BIC #377,R0 TST R1 BPL BSECON BIT #ECH,R1 BNE DMHERR MOV R2,-(SP) JSR PC,ECC .IF NE RK6$S BIS #SPECC,BLK,#2 BLO DMCOMP BHI 1$ CLR BADBLK MOV DMUNIT,BADRB1 JMP BADCON 1$: CLR BADBLK MOV NEWWC,R0 CLR RSPFUN .ENDC MOV (SP)+,R0 BSECON: SUB R0,QWC(R5) BEQ DMDONE .IF EQ MMG$T ADD R0,QBUFAD(R5) ADD R0,QBUFAD(R5) .ENDC 1 JMP BSECON .IFF DMDONE: .ENDC .IF NE ERL$G DMCOMP: MOV #DMIDS,R4 MOV DMCQE,R5 BIT #,DMFUNC BEQ DMEL SWAB R0 ADD R0,@R5 .IF NE MMG$T ASL R0 ASL R0 ASL R0 ADD R0,QPAR(R5) .ENDC .IF NE RK6$B BIT #BSE!HVRC,R13 NEG QWC(R5) DMEL3: JSR PC,@$ELPTR MOV #RKCS1,R4 .IFF DMCOMP: .ENDC DMRRST: CLR @R4 .IF NE RK6$B TST SPFUN BP BEQ NOBSE TST (PC)+ BADRB1: .WORD -1 BPL 3$ MOV DMFUNC,SAVFUN JMP BLK1RD BADCON: MOV L DMEXIT DMSPEX: MOV SPBUFA,R5 .IF NE MMG$T MOV DMCQE,R4 MOV R5,QBUFAD(R4) MOV SPFUN,-(SP) JSR PC,@$PTWRD .IFF SAVFUN,DMFUNC 3$: MOV PC,R2 ADD #BBUF-.,R2 5$: TST (R2) BEQ NOBSE CMP (R5),(R2)+ BEQ 6$ TST (R2)+ BR 5$  MOV SPFUN,(R5) .ENDC .ENDC DMEXIT: .DRFIN DM DMROFF: CLR (PC)+ OFFCNT: .WORD 0 MOV PC,-(SP) ADD #OFFTAB-2-.,@SP0 ORD 0 MOV R2,R5 MOV R2,DMCQE RTS R3 SAVFUN: .WORD 0 .ENDC OFFTAB: .BYTE 16, 0 .BYTE 2, 20 .BYTE 2, 220 .BYTE 0 DYSYS== 0 DPDSIZ= 40000. DPSTS= 100021 DPIDEN= 10400 DPIDS=10777 RPRCNT= 5000 RPNREG= 12. .I 2, 40 .BYTE 2, 240 .BYTE 2, 60 .BYTE 2, 260 .BYTE 0, 0 .WORD -1 .EVEN DMFBLK: .WORD 0,0,0,0 ECCBAD: .WORD 0 .IIF NDF DP$VEC, DP$VEC == 254 .IIF NDF DP$CSR, DP$CSR == 176710 RPDS= DP$CSR RPER= RPDS+2 RPCS= RPDS+4 RPWC= RPDS+6 F NE ERL$G DMRBUF: .BLKW DMNREG .ENDC .DREND DM .END  RPBA= RPDS+10 RPCA= RPDS+12 RPDA= RPDS+14 RPM1= RPDS+16 RPM2= RPDS+20 RPM3= RPDS+22 SUCA= RPDS+24 SILO= RPDS+26 CS.GO= 000001 CS.WRT= 000002 CS.RD= 000004 CS.WTC= 000006 CS.SEK= 000010 CS.WTN= 000012 CS.HOM= 0000.TITLE DP V03.01 .IDENT /V03.01/ ; RT-11 RP02 (RP11C) DISK HANDLER ; ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATIO14 CS.RDN= 000016 CS.MEM= 000060 CS.INT= 000100 CS.RDY= 000200 CS.DRV= 003400 CS.HDR= 004000 CS.MOD= 010000N, MAYNARD, MASSACHUSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND CS.AIE= 020000 CS.HER= 040000 CS.ERR= 100000 DS.ATT= 000377 DS.WTP= 000400 DS.FUS= 001000 DS.SUW= 002000  MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, ; OR ANY OTHER COPIES THEREOF, MAY NOT  DS.SIN= 004000 DS.HNF= 010000 DS.RP3= 020000 DS.ONL= 040000 DS.RDY= 100000 RPCNT= 10. .DRBEG DP,DP$VEC,DPBE PROVIDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ; ONE WHO AGREES TO THESE LDSIZ,DPSTS MOV #RPCNT,(PC)+ RPTRY: .WORD 0 RPAGN: CLR @#RPCS MOV #400,@#RPCS CLR @#RPCS ICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS SOFTWAR MOV #400,@#RPCS MOV @DPCQE,R5 CMP #DPDSIZ,R5 BLOS RPERRJ JSR R1,DIV .WORD 10. MOV R2,R4 MOV R3,R5 JSR R1,E IS SUBJECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DIV .WORD 20. SWAB R2 BIS R2,R4 MOV DPCQE,R5 TST (R5)+ MOV (R5)+,-(SP) BIT #4*400,@SP RP23: .IF EQ RP0$3 DEC ASSUMES NO RESPONSIBILITY FOR THE USE ; OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DEC. .MBR L1 .IFF BEQ L1 .ENDC ADD #200.,R3 BIC #4*400,@SP L1: BIC #174377,@SP CMP R3,#202. BLE L5 BIC #3400,@#RPCS : .WORD -1 .WORD 0,0 .ENDC BBUF: .WORD 0 .BLKW 63. .WORD 0 STBQUE: MOV PC,R2 ADD #BWCT-.,R2CALL .DRBEG,.DRAST,.FORK,.DRFIN,.DREND .IIF NDF TIM$IT,TIM$IT=0 .IIF NDF MMG$T, MMG$T = 0 .IIF NDF ERL$G, ERL$G = 0 .IIF NDF MOV (R3)+,(R2) TST -(R2) MOVB 3(R5),-(R2) TSTB -(R2) MOV (R3)+,-(R2) MOV -2(R5),-2(R2) MOV R5,(PC)+ SAVCQE: .W WTC$K, WTC$K = 0 .IIF NDF RP0$3, RP0$3 == 0 DXSYS== 0 DLSYS== 0 DTSYS== 0 RFSYS== 0 RKSYS== 0 DSSYS== 0 DMSYS==1 $: ROL R2 CMP R2,@R1 BLO 3$ SUB @R1,R2 3$: ROL R3 ASL R5 BNE 2$ COM R3 4$: TST (R1)+ RTS R1 .DREND DP .ENCT$CSR == 177500 TACS = CT$CSR ERR = 100000 CRC = 40000 BOTEOT = 20000 WRL = 10000 FGAP = 4000 TIME = 2000  BIS (SP),@#RPCS BIT #DS.RP3,@#RPDS BNE L5 ADD #6,SP RPERRJ: BR RPERR L5: MOV #RPDA,R2 MOV R4,@R2 MOV R3,-(R2) D .IF EQ MMG$T MOV (R5)+,-(R2) .IFF JSR PC,@$MPPTR MOV (SP)+,-(R2) MOV (SP)+,R1 .ENDC MOV #CS.INT+CS.WRT+CS.GO,R3 MOV @R5,-(R2) BEQ 3$ BMI 2$ NEG @R2 ADD #CS.RD-CS.WRT,R3 2$: BIS (SP)+,R3 .IF NE MMG$T BIS R1,R3 .ENDC MOV R3,-(R2) RTS PC 3$: ADD #CS.SEK-CS.WRT,R3 BR 2$ .DRAST DP,5,RPABRT MOV #RPCS,R4 BIC #CS.AIE+CS.INT,@R4 MOVB #DS.ATT.TITLE TA11 HANDLER V02.01 .IDENT /V02.01/ ; RT11 CASSETTE HANDLER ; ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATIO,-4(R4) CLRB -4(R4) TSTB RPTRY+1 BGT RPHOME TST @R4 BPL RPDONE .IF NE ERL$G BIT #136006,@#RPER BNE RPERR .N, MAYNARD, MASSACHUSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM ANDENDC DECB RPTRY BGT RPFORK TSTB RPTRY+1 BMI RPERR INCB RPTRY+1 BIS #CS.AIE,@R4 MOVB #CS.HOM+CS.INT+CS.GO,@R4  MAY BE COPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, ; OR ANY OTHER COPIES THEREOF, MAY NOT  RTS PC RPHOME: TST @R4 BMI RPERR MOV #177412,RPTRY RPFORK: .FORK DPFBLK .IF NE ERL$G MOV PC,R5 ADD #RPRBUFBE PROVIDED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ; ONE WHO AGREES TO THESE L-.,R5 MOV R5,R2 MOV #DP$CSR,R3 MOV #RPNREG,R4 RPRREG: MOV (R3)+,(R5)+ DEC R4 BNE RPRREG MOV #RPNREG,R3 ADD #RPICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS SOFTWARRCNT,R3 MOV DPCQE,R5 MOVB RPTRY,R4 ADD #DPIDEN,R4 JSR PC,@$ELPTR .ENDC JMP RPAGN RPERR: MOV DPCQE,R4 BIE IS SUBJECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; S #1,@-(R4) RPABRT: MOV #1,@#RPCS .IF NE ERL$G TSTB RPTRY BNE RPEXIT MOV #DPIDEN,R4 BR RPLOG RPDONE: MOV #DPIDEC ASSUMES NO RESPONSIBILITY FOR THE USE ; OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICH IS NOT SUPPLIED BY DEC. DS,R4 RPLOG: MOV DPCQE,R5 .FORK DPFBLK JSR PC,@$ELPTR .IFF RPDONE: .ENDC RPEXIT: .DRFIN DP DPFBLK: .WORD 0,0,0, .MCALL .PRINT, .DATE,.DRBEG,.DRFIN,.DREND,.DRAST,.FORK .IIF NDF MMG$T, MMG$T=0 .IIF NDF ERL$G, ERL$G=0 .IIF NDF TIM$IT, T0 .IF NE ERL$G RPRBUF: .BLKW RPNREG .ENDC DIV: CLR R3 CLR R2 TST R5 BEQ 4$ COM R3 1$: ROL R5 BCC 1$ 2IM$IT=0 .MACRO ADDR LOC,R MOV PC,R ADD #LOC-.,R .ENDM ADDR T5 = R5 .IIF NDF CT$VEC, CT$VEC == 260 .IIF NDF CT$CSR, 2 .WORD 0 QF: .BYTE 0 QU: .BYTE 0 QCA: .WORD 0 QWC: .WORD 400 JSW: .WORD 0 EXT=.+4 NAME: .RAD50 "FILEN EXT" .EVEN DATA=.MOV @#MONLOW,R0 MOV CONFIG(R0),CTSJ ADD #OFFSWW,R0 MOV R0,(PC)+ SWWPTR: .WORD 0 TST (PC)+ FIN: .WORD 0 BGE 1$  TEST: MOVB #7,QF+1 JSR PC,WAIT .IF DF INIT EMT 340+10 .ENDC DO: MOV #NAME,QCA MOV #0,QB MOVB #ENTER,QF JSR PJSR PC,DUNDEL 1$: DEC FIN CLR IGNOFF .IF NE MMG$T CLRB CTMVS CLR RAWFLG .ENDC MOV CTCQE,R0 MOV -2(R0),(PC)+ CSC,WAIT MOV PC,R0 ADD #DATA-.,R0 MOV R0,QCA CLRB QF MOV #-1000,QWC JSR PC,WAIT MOVB #CLOSE,QF JSR PC,WAIT MOV #WPTR: .WORD 0 MOV (R0)+,(PC)+ BLOCK: .WORD 0 MOVB @R0,R1 ASR R1 ASR R1 ASR R1 BIC #177770,R1 MOV R1,SYNBLK+2 NAME,QCA MOV #1,QB MOVB #ENTER,QF JSR PC,WAIT MOV PC,R0 ADD #DATA-.,R0 MOV R0,QCA CLRB QF MOV #-40,QWC JSR PC,MOVB (R0)+,R1 CLR R3 MOV #401,R2 MOVB (R0)+,(PC)+ UNIT: .WORD 0 BIC #177770,UNIT BEQ 2$ CMP UNIT,#1 BNE CTIL OFF = 1000 UNITNO = 400 TREQ = 200 INTEN = 100 READY = 40 ILBS = 20 FUNC = 2 WGAP = 0 WAIT MOVB #CLOSE,QF JSR PC,WAIT MOVB #LOOKUP,QF MOV #0,QB MOV #NAME,QCA JSR PC,WAIT MOV @#MONLOW,R0 MOV OFFBUF(R WRITE = 1 READ = 2 LSTFIL = 3 LSTBLK = 4 NXTFIL = 5 NXTBLK = 6 REWIND = 7 GO = 1 TADB = TACS+2 CTDS0),QCA CLRB QF MOV #400,QWC JSR PC,WAIT INC QB MOV #40,QWC JSR PC,WAIT MOV #400,QWC JSR PC,WAIT MOVB #CLOSE,QFIZ = 0 CTSTS = 12013 RW = 0 CLOSE = 1 DELETE = 2 LOOKUP = 3 ENTER = 4 Q.WC = 6 SJMON = 1 HWERR = 1 EOVBIT  JSR PC,WAIT MOV #NAME,QCA MOV #0,QB MOVB #DELETE,QF JSR PC,WAIT NXTF: ADD #51,NAME+2 BR DO MOVB #-5,QF JSR PC,= 40000 EOFBIT = 20000 MONLOW = 54 OFFSET = 270 OFFBUF = 266 OFFSWW = 272 CONFIG = 300 SYNCH = 324 WAIT MOV PC,R0 ADD #DATA-.,R0 MOV R0,QCA MOV #-400,QWC CLRB QF JSR PC,WAIT MOV #-400,QWC JSR PC,WAIT MOVB #-6,FILNFD = 1 ILLFUN = 2 PSW = -2 PR6 = 300 PR7 = 340 ASTRSK = 52 RCHECK=0 MUL=0 NEWVOL=0 .IF DF,INIT DEQF JSR PC,WAIT MOVB #-2,QF JSR PC,WAIT MOV @#MONLOW,R0 MOV OFFBUF(R0),QCA MOV #400,QWC CLRB QF JSR PC,WAIT MOVBUG=0 NEWVOL=0 .ENDC .IF DF RCHECK .ASECT .=400 BR .+NOTDUN-RAWOPT .RAD50 /RAW / .WORD /2+100000 0 B #-1,QF JSR PC,WAIT MOVB #-3,QF JSR PC,WAIT HALT WAIT: CLR (PC)+ WFLAG: .WORD 0 CLR @QCSW JSR PC,CT WTLOOP: TST OPRAW: MOV (PC)+,R3 BNE .+NOTDUN-RAWOPT MOV R3,RAWOPT RTS PC .PSECT .ENDC .IIF NDF DEBUG, .NLIST .IF DF,DEBUG .ENABLWFLAG BEQ WTLOOP BIT #3,@QCSW BNE TMDK BIT #SWERR,@SWWPTR BNE TMDK RTS PC TMDK: CLR @QCSW CLR @SWWPTR .PRINT # AMA .ASECT .=CT$VEC CTINT 0 .=1000 .ENDC .IIF NDF DEBUG, .LIST .IIF NDF DEBUG,.NLIST .IF DF DEBUG .WORDEM RTS PC EM: .ASCIZ "ERROR" QMAN: MOV SP,WFLAG MOV (SP)+,R0 MOV (SP)+,R3 RTI START: JSR PC,WAIT HALT .ENDC .IIF CT$VEC .WORD CTINT-. .WORD PR6 CTLQE: .WORD 0 CTCQE: .WORD QEL CSWDUM: .WORD 0 QCSW: .WORD CSWDUM QEL: QB:  NDF DEBUG, .LIST .DRBEG CT,CT$VEC,CTDSIZ,CTSTS .ENABL LSB CT: SUB #10,SP MOV SP,(PC)+ SPSAV: .WORD 0 MOV #TACS,T5 3 UBITS,R3 ADDR FLGTAB,R0 BICB R3,(R0)+ BISB R3,@R0 ADD R1,R0 BITB R3,@R0 BEQ CTILLF BICB R3,ENTFLG ADD #MACRONABL LSB .IF DF NEWVOL $NEWVOL:JSR R0,SOFT .WORD REWIND BR 2$ .ENDC .IF NE MMG$T SWINI2: JMP SWINIT .ENDC $DELETES-FLGTAB-1,R0 ADD R1,R0 ADD @R0,R0 JSR PC,@R0 1$: JMP RESP CTILLF: BIS #ILLFUN,@SWWPTR BR 1$ SWINIT: BIS #: .IF NE MMG$T JSR PC,GETFLN .ENDC .IF DF,NEWVOL TST @CA BEQ $NEWVOL .ENDC JSR PC,SEEK .IF NE MMG$T BR SWINI2FILNFD,@SWWPTR BR 1$ .DSABL LSB .ENABL LSB WRITD: MOV #-200,WC WRTBLK: .IF DF RCHECK MOV #3,(PC)+ WTRY: .WORD 0 W .IFF SWINI2: BR SWINIT .ENDC DELIT: ADDR FILNAM,R2 MOVB #ASTRSK,(R2) CLRB SEQNO JSR PC,DELAB 1$: JSR R0,SOFT RTB: .ENDC MOV #-200,TC JSR R0,SOFT .WORD WRITE .IF DF RCHECK BIT #BOTEOT,(T5) RAWOPT: BR NOTDUN JSR PC,BSP MO.WORD NXTFIL BR DUNDEL $CLOSE: BITB UBITS,F.WRITE BEQ 1$ BITB UBITS,F.READ BNE DUNDEL 2$: JSR PC,WSENT DUNDEL: ADDV CA,R2 .IF NE MMG$T INCB RAWFLG .ENDC JSR PC,READU MOV CA,R1 MOV R2,CA MOV WC,R3 .IF NE MMG$T MOV R4,-(SP) R F.CLOSE,R0 MOV UBITS,R1 BICB R1,(R0)+ BISB R1,(R0)+ BIS R1,(R0)+ BIC R1,(R0)+ CLRB CTEOFF RTS PC .DSABL LSB . MOV R2,TACA ADDR TACA-4,R4 1$: JSR PC,@$GTBYT CMPB (SP)+,(R1)+ .IFF 1$: CMPB (R1)+,(R2)+ .ENDC BNE 2$ INC R3 IF NE MMG$T GETFLN: ADDR CA-4,R4 MOV #6,R2 ADDR FILENM,R1 MOV R1,R0 1$: JSR PC,@$GTBYT MOVB (SP)+,(R1)+ BLT 1$ .IF NE MMG$T CLRB RAWFLG MOV (SP)+,R4 .ENDC .ENDC NOTDUN: RTS PC 2$: .IF NE MMG$T MOV (SP)+,R4 .ENDC .IF  DEC R2 BNE 1$ MOV R0,CA RTS PC .ENDC .ENABL LSB $READ: TSTB CTEOFF BNE SWEOF MOV WC,R4 BNE 1$ TSTLF ASL R2 BIS #UNITNO,R3 2$: MOV R3,(T5) .IF NE MMG$T MOV R2,UBITS MOV (R0)+,CA NEG (R0) MOV (R0)+,WC TST (R0DF RCHECK DEC WTRY BGT WRTB JMP ERRHW .ENDC .DSABL LSB .ENABL LSB $LOOKUP: .IF NE MMG$T JSR PC,GETFLN .ENDC )+ MOV (R0),Q.PAR BR CGETC CA: .WORD 0 WC: .WORD 0 UBITS: .WORD 0 Q.PAR: .WORD 0 .IFF MOV R2,(PC)+ UBITS: .WORD 0  TST @CA BEQ 1$ JSR PC,SEEK BR SWINIT LUKC: JSR PC,FSP JSR PC,3$ BICB R1,-(R0) BISB R1,-(R0) RTS PC 1$:  MOV (R0)+,(PC)+ CA: .WORD 0 NEG (R0) MOV (R0)+,(PC)+ WC: .WORD 0 .ENDC .DSABL LSB .ENABL LSB CGETC: TST R1 BJSR R0,SOFT .WORD REWIND BISB UBITS,F.HW 2$: JSR PC,3$ BIS R1,-(R0) RTS PC $ENTER: .IF NE MMG$T JSR PC,GETFLN .MI 2$ BGT MACRO .IF NE MMG$T INCB CTURW .ENDC MOV WC,R0 BLE 1$ INC R1 NEG R0 1$: ASL R0 MOV R0,(PC)+ TENDC TST @CA BEQ 2$ JSR PC,SEEK BR NFOUND OPEN: TST BLOCK BEQ NFOUND JSR PC,DELIT JSR PC,CHKHDR BR NFOUC: .WORD 0 MOV R0,WC MOV R0,(PC)+ CTTQCT: .WORD 0 BITB R2,F.HW BEQ MACRW 2$: SUB #2,R1 CLRB F.MACRO NEG R1 ND BR OPEN NFOUND: BIS UBITS,(PC)+ .BYTE 0 ENTFLG: .BYTE 0 JSR PC,LABEL 3$: ADDR F.CLOSE,R0 MOV UBITS,R1 BISB R CMP R1,#10 BGT CTILLF JMP XCT .DSABL LSB .ENABL LSB MACRW: ADD #5,R1 MACRO: CMP R1,#MAXFUN BPL CTILLF MOV 1,(R0)+ BICB R1,(R0)+ BIC R1,(R0)+ BICB R1,(R0)+ BISB R1,(R0)+ MOV CTCQE,R2 CLR Q.WC(R2) RTS PC .DSABL LSB .E4 )+ .ENDC INC R4 BNE 3$ INCB CTEOFF JMP RESP SWEOF: BIS #EOFBIT,@CSWPTR CLRB CTEOFF SWINI3: BR SWINI2 4$:SR R3,RESREG BIS #INTEN+GO,@#TACS RTSPC: RTS PC .IF NE MMG$T TACA: .WORD 0 TABC: .WORD 0 TATC: .WORD 0 TAQP: .WORD 0  .IF DF MUL JSR PC,EOTCHK BEQ 5$ CLR BLOCK JSR PC,SEEKC BR SWEOF JSR PC,LUKC MOV WCSAV,R4 MOV CASAV,CA .IF TAQPCT: .WORD 0 .ENDC .DSABL LSB .IF DF MUL .ENABL LSB CTSYNCH:MOV @SP,1$ ADD #2,@SP BIT #SJMON,CTSJ BEQ 10$ NE MMG$T CLRB CTMVS .ENDC BR 2$ 5$: .ENDC ADD #200,R4 BCS RTSPC .IF NE MMG$T ADD #2,Q.PAR .IFF ADD #200,CA  JSR R4,SAVSTK ADD #SYNBLK-.,R4 JSR R3,RESREG CLR 12(R4) JSR R5,@SYNCH(R5) .IF NE MMG$T BR CTABRJ .IFF BR CTABRT .ENDC BR 2$ CTEOFF: .BYTE 0 CTMVS: .BYTE 0 .DSABL LSB $WRITE: MOV WC,R4 JSR PC,TSTBAK 1$: JSR PC,WRITD .ENDC JSR PC,@(PC)+ 1$: .WORD 0 MOVB #PR6,@#PSW MOV @SP,-(SP) CLR 2(SP) BR CTINT 10$: JSR PC,@1$ RTS PC CTS .IF DF MUL JSR PC,EOTCHK BEQ 4$ CLR BLOCK JSR PC,SEEKC BR 2$ JSR PC,OPEN BR 3$ 2$: JSR PC,NFOUND 3$: MOV J: .WORD 0 .DSABL LSB .ENDC .IF NE MMG$T CTABRJ: JMP CTABRT .ENDC .ENABL LSB .IF NE MMG$T .DRAST CT,6,CTABRJ .IFF WCSAV,R4 MOV CASAV,CA .IF NE MMG$T CLRB CTMVS .ENDC BR 1$ 4$: .ENDC ADD #200,R4 BCS RTSPC .IF NE MMG$T ADD # .DRAST CT,6,CTABRT .ENDC MOV R3,-(SP) MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV SP,SPSAV CTIN2: MOV #TACS,T5 TS2,Q.PAR .IFF ADD #200,CA .ENDC BR 1$ READU: ADDR LBLBUF,R0 MOV R0,CA READB: MOV #READ,R1 BR SOFT1 TSTBAK: TSTTB (T5) BPL 10$ INC TABC BGT 3$ MOV TACA,R0 .IF NE MMG$T MOV #TADB,R3 .ENDC INC TATC .IF NE MMG$T BLE CDO BLOCK BNE RTSPC JSR R0,SOFT .WORD LSTFIL FSP: MOV #NXTBLK,R1 BR SOFT1 WSENT: JSR R0,SOFT .WORD WGAP JSXF ADDR CXFER,R0 BR CMRW CXFER: .WORD 0 RAWFLG: .BYTE 0 CTURW: .BYTE 0 CDOXF: TSTB CTURW BEQ CMRW TSTR PC,NAMOFF CLRB (R1) JSR PC,LABEL BSP: MOV #LSTBLK,R1 BR SOFT1 SOFT: MOV (R0)+,R1 MOV R0,@SP SOFT1: JSR R4,SAVSB CTMVS BNE CMRW TSTB RAWFLG BNE CMRW MOV R4,-(SP) ADDR TACA-4,R4 CMP CURFUN,#READ BNE XCWRIT XCREAD: MOVB (R3TK .ENABL LSB XCT: BIC #177770,R1 MOV R1,CURFUN TSTB F.MACRO BNE 2$ BITB UBITS,F.HW BNE 1$ CMP R1,#REWI),-(SP) JSR PC,@$PTBYT BR 5$ XCWRIT: JSR PC,@$GTBYT MOVB (SP)+,(R3) 5$: MOV (SP)+,R4 BR 6$ CMRW: CMP CURFUN,#READ B BLOCK BEQ 1$ ADD #2,CA .IF NE MMG$T JSR PC,GETFLN CLRB CTURW .ENDC JSR PC,SEEK BR DUNDEL BR DUNDEL 1$: ND BEQ 3$ JMP CTILLF 3$: BISB UBITS,F.HW 1$: MOV R1,-(SP) JSR PC,DUNDEL MOV (SP)+,R1 2$: MOV #3,(PC)+ RETRY: .WORDJSR PC,TSTBAK 2$: MOV #-200,WC MOV R4,TC JSR PC,READB BIT #FGAP,(T5) BEQ 4$ JSR PC,BSP MOV TACA,R2 CMP R4,CTTQ 0 ASL R1 RERE: CLRB BIP .IF NE MMG$T MOV CA,TACA MOV WC,TABC MOV TC,TATC MOV Q.PAR,TAQP MOV #512.,TAQPCT .IFCT BEQ SWEOF .IF NE MMG$T 3$: MOV R4,-(SP) ADDR TACA-4,R4 CLR -(SP) JSR PC,@$PTBYT MOV (SP)+,R4 .IFF 3$: CLRB (R2F MOV CA,(PC)+ TACA: .WORD 0 MOV WC,(PC)+ TABC: .WORD 0 MOV TC,(PC)+ TATC: .WORD 0 .ENDC SETFUN: MOVB R1,(T5) J5 NE 1$ MOVB (R3),(R0) BR 2$ 1$: MOVB (R0),(R3) 2$: INC TACA 6$: DEC TAQPCT BNE 4$ ADD #8.,TAQP SUB 4 INC R0 4$: DEC (SP) BNE 3$ BIS (SP)+,R4 BEQ 5$ CMP R4,#32 BLE 6$ SUB #36,R4 BCC 7$ 5$: MOV #-40,R4 #8.*32.*2,TACA MOV #512.,TAQPCT .IFF BLE 1$ ADDR 2$,R0 1$: MOV #TADB,R3 MOV #111013,2$ CMP CURFUN,#READ BNE 2$ 6$: ADD #20,R4 7$: ADD #60,R4 MOVB R4,-(R1) ASL R3 BCC 2$ BNE 1$ TST BLOCK BGT CHKHDR NEG BLOCK SEEKC: J MOV (PC)+,(PC) MOVB (R3),(R0) 2$: HALT INC TACA .ENDC BR 4$ 3$: BIS #ILBS,(T5) 4$: JSR R3,RESREG RTS PC 10$: BSR R0,SOFT .WORD REWIND CHKHDR: MOV #-32.,WC MOV #-32.,TC JSR PC,READU .IF DF MUL JSR PC,EOTCHK BNE SEEKC .ENDC IC #INTEN,(T5) BIT #READY,(T5) BEQ ERRHW TST (T5) BMI 20$ 11$: TSTB BIP BNE 12$ TSTB F.MACRO BEQ RESP JSR JSR PC,NAMOFF MOV CA,R0 TSTB (R0) BEQ 12$ DEC BLOCK BEQ 11$ MOV #9.,R3 10$: BICB #200,(R0) CMPB (R0)+,(R1 R4,RESSTK RTS PC 12$: MOVB CURFUN,R1 .IF NE MMG$T JMP RERE .IFF BR RERE .ENDC 20$: MOV (T5),R3 BIT #BOTEOT,R3 )+ BNE 20$ DEC R3 BGT 10$ .IF DF MUL CMPB 3(R0),(R1) BNE 20$ .ENDC 11$: ADD #2,(SP) 12$: JMP BSP 20$: JSR R0 BNE 22$ BIT #CRC+WRL+TIME,R3;IF NOT BOTEOT,OFF,OR FILE GAP BNE 21$ 22$: BITB UBITS,F.HW BNE 21$ BIT #OFF+WRL,(T5) ,SOFT .WORD NXTFIL BR CHKHDR .DSABL LSB .IF DF MUL .ENABL LSB EOTCHK: JSR PC,VOLCHK BEQ 1$ .IF NE MMG$T INCB BEQ 11$ TST (PC)+ IGNOFF: .WORD 0 BNE 11$ 21$: TSTB BIP BNE ERRHW DEC RETRY BLE ERRHW BIT #OFF+WRL+BOTEOT+ CTMVS .ENDC CMP WC,#-32. BEQ 2$ JSR PC,NAMOFF ADD #11,R1 INCB (R1) MOV R4,(PC)+ WCSAV: .WORD 0 MOV CA,(PC)FGAP,R3 BNE ERRHW MOV R3,(PC)+ CURFUN: .BYTE 0 BIP: .BYTE 0 MOV #LSTBLK*FUNC,R1 JMP SETFUN CTABRT: BIC #INTEN,@#T+ CASAV: .WORD 0 2$: TST SP 1$: RTS PC .DSABL LSB .ENABL LSB VOLCHK: BIT #BOTEOT,(T5) BEQ 3$ DEC TABC BEQ 3$ ACS BR CTHOME .DSABL LSB .ENABL LSB ERRHW: BIS #HWERR,@CSWPTR TSTB F.MACRO BEQ RESP BITB #FILNFD+ILLFUN,@SWWPTR CLR (PC)+ OFLAG: .WORD 0 JSR PC,CTSYNCH BR 10$ 1$: INC IGNOFF JSR R0,SOFT .WORD NXTBLK BIT #OFF,(T5) BEQ  BNE 2$ BISB #FILNFD,@SWWPTR CLEAN: BITB UBITS,F.WRITE BNE 1$ BITB UBITS,ENTFLG BEQ RESP 1$: JSR R0,SOFT .WORD 2$ MOV #100001,OFLAG JSR PC,CTSYNCH RTS PC CLR IGNOFF BR 1$ 2$: CLR IGNOFF TST OFLAG BEQ 4$ DEC OFLAG LSTFIL JSR PC,WSENT 2$: JSR PC,DUNDEL RESP: CLR FIN MOV SPSAV,SP JSR R3,RESREG .IF NDF DEBUG CTHOME: .DRFIN CT .IFF BVC 1$ 3$: RTS PC 4$: BIT #BOTEOT+OFF,(T5) BNE 1$ JSR R0,SOFT .WORD REWIND JMP SWEOF 10$: ADDR UNO,R0 MOVB U JMP QMAN .ENDC .DSABL LSB .ENABL LSB SEEK: MOV CA,R2 ADD #6,R2 JSR PC,NAMOFF ADD #11,R1 CLRB (R1) MOV #^NIT,@R0 BISB #'0,@R0 TST -(R0) .PRINT RTS PC .NLIST BEX MSG: .ASCII "CT" UNO: .ASCIZ "0: PUSH REWIND OR MOUNT NEWB<0010010010000000>,R3 1$: MOV -(R2),R0 2$: CLR R4 MOV #16.,-(SP) 3$: ASL R0 ROL R4 CMP R4,#50 BLO 4$ SUB #50,R VOLUME" .LIST BEX .EVEN .DSABL LSB .ENDC LABEL: JSR PC,NAMOFF ADDR FILNAM,R2 MOV #9.,R4 1$: MOVB (R1)+,(R2)+ DE6  0 .IF DF NEWVOL F.NEWVOL:.BYTE 377 .ENDC .EVEN FILNAM: .ASCII / / FILTYP: .BYTE 0 LENGTH: .BYTE 0 .BYTE 20FORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUI0 SEQNO: .BYTE 0 LEVEL: .BYTE 1 DATE: .ASCII / / GENNO: .BYTE 0 ATTR: .BYTE 0 UNUSED: .BYTE 0,0,0,0,0,0,0,0,0,0 PMENT CORPORATION. ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SU .EVEN LBLBUF: .BLKB 32. .IF DF RCHECK .BLKB 128.-32. .ENDC .IF NE MMG$T FILENM: .WORD 0,0,0 .ENDC SNAME: .BLKB PPLIED BY DEC. .ENABL LC .IIF NDF MT$VEC, MT$VEC == 224 .IIF NDF MT$CSR, MT$CSR == 172520 MTS = MT$CSR ILC = 100C R4 BGT 1$ ADD #3,R2 MOVB (R1)+,(R2)+ TSTB (R2)+ .DATE MOV R0,R1 ASL R1 ASL R1 ASL R1 BIC #160377,R1 12*2 SYNBLK: .WORD 0,0,0,0,0,0,0 STAK: .BLKW 12 .IIF NDF DEBUG, .NLIST .IF DF DEBUG .=.+100 .ENDC .IIF NDF DEBUG, .LI JSR PC,ASC MOV R0,R1 BNE 2$ CLRB -2(R2) 2$: ASR R1 ASR R1 JSR PC,ASC MOV R0,R1 BIC #177740,R1 ADD #72.,ST .IF DF INIT .END TEST .ENDC .DREND CT .END R1 SWAB R1 JSR PC,ASC ADD #FILNAM-GENNO,R2;POINT R2 TO START OF HEADER DELAB: MOV R2,CA MOV #-32.,WC JMP WRTBLK ASC: CLRB R1 1$: ADD #173001,R1 BPL 1$ ADD #"00+<10.*400-1>,R1 MOV R1,(R2)+ RTS PC SAVSTK: JSR R2,@PC ADD #STAK-.,R2 MOV R2,STKPTR 1$: MOV (SP)+,(R2)+ CMP SPSAV,SP BHI 1$ MOV R2,(PC)+ SPSAVE: 0 JMP @R4 .ENABL LSB RESSTK: TST (SP)+ MOV SPSAVE,R2 1$: MOV -(R2),-(SP) CMP (PC)+,R2 STKPTR: 0 BNE 1$ MOV (SP)+,R2 RTS R4 .DSABL LSB RESREG:.TITLE TM11 V01.01 HARDWARE HANDLER .IDENT /V01.01/ ; RT-11 HANDLER FOR THE TM11 MAGNETIC TAPE DRIVE ; ; COPYRIGHT (C) 1978  TST (SP)+ MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 MOV @#MONLOW,R5 RTS R3 NAMOFF: MOV UNIT,R3 ADDR SNAME-12,R1 1$ ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A ; SIN: ADD #12,R1 DEC R3 BGE 1$ RTS PC MACROS=.-2 10$: .WORD $CLOSE-. .WORD $DELETE-. .WORD $LOOKUP-. .WORD $ENTEGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- ; SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER R-. .WORD $READ-. .WORD $WRITE-. .IF DF NEWVOL .WORD $NEWVOL-. .ENDC MAXFUN = <. - 10$> / 2 FLGTAB: F.HW: .BYTE 0 F; COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE ; TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ON.MACRO:.BYTE 0 F.CLOSE:.BYTE 0 F.DELETE:.BYTE 377 F.LOOKUP:.BYTE 377 F.ENTER:.BYTE 377 F.READ: .BYTE 0 F.WRITE:.BYTEE WHO ; AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; THE IN7  DRIVEGONE = 1 POSERR = 2 MEMERR = 3 WRITELOK= 4 RECERR = 5 SMLREC = 6 NOQUAL = 0 EOFCODE = 1 EOTCODE = 2 EOF MTCQE,R5 CMP (R5)+,(R5)+ JSR PC,@$MPPTR MOV (SP)+,OLDBA MOV (SP)+,EXTADR .ENDC .IF NDF FILES MOV MTCQE,R3 .IFF JEOT = 3 BOTCODE = 4 Q.CSW = -2 Q.BLK = 0 Q.FUNC = 2 Q.JNUN = 3 Q.BUF = 4 Q.WCNT = 6 MONLOW = 54 QCOMP = 270 MP FSMDIS $MT:: .ENDC TST (R3)+ MOV @R3,R0 MOVB R0,R4 BIC #^C,R0 MOV R0,R1 SWAB R1 BIS (PC)+,RDUMMY = 0 JOBNUM = 34000 MTDSIZE = 0 MTSTS = 11+012000 .ASECT .=400 NUMARG = 100 NOARG = 200 .WORD ^C 0 DENSE: .WORD D9$800 MOV R0,@#MTC CLR R2 SEC 1$: ROL R2 DEC R1 BPL 1$ CLR NFSREAD MOV PC,R0 ADD #INUSE-.RAD50 /DENSE/ .BYTE /2 .BYTE NUMARG .WORD ^C .RAD50 /DUMP/ .BYTE /2 .BYTE NOARG .WORD P.,R0 CMP #LOOKUP,R4 BNE 7$ .FOO = 0 .IF NE MMG$T .IF NDF FILES .FOO = 1 MOV MTCQE,R4 JSR PC,@$GTBYT TSTB (SP)+ EVN .RAD50 /ODDPAR/ .BYTE /2 .BYTE NOARG .WORD ^C .RAD50 /DEFALT/ .BYTE /2 .BYTE NUM BNE 5$ JSR PC,@$GTBYT TSTB (SP)+ BNE 5$ .ENDC .ENDC .IF EQ .FOO TST @2(R3) BNE 11$ .ENDC BITB R2,@R0 ARG .WORD 0 DENS: CLR R3 CMP #200.,R0 BEQ DENS1 CMP #556.,R0 BEQ 1$ CMP #807.,R0 BEQ 2$ CMP #809.,R0 BEQ 3BEQ 3$ .IF NDF FILES MOV #DEVINUSE,R0 2$: MOV @#MONLOW,R1 MOV R0,SPUSR(R1) .IFF MOV @#MONLOW,R1 MOV #DEVINUSE,SPUSR(000 EOF = 40000 CRE = 20000 PAE = 10000 BGL = 4000 EOT = 2000 RLE = 1000 BTEOPI = 400 NXM = 200 SELR = 100 B$ CMP #800.,R0 BEQ 3$ SEC RTS PC 1$: BIS #D7$556,R3 BR DENS1 2$: BIS #D7$800,R3 BR DENS1 3$: BIS #D9$800,R3 DEOT = 40 CH7 = 20 SDWN = 10 WRL = 4 RWS = 2 TUR = 1 MTC = MTS+2 ERR = 100000 D7$200 = 0 D7$556 = 20000 D7$80NS1: BIC #D9$800,DENSE BIS R3,DENSE DENS3: CLC RTS PC DMP: CLR R3 BR 1$ BR DFLT1 1$: BIS #D7$CORE,R3 BR DENS1 PA0 = 40000 D7$CORE = 60000 D9$800 = 60000 PWRCLR = 10000 PEVN = 4000 UNIT = 3400 CURDY = 200 INTENB = 100 FOFF = RITY: BR ODD NOP BIS R3,DENSE BR DENS3 ODD: BIC R3,DENSE BR DENS3 .ENABL LSB DFLT: CMP #7,R0 BEQ 7$ CMP #9.,R00 FREAD = 2 FWRITE = 4 FWRTTM = 6 FSPFOR = 10 FSPBAK = 12 FWRTEXT = 14 FREWIND = 16 GO = 1 MTBRC = MTS+4 MTCM BEQ 9$ DFLT1: SEC RTS PC 9$: MOV #D9$800,DENSE BR DENS3 7$: MOV #D7$CORE,DENSE BR DENS3 .DSABL LSB .MCALL .FOA = MTS+6 MTD = MTS+8. MTRD = MTS+10. GPSDN = 10000 PR5 = 5 PR7 = 7 RENAME = 5 ENTER = 4 LOOKUP = 3 DELETERK,.DREND,.DRBEG,.DRAST,.DRFIN .IIF NDF TIM$IT, TIM$IT=0 .IIF NDF MMG$T, MMG$T=0 .IIF NDF ERL$G, ERL$G=0 .IIF NE MMG$T, . = 2 CLOSE = 1 REDWRT = 0 WRTEOF = -1 FWDSPC = -2 BKSPC = -3 WRTXTD = -4 REWIND = -5 OFFLINE = -6 WRITEPHY= -7MCALL .SYNCH .IF DF FILES .GLOBL FSMDIS,FSMABT,FSMDON,FSMERR,RESTOR,CODE,DVTBL .GLOBL FSMSIZ .GLOBL MTCQE .IF NE MMG$T  READF = -8. FN = 8. ILLARG = 5 DEVINUSE= 2 CSWHERR = 1 CSWEOF = 20000 SPUSR = 272 ERRGAPS = -101. NOQUAL = 0  .GLOBL OLDBA,XBUMP,EXTADR,JOBNM,SYNBLK,TEMP,SINK,ERBSAV .ENDC .ENDC .DRBEG MT,MT$VEC,MTDSIZE,MTSTS MT: .IF NE MMG$T MOV8 R4 BLOS 13$ TST R4 BNE 11$ MOV R3,R1 CLR -2(R1) CMP (R1)+,(R1)+ MOV #READF,R4 TST @R1 BPL 9$ NEG @R1 EWD-TABLEE .BYTE ERWRTX-TABLEE .BYTE ERBKSP-TABLEE .BYTE ERFWSP-TABLEE .BYTE ERWRTM-TABLEE .ENABL LSB ERWRIT: ERW INC R4 BR 10$ 9$: COM NFSREAD 10$: .IF DF FILES MOV R4,CODE .ENDC BR 13$ 11$: TST -(R3) BIS #CSWHERR,@-(R3) RTX: BIT #WRL,@#MTS BEQ 1$ ERWRI1: MOV #WRITELOK,R4 BR ABORT 1$: JSR PC,ABOCHK MOV R5,ERRSUM BNE CONT BIT #EOT,R4  12$: .IF DF FILES JSR PC,RESTOR .ENDC JMP MTDONE 13$: ADD #FUNTAB-TABLE,R4 MOV R4,(R0)+ .IF NE MMG$T MOV 4(R3),R1  BNE NOERR BR NQUAL .DSABL LSB ERWRTM: BIT #WRL,@#MTS BNE ERWRI1 ERBKSP: ERFWSP: JSR PC,ABOCHK BIT #EOF+EOT,R4 MOV R1,4(R0) .IFF TST (R3)+ MOV (R3)+,(R0)+ MOV @R3,@R0 MOV @R3,R1 .ENDC NEG R1 JSR PC,DISPAT TABLE: .BYTE R BNE NOERR BR NQUAL ERREAD: JSR PC,ABOCHK MOV R5,ERRSUM BNE CONT BIT #RLE+EOT+EOF,R4 BNE NOERR BR NQUAL ABEDEF-TABLE .BYTE RIGHT-TABLE .BYTE AWFLINE-TABLE .BYTE REWHINED-TABLE .BYTE RIGHTX-TABLE .BYTE BAKSPA-TABLE .BYTE FOOCHK: MOV @#MTS,R4 BIT #BTEOPI,R4 BEQ 1$ MOV #POSERR,R4 BR ABORT 1$: BIT #NXM,R4 BEQ 2$ MOV #MEMERR,R4 BR ABORSPA-TABLE .BYTE RIGHTM-TABLE FUNTAB: .BYTE FREAD+INTENB+GO .BYTE FWRITE+INTENB+GO .BYTE FOFF+INTENB+GO .BYTE FREWINDRT 2$: CLR R5 BIT #CRE+PAE+BGL,R4 BEQ 3$ COM R5 3$: RTS PC ERREWD: EROFFL: NQUAL: CLR R4 ABORT: MOV #PWRCLR,+INTENB+GO .BYTE FWRTEXT+INTENB+GO .BYTE FSPBAK+INTENB+GO .BYTE FSPFOR+INTENB+GO .BYTE FWRTTM+INTENB+GO REDEF: RIGHTX:@#MTC MOV #CSWHERR,-(SP) EXCEP: .IF DF FILES MOV (SP)+,R5 JMP FSMERR .IFF MOV MTCQE,R5 BIS (SP)+,@Q.CSW(R5) TST  RIGHT: .IF NE MMG$T MOV (R0)+,@#MTCMA BIS @R0,R5 .IFF MOV -(R3),@#MTCMA .ENDC ASL R1 FORSPA: BAKSPA: MOV R1,@@R5 BEQ MTDONE .IF NE MMG$T COM SINK MOV @R5,ERBSAV MOV R4,TEMP MOVB Q.JNUN(R5),R5 ASL R5 ASL R5 ASL R5 M#MTBRC AWFLINE: REWHINED: RIGHTM: MOVB R5,@#MTC .IF DF FILES JSR PC,RESTOR .ENDC RTS PC MTABRT: MOV #PWRCLR,@#MTC OV R5,JOBNM .IFF MOV R4,@(R5)+ .ENDC .IFTF MTDONE: .IFT JMP FSMDON $DONE:: .ENDC .IF NE MMG$T MOV PC,R4 ADD #MR1) .ENDC .IF DF FILES JSR PC,RESTOR JMP $DONE .IFF BR 12$ .ENDC 3$: CLR 4(R3) BISB R2,@R0 BIT #JOBNUM,@R3 .I.IF DF FILES MOV R0,-(SP) MOV DVTBL,R0 MOV #-1,(R0)+ MOV #-1,@R0 MOV (SP)+,R0 .ENDC CLRB INUSE TST R4 BNE 1$F DF FILES BEQ 12$ .IFF BEQ 4$ .IFTF BISB R2,1(R0) .IFT BR 12$ .IFF 4$: MOV -2(R3),R1 BEQ 6$ BGT 5$ INC R MOVB FGCHAN,INUSE 1$: .IF NE MMG$T JMP MTDONE .IFF BR MTDONE .ENDC .DRAST MT,PR5,MTABRT TST @#MTC BMI 1$ 1 BEQ 12$ 5$: BICB R2,(R0)+ BICB R2,@R0 MOV #ILLARG,R0 BR 2$ 6$: MOV #REWIND,R4 BR 8$ .ENDC 7$: CMP #CLOSE,R4  .IF NE MMG$T JMP NOERR .IFF BR NOERR .ENDC 1$: MOV @#MTS,R4 BPL 2$ BIT #SELR,R4 BNE 2$ MOV #DRIVEGONE,R4 B BNE 8$ BICB R2,(R0)+ BICB R2,@R0 BR 12$ 8$: TST (R0)+ MOV (PC)+,(R0)+ .BYTE -1,ERRGAPS TST (R0)+ CMP #READF,R ABORT 2$: MOV LASTCOM,R4 JSR PC,DISPAT TABLEE: .BYTE ERREAD-TABLEE .BYTE ERWRIT-TABLEE .BYTE EROFFL-TABLEE .BYTE ERR9 -.,R4 .SYNCH BR BADSYN MOV ERBSAV,R1 MOV R0,(R1)+ MOV ERRBL2,@R1 BADSYN: RTS PC .IFF .DRFIN MT .ENDC NOERR: CLER .BYTE DUMMY RITEX: RITE: TST ERRSUM BEQ NEXT1 INCB TAPELEN BEQ NQ2 BIT #EOT,@#MTS BEQ REEDF1 NQ2: JMPLR ERRSUM CONT: TSTB RECOVERY BPL RECOVR MOV @#MTS,R4 MOV LASTCOM,R5 TST ERRSUM BEQ NEXT0 CMP #FN+READF,R5 BN NQUAL REWHYN: MOV #PWRCLR,@#MTC JMP MTDONE .ENABL LSB REEDF: TST ERRSUM BEQ NEXT1 DECB BACK1 BEQ 1$ REEDF1E 1$ MOVB #5,BACK1 MOVB #8.,BACK5 BR 2$ 1$: MOV #FN+WRTXTD,R5 2$: MOVB R5,RECOVERY BR REEDF1 NEXT0: CMP #FN+REWIND,: MOV #-1,R5 BR 3$ 1$: MOVB #5,BACK1 DECB BACK5 BEQ NQ2 2$: MOV #-5,R5 3$: MOV R5,@#MTBRC BR BACH2 .DSABL LSB R5 BNE NEXT1 BIT #BOT,R4 BNE REWHYN MOVB R5,RECOVERY RTS PC NEXT1: CMP #FN+READF,LASTCOM BNE NEXT2 BIT #EOF,R FORE: MOV @#MTBRC,R5 BNE BACH1 FORE1: MOV #MTCMA,R5 MOV OLDBA,@R5 MOV OLDWC,-(R5) ASL @R5 MOV #FN+READF,R4 MO4 BNE NEXT3 BIT #RLE,R4 BEQ 1$ MOV #RECERR,R4 BR ABORT 1$: MOV @#MTBRC,R5 BEQ NEXT2 ASR R5 NEG R5 .IF NVB FUNTAB+7,R5 BR BACH3 .ENABL LSB BACH: CMPB #FN+READF,RECOVERY BEQ 1$ MOV OLDWC,R4 ASL R4 NEG R4 MOV R4,@E MMG$T MOV R5,ERRBL2 .IFF .IF DF FILES MOV @MTCQ,R4 .IFF MOV @MTCQE,R4 .ENDC BEQ 2$ MOV R5,2(R4) .ENDC 2$: MOV#MTBRC MOV OLDBA,@#MTCMA MOV #FN+WRTXTD,R4 MOVB FUNTAB+4,R5 BR 4$ 1$: MOV @#MTBRC,R5 BEQ 6$ BIT #BOT,@#MTS BEQ  #SMLREC,R4 .IF NE MMG$T JMP ABORT .IFF BR ABORT .ENDC NEXT2: CMP #FN+FWDSPC,LASTCOM BEQ 1$ CMP #FN+BKSPC,LASTCOM 5$ 2$: ADD #4,R5 3$: NEG R5 BACH1: MOV R5,@#MTBRC MOV #FN+FWDSPC,R4 MOVB FUNTAB+6,R5 BACH3: 4$: MOV R4,LASTCOM .IIF BNE NEXT3 1$: MOV @#MTBRC,R4 BEQ NEXT3 .IF NE MMG$T MOV R4,ERRBL2 .IFF NEG R4 .IF DF FILES MOV @MTCQ,R5 .IFF  NE MMG$T, BIS EXTADR,R5 MOVB R5,@#MTC RTS PC BACH2: 5$: MOV #FN+BKSPC,R4 MOVB FUNTAB+5,R5 BR 4$ 6$: CMPB #5,BACK1 MOV @MTCQE,R5 .ENDC BEQ 2$ MOV R4,2(R5) .ENDC 2$: .ENABL LSB NEXT3: MOV @#MTS,R5 CLR R4 BIT #BOT,R5 BEQ 1$ BEQ 2$ BR FORE1 .DSABL LSB .IF NE MMG$T XBUMP: ADD #512.,OLDBA BCC 1$ ADD #20,EXTADR 1$: RTS PC .ENDC DISPAT: CMP #FN+REWIND,LASTCOM MTD1: BEQ MTDONE CMP #FN+OFFLINE,LASTCOM BEQ MTDONE CMP (R4)+,(R4)+ BR 4$ 1$: BIT #EOF,R5  ADD @SP,R4 MOVB FUNTAB-TABLE(R4),R5 MOVB @R4,R4 ADD (SP)+,R4 JMP @R4 INUSE: .BYTE 0 FGCHAN: .BYTE 0 RECOVE: .B BEQ 2$ CMP #FN+WRTEOF,LASTCOM BEQ 2$ INC R4 2$: BIT #EOT,R5 BEQ 3$ TST NFSREAD BNE 3$ CMPB (R4)+,(R4)+ YTE -1 TAPELE: .BYTE ERRGAPS BACK5: .BYTE 0 BACK1: .BYTE 0 LASTCO: .WORD DUMMY OLDBA: .WORD DUMMY .IIF NE MMG$T, EXTADR: .3$: TST R4 BEQ MTD1 4$: MOV #CSWEOF,-(SP) JMP EXCEP .DSABL LSB RECOVR: MOV LASTCOM,R4 JSR PC,DISPAT TABLER: .BYTWORD DUMMY OLDWC: .WORD DUMMY ERRSUM: .WORD DUMMY NFSREA: .WORD DUMMY .EVEN .IF NE MMG$T SYNBLK: .WORD DUMMY JOBTCQE-.,R4 MOV @#MONLOW,R5 TST SINK BNE 1$ JMP @QCOMP(R5) 1$: CLR SINK JSR PC,@QCOMP(R5) MOV PC,R4 ADD #SYNBLKE REEDF-TABLER .BYTE RITE-TABLER .BYTE DUMMY .BYTE REWHYN-TABLER .BYTE RITEX-TABLER .BYTE BACH-TABLER .BYTE FORE-TAB:  ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL ; EQUIPMENT CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILIC(R5),#DLSSIZ BNE 2$ CALL DLGSIZ JMP 22$ 2$: CALL DLREPL TST DLPQUE BNE 3$ DLTRAN: CALL DLBMAP 3$: MOV (R5)+TY FOR THE USE OR RELIABILITY OF ; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. .MCALL .DRBEG, .DREND, .FORK,R3 CLR R2 MOV #20.,R4 4$: CMP R3,R4 BLT 5$ ADD #100,R2 SUB R4,R3 BGT 4$ 5$: ASL R3 BIS R3,R2 ASR R3 NM: .WORD DUMMY .WORD DUMMY,DUMMY TEMP: .WORD DUMMY .WORD -1,0 SINK: .WORD DUMMY ERBSAV: .WORD DUMMY , .DRAST, .DRFIN .MACRO MOVA ADDR,REG MOV PC,REG ADD ADDR-.,REG .ENDM MOVA .IIF NDF MMG$T, MMG$T=0 .IIF NDF ERL$G, E ERRBL2: .WORD DUMMY .ENDC .IF DF FILES MTCQ:: .WORD DUMMY .ENDC .IF NDF FILES .DREND MT .IFF .GLOBL $FKPTR,$INPTR RL$G=0 .IIF NDF TIM$IT, TIM$IT=0 .IIF NDF DL$UN, DL$UN==2 RKSYS== 0 RFSYS== 0 DTSYS== 0 DSSYS== 0 DPSYS== 0 DXSYS== 0 .IIF NE MMG$T, .GLOBL $RLPTR,$MPPTR,$GTBYT,$PTBYT,$PTWRD .IIF NE ERL$G, .GLOBL $ELPTR .IIF NE TIM$IT, .GLOBL $TIMIT .ENDC SIDYSYS== 0 DMSYS== 0 DLSSIZ= 373 DLSREP= 374 DLSWRT= 376 DLSRED= 377 DLIDN= 5 DLIDS= !377 DLRCNT= 1ZE=. SIZED=SIZE-MTSTRT/2 .END 0 DLREG= 7 .IIF NDF DL$CSR, DL$CSR == 174400 .IIF NDF DL$VEC, DL$VEC == 330 DLNBAD= 10. DLDSIZ= <256.*20.*2>-20.-DLNBAD DLDSI2= <512.*20.*2>-20.-DLNBAD DLSTS= 102000!DLIDN DLWPT= 256.*20. DLTSIZ= DLNBAD*4.+2 RLCS= 0 RLBA= 2 RLDA= 4 RLMP= 6 DE= 040000 NXM= 020000 DLT= 010000 HNF= 010000 DCK= 004000 HCRC= 004000 OPI= 002000 .TITLE DL - RL11/RL01 DISK HANDLER .IDENT /V01.05/ ; COPYRIGHT (C) 1978 ; ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; WRCHK= 2 GSTS= 4 SEEK= 6 RDH= 10 WRITE= 12 READ= 14 IE= 100 CRDY= 200 DRDY= 1 MRK= 1 STS= 2  ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A ; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLUSN= 4 RST= 10 HS= 20 REV= 200!MRK WDE= 100000 CHE= 040000 WLS= 020000 SKTO= 010000 SPD= 004000 WGE= 0SION ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANY OTHER ; COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE MADE AVAI02000 VC= 001000 DSE= 000400 DT= 000200 HSS= 000100 CO= 000040 HH= 000020 BH= 000010 SLM= 000005 Q.BLLABLE ; TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE ; WHO AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHKN= 0 Q.FUNC= 2 Q.UNIT= 3 Q.BUFF= 4 Q.WCNT= 6 Q.PAR= 12 .ENABL LSB .DRBEG DL,DL$VEC,DLDSIZ,DLSTS DLEPT: IP OF ; THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DIGITAL. ; ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT MOV DLCQE,R5 MOVB Q.UNIT(R5),R0 BIC #^C<3>,R0 CMP R0,#DL$UN BLT 1$ JMP 19$ 1$: SWAB R0 MOV R0,DLCS CMPB Q.FUN; V BNE 13$ MOV (R4),DLERR BMI 14$ SUB DLWC,DLWCT BNE 11$ JMP 20$ 11$: MOV DLWCT,DLWC CMP DLWCT,#DLWPT BLOS P)+,(SP)+ INCB DLREV JMP DLERRH 2$: TST (SP)+ MOV RLMP(R2),R1 3$: .IF NE ERL$G CLR DLRBLK+14 .IFTF BIC #77,R0 12$ MOV #DLWPT,DLWC 12$: MOV (R4),DLCS BIC #^C<1460>,DLCS MOV RLBA(R4),DLBA MOV DLDA,R0 BIC #77,R0 ADD #100,R0  BIC #77,R1 CMP R0,R1 BEQ 5$ MOV R0,R3 BIC #^C<100>,R3 ASR R3 ASR R3 BIC #100,R0 BIC #100,R1 SUB R0,R MOV R0,DLDA 13$: .FORK DLFBLK MOV R4,R2 BR 9$ 14$: .FORK DLFBLK DLERRH: .IF NE ERL$G MOV #DL$CSR,R2 MOVA #1 BCC 4$ NEG R1 BIS #SN,R1 4$: INC R1 BIS R3,R1 MOV R1,RLDA(R2) .IFT MOV R1,DLRBLK+14 .ENDC 5$: RETURN DLDLRBLK,R0 MOV R0,-(SP) MOV (R2)+,(R0)+ MOV (R2)+,(R0)+ MOV (R2)+,(R0)+ MOV (R2)+,(R0)+ MOV #DL$CSR,R2 CALL DLGST RST: MOV #RST!STS!MRK,RLDA(R2) CALL 6$ DLGST: MOV #STS!MRK,RLDA(R2) 6$: MOV #GSTS,R1 DLXCT: BIS (PC)+,R1 DLCS: .WORD 0  MOV RLMP(R2),(R0) MOV #DLRCNT*256.!DLREG,R3 MOV DLRTY,R4 BIS #,R4 MOV (SP)+,R2 MOV (R0)+,-(SP) COM (SP) MOV R1,(R2) 7$: TSTB (R2) BPL 7$ TST (R2) RETURN .DSABL LSB .ENABL LSB DLGSIZ: MOV #DLDSIZ,R0 MOV #DL$CSR, SUB R3,R4 SWAB R4 MOV R2,(PC)+ DLDA: .WORD 0 .IF NE ERL$G CLR DLRBLK+12 CLR DLRBLK+14 .ENDC CLR (PC)+ DLRTY BIT #WGE!WLS,(SP)+ BEQ 15$ MOV DLWC,(R0) CALL @$ELPTR .ENDC 15$: MOV #DL$CSR,R2 CALL DLRST TSTB DLREV BEQ : .WORD 0 MOV #DL$CSR,R2 CALL DLRST MOV RLMP(R2),R1 BIC #WLS!HSS!DT,R1 BIT #DRDY,(R2) BEQ DLERRH CMP #HH!BH!SLM16$ MOV #REV,RLDA(R2) MOV #SEEK,R1 CALL DLXCT BMI 18$ MOV #-1,@DLCC MOV (R2),R1 BIC #377,R1 BIS #IE!RDH,R1 ,R1 BNE DLERRH MOV #DLRCNT,DLRTY TST (R5)+ .IF EQ MMG$T MOV (R5)+,DLBA .IFF TSTB DLPQUE BEQ 6$ MOV (R5)+,DLB MOV R1,(R2) RETURN 16$: MOV (PC)+,R1 DLERR: .WORD 0 BIT #DRDY,R1 BEQ 18$ BIT #NXM,R1 BNE 18$ BIT #DE,R1 A BR 7$ 6$: CALL @$MPPTR MOV (SP)+,DLBA BIS (SP)+,DLCS .ENDC 7$: MOV #READ!IE,R1 MOV (R5)+,R0 BPL 8$ MOV #WRIT BEQ 17$ CALL DLGST BIT #WGE,RLMP(R2) BEQ 18$ BIT #WLS,RLMP(R2) BNE 18$ 17$: DEC DLRTY BLE 18$ JMP 9$ 18E!IE,R1 NEG R0 8$: MOV R0,DLWC MOV R0,(PC)+ DLWCT: .WORD 0 MOV R1,DLFNC CMP R0,R4 BLOS 9$ MOV R4,DLWC 9$: C$: TST DLPQUE BEQ 19$ MOV DLSCQE,DLCQE 19$: MOV DLCQE,R5 BIS #1,@-(R5) BR 22$ 20$: TST DLPQUE BEQ 21$ MOV DLR (PC)+ DLREV: .WORD 0 MOV DLDA,R0 CALL DLDIFF BEQ 10$ MOV #SEEK,R1 CALL DLXCT BMI 14$ MOV DLDA,@DLCC 10LSCQE,R5 MOV R5,DLCQE CMP DLPQUE,#1 BEQ 21$ TST Q.WCNT(R5) BEQ 21$ CLR DLPQUE .FORK DLFBLK JMP DLTRAN 21$:$: ADD #RLMP,R2 MOV (PC)+,R1 DLWC: .WORD 0 NEG R1 MOV R1,(R2) MOV DLDA,-(R2) MOV (PC)+,-(R2) DLBA: .WORD 0 MOV .IF NE ERL$G .FORK DLFBLK MOV #DLIDS,R4 CALL @$ELPTR .ENDC 22$: .DRFIN DL .DSABL LSB .ENABL LSB DLDIFF: MOV (PC)+,R1 DLFNC: .WORD 0 BIS DLCS,R1 MOV R1,-(R2) RETURN .DRAST DL,5 MOV DLCQE,R5 MOV #DL$CSR,R4 TSTB DLRE @DLCC,R1 CMP #-1,R1 BNE 3$ MOV #DLRCNT*2,-(SP) 1$: MOV #RDH,R1 CALL DLXCT BPL 2$ DEC (SP) BGT 1$ CMP (S< R2 ASR R2 MOV #1,R1 CALL DLSQUE MOV #-1,(R4) 5$: RETURN .DSABL LSB .ENABL LSB DLBMAP: CMPB Q.FUNC(R5),#DLSWR.TITLE DY V03.01 .IDENT /V03.01/ ; RT-11 RX02 DISK HANDLER ; ; COPYRIGHT (C) 1978 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD,T BLO 1$ BHI 9$ NEG Q.WCNT(R5) BR 9$ 1$: MOV DLBTAB,R0 2$: TST (R0) BEQ 9$ CMP (R0),(R5) BHIS 3$ ADD #4, MASSACHUSSETTS 01754 ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ; ON A SINGLE COMPUTER SYSTEM AND MAY BE CR0 MOV R0,DLBTAB BR 2$ 3$: MOV Q.WCNT(R5),R1 BGE 4$ NEG R1 4$: MOV R1,R2 ADD #377,R1 BIC #377,R1 SWAB R1 OPIED ONLY WITH ; THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, ; OR ANY OTHER COPIES THEREOF, MAY NOT BE PROVID ADD (R5),R1 CMP (R0),R1 BHIS 9$ CMP (R0),(R5) BNE 6$ MOV 2(R0),R1 CMP R2,#256. BLOS 5$ MOV #256.,R2 5$:ED OR OTHERWISE MADE ; AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ; ONE WHO AGREES TO THESE LICENSE TE MOV #1,R3 BR 7$ 6$: MOV (R5),R1 MOV (R0),R2 SUB (R5),R2 MOV R2,R3 SWAB R2 7$: MOV Q.BUFF(R5),DLBADD ADD R3RMS. TITLE TO AND OWNERSHIP OF THE ; SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJ,(R5) .IF EQ MMG$T ADD R2,Q.BUFF(R5) ADD R2,Q.BUFF(R5) .IFF MOV Q.PAR(R5),DLBPAR ASL R3 ASL R3 ASL R3 ADD R3ECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQUIPMENT CORPORATION. ; ; DEC ASSUM,Q.PAR(R5) .ENDC TST Q.WCNT(R5) BGE 8$ NEG R2 8$: SUB R2,Q.WCNT(R5) CALL DLSQUE INCB DLPQUE+1 9$: RETURN .DSABES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. .MCALL .DRBEG,L LSB DLSQUE: MOVA #DLBWCT,R0 MOV R2,(R0) TST -(R0) MOVB 3(R5),-(R0) TSTB -(R0) MOV R1,-(R0) MOV -2(R5),-2(R0.FORK,.DREND,.DRAST,.DRFIN .IIF NDF DY$VEC,DY$VEC == 264 .IIF NDF DY$CSR,DY$CSR == 177170 .IIF NDF DY$CS2, DY$CS2 == 177150 R2 CALL DLRST BIT #DT,RLMP(R2) BEQ 1$ MOV #DLDSI2,R0 1$: .IF NE MMG$T MOV R5,R4 MOV R0,-(SP) CALL @$PTWRD .) MOV R5,(PC)+ DLSCQE: .WORD 0 MOV R0,R5 MOV R5,DLCQE RETURN .WORD -1 .WORD -1 .BYTE 0 .BYTE -1 DLBADD: IFF MOV R0,@Q.BUFF(R5) .ENDC RETURN .DSABL LSB .ENABL LSB DLREPL: CLR (PC)+ DLPQUE: .BYTE 0 .BYTE 0 MOVA #D.WORD -1 DLBWCT: .WORD -1 .IF NE MMG$T .WORD 0 DLBPAR: .WORD -1 .WORD 0,0 .ENDC DLBBUF: .REPT DL$UN .WORD -1 LBBUF,R1 MOVB DLCS+1,R2 1$: BEQ 2$ ADD #DLTSIZ,R1 DEC R2 BR 1$ 2$: MOV R1,(PC)+ DLBTAB: .WORD 0 MOV R1,DLBADD  .BLKB DLTSIZ-2 .ENDR DLCCYL: .REPT DL$UN .WORD -1 .ENDR DLFBLK: .WORD 0,0,0,0 .IF NE ERL$G DLRBLK: .BLKW DLREG . MOVA #DLCCYL,R3 MOVB DLCS+1,R4 ASL R4 ADD R3,R4 MOV R4,(PC)+ DLCC: .WORD 0 CMPB Q.FUNC(R5),#DLSREP BEQ 4$ TSENDC .DREND DL .END T (R1) BMI 3$ MOV #DL$CSR,R2 CALL DLGST BIT #VC,RLMP(R2) BEQ 5$ 3$: INCB DLPQUE 4$: INCB DLPQUE MOV #DLTSIZ,= SYS==0 DXSYS==0 DLSYS==0 DYDSIZ==756 DYSTS== 102006 DYRCNT= 4000 DYNREG= 3 DYIDS= 3377 DYIDEN= 3000  4$ .IF EQ DY$DD 3$: BIT #CSEBUF,R4 BEQ 5$ BIT #SPSZ,R4 BEQ 5$ CLR R2 BIC #SPSZ,R4 BR 4$ .IFF 3$: .ENDC .I Q.BLK=0 Q.BUF=4 Q.PAR=12 SDBLKS=494. DDBLKS=988. MAXLSN=1734*2 CSGO=1 CSFBUF= 0*2 CSEBUF= 1*2 F NE MMG$T 5$: MOV R4,-(SP) MOV DYCQE,R4 CLR -(SP) JSR PC,@$PTWRD MOV (SP)+,R4 TST (R0)+ .IFF 5$: CLR (R0)+ .ENCSWRT= 2*2 CSRD= 3*2 CSRDST= 5*2 CSWRTD= 6*2 CSMAIN= 7*2 CSRDWR= CSRD&CSWRT CSDD= 10 CSUNIT= 20 CSDONE= 4DC MOV R2,PHYTRK MOV #128.,R2 4$: MOV R0,BUFRAD MOV R5,RXLSN .IF EQ DY$DD MOV PC,R0 ADD #SAVDEN-.,R0 ADD DENOFF,R0 CSINT= 100 CSTR= 200 CSDN= 400 CSRX02= 4000 CSINIT= 40000 CSERR= 100000 CSHEAD= 1000 DBDNER= 20 DBD0 SWAB R4 BISB (R0),R4 SWAB R4 MOV R0,DENOFF .ENDC MOV R4,(PC)+ RXFUN2: .WORD 0 .IF EQ DY$DD BIT #CSDN,R4N= 40 DBDD= 100 DBIN= 4 DBCRC= 1 DBSID1= 10 RETRY=8. SPFUNC= 100000 SPDD= 40 SPSZ= 40 SZFUNC= 373  BNE 15$ TST R4 BPL 16$ ASR R2 BR 15$ 16$: ASL RXLSN .ENDC 15$: MOV R2,WRDCNT RXINIT: CLR INTINT RXWAIT: MORDST= 10 .IF NE DYT$O .DRBEG DY,DY$VEC,DYDSIZ,DYSTS,RXTVTB .IFF .DRBEG DY,DY$VEC,DYDSIZ,DYSTS .ENDC .ENABL LSB MOVV #CSINT,@RXCSA BR 10$ RXWT1: MOV R3,INTINT MOV R1,RXFUN2 10$: RTS PC RXERRJ: JMP RXERR .DSABL LSB .ENABL LSB RXA #RETRY,(PC)+ RXTRY: .WORD 0 CLR (PC)+ DENOFF: .WORD 0 MOV DYCQE,R3 MOV (R3)+,R5 MOV #CSGO+CSRD+CSINT,R4;FORM A GUEBRJ: JMP RXABRT .DRAST DY,5,RXABRJ MOV (PC)+,R4 RXCSA: .WORD DY$CSR MOV R4,R5 .FORK DYFBLK MOV RXFUN2,R1 TST (R5SS AT RXCS FUNCTION MOVB (R3)+,R1 .IF NE DYT$O BITB #4,@R3 BNE RXERRJ MOV #2,DENOFF MOV (PC)+,R2 RXCS1A: .W)+ BMI RXER2 NEG (PC)+ INTINT: .WORD 0 BIT #CSEBUF,R1 BEQ 1$ BCC 30$ BIT #CSRDWR!RDST,R1 BNE 4$ JSR PC,NORD DY$CSR BITB #2,@R3 BEQ RXCDF MOV (PC)+,R2 RXCS2A: .WORD DY$CS2 RXCDF: MOV R2,RXCSA BITB #1,(R3)+ BEQ 1$ BISXTSEC BR 25$ 4$: TST R1 BPL 2$ .IF EQ DY$DD TST WRDCNT BNE 11$ JMP SIZE .ENDC 11$: BIT #DBDD,@R5 BEQ 2$  #CSUNIT,R4 INC DENOFF .IFF BITB #6,@R3 BNE RXERRJ BITB #1,(R3)+ BEQ 1$ BIS #CSUNIT,R4 INC DENOFF .ENDC 1$.IF NE MMG$T MOV R4,-(SP) MOV DYCQE,R4 MOV #1,-(SP) SUB #2,Q.BUF(R4) JSR PC,@$PTWRD MOV (SP)+,R4 .IFF MOV BUFRAD,: MOV (R3)+,R0 .IF NE DY$DD CMPB #SZFUNC,R1 BNE 6$ JMP SIZE .ENDC 6$: MOV @R3,R2 BPL 2$ CMPB -(R4),-(R4) R2 INC -(R2) .ENDC BR 2$ 1$: BCC 2$ BITB #SPDD,R1 BEQ 7$ BIS #CSDD,R1 7$: BIT #CSWRT,R1 BEQ 25$ JSR PC,NXT.IIF NDF DY$VC2, DY$VC2 == 270 .IIF NDF TIM$IT,TIM$IT=0 .IIF NDF MMG$T, MMG$T=0 .IIF NDF ERL$G, ERL$G=0 ERL$D= 0 .IIF ND NEG R2 2$: .IF NE MMG$T MOV R5,-(SP) MOV R3,R5 DEC R5 DEC R5 JSR PC,@$MPPTR MOV (SP)+,R0 SWAB (SP) F DYT$O, DYT$O=0 .IIF NDF DY$DD, DY$DD=0 .IIF NDF DY$DS, DY$DS=0 DTSYS==0 RFSYS==0 RKSYS==0 DSSYS==0 DPSYS==0 DMBIS (SP)+,R4 MOV (SP)+,R5 .ENDC ADD PC,R1 MOVB CHGTBL-.(R1),R3 ROR R1 ROR R3 ADD R3,R4 BMI 3$ ASL R5 BR>  BIT #DBDNER,@R5 BNE 6$ BIT #DBCRC,@R5 BNE 2$ BIT #CSHEAD,R1 BEQ 2$ BIT #CSDN,R1 BNE 2$ 6$: BIT #CSHEAD,R1  ADD R3,BUFRAD ADD R3,(PC)+ BUFRAD: .WORD 0 .IF NE MMG$T BCC 5$ ADD #10000,R1 .ENDC 5$: INC (PC)+ RXLSN: .WORD 0 SEC 2$: BIC #CSRDWR+CSDD,R1 MOV R1,@R4 MOV #128.,R3 .IF EQ DY$DD BIT #CSDN,R1 BNE 3$ BEQ 7$ ADD #MAXLSN,RXLSN 7$: MOV DENOFF,R0 BIT #CSDN,R1 BEQ 21$ BIC #CSDN+CSHEAD,R1 DECB @R0 TST R1  ASR R3 .ENDC 3$: CMP WRDCNT,R3 BHIS 5$ MOV WRDCNT,R3 5$: MOV R3,TRWRDS 6$: BITB #CSTR!CSDONE,@R4;TRANSFER OR DONE?  BPL 22$ ASL WRDCNT BR 4$ 22$: ASL RXLSN BR 4$ 21$: BIS #CSDN,R1 BIC #CSHEAD,R1 INCB @R0 TST R1 BPL 23$ BMI 10$ BEQ 6$ RXER2: BR RXERR2 10$: MOV R3,@R5 15$: BITB #CSTR!CSDONE,@R4;TRANSFER OR DONE? BMI 20$ BEQ 15$ BR ASL WRDCNT BR 4$ 23$: ASR RXLSN .ENDC 4$: .ENDC .IF NE ERL$D .IF EQ DY$DD CMP RXTRY,RETRY BEQ 3$ .ENDC 2$: MO RXERR2 20$: MOV BUFRAD,@R5 BR RXWT1 25$: BIS #CSRDWR,R1 30$: MOV R1,@R4 MOV RXLSN,R3 TST R1 V PC,R3 ADD #DYRBUF-.,R3 MOV R3,R2 MOV (R4),(R3)+ MOV (R5),(R3)+ BIC #100,(R4) BIS #17,(R4) 1$: BIT #40,(R4) BEQBPL 52$ BIT #RDST,R1 BEQ 26$ BIT #CSWRT,R1 BEQ 51$ 26$: MOV (PC)+,R2 PHYTRK: .WORD 0 BR 35$ .IF NE DY$DS 52$: 1$ MOV (R5),(R3) MOV #DYNREG,R3 ADD #DYRCNT,R3 MOV DYCQE,R5 MOVB RXTRY,R4 DEC R4 ADD #DYIDEN,R4 JSR PC,@$E CMP R3,#MAXLSN BLT 34$ BIS #CSHEAD,R1 SUB #MAXLSN,R3 .IFF 52$: .ENDC 34$: MOV #8.,R2 31$: CMP #6400,R3 BHI 32$ LPTR MOV RXCSA,R4 3$: .IFF 2$: .ENDC DEC RXTRY BLE RXERR MOV #CSINIT,@R4 70$: BIT #CSDONE,@R4 BEQ 70$ MOV R1 ADD #171400,R3 32$: ROL R3 DEC R2 BGT 31$ MOVB R3,R2 CLRB R3 SWAB R3 CMP #12.,R3 ROL R3 ASL R2 ,RXFUN2 JMP RXINIT .IF NE DY$DD .IF NE MMG$T .IF EQ DY$DS SIZE: MOV #DDBLKS,-(SP) .IFF SIZE: MOV #DSBLKS,-(SP) .ENDC  ADD R2,R3 ADD R2,R3 ADD R2,R3 ASR R2 INC R2 33$: SUB #26.,R3 BGE 33$ ADD #27.,R3 35$: BITB #CSTR!CS MOV DYCQE,R4 JSR PC,@$PTWRD .IFF .IF EQ DY$DS SIZE: MOV #DDBLKS,@R0 .IFF SIZE: MOV #DSBLKS,@R0 .ENDC .ENDC .ENDC .IFDONE,@R4;TRANSFERRED OR DONE? BMI 40$ BEQ 35$ BR RXERR2 50$: MOV R2,@R5 51$: JMP RXWT1 40$: MOV R3,@R5 45$: BITB EQ DY$DD SIZE: MOV #SDBLKS,-(SP) .IF NE DY$DS BIT #DBSID2,@R5 BEQ 13$ ASL (SP) .ENDC 13$: BIT #DBDN,@R5 BEQ 12$  #CSTR!CSDONE,@R4;TRANSFER OR DONE? BMI 50$ BEQ 45$ .DSABL LSB RXERR2: .IF EQ DY$DD .IF EQ DY$DS BIT #DBDNER,@ ASL (SP) .IF NE MMG$T 12$: MOV DYCQE,R4 JSR PC,@$PTWRD .IFF 12$: MOV (SP)+,@BUFRAD .ENDC .ENDC BR RXDONE RXERR: MR5 BEQ 2$ MOV DENOFF,R0 BIT #CSDN,R1 BEQ 21$ BIC #CSDN,R1 DECB @R0 TST R1 BPL 22$ ASR WRDCNT BR 4OV DYCQE,R4 BIS #1,@-(R4) .IF NE ERL$D BR RXALLD RXDONE: MOV DYCQE,R5 MOV #DYIDS,R4 JSR PC,@$ELPTR .IFF RXDONE: .E$ 22$: ASL RXLSN BR 4$ 21$: BIS #CSDN,R1 INCB @R0 TST R1 BPL 23$ ASL WRDCNT BR 4$ 23$: ASR RXLSN .IFF NDC RXALLD: CLR @RXCSA BR RXEXIT RXABRT: MOV #CSINIT,@RXCSA RXEXIT: .DRFIN DY NXTSEC: MOV (PC)+,R3 TRWRDS: .WORD 0 ?    CPQCQBm     v   &   5@%PeE T  <5eN N (E D A @  eb" b"    D A @ &f&f eD A @ eA @ e@ e&f&f   <%PeE D A @ E@E ED &f& @ &   6&C&    \B`  =huj( # "&(f &   8   h   6c6#m    (   # 6  SUB R3,(PC)+ WRDCNT: .WORD 0 BHI RTRN BIT #CSEBUF+SPFUNC,R1;IS IT A WRITE? BNE 1$ .IF EQ DY$DD BIT #CSDN,R1 BE #55& J=   & (!k7==E& =^&E Q 3$ .ENDC BIT #1,RXLSN BNE 2$ 1$: TST (SP)+ BR RXDONE .IF EQ DY$DD 3$: BIT #3,RXLSN BEQ 1$ .ENDC 2$: MOV #1,&8&!Pe" stsuvx3 s !2 "5 #<"e! ePe"WRDCNT MOV PC,R3 ADD #ZERO-.,R3 MOV R3,BUFRAD .IF NE MMG$T BIC #30000,R1 .ENDC RTRN: RTS PC ZERO: .WORD 0 .IF EQ Pj3h3|3z> U $ "u!\+?Err 59 USR not locked?Err 62 FORTRAN start failLfDY$DD .BYTE 110 .BYTE 0 .ENDC .BYTE 74 .BYTE -2*2 .BYTE 0*2 CHGTBL: .BY&AE;@ pB`"ʊ_@ҋ54 R F L΋ ++TE 0*2 .EVEN SAVDEN: .BYTE 1,1 .IF NE DYT$O .BYTE 1,1 .ENDC DYFBLK: .WORD 0,0,0,0 .IF NE ERL$D DYRBUF: .BLKW |;  w"F  D;z|  + ;? DW=W?DYNREG+3 .ENDC .IF NE DYT$O RXTVTB: .WORD DY$VEC .WORD DYINT-. .WORD 340 .WORD DY$VC2 .WORD DYINT-. .WORD 340 = A @ @)鈇& e:   낃 (   .WORD 0 .ENDC .DREND DY .END  3 E`E& N U%@"w?Err 60 stack overflowed ABCDEFGHIJKLMNOPQRSTUVWXYZ$. 0123456789fromin routine "" line ?Err (PC=&f$&  h % % U@   4&~K   < .`D A @ 耎     e     e &f  ”E @ 3& eN t RD \RD ^&&Af&  e\&\ %r-t&& fAP  t\ %8-t- %tw\ \&\\\ \\&e\ b\b\b\b\&\ \\\\ \\\\&\\\&\\\& \ \ \\\\\  `\ `\\\PH\PPwJ \ \ \ \ \  \& \\\\&\\\\ \\e b,d  <,gV`b Xwl b&\\\ \\\&\\\\\\&\ 2&  e\& e\&&& e\& e&&\&&e\&e\&&f&p$  J"KeN t  RDZ~&$3R3~3D3Ze &1S3`D Z~^v v&f& R+ D\8+  35f&̋TT\Dt1B 2wĊNF @ĊA    <&1 B C 5 Eť1 ť+ť$ 3 Tť0 H̋  <̋s  Ş@{s @ s ツ̋UNUeeePPPHeN TɥRU@ɥOUɥSU 0 ɥNUɥCU p3m 54 wL  f B % % e@ ( B`  ` A@ඌ cmd ` ҕ- 9 |E@ e0Ґ (   ) 3 ĊAW ե B 5U *w@03p\603r\*0p0r\ UeC Hҕ ( %% ҕ0ҕ. ҕ0 Ґ+-  Ґʕ/ e:rC e e   U X#&`5  U Eȋ h `5w@A3 ҕ* 5e* 5e*  @%  @ %   `&\\  t/e*&@A& & @A& & @A& & C P \r@e@A& & X5e*L5e*e&f . 1fABAD5 a @E ~dlt6.3 Dt~ l.t~3 r3 p3 X 3\e\e\e\e\eC%!e e B V  B\E CP   D a@ C`B `%ֆ C ӆB\e\g\g\g\\\\\\\\\\ \ \& \ \ \& \\%\%\%\%\%\'\'\'\ 'EІ  %C ‹Á  C B ‹ B       ' \\%U\N E\N MEP\֋\܋\\ȋ\N \\\^\H\\ \^ \H \&&&\A conversion error4 Computed goto out of range 12 Floating zero divide2 Integer zero divide3 Compiler generated error16 WInconsistent OPEN/CLOSE statement specifications250 Keyword value error in OPEN statementD68 Direct access record size errorrong number of arguments 13 Sqrt of negative number1 Integer overflow 10 Floating overflow5 Input conversion error14 Und0 Non-FORTRAN error call %c s ыs e !efined exponentiation operation15 Log of zero or negative number7 Incompatible object modules553 List directed I/O syntax ee3d & 35 5 8 Xf& f35nȋ~ N5*4& rror=61 Illegal memory reference20 Invalid logical unit number21 Out of available logical unitS22 Input record too long 54- Zptr&朢d 8  5@a3 s 5@23 Hardware I/O error?63 Illegal instruction trap24 Attempt to read/write past end of file25 Attempt to read after write2 @ 3@3 r3 p3!  #p   3 3&s556 Recursive I/O not allowed-45 Incompatible variable and format types27 Attempt to use device not in system31 No available  T 3 T   4 m E% % C Їɕ sw  &4 4-I/O channel28 Open failed for file29 No room for device handler$36 Bad file specification string,44 2nd record request in 45@E4   B!&vC j5EUe  & ENCODE/DECODE 32 Fmtd-unfmtd-random I/O to same file!33 Attempt to read past end of record"34 Unfmtd I/O to TT or LP%37 Rand4-2 . !& &v    E5@ߋ*3 pr 5U3 rpom access read/write before define file&38 Random I/O not allowed to TT or LP'39 Record larger than record size in define filew   ;3  ,FF3 F V {` `3 V3 Tl ,FF(40 Request for block larger than 65535)41 Define file attempted on open unit#35 Attempt to output to read only file30 No rBFFx R p  3hAsd T `  N  ZT `Q DMB ";  C ^   A ^”E eBCIE `-    D E A@D D e0boom for buffers*42 Memory overflow compiling object time format.46 Infinite format loop+43 Syntax error in object time formatb %- ҕ* V   +.) f3! ,f$ f :nH149 Endfile on random file/47 Attempt to store outside partition048 Unit already open@64 Virtual array initialization failur5$ STOP -- ||| 11 Floating underflow6 Output eA65 Virtual array mapping errorB66 Unsupported OPEN/CLOSE keyword or optionC67 Unsupported OPEN/CLOSE keyword or option351 B  @ B   D \w V& D D 3 V3  3 F  `P BJr)"T&JB))))))))***"*,*6*@*J*T*\ *T&\ /T&\ 80T&\ 0T&\ 0T&\ 0T&\ 0T&\ F13 \ ~@  rEx|% H3I \sJ FsL% 8sN DL׬I( R%T&\ 1T&\ 2T&\ 2T&\ 3T&\ F3T&\ f3T&\ 3T&\ 4T&\ 4T&K\ >Jz*K\ * RNN @ 3`"  ,     JœH @" & JK\ T&<\ 7*<\ 7*<\ 7\ x7 & & EF   &w 솉f &w J<-G@ @? 0+@JJ +<\ 7/ JNJ-G -H+J<<JJJJ-G@@ @JJb+< "J녉DR%% $J J N ꇁ   Е `CBД  SD @` t#"J "+J<\ 5 >I /4JG. NJ-G /"+J"@NJ-G A+0@NJ-G O+ @NJ-G D+ @NJ-G Y"#"2#"########""8#l""########5@5#E 5m5 ҕ   m , @ @ "+JNJ-G ="+JNJ-G: "+0JJJJJ-G@ @, ,J "+dJJ>@ @J@JJH,U (.26,<Z%DDDDD7 v< J dJKK\ 0J<K@<-G@l @@@@JJJJ"@NJ-G: 4-JNJ-G , "+JJJJ-G@ @, ,@ "+@J@)@ @@JJ,"@@JNJ-G: 4-Jl&J|K>J&K<^**<J 0J<-G@@ @JJ&">J  'K<~**<J 0J<-G@@ JJJJ-G@@ "+@J@@ @@JJ-<<<@ 0J<3@@@ @J@R-"J@4@ @ /@ @JJ&" .G; T& .G T' J<,G @<-G @l @ @ @ @JJ:'J J (0JjJ@tJ@0JJ @.@B--$.^.@.0J<3@@ @A. @Z.@J->6@ / 6@0. 6@7./0J<3@@H@ /J(0J @@JJJNJ-GJJD:I (J@' @J @J J '(`(0JJ@J@JJJ>-G @0. @7.@J -/0J<3@@H@ / @0. @9.@J 2./0J<3@@<@@n@@.JJD-GR J@' @P(0J @@JJ>,GJJDIR J@*(JJ @J(JJJJJ-G@JJ>-G@@J@v./0J<3@@<@@n@@.@@J@./<\ 7 4G-*<<  J< K@@  @@JJt((JJJx'@@JJt'JJ.G .G H /G#H ":F)0J0J</G@JJDJ\@:@J|K."* @ /@<*@@ "@<4@4JG "8JG@b/<\ 7. @ /@< @@ "8 H@8 @ 8 "&:) @@0)@J(J(<\ 7T&NJG: )K<**0J<-G@@ @J8JG@/<\ 7.0J<3@@dJJ`@>@ @@J@/J@@ 7 :IJzD-G\@R @" P5J5J4JjJJJzJ=\ 5 >I 5, U1 0 555U U& &3 @&&5¥.  , 0JJJ`@>IdJJD@R N@I:5JtJJ5J 57 ܢ=JJ5=\ 770J"JJ &@ #& 5ff@ & 5 EE 爄 Mxdxd z :@;@@JJD-G\@:8 dJJDD\@:8 & @/8 >@8 &" @=8 >@8 &":6 @@t6J@66JJ5 @#"ccC @?-/AODY=,,,AZ070709-$G"O &c K@ p@ t!720>J 0<\ 720 J5GK\ 7 DI 04J 6=\ 77"JJ@@JJD-G\@:8 @/8 " @=8 ":6dJJ>Db @J@6JJJ6JJG8JG @ 7 <J0=\ 70J7 =NJG: 0"J7 =NJG: 0\ x7 =NJG: >1JJ7 >I >I7 b۶=?=" @BX7h7x777768p8889X999:@:P:`:?="l:?="l:?>J1=\ 7>1>J*1K\  J5GK\ 7 6 =J d1.=\ 71J|1,=\ 71 "l:? >?G 0J<-G@@ @JJ7"l:?A>?G 0J<-G@@ @JJ7"l:?JNJG: 1*=\ 5 >I 1JJJGNJ@ Y8 R JJGNJGNJG&R 7 0=J1JJGNJGNNJG&R [>?G 0J<-G@@ @JJ8"l:?~>?G 0J<-G@@ @JJX8"l:?>?7 |8=J 2D=\ 72J62B=\ 72 JNJG: \2@=\ 5 >I 2JJJG8JG > R JJGNJGNG 0J<-G@@ @JJ8"l:?>?G 0J<-G@@ @JJ8"l:?>?G 0J<JG&R 7 F=J 2T=\ 73J2R=\ 73 JNJG: 2P=\ 5 >I 3JJJGNJ@ N8 -G@@ @JJ9"l:???G 0J<-G@@ @JJ@9"l:?)??G 0J<-G@@ R JJGNJGNJG&R 7 ^V=JD3JJGNJGNJG&R 7 6^=Jd3JJGNJGR 7 f=J 3n=\ 7@JJz9"l:?X??G 0J<-G@@ @JJ9"l:?r??G 0J<-G@@ @JJ90J0J<4G@<G@~ @v JJJ3  JJz f @@@J37 p=NJG: 4~=x=  J< "l:???G 0J<-G@@ @JJ(:"l:??"l:??"l:??"f&f& -G@@ @JJ4"7 `ހ=NJG: 4JF4=\ 74 J=\ 5 >I 4NJ-G = |4=\ 74J e `e& e eB\< N"Q$B(< U& * u @ 3 J n4JJJJJ-G@JJ dJ>@ @@JJ47 ݐ=NJG: 5J4=\ 75 5G"  5PA;&eW!; X<'& f@! t<;# B   ` ׮PU ׮PUD YESNO*NONE*@t!v@ #@&8"@ N9@Y 69@79}@ >9@N D9@D9%@W@@fZ@&cw@= z@"" '@/=/=!:@$?SYSGEN-+F-Inappropriate answer+F-Answer value too small+F-Answer value too large+W-Too few #ENDC's in &O+W-Bad #ASK in &O+W-Undefined command in &O+W-Too many variables in &O+W-Undefined variable in &O+W-Missing file name in &O+W-Nested #CALL in &O+W-Missing variable in &O#+W-Too many nested #IFs or #SUBs in &O+W-Bad #SET in &O+W-Bad substitute pattern in &O+W-Too many #ENDC's in &O+F-Insert error+F-Output error +F-Input errorE  THIS IS STANDARTD TEXT This is upper AND lower text. CTERS IN THE BUFFER ; IF THERE IS ROOM,ELSE ONLY CR IS PLACED IN THE BUFFER. ; 2)FORM FEED ECHOES 7 LINE FEEDS,AND INSERTS A FF ; CHARACTER IN BUFFER. ; 3)RUBOUT ECHOES "\" AND DELETES THE LAST CHARACTER ; IN THE BUFFER. IF THERE ARE NO CHARACTERS IN THE ; BUFFER, RUBOUT DOES NOT ECHO AND IS IGNORED. ; 4)TAB ECHOES ENOUGH SPACES TO POSITION THE PRINT HEAD ; AT THE NEXT TAB STOP,AND INSERTS A TAB CHARACTER ; IN THE BUFFER. ; 5)CTRL U ECHOES "^U" AND ERASES THE CURRENT LINE. ; 6NE WHO AGREES TO THESE LICENSE TERMS. ; TITLE TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES ; REMAIN IN DIGITAL. ; THE )CTRL Z ECHOES "^Z" AND CAUSES THE HANDLER ; TO REPORT END-OF-FILE. THE CTRL Z CHARACTER IS NOT ; INSERTED IN THE BUFFER. ; INFORMATION IN THIS SOFTWARE IS SUBJECT TO ; CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED ; AS A COMMITMENT BY DIGITAL EQ 7)THE LOW-SPEED READER WILL RUN IF IT IS TURNED ON ; WHILE A READ REQUEST IS PENDING TO THE HANDLER. ; IF THE TAPE BEING REUIPMENT CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE ; OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT ; WHICHAD HAS MANY TABS, HOWEVER, ; THE TIME NECESSARY TO ECHO THE TABS WILL CAUSE ; CHARACTERS FOLLOWING THE TABS TO BE LOST. TO DIS IS NOT SUPPLIED BY DIGITAL. ; ; RGB (DEC) MARCH 1975 ; DAK (TERAK) OCTOBER 1977 ;RT-11 V2 DEVICE INDEPENDENT TERMINAL HABLE ; THE ECHOING OF TABS,THE "SET" COMMAND CAN BE USED ; AS FOLLOWS: ; ; "SET KB LSR" WILL DISABLE TAB ECHOING,ALLOWING A ANDLER, KB. ;KB CAN BE USED BY EITHER THE FOREGROUND OR BACKGROUND ;(BUT NOT BOTH SIMULTANEOUSLY) TO READ AND WRITE TO ANY ;DTAPE ; TO BE READ WITHOUT CHARACTER LOSS. ; "SET KB NOLSR" WILL ENABLE TAB ECHOING,FOR ; NORMAL KEYBOARD INPUT. THIS IL-11A OR KL-11A OR 8510 SERIAL INTERFACE CONTROLLED TERMINAL. ; ;THIS HANDLER HAS THE FOLLOWING CHARACTERISTICS: ; 1)CARRASKCALLDECRENDCENDSEXITFILEIFIFFIFGTIFNIFTIFTFNAMEPRINTSETIAGE RETURN CAUSES THE REMAINDER ; OF THE INPUT BUFFER FOR THE CALLING READ REQUEST TO BE ; ZERO-FILLED,AND THE READ IS COMPLESUBSSYSGEN.CNDTED. THUS , ; THE HANDLER TRANSFERS ONE LINE AT A TIME, NO MATTER ; HOW LONG THE INPUT BUFFER IS FOR THE READ REQUEST ; THE UNUSED PORTION OF THE BUFFER IS ZERO-FILLED. ; CARRIAGE RETURN ECHOES CARRIAGE RETURN, LINE-FEED, ; AND INSERTS CR AND LF CHARAF IN THE LEFT MARGIN OF THE TERMINAL ; TO SIGNIFY THAT THE HANDLER IS READY FOR INPUT. ; THIS CHARACTER CAN BE CHANGED, OR THE PNDLER ITSELF IS ACTIVATED WITH READ AND WRITE REQUESTS, ;AS ARE ALL RT-11 DEVICE HANDLERS. WHEN USING SYSTEM PROGRAMS ;WHICH OROMPT FEATURE ; CAN BE REMOVED, BY RE-ASSIGNING THE SYMBOL "PROMPT" ; TO THE ASCII VALUE OF THE DESIRED CHARACTER. SETTING ; PERATE ON LARGE BUFFERS,SEVERAL LINES MAY ACCUMULATE ;IN THE BUFFER BEFORE THEY APPEAR ON THE TERMINAL,AND THEN ;APPEAR ALL ATPROMPT TO "0" WILL CAUSE NO CHARACTER TO BE PRINTED. ; 9)IF NO READ REQUEST IS ACTIVE,THE HANDLER WILL NOT ; ACCEPT INPUT, ONCE. TO AVOID THIS PROBLEM, EACH OUTPUT BUFFER ;CAN BE ZERO-FILLED AND SENT TO THE TERMINAL TO PRINT EACH ;LINE-THE HANDLER  AND THE KEYBOARD WILL NOT ECHO. IF IT ; DOES ECHO,THE HANDLER IS ACCEPTING INPUT. ; ;THIS HANDLER CONTAINS CONDITIONAL CODE WILL IGNORE NULLS ON OUTPUT. IN FORTRAN, ;EACH LINE CAN BE FORCED IN OR OUT BY USING A REWIND FOLLOWING ;EACH READ OR WRITE TOTO SUPPORT TERMINALS ; THAT REQUIRE FILLER CHARACTERS AFTER A PARTICULAR ; CHARACTER. TO ENABLE THE FILLER FUNCTION, DEFINE TH THE DEVICE. FOR EXAMPLE: ; LOGICAL*1 INPUTL(80) ; CALL ASSIGN (7,'KB:/C') ; WRITE (7,1) ; REWIND 7 ; WRITE (7,2) ; REWINDE ; SYMBOL "FILCHR" EQUAL TO THE ASCII VALUE FOR THE ; CHARACTER TO BE FILLED AFTER,AND THE SYMBOL "FILCNT" ; TO BE THE OCTAL 7 ; READ (7,3) INPUTL ; REWIND 7 ; . ; . ; . ;1 FORMAT . . . . ;2 FORMAT . . . ;3 FORMAT . . . ;THE HANDLER CAN BE " NUMBER OF NULLS TO BE ISSUED AFTER ; EACH OCCURANCE OF THE CHARACTER DEFINED BY "FILCHR". ; FOR EXMAPLE,TO PROVIDE 12 FILLER RE-CONFIGURED" FOR VARIOUS VECTOR AND ;REGISTER ADDRESSES BY CHANGING THE ASSIGNMENTS OF THE SYMBOLS ;"KBVEC" AND "KBCSR" ON TCHARACTERS AFTER ; A CARRIAGE RETURN, SET "FILCHR=15" AND "FILCNT=14". ; THIS COULD ALSO BE INSTALLED USING PATCH. ;THE HANDHE FOLLOWING PAGE. EDITING THESE TWO ;SUFFICES TO CHANGE ALL FLOATING ADDRESSES. .MCALL .REGDEF,..V2..,.INTEN .REGDEF LER IS INSTALLED VIA THE FOLLOWING PROCEDURE: ; 1)ASSEMBLE IT AS FOLLOWS: ; DEFINE FILLER CONDITIONALS IF NECESSARY ; .R  ..V2.. ;VECTOR AND DEVICE REGISTER ADDRESSES-EDIT TO RECONFIGURE KBVEC=120 ;KEYBOARD VECTOR KBCSR=177520 ;KEYBOARD COMACRO ; *KB=KB ; 2)LINK IT AS FOLLOWS: ; .R LINK ; *KB.SYS=KB ; 3)INSTALL IT AS DEVICE "KB:",AS DESCRIBED IN SECTIONTROL REGISTER ;OTHER DEVICE ADDRESSES TPVEC=KBVEC+4 ;PRINTER VECTOR KBBUF=KBCSR+2 ;KEYBOARD BUFFER REGISTER TPCSR=KBN 5.3 ; OF THE RT-11 V2 SOFTWARE SUPPORT MANUAL. REMEMBER THAT ; THE VECTORS FOR THE TERMINAL MUST BE PROTECTED IN ; THE BIT CSR+4 ;PRINTER CONTROL REGISTER TPBUF=KBCSR+6 ;PRINTER BUFFER ;CONSTANTS OFFSET=270 ;OFFSET TO MONITOR COMPLETION MAP AS DESCRIBED IN THAT SECTION. ; THE VALUES FOR THE VARIOUS TABLE ENTRIES SHOULD BE ; HSIZE=VALUE OF SYMBOL "KBSIZE" ; DEOF=20000 ;EOF BIT IN CSW PR7=340 ;PSW VALUE FOR PRIORITY 7 PR4=200 ;PSW VALUE FOR PRIORITY 4 HT=11 ;TAB LF=12 S THE DEFAULT. ; KB CHARACTERISTICS (CONT.) ; ; 8)WHEN THE HANDLER RECIEVES A READ REQUEST,A ">" ; CHARACTER IS PRINTED VSIZE=0 (NON-FILE STRUCTURED DEVICE) ; PNAME=42420 (RAD50 FOR "KB ") ; STAT= HIGH ORDER BYTE=0,LOW ORDER BYTE=24 ; ;THE HAG AT A READ IS IN ;PROGRESS,AND A PROMPT CHARACTER IS ECHOED ON THE TERMINAL ;BEFORE THE KEYBOARD INTERRUPT IS ENABLED. MOV PCHARACTER,AND ;THE CHARACTER IN R4 IS THEN PRINTED. IF THE FILLER CONDITIONAL ;CODE IS INCLUDED AT ASSEMBLY TIME, THE CHARACTER,R0 ADD #KBINT-.,R0 ;CALCULATE ABSOLUTE ADDRESS OF ;KEYBOARD INTERRUPT SERVICE MOV R0,@#KBVEC ;SET UP KEYBOARD VECTOR  IN R4 IS ;COMPARED AGAINST THE CHARACTER TO BE FILLED AFTER. IF SAME, ;A COUNT OF NECESSARY FILLS IS STUFFED IN "FILCN1" AND  ;LINE FEED FF=14 ;FORM FEED CR=15 ;CARRIAGE RETURN=15 CTRLU=25 ;CTRL/U CTRLZ=32 ;CTRL/Z SPACE=40 ;SPACE DEL MOV #PR7,@#KBVEC+2 RETRY: CLR READFL ;INIT READ FLAG AND TAB COUNT MOV KBCQE,R5 ;POINT TO CURRENT Q ELEMENT CMP (R5)+,(R5ET=177 ;RUBOUT EBLENGTH=20. ;LENGTH OF ECHO BUFFER PROMPT='> ;PROMPT CHARACTER ;SET LSR CODE ;THE FOLLOWING ID TH)+ ;ADD 4 TO R5 MOV (R5),UBPTR ;SET UP POINTER TO USER BUFFER MOV (R5)+,UBPTR1 ;AND SAVE ORIGINAL POINTER ASL (R5) ;MAKE E HANDLER INTERFACE TO THE MONITOR ;SET COMMAND. FOR DETAILS OF INTERFACING TO THE SET COMMAND, ;SEE THE RT-11 V2 SOFTWARE SUPWORD COUNT INTO BYTE COUNT MOV (R5),BYTCNT ;AND SAVE IT MOV (R5), R4 ;AND MAKE A COPY ROR (R5) ;REPAIR IT FOR CHECK BEQPORT MANUAL .ASECT .=400 HT ;FOR NOLSR,SET LSROPT TO "HT" .RAD50 /LSR / .WORD /2+100000 0 OPLSR: MOV FINISH ;WORD COUNT OF 0 IS SEEK,WHICH ;IS NOP IN THIS HANDLER BMI TPOUT2 ;IF NEGATIVE,WRITE TO PRINTER MOV -(R5),R5  (PC)+,R3 ;FOR LSR,SET LSROPT TO 377 377 MOV R3,LSROPT ;MODIFY OPTION VARIABLE IN HANDLER RTS PC ;RETURN TO SET PROCESSOR;USER BUFFER POINTER IN R5 3$: CLRB (R5)+ ;ZERO USER BUFFER BEFORE START DEC R4 BNE 3$ ;BRANCH IF NOT DONE INCB READFL  .CSECT ;THIS IS THE HANDLER HEADER AREA,USED BY FETCH AND THE ;QUEUE MANAGER TO STORE VARIABLES FOR HANDLER OPERATION.  ;SET "READ IN PROGRESS" FLAG JSR R1,ECHO ;PROMPT INPUT WITH ">" .BYTE PROMPT,377 JMP KBIN ;ENABLE KEYBOARD INTERRUPT ANDKBSTRT: .WORD TPVEC ;PRINTER VECTOR ADDRESS .WORD TPINT-. ;OFFSET TO PRINTER INTERRUPT .WORD PR7 KBLQE: .WORD 0 ;LAST QU RETURN ;THIS IS THE ABORT ENTRY POINT-THE HANDLER IS ENTERED AT THIS ;ADDRESS IF THE MONITOR RECIEVES A REQUEST ;TO ABORT AEUE ENTRY KBCQE: .WORD 0 ;CURRENT QUEUE ENTRY ;FOLLOWING IS THE TRANSFER INITIATION CODE. ;THE FIRST WORD OF THIS ROUTINE NY IO TRANSFER IN PROGRESS BR ABORT ;THIS IS THE TERMINAL OUTPUT INTERRUPT SERVICE. AFTER ENTERING ;SYSTEM STATE, IT DETERMIS THE ENTRY POINT FOR ALL ;TRANSFER REQUESTS. THE KEYBOARD VECTOR IS SET UP (FETCH ONLY ;SETS UP THE PRINTER VECTOR),AND THE INES IF THERE ARE ANY CHARACTERS ;IN THE ECHO BUFFER TO BE PRINTED. IF NOT,IT THEN DETERMINES ;WHETHER A WRITE REQUEST IS IN PPARAMETERS FOR THE ;TRANSFER ARE ESTABLISHED. IF THE REQUEST IS A WRITE, CONTROL ;TRANSFERS TO THE PRINTER ROUTINE TO OUTPUT TROGRESS OR NOT. IF SO, ;THE NEXT CHARACTER IN THE USER BUFFER IS PRINTED. IF NOT, ;THE INTERRUPT IS DISMISSED. IF THERE ARE CHHE FIRST CHARACTER ;FROM THE USER BUFFER. IF IT IS A READ, THE ENTIRE USER BUFFER ;IS ZEROED,A FLAG (READFL) IS SET TO SHOW THARACTERS IN THE ;ECHO BUFFER,THE FIRST CHARCTER IN THE LIST IS PUT INTO R4, ;THE LIST IN THE ECHO BUFFER IS "SLID UP" BY ONE CH  CHAR FROM USER BUF-> R4 INC UBPTR ;BUMP BUFFER POINTER INC BYTCNT ;AND DECREASE TRANSFER COUNT TPOUT1: TSTB R4 ;DON'T PCHARS LEFT TO RUB OUT? BEQ KBIN ;NO-IGNORE RUBOUT DEC UBPTR ;BACK UP PNTR INTO USER BUFFER JSR R1,ECHO .BYTE '\,377 RINT NULLS BEQ TPOUT2 ;BRANCH IF NULL .IFDF FILCHR ;CONDITIONAL CODE FOR FILLER CMPB R4,FILCR1 ;DOES THIS CHAR NEED TO BINCB TABCNT ;BUMP TAB COUNTER FOR "\" CLRB @UBPTR ;ZERO RUBBED OUT CHAR INC BYTCNT ;AND INCREASE TRANSFER COUNT ;TO E BNE TPOUT3 ;FILLED AFTER? BRANCH IF NOT MOVB #FILCNT,FILCN1 ;YES-SET UP COUNT OF FILLS .ENDC TPOUT3: MOVB R4,@#TPBUF REFLECT LOST CHARACTER BR KBIN ;RE-ENABLE INTERRUPTS AND EXIT 11$: CMPB R4,#FF ;IS THIS CHAR A FORM FEED? BNE 6$ ;BRANCH;PRINT CHARACTER MOV #100,@#TPCSR ;ENABLE PRINTER INTERRUPT RTSPC: RTS PC ;RETURN TO MONITOR ;REQUEST TERMINATION AND AB IF NOT JSR R1,ECHO ;YES-ECHO 7 LINE FEEDS .BYTE LF,LF,LF,LF,LF,LF,LF,377 6$: CMPB R4,#CR ;IS THIS CHAR A CR? BNE 7$ ORT CODE ;THIS ROUTINE IS ENTERED WHEN THE I/O TRANSFER IS ;COMPLETED OR ABORTED. THE DEVICE INTERRUPTS ARE DISABLED,AND ;STA;BRANCH IF NOT JSR R1,ECHO ;YES-ECHO CR,LF .BYTE CR,LF,0,377 MOVB R4,@UBPTR ;PUT CR IN USER BUFFER INC UBPTR ;BUMP USETHE ;CHARACTER IS PRINTED. THE INTERRUPT SERVICE THEN CHECKS THE ;NUMBER OF FILLS NEEDED AS THE FIRST ITEM, ;AND PRINTS NULLSNDARD MONITOR COMPLETION ENTRY CODE IS EXECUTED. ABORT: DONE: CLR @#TPCSR ;DISABLE OUTPUT INTERRUPTS FINISH: CLR @#KBCSR ;D IF ANY ARE LEFT TPINT: JSR R5,@$INPTR ;ENTER SYSTEM STATE .WORD ^C&PR7 TPOUT2: TSTB @#TPCSR ;IS THE PRINTER READY ISABLE INPUT INTERRUPTS MOV PC,R4 ;STANDARD MONITOR ADD #KBCQE-.,R4 ;COMPLETION ENTRY MOV @#54,R5 ;CODE JMP @OFFSET(R5 BPL RTSPC ;YES-THEN WAIT FOR INTERRUPT .IFDF FILCHR ;CONDITIONAL CODE FOR FILLER TSTB FILCN1 ;ANY FILLS NEED TO BE OUT) ;KEYBOARD INTERRUPT SERVICE ;THIS IS THE KEYBOARD INTERRUPT SERVICE ROUTINE. ;AFTER ENTERING SYSTEM STATE,IT GETS THE TYPUT? BLE 3$ ;BRANCH IF NOT DECB FILCN1 ;YES-DECREASE NUMBER BY ONE CLR R4 ;NULL IS FILLER BR TPOUT3 ;GO PRINT IT .PED CHARACTER INTO ;R4,THEN PROCEEDS DOWN A CHAIN OF CHECKS FOR THE ;SPECIAL CASE CHARACTERS (RUBOUT,CTRL U,CTRL Z,CR,FF). ;IENDC 3$: MOV PC,R5 ;CALC ABSOLUTE ADDRESS ADD #RBSTRT-.,R5 ;OF ECHO BUFFER MOVB (R5),R4 ;GET CHAR TO ECHO FROM ECHO BUFFEF IT IS ONE OF THE SPECIAL CHARACTERS, THE ROUTINE "ECHO" ;IS CALLED TO ECHO APPROPRIATE CHARACTERS ON THE TERMINAL, ;THEN APPR BEQ 1$ ;BRANCH IF BUFFER EMPTY 2$: MOVB 1(R5),(R5)+ ;SLIDE ECHO LIST UP BGT 2$ ;BRANCH IF NOT ZERO DELIMTR BR TPOUT1 ROPRITE ACTION FOR THE SPECIAL CASE IS TAKEN. ;IF A NORMAL CHARACTER IS TYPED,IT IS ECHOED AND PLACED IN THE ;USER BUFFER BEFO ;AND PRINT CHAR 1$: TSTB READFL ;ARE WE READING OR WRITING? BEQ TPOUT ;0 SAYS WRITING CLR @#TPCSR ;ELSE THIS INT SHOURE THE INTERRUPT IS DISMISSED. KBINT: JSR R5,@$INPTR ;ENTER SYSTEM STATE .WORD ^C&PR7 MOVB @#KBBUF,R4 ;GET CHAR BIC LDN'T RTS PC ;HAVE HAPPENED...OFF! TPOUT: TST BYTCNT ;ANYTHING LEFT TO OUTPUT? BEQ DONE ;NO...DONE MOVB @UBPTR,R4 ;GET#177600,R4 ;STRIP TO SEVEN BITS CMPB R4,#DELET ;IS THIS CHARACTER A RUBOUT? BNE 11$ ;BRANCH IF NOT CMP UBPTR,UBPTR1 ;ANY I  R4,20$ ;SET UP TO ECHO CHAR BEQ KBIN ;DON'T ECHO NULLS JSR R1,ECHO 20$: .BYTE 0,377 MOVB R4,@UBPTR ;PUT CHAR IN USER B$: TSTB (R5)+ ;IS THIS END OF ECHO LIST? BNE 4$ ;BRANCH IF NOT DEC R5 ;YES-R5 POINTS TO FIRST FREE ;SLOT IN ECHO LISUFFER INC UBPTR ;BUMP BUFFER POINTER DEC BYTCNT ;ANY MORE TO TRANSFER BEQ DONE ;BRANCH IF NOT KBIN: MOV #101,@#KBCSR ;T SUB R5,(SP) ;FIND NUMBER OF FREE SLOTS IN ECHO LIST CMP (SP)+,#8. ;IS THERE ENOUGH ROOM ;TO ECHO TAB OR FF? BGT 3$ ENABLE KEYBOARD INTERRUPT RTS PC ;RETURN TO MONITOR ;SUBROUTINE ECHO ;THIS SUBROUTINE SERVES TO PLACE THE SPECIFIED CHAR ;BRANCH IF YES MOV (SP)+,R1 ;NO-IGNORE THIS CHAR THEN BR KBIN ;DISMISS INTERRUPT 3$: MOV R4,-(SP) ;SAVE CHAR CMPB R4,(PACTERS ;IN THE ECHO BUFFER,AND START THE PRINTER IN CASE IT IS IDLE. ;THE CALLING SEQUENCE IS ; JSR R1,ECHO ; .BYTE CHAR1,CHC)+ ;IS THIS CHAR A TAB? LSROPT: HT ;THIS COMPARE OPERAND CAN BE ;CHANGED BY SET LSR BNE 1$ ;BRANCH IF NOT 5$: MOVB AR2,CHAR3....CHARN,377 ;ON ENTRY,R4 CONTAINS THE CHAR TYPED AT THE KEYBOARD. ;NOTE THAT THERE MUST BE AN EVEN NUMBER OF BYTES #SPACE,(R5)+ ;ECHO A SPACE INCB TABCNT ;BUMP POSITION COUNTER BITB #7,TABCNT ;AT TAB STOP YET? BNE 5$ ;BRANCH IF NOT TIN THE ;ARGUMENT LIST AND THEREFORE THE NUMBER OF CHARACTERS ;EXCLUDING THE 377 MUST BE ODD. ;WHEN ENTERED,ECHO SCANS THE ECST (R1)+ ;YES-ARTIFICIALLY BUMP RETURN CLRB (R5) ;END ECHO LIST BR 6$ ;AND START ECHO 1$: MOVB (R1)+,(R5)+ ;MOVE CHAR INHO BUFFER TO FIND THE END ;OF THE ECHO LIST,WHICH IS MARKED BY A NULL BYTE. ;WHEN THE END OF THE LIST IS FOUND,IT IS DETERMINETO ECHO LIST BPL 1$ ;BRANCH IF END-OF-LIST NOT SEEN CLRB -(R5) ;ELSE USE 0 TO MARK END OF ECHO LIST 6$: JSR PC,TPOUT2 ;PRID IF THERE ;ARE AT LEAST 8 FREE SLOTS IN THE LIST TO ACCOMODATE A POSSBLE ;LINE FEED OR FORM FEED. IF NOT,THE CHARACTER JUST TNT A CHAR TO START PRINTER MOV (SP)+,R4 ;RESTORE CHAR RTS R1 ;RETURN .DSABL LSB ;DATA AREA ;ECHO RING BUFFER-EBLENR BUFFER POINTER DEC BYTCNT ;ROOM IN BUFFER FOR LF TOO? BEQ DONE ;DON'T INSERT IT IF NOT MOVB #LF,@UBPTR ;ELSE ADD LF TOYPED IS ;IGNORED. IF SO,THE CHARACTERS FROM THE ARGUMENT LIST ;FOLLOWING THE CALL ARE INSERTED IN THE BUFFER, THE PRINTER ;IS BUFFER BR DONE 7$: CMPB R4,#CTRLU ;IS CHAR CTRL U? BNE 8$ ;BRANCH IF NOT JSR R1,ECHO ;ECHO "^U" .BYTE '^,'U,CR,LF,0 STARTED IF IT IS IDLE,AND THE ROUTINE RETURNS. ;NOTE THAT TAB IS A SPECIAL CASE; IF R4 CONTAINS A TAB ;CHARACTER WHEN THIS RO,377 JMP RETRY ;AND RESTART READ 8$: CMPB R4,#CTRLZ ;IS CHAR CTRL Z? BNE 9$ ;BRANCH IF NOT JSR R1,ECHO ;ECHO "^Z" UTINE IS ENTERED,THE ARGUMENT LIST IS ;NOT USED. RATHER, AN APPROPRIATE NUMBER OF SPACES TO MOVE ;THE PRINT HEAD OR CURSOR TO .BYTE '^,'Z,CR,LF,0,377 MOV KBCQE,R5 ;POINT R5 TO Q ELEMENT BIS #EOF,@-2(R5) ;AND SET EOF FLAG IN CSW BR DONE ;STOP TRANSTHE NEXT TAB STOP ARE PLACED ;IN THE ECHO BUFFER,AND THE ROUTINE RETURNS .ENABL LSB ECHO: MOV PC,R5 ;CALC ABSOLUTE ADDRESSFER 9$: CMPB R4,#40 ;IS THIS A PRINTING CHAR? BLT 21$ ;BRANCH IF NOT INCB TABCNT ;YES-INCREASE TAB POSITION 21$: MOVB ADD #RBSTRT-.,R5 ;OF ECHO BUFFER MOV R5,-(SP) ;SAVE ADDRESS OF ECHO BUFFER ADD #EBLENGTH-1,(SP); -> END OF ECHO BUFFER 4J  READFL: .BYTE 0 ;FLAG FOR "READ IN PROGRESS" TABCNT: .BYTE 0 ;TAB POSITION COUNTER UBPTR: .WORD 0 ;POINTER INTO USER BUFFER UBPTR1: .WORD 0 ;POINTER TO START OF USER BUFFER ;MONITOR SYSTEM STATE ENTRY LINK $INPTR: .WORD 0 KBSIZE=.-KBSTRT .END GTH CHARACTERS LONG RBSTRT: .BYTE 0 .BLKB EBLENGTH-1 ;VARIABLE AREA .IFDF FILCHR ;FILLER CONDITIONAL FILCR1: .BYTE FILCHR ;CHARACTER TO BE FILLED AFTER FILCN1: .BYTE 0 ;NUMBER OF FILLS REMAINING .ENDC BYTCNT: .WORD 0 ;USER TRANSFER COUNTK L