RLV12 V2.0 Command Interface
RLV12 Control Interface
The RLV12 Emulator provides a serial interface with the default settings 8-bit data, no parity, one stop bit and baudrate 115200. You can enter commands to control the interface, display the status and control partitions, units and logging. You can use keywords and parameters to enter commands. the keywords are not case sensitive but parameters like switches and options are case sensitiv. Only backspace is implemented else no command line editing or recalling is (yet) implemented. Most commands can be abbreviated.
Overview of Commands
show
cd
pwd
dir
type
fdisk
attach
detach
help
activate
initialise
logging
load
readinit
dump
bootrom
$
show
You can display the current status of the units. A unit is either not attached, attached to a file or attached to a partition
]show unit
Unit 0 (0x0EA0) is attached to file (0x2C14) /DISKRSX/rsx11mphack.dsk
Fragments of file
Size:00005000 Start:00098394
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Unit 1 (0x0EB0) is attached to partition 02 (0x2FDE) starting at sector 0x00005079
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Unit 2 (0x0EC0) is not attached
Unit 3 (0x0ED0) is not attached
]
With the show partition you can display the partitions that have been found when the SD-Card was inserted
]show partitions
Partition 01 (pcb:0x2FF0) starting at sector 0x0000003F MBR at 0x00000000 is not attached
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Partition 02 (pcb:0x2FDE) starting at sector 0x00005079 MBR at 0x00000000 is not attached
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Partition 03 (pcb:0x2FCC) starting at sector 0x0000A0B3 MBR at 0x00000000 is idle offset 0x0108
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Partition 04 (pcb:0x2FBA) starting at sector 0x0000F0ED MBR at 0x0000F0B3 is idle offset 0x0108
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Partition 05 (pcb:0x2FA8) starting at sector 0x00014127 MBR at 0x000140ED is idle offset 0x0108
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Partition 06 (pcb:0x2F96) starting at sector 0x00019161 MBR at 0x00019127 is idle offset 0x0108
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Partition 07 (pcb:0x2F84) starting at sector 0x0001E19B MBR at 0x0001E161 is idle offset 0x0108
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Partition 08 (pcb:0x2F72) starting at sector 0x000231D5 MBR at 0x0002319B is idle offset 0x0108
Drive has 0x00005000 blocks, 0x28 sectors/track, 0x02 tracks/cylinder and 0x0200 cylinders
Drive type/flags and name 0x01/0x00 RL02
Partition 43 (pcb:0x2F60) starting at sector 0x0002820F MBR at 0x000281D5 is volume C:
Label .................: "FILES "
Bytes per Sector ......: 512
Sectors per Cluster ...: 16
Number of FATs ........: 2
Partition Size ........: 826'560
]
Show Version will display emulator version the firmware version and the compilation date. In adition the type and version of the CPLD interface is shown. This information is also displayed during initialisation.
]show version
Qbridge RLV12 Emulator V2 Vers 0.9.6 May 18 2024 CPLD Interface 22 active
CPLD Interface is: 22
]
Show status gives an overview of internal signals and the current content of the RLV12 status registers
]show status
CRDY....:1
IRQST...:0
INTQ....:1
INTI....:1
IntQCnt.:00
IntICnt.:00
InitCnt.:00
BusyCnt.:22
IACK....:0
DMG.....:0
ABORT...:0
GPIOR0..:EF
SREG....:C0
CSR.....:000200
BAR.....:000000
DAR.....:000000
MPR.....:000000
BAE.....:000000
]
With the show bootrom command you can display the status of the boot ROM emulation.
]show bootrom
Boot ROM is disabled.
]
File Commands
Before you can use the SD-Card you need to prepare it. This is disscussed in the next chapter. In general the SD-Card is a MBR formatted FAT-16/32 volume, but you can also add partitions that represent diskimages. If multiple FAT-16/32 volumes exist only the first will be mounted when you insert the SD-Card. You can use the following commands to expolre the FAT-16/32 volume
DIR
Displays the director of the current working path. When the SD-Card is inserted the working path is set to ‘/’.
CD
Change directory allows you to set the working directory. Using ‘cd ..’ goes one level down and you can specify any valid path as in Linux.
PWD
Print working directory displays the path of the current directory
Example
>dir
Directory of /
A C:00000000 <Volume> FILES
A H C:00000004 4'096 ._.Trashes
C:00000145 <DIR> INCLUDE
H C:00000003 <DIR> .Trashes
H C:00000005 <DIR> .Spotlight-V100
H C:00000461 <DIR> .fseventsd
C:000000F7 <DIR> Qbridge11-v2-1
C:00000450 <DIR> diskimages
>dir include
Directory of /INCLUDE
A C:00000145 <DIR> .
C:00000000 <DIR> ..
A C:00000149 396 monitor-subtbl-v1-3.asm
A C:0000014A 1'251 macro-library-v1-0.asm
A H C:00000163 6'148 .DS_Store
A H C:0000014B 4'096 ._.DS_Store
A C:0000016A 26'522 SD-Card-IO-v2-0.asm
A C:00000165 448 monitor-chartbl-v1-3.asm
A C:00000166 8'436 malloc-v1-0.asm
A C:00000176 4'274 print-v1-1.asm
A C:0000017B 13'770 monitor-v1-6.asm
C:00000171 <DIR> FAT
A C:000001A6 12'591 tparse-v1-1.asm
>dir include/fat
Directory of /INCLUDE/FAT
A C:00000171 <DIR> .
C:00000145 <DIR> ..
A C:00000178 3'668 FAT-DEFS.ASM
>cd include/fat
>dir
Directory of /INCLUDE/FAT
A C:00000171 <DIR> .
C:00000145 <DIR> ..
A C:00000178 3'668 FAT-DEFS.ASM
>cd ../..
>pwd
/
>
TYPE
Type allows you to display the contents of a test file. Note that no check will be made if this is a valid text file.
>type include/fat/fat-defs.asm
;--------------------------------------------------------------------------
;
; Officially the FAT type should be determined by calculating the number of clusters
; needed to address a volume, i.e. devide the total number of sectors by the number
; of sectors per cluster. If the number is less than 4085 then it is a FAT12 volume
.
.
.
.equ A_Directory = 4 ; File is a directory
.equ A_Archive = 5 ; The file has been archived
>
DUMP
Dump allows you to dump the contents of a block of a file (not yet implemented), partition (not yet implemented) or unit. The command dumps the content of the sector in octal and optionally decodes the content to RAD50 or displays the content in ASCII
dump rl0
dump -r rl0
dump -c rl0
dump -b<nn> rl0
There is not too much syntax check. Options can be specified multiple times. The ‘-b’ option can be appended with a block number as always the number is interpreted as a decimal number by default but you can prepend the number with 0 to specifiy an octal value or 0x to specify a hex value.
>dump -c -b1 rl0
000000: 000000 170000 007777 000000 000000 000000 000000 000000 '................'
000020: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000040: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000060: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000100: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000120: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000140: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000160: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000200: 000000 000000 000037 000002 000005 000000 000104 102000 '............D...'
000220: 075131 062000 075273 000033 000000 031215 102000 071677 'Yz.d.z.....2...s'
000240: 140761 075273 000120 000000 031215 000000 000000 000000 '...zP....2......'
000260: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000300: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000320: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000340: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000360: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000400: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000420: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000440: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000460: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000500: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000520: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000540: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000560: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000600: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000620: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000640: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000660: 000000 000000 000000 000000 000000 000000 000000 000000 '................'
000700: 177777 000000 000000 000000 000000 000000 000000 000000 '................'
000720: 000000 000001 000006 107123 052122 032526 053440 051117 '......S.RTV5 WOR'
000740: 020113 020040 046122 020062 047527 045522 020040 020040 'K RL2 WORK '
000760: 042504 051103 030524 040461 020040 020040 000000 000000 'DECRT11A ....'
>
Most likely more options will be added as needed in the future.
HELP
You can also attach units to disk image files on the FAT-16/32 partition. If you
don’t remember the syntax just type help
.
>help
This is the preliminary help. The following commands are available
DOS like commands
dir
cd
pwd
show commands
show units
show partition
show logging
units commands
detach <unit>
attach <unit> partition<n>
attach <unit> <file>
partition commands
activate partition<n>
initialize partition<n>
initialize <file>
logging control
logging - display active logging options
no logging - disable all logging optoins
[no] logging <unit>
[no] logging units
[no] logging registers
<unit> RL0, RL1, RL2, RL3
>
LOAD
This will load the code of the boot ROM image of 512bytes to the PDP‐11 Memory address 100000(8). This boot images is take from the Plessey Peripherals Multifunction interface and just conventiently implements the boot code for various devices, like DK, DD, DL, MM, MT etc.
>load 0100000
>
The real bootROM image of this card consists actually of a ROM at 173000(8) and another at 165000(8). The code is position independant but it expects that they exist both in memory, however as the DL boot code is in the first ROM only the first ROM is loaded. Using a device name that is handled in the second ROM will fail and crash the system. Also the code is loaded into RAM and not at it’s original position. But still I felt it to be very useful in case I have a system without bootrom because at least the part that allows you to boot from DL0..3 is completely within the first part of the ROM.
If the PDP-11 you use implements ODT you can now execute the image. You pretty much only type the code for the device and the unit. The syntax would even allow to specify a non-standard CSR address.
@?
@100000g
$DL3
RSX-11M-PLUS V4.6 BL87 512.KW System:"HACK11"
>RED DL3:=SY:
>RED DL3:=LB:
>RED DL3:=SP:
>MOU DL3:"HACK11"
>@DL3:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
SET -- Inquire cannot determine terminal type
>;
>; Please ignore any random characters that may have printed on your
>; terminal just now. They came from a SET /INQUIRE=TI: command.
>; Evidently your terminal does not recognize escape sequences.
>; This will not affect the running of this command file.
>;
>* Please enter time and date (Default:18-OCT-2020 12:56) [S]:
BOOTROM
The bootrom command allows you to dynamically enable or disable the
bootrom at IO‐page location 173000
. You can also optionally
write enable or disable the ROM reagion, so you can make modificaitons
to the ROM via the console with the help of ODT.
In addition you can load an arbitraty file from the FAT volume as the ROM image. This will take the firt 512bytes from the file specified or less in case the file is less than 512bytes long and place them to the ROM image.
Per default the ROM image is a copy of the Plessey Multifunction card
ROM image at 173000
.
For the moment the bootrom is disabled during startup
]show bootrom
Boot ROM is disabled.
]
Accessing the ROM will now result in a bus timeout. This is handy if your system already has a bootrom, e.g. if you have a PDP-11 with diagnostics ROM or with a multifunction card with it’s own ROM.
@17773000/?
@
You can activate the bootrom using the bootrom command
]show bootrom
Boot ROM is disabled.
]bootrom
]show bootrom
Boot ROM is enabled and read-write.
]
Here you can see how you can examine and deposit data to the ROM on the console via ODT
@17773000/000005 17777
@/017777 5
@/000005
@
You can disable writing
]bootrom ro
]show bootrom
Boot ROM is enabled and read-only.
]
Writing will not cause a bus timeout but the ROM image will not be updated.
@17773000/000005 0
@/000005
And you can write enable the bootrom again
]bootrom rw
]show bootrom
Boot ROM is enabled and read-write.
]
And last but not least you can load a file form the FAT partition as the contents of the boot ROM
]type RLV12.INI
[RLV12]
attach rl0 diskrsx/rsx11mphack.dsk
show version
show partition
]bootrom load RLV12.INI
]
No check is done on the contents and you can see the result on the console
@17773000/051133
17773002/053114
17773004/031061
17773006/005135
17773010/072141
17773012/060564
17773014/064143
17773016/071040
17773020/030154
17773022/062040
17773024/071551
17773026/071153
17773030/074163
@
You can reset the boot ROM to thecontent it has at power-up
]bootrom reset
Resetting Boot ROM to built in ROM.
]
In ODT you can just execute the ROM address 173000
and then type the unit
you want to boot
@173000gˇ
$DL0
RSX-11M-PLUS V4.6 BL87 1024.KW System:"HACK11"
>RED DL:=SY:
>RED DL:=LB:
>RED DL:=SP:
>MOU DL0:"HACK11"
>@DL:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
SET -- Inquire cannot determine terminal type
>;
>; Please ignore any random characters that may have printed on your
>; terminal just now. They came from a SET /INQUIRE=TI: command.
>; Evidently your terminal does not recognize escape sequences.
>; This will not affect the running of this command file.
>;
>* Please enter time and date (HH:MM DD-MMM-YYYY) [S]: 18:02 19-may-2024
>TIME 18:02 19-may-2024
>ACS SY:/BLKS=1024.
>CON ONLINE ALL
>ELI /LOG/LIM
>CLI /INIT=DCL/CTRLC/DPR="<15><12>/$ /"
>INS LB:[1,1]RMSRESAB.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBL.TSK/RON=YES/PAR=GEN
>INS LB:[1,1]RMSLBM.TSK/RON=YES/PAR=GEN
>INS $QMGCLI
>INS $QMGCLI/TASK=...PRI
>INS $QMGCLI/TASK=...SUB
>QUE /START:QMG
>INS $QMGPRT/TASK=PRT.../SLV=NO
>QUE LP0:/CR/NM
>START/ACCOUNTING
>CON ESTAT LP0:
>QUE BAP0:/BATCH
>QUE BAP0:/AS:BATCH
>@ <EOF>
>tim /rom
Maius XIX, Anno Domini MMXXIV XVIII:II
The moon is waxing gibbous. Today is Sunday.
>