INTRODUCTION As the SYSTIME hardware is not identical to that supplied and supported by DEC, modifications have to be made to the standard DEC Operating Systems to support them. This document describes those changes as applied to RSX-11M V3.2 and RSX-11M-PLUS V1.0. It is divided into three sections:- Changes for the Storage Module Drives (SMDs) Changes for the AMPEX Cartridge Drives Changes for the SYSTIME MKII/MKIII terminals Each section describes briefly the relevant hardware differences and then the patches that are necessary. Hard copies of all the patches are stored in the binder marked "SYSTIME Hardware Patches for RSX-11M/M-PLUS". CHAPTER 1 Storage Module Drives a) Hardware Differences. The Storage Module Drives are built to look like the DEC RP02/RP03 drives. The differences (as far as the operating system is concerned) lies in the number of Sectors per Track, the number of Tracks per Surface and the number of Surfaces per Drive. The second of these is rarely used directly, but instead the number of Sectors (Blocks) per Drive (the product of the above three) is usually used. For DEC and SYSTIME disks these values are:- Disk Type Surfaces Sectors Blocks per Drive per Track per Drive DEC RP02 20. 10. 40000. DEC RP03 20. 10. 80000. SYS 16MB 5. 32. 32000. SYS 32MB 5. 32. 64000. SYS 64MB 5. 32. 128000. SYS 128MB 19. 32. 243200. SYS 256MB 19. 32. 486000. To distinguish between the RP02 and RP03 drives, there is a special bit (the 'RP03 bit') set in one of the device registers (the Device Status Register). This is used to distinguish either between 32MB and 64MB drives or between 128MB and 256MB drives. Because of the way this is used by SAV (see later) RSX systems should really only be configured with:- all 16MB drives, or a mix of 32MB drives and 64MB drives, or a mix of 128MB drives and 256MB drives plus, of course, any non-SMD drives. This restriction can be overcome if necessary, but is not recommended. The following Software Patches are for the most common combination, viz. 32MB and 64MB drives. The changes necessary for the other drives should be obvious. The patches have been tested for both RSX-11M and RSX-11M-PLUS. As all SYSTIME systems are assumed to be running on SMDs and not on RP11s these patches are already incorporated into the files on the distribution disk. b) RSX-11M Four files need to be changed for RSX-11M as follows:- 1) [11,10]DPDRV.MAC This is the source file for the driver for the RP11/SMD drives during online operation. It converts a logical block number to a cylinder/track/block address, and it is this calculation that must be changed:- After 10$: after DPINI change DIV #100.,R1 to DIV #80.,R1 and DIV #5,R1 to DIV #32.,R1 2) [200,200]SGNPER.CMD This is the file which creates the UCBs for the devices during System Generation. As the DP UCB contains a block count for the device this must be modified for SMDs:- After .DP30: change .SETN TEMPN4 34200 to .SETN TEMPN4 172000 and after .DP10: change .SETN TEMPN4 116100 to .SETN TEMPN4 175000 3) [12,10]SPCDRV.MAC SAV and BOO do not use the standard system driver, but use a special driver contained in this file, which must be changed for SMDs as in 1:- After $DPDRV change MOV #10.,R4 to MOV #32.,R4 and after 30$: after $DPDRV: change MOV #20.,R4 to MOV #5.,R4 This file should then be assembled and replaced in the relevant library, like so:- SET /UIC=[1,24] MAC SPCDRV=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,[12,10]SPCDRV LBR SAV/RP/-EP=SPCDRV 4) [12,10]SAVSUB.MAC When a 'Saved System Image' is booted, SAV sizes all the hardware on the system before RSX-11M starts up. For the RP11/SMD controller it does this by setting a default number of blocks and then, if the 'RP03 bit' is set, doubling that number. This value is then put in the UCB for the relevant disk. (Note that this means that for systems using 16MB drives this file must be altered or else, no matter what was specified at System Generation, the system will be brought up with 32MB drives configured.) After DEVSIZ: change 0,40000. to 0,175000 This file should then be assembled and replaced in the relevant library, like so:- SET /UIC=[1,24] MAC SAVSUB=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,[12,10]SAVSUB LBR SAV/RP/-EP=SAVSUB c) RSX-11M-PLUS The changes required for RSX-11M-PLUS are similar in effect to those for RSX-11M, but the relevant code is in different modules:- 1) [200,200]SGNMAS.CMD The disk UCBs on RSX-11M-PLUS contain all three values given in our table above, so only they, and not the DP driver, need be altered. After .DP30: change .SETN ZN2 34200 to .SETN ZN2 172000 and .SETN ZN2 116100 to .SETN ZN2 175000 and .BYTE 10.,20. to .BYTE 32.,5. 2) [12,10]SAVDP.MAC The special drivers for SAV and BOO have been split into separate modules, of which this one handles the RP11/SMD. After 1$: after DPCSR: change DIV #<10.*20.>,R2 to DIV #<32.*5.>,R2 and DIV #10.,R2 to DIV #32.,R2 This file should then be assembled and replaced in the relevant library, like so:- SET /UIC=[1,24] MAC SAVDP=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,[12,10]SAVDP LBR SAV/RP/-EP=SAVDP 3) [27,10]HRSIZ.MAC SAV now invokes a module to do the disk sizing (sharing with the reconfigurer task). In the device table change SIZE 0,116100,10.,20.,200. to SIZE 0,175000,32.,5.,400. and SIZE 1,34200,10.,20.,400. to SIZE 1,172000,32.,5.,800. This file should then be assembled and replaced in the relevant library, like so:- SET /UIC=[1,24] MAC HRSIZ=[1,1]EXEMC/ML,[11,10]RSXMC,[27,10]HRPRE,HRSIZ LBR OLR/RP/-EP=HRSIZ 4) [12,10]DEVOV.MAC On RSX-11M-PLUS the 'DEV' command displays the type of disk drive for RP11s. To get this to display correctly for SMDs:- After TYPE: change RP02,RP03 to SM32,SM64 and after DPSET: change MOV #RP02,R1 to MOV #SM32,R1 and CMP #40000.,U.CW3(R4) to CMP #175000,U.CW3(R4) and MOV #RP03,R1 to MOV #SM64,R1 This file should then be assembled and replaced in the relevant library, like so:- SET /UIC=[1,24] MAC DEVOV=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,[12,10]DEVOV LBR SAV/RP=DEVOV CHAPTER 2 AMPEX Cartridge Drives a) Hardware. The AMPEX Cartridge Drives are identical to the RK11 Cartridge Drives, except that they have twice as many Tracks per Surface. The effect of this, as far as the software is concerned, lies in the contents of the Disk Address Register. For the RK11 bits 5 to 12 represent the cylinder number, and bits 13 to 15 the drive number; for the AMPEX bits 5 to 13 represent the cylinder number, and bits 14 to 15 the drive number. As SYSTIME systems are sold with both RK11 and AMPEX drives (though they must not be mixed on the same system) these patches are not included in the basic software on the distribution disks (though, for RSX-11M, variant 'AMPEX' sources exist on the disk). These patches have only been tested for RSX-11M. b) RSX-11M. There are three changes necessary for the AMPEX mods:- 1) [11,10]DKDRV.MAC. As with the SMDs this is the module that holds the driver for online operation. For AMPEX drives:- After 20$: after DKINI: change ASR R2 to ASRB R0 Note that the version of this file on the Distribution Disk has this change conditionalised under the symbol DK$AMX. 2) [12,10]SPCDRV.MAC. As for SMDs this module contains a special driver for use by SAV and BOO. For AMPEX drives:- After DKLLEN: change BISB DKFUN+1,$DKDAR+1 to ASLB DKFUN+1 BISB DKFUN+1,$DKDAR+1 ASRB DKFUN+1 and after DK2: change BIC #17777,RKDA(R5) to BIC #37777,RKDA(R5) and after DKEXIT: change BIC #17777,R4 to BIC #37777,R4 and change the first occurrence of ROL R4 to ; ROL R4 This file should then be assembled and replaced in the relevant library, like so:- SET /UIC=[1,24] MAC SPCDRV=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,[12,10]SPCDRV LBR SAV/RP/-EP=SPCDRV Note that on the Distribution Disk a re-assembled file exists under the name [1,24]SPCDRVAMX.OBJ which may just be replaced in the library. 3) The UCBs. As for SMDs the UCB for an RK11/AMPEX contains the number of blocks on the device. During System Generation the user should pause to edit the 'Executive files' and change the value in the UCB for each drive from 4800. to 9600. A comment is output by SYSGEN.CMD on the Distribution Disk just before the 'Do you wish to edit any of the Executive files' question reminding the user of what to do for AMPEX drives. (Note that this comment will not appear if the SYSGEN is being done with a Saved Answer File.) c) RSX-11M-PLUS Here again the changes are much the same as for RSX-11M. 1) [11,10]DKDRV.MAC After 15$: after DKINI: change ASH #13.,R1 to ASH #14.,R1 2) [12,10]SAVDK.MAC After DKLLEN: change BISB DKFUN+1,$DKDAR+1 to ASLB DKFUN+1 BISB DKFUN+1,$DKDAR+1 ASRB DKFUN+1 and after DK2: change BIC #17777,RKDA(R5) to BIC #37777,RKDA(R5) and after DKEXIT: change BIC #17777,R4 to BIC #37777,R4 and ASH #-5,R4 to ASH #-6,R4 This file should then be assembled and replaced in the relevant library, like so:- SET /UIC=[1,24] MAC SAVDK=[1,1]EXEMC/ML,[11,10]RSXMC/PA:1,[12,10]SAVDK LBR SAV/RP/-EP=SAVDK 3) [27,10]HRSIZ.MAC. As for the SMDs this sets up the size in the UCBs. In the device table change:- SIZE 0,4800.,12.,2,200. to SIZE 0,9600.,12.,2,400. This file should then be assembled and replaced in the relevant library, like so:- SET /UIC=[1,24] MAC HRSIZ=[1,1]EXEMC/ML,[11,10]RSXMC,[27,10]HRPRE,HRSIZ LBR SAV/RP/-EP=HRSIZ 4) The UCBs. As for RSX-11M. CHAPTER 3 SYSTIME MKII/MKIII Terminals a) Hardware. The full-duplex terminal driver on RSX-11M and RSX-11M-PLUS supports a wide range of terminal types, for use in identifying terminals (SET /VT52), for setting default terminal characteristics (SET /VT52=TT0:) and for 'terminal-independent cursor positioning'. As the Cursor Positioning Sequence for the SYSTIME MKII is different to other terminals (30.,X+32.,Y+64.) extra code is needed to support it. In addition a SET /MKII interface has been added to MCR/TTDRV to set the terminal to 80 characters wide, 25 lines long and to be a CRT. At this level SYSTIME MKIIIs are identical to MKIIs and so the same interface can be used for each. As most SYSTIME systems are sold with SYSTIME terminals these changes are already in the software on the Distribution Disk (for RSX-11M). The changes have been tested for RSX-11M. b) RSX-11M and RSX-11M-PLUS. Although the patches have so far only been implemented on RSX-11M, the files are almost the same on RSX-11M-PLUS and so the changes required should be identical. In each case four files need modification:- 1) [12,10]SPROVFDT.MAC (SPROV.MAC on RSX-11M-PLUS) This module processes the SET /MKII=TTn: command. In the table TRMTYP, before .BYTE 0 insert .ASCIZ /MKII/ and at the end of the table KEYPRO insert .WORD SETMK2 and at the end of the table TCODES insert .WORD T.USR0 and immediately before SETVT1: INC INDEX insert SETMK2: INC INDEX During System Generation the Full-Duplex Terminal Driver versions of various MCR modules are replaced in the relevant library, if the FD driver was requested. Thus this file should be re-assembled as follows:- SET /UIC=[1,24] MAC SPROVFDT=[1,1]EXEMC/ML,[11,10]RSXMC,[12,10]SPROVFDT MAC SDSOVFDT=[1,1]EXEMC/ML,[11,10]RSXMC,[12,10]SDSOVFDT MAC SETOVFDT=[1,1]EXEMC/ML,[11,10]RSXMC,[12,10]SETOVFDT PIP MCRTTFD.OBJ/NV=SPROVFDT.OBJ,SDSOVFDT.OBJ,SETOVFDT.OBJ 2) [12,10]SDSOVFDT.MAC (SDSOV.MAC on RSX-11M-PLUS) This module handles the MCR command SET /MKII. After T14: add T15: .ASCIZ /MKII/ At the end of the table TTYTYP insert .WORD T15 At the end of the table TCODES before TCODLN=.-TCODES insert .WORD T.USR0 The file should be re-assembled as above. 3) [11,10]TTDAT.MAC This module defines the types of terminals in the system, and their cursor positioning sequences. After SPDZ: change TTPHI == T.SCR0 to TTPHI == T.USR0 and TERM T.VT05 WID=72.,...,SCP=1,CUP=1 to TERM T.VT05 WID=72.,...,SCP=1,CUP=0 and after the line TERM T.SCR0 WID=132.,LEN=66. insert TERM T.USR0 WID=80.,LEN=25.,SCP=1,CUP=1 and change the table CP1:: to CP1:: .BYTE 24. .BYTE 30.,0,0 4) [11,10]TTSUB.MAC. This is the module that actually does the 'terminal-independent cursor psoitioning'. Change the code after CPOS1 to:- ADD #1001*40,R2 MOVB R2,CP1+2 SWAB R2 MOVB R2,CP1+3 MOV #3,R2 MOV #CP1+1,R3 TST (SP)+ CLZ BPL 3$ DEC R3 INC R2 3$: RETURN Systime Limited Processing errors Page Error description 1 Cannot decipher Printer Control block keyword, block ignored