RLV12 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
dir
type
pwd
fdisk
attach
detach
$
help
activate
initialise
logging
load
readinit
dump

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

Load allows to load data from the RLV12 Emulator to the PDP-11 Memory. For the time beeing this command only accepts a memory address

>load 0100000

>

This will load a small 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.

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.

If the PDP-11 you use implements ODT you can now execute the image.


@?
@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]: 

I have plans to add a file name to this command so you can actually load any binary file from the FAT-16/32 volume into the PDP-11 memory.