Set the IG bit if you are not using Graphics and the system seems slow. Setting the IG bit causes all graphics function to not display. 

Don't try to run lots of stuff simuiltaneously. 

Don't try to do a sysgen and send all the output to the printer. The system slows as the output on the printer gets bigger. On a 1400mhz celeron, it can slow to 30 KIPS. Normally, 290 kips.

For vdos 4.3, dont do a sysgen while others are logged on.. logoff all but the terminal doing the sysgen. The assembler will fail if it can not satisfy its memory requirements. a few files need z=95... The default Versados 4.3 does not see extra memory boards, so barely enough to run.

Sysgen a versados 4.3 with two HDs and two floppies, with extra memory described...
Sysgen versados 4.4 and 4.5 with two HDs and two FDs. (already can see extra memory)

try not to use the vme10 screen keyboard except when needed... use a terminal connected to a mvme400.

if you run the spooler, don't output to the printer (keep offline) until the system is lightly loaded... 

(Emulated I/O devices are done by the Emulator(single thread), so they steal time from the emulator's execution unit )

Try to re-direct output of most programs to the printer. The printer can hold 2gb of characters. the TTY about 20k and the CRT and the vme10 screen, well... one screen. Use the Printer's  Print to file instead of Print to screen.

Versados

=DIR VME10..,#PR

Unix 

#ls /etc >/dev/lp0

WARNING - the unix printer filter converts BS to CR followed by enough SP to position over the last Character output (i don't know how to change) (The printer's display is an RTF display and does not support overprint)

This problem manifests when sending the output of manprog to the lp.

The unix print problem of man pages can be fixed several ways (two here + sugestion)..

One - edit the man shell script. Add -b to the line

  lp|2631)	g="|col" ;;

to make it 

  lp|2631)	g="|col -b" ;;

Two - simply do this when sending man pages to the lp

man man |col -b >/dev/lp0

note that the output is filtered by col twice, once in the man shell script and then by you.

Sugestion -  write a new lp filter specifically for the emulators printer features.(exercise left for reader)


Use the host system's editors to edit files, and then use DLSA (DownLoadSourceAscii)(or DLTXT or DZ)(versados) or Dropzone, Uload, Dload (CPM) to transfer the files to the emulator. This aleviates the tedium of using the slow screen/keyboard. 

Provided is a unix program to do simple downloads, using a special emulator only instruction to access memory without using the MMU

Unix has NO Dropzone or Uload  programs yet. To do an Up Load, you can output files to the Printer, and set the printer to write to a file instead of the screen. 

FOLLOWING is BEFORE i added special bypass MMU instruction. (i simply don't know how to access the hardware. Release 1v2.8 and Release 2v1.0 do not support the physaddr option on shmget.  The manual says that /dev/mem will NOT access hardware registers, only RAM, although i tested and it does access the SCM IO memory, but unimplemented locations return Read Error. There's no way i can write a unix driver. To download text into the emulator while running unix...run  ed (editor) on a emulated TTY or CRT (connected to a 400 card) then enter insert mode (or Append, depending on what you need to do) and Paste as Input the text you want in the file (up to 4k at a time). Make sure that lines are not too long.

NOTE - the sliders on the main emulator form are to select the delays associated with system interrupts and to select how often the emulator releases control to the OS. (needed for CHICAGO, and usefull with CAIRO)

T24RD

The T slider determines how often the emulator releases control to the Host OS. It is in instructions. 

The 2 slider determines how many instruction pass before an interrupt for the SN2661 occurs after the funtion that causes the interrupt.

The 4 slider determines how many instruction pass before an interrupt for the MVME400 occurs after the funtion that causes the interrupt.

The R slider determines how many instruction pass before an interrupt for the RWIN occurs after the funtion that causes the interrupt.

The D slider determines how many characters are displayed on the VME10 Screen before controll is released to the  Host OS.

NOTE - setting these values too low may cause failure in the guest OS. Versados handles interrupts by servicing as fast as possible... the interrupt service routine simply services the Interrupt and then schedules a back-ground routine to actually process the interrupt. If too many interrupts occur and the background activation table fills, then interrupts will be tossed. (or the OS crashes) There must be emough time for the OS to do all servicing and proccesssing of all interrupt, before the Background table fills.

good working initial values are CPU=1024(10) 2661=4096(12) 400=512(9) RWIN=128(7) DISPLAY=0(0)


If using VersaDOS 4.3, the initially installed Versados only has the real memory of the VME10 in partitions. 0-60000  ... This may NOT be enough memory to do a SYSGEN without problems. 

If you sysgen in the extra disks (#hd01 and #fd03) wiothout adding extra memory, then try to run another sysgen, when SYSCMD.CD gets to the point where it assembles XOSLIST.AG, chances are that it will abort trying to allocate Z=95... There's not enough memory , now. You can try to run the sysgen again, and it might work. However, it is probably best to make sure that you add memory and the disks in the first sysgen. 

If you add only the disks, then you can fix it...It is NOT easy .... edit the SYSCMD.CD file and add a PATTERN MATCH for SYSGEN at the location immediately after the Assembly of XOSLIST. 

Something like...

* STARTHERE

then make a second SYSGEN.CF file called SYSGENR.CF and add the S option to the SYSGEN invocation, like...

=SYSGEN VMES10.\5,\6,\7;ST=350
STARTHERE

this will make SYSGEN skip everything up to the STARTHERE pattern.

Since the assembly of XOSLIST is skipped, you must, before restarting with the SYSGENR.CF file, actually assemble it your self.

=ASM  VMES10.XOSLIST.AG,VMES10.OSLIST.RO,SYSGEN.TF;Z=095



I solved this problem by doing a sysgen and increasing the MEMEND2 (in SYSGEN.CD) to E00000..probably more memory than needed, but seems to work OK. After fixing... the Assembler was happy with Z=1000.
(note -  the assembler is a pascal program)


VersaDOS 4.4 and 4.5 already have the partions set up to include memory up to 280000..(initialization skips the hole at 60000 - 180000, if not installed) this is more than enough to do big assemblies during sysgen.


Defragmenting a Versados HD.... 

There is no program to defragment a Versados disk "in-place".

Make a target HD the same size as the source disk that you want to defrag.

Put Target disk into second drive, and use INIT to initialize.

=INIT #HD01;V

Copy everything from source to target.

=COPY SYS:*.*.*.*,SYSB:*.*.*.*;NCUP

At this point, you have a defragmented disk called SYSB: 

Two pathes can be taken...

ONE... reboot using the SYSB: as system disk... then INIT the SYS: disk and copy all files back as above. SYS: is now your defragged system disk. Next, Reboot; and use SYS: as system disk, with SYSB: as a backup.

WARNING - don't destroy the IPL.SY pointers in the VID. (see manuals)

TWO... use dump to rename the SYSB: to SYS: and the use repair to fix checksum. 

An indexed file type ID or IK, does bifurcation as entries are added that are to big to fit in the unused space of a data block. If a record is too big to fit, the block is divided into two blocks, each with half the records that were in the old block, then the new record is added. If the new record is still too big, then another block is allocated. 


unix r1v2.8 ---

before running the shutdown script, do a few sync's.

unix r2v1.0 ----

I do not have installation disks for unix sysv68 r2v1.0. 

I imaged the Hard drives of two real vme10s to get r2v1.0 ... 

versados 4.60 ----

my versados 4.60 disk set is defective.... will require professional equiptment to image... any takers...

But, i did image a partial install on a 15MB disk. 

---

The Z80 Emulator for windows, uses simular emulatoed IO devices. You may find information in the z80 emulator's help file to help youu use the Io devices in the VME10 emulator. also there's many terminal emulation configuration files for several old terminals.
