The disk image, WD01.IMD is a Versados disk Volume WD01: user number 500



DLSA is the DownLoad for Source Ascii files. ID RECL=0 KL=0 FABL=1 DBL=4
DLTXT is for TEXT files                      ID or SQ RECL=0 KL=0 FABL=1 DBL=4 OR 8
DLRO is for Relocatable Object Modules       SQ RECL=256    FABL=1 DBL=4
DLMX is for S-Rec files                      SQ RECL=0      FABL=1 DBL=4
DLLO is for Load Modules.                    CN 

(note it is usually OK to make files with the "wrong" DB size and/or wrong FB size as long as the DB size is big enough for the largest record, however, some programs that expect the "right" sizes may fail if they do block IO) 

DZ is DROPZONE

DZ will use what ever filenames are in the DROPZONE, you can specify the VOL:USER.CATALOG where you want the files to be placed.

Dropzone has a table of file specs (based on extension) and will check file specs to ensure they match. Most mismatched specs will cause DZ to ask to either DELETE or SKIP. If only, the FAB size and DATA BLOCK size mismatch, you are also given the oportunity to Overwrite. If specs match then you can either DELETE, OVERWRITE or SKIP, if the file already exists. 

If you choose DELETE, the file will be deleted and a new file, with the right specs, created. 

DLSA and DLTXT will ask to Overwrite, Delete or Skip, if the file exists. They do not check for mismatched specs, so chances are they will sometimes abort with some errors.

Both DLSA and DLTXT can run in a chain file. When in a chain file, they Assume OVERWRITE, if the file exists.

Typically, you will use DLSA or DLTXT to download source files that are edited using windows editors. You can create a chain file to download and tehn assemble, and then link the source file The others are not really useful in chain files. 

DLRO, and DLMX also, do not check for mismatches. 

WARNING - DLRO and DLMX do NOT delete a file. They overwrite it. This means that if the file is not already the right type(ID,SQ, RECL=0, RECL=xx), chances are, something will fail. You might want to delete the file first if you know the type is wrong. 

DLLO always deletes the file, if it exists, so it can change the size.

DLTXT has a table of file types and attempts to select the right type based on the extention. This should reduce the chances that a file will be created with the wrong type. However, if an existing file's type is not correct, DLTXT will NOT change it, unless the file is deleted. Overwritting leaves an existing file's type unchanged. It is possible for errors to occur if the specs are wrong.

(NOTE - DLTXT will also correctly process MX, and List Files - sequential text)

ULTXT is for uploading text files .SA .LL .LS .CF .AI ETC....
   ID RECL=0 KL=0 and SQ RECL=0 formatted ASCII (expands spaces and adds CR LF 
   to each record)
ULBIN is for uploading binaryfiles like .LO .RO .DB .RS  ETC...  
   CN or SQ RECL=256 max  (image transfer - nothing added)

(NOTE - ULTXT and ULBIN will work on any file type, they simply proccess the file as though it is Text or Binary. Both, limit the record size to 256 bytes, so Pascal Code files wont work with them)

WARNING - some files might require a special program to Download or Upload. For instance .... the ERRORMSG.SY file is a IK KeyL=4 RECL=0 text file. 
Keys are binary formated, but the rest of the line is ascii formatted. Also uploading produces something that may not be usefull, since the keys are binary.

first open a DLOAD file via the File->DLOAD menu item, then in versados...

=DLTXT <filespec>;<opt>  opt=A|C|F|P|W
=DLSA <filespec>;<opt>   opt=A|C|F|P|W
=DLMX <filespec>   
=DLRO <filespec>;<opt>   opt=T|P
=DLLO <filespec>;<opt>   opt=T|P

or open a ULOAD file via the File->ULOAD menu item

=ULTXT <filespec> 
=ULBIN <filespec> 

  Both DLRO and DLLO ask if OK to PAD or TRUNCATE last record if not MOD 256   It is best to say NO, but it is your call.

  DLMX converts tabs to a single space. (should not be tabs in MX files)

<filespec> is a versados filespec as described in the Data Management manual.

<opt> is a single character

 T for TRUNCATE last sector if not MOD 256 (default)
 P for PAD last sector if not MOD 256

if no option then Truncate

 A for Assember tabs 1,11,18,37
 C for COBOL tabs    1,6,9,12
 F for FORTRAN tabs  1,7
 P for Pascal tabs   1,4,7,10,13,16,19,22,25,28,31,34,37,40,46,49,52,55,58,73
 W for Windows tabs  1,9,17,25,33,41,49,57,65,73  (default Wordpad/Notepad tabs)

if no option then tabs default 1,10,20,30,40,50,60,70,80

any tabs beyond the last tabstop are converted to one space. (NO WRAP)

The file is read from the windows file system, via the emulator's DLOAD file, and written to a Indexed Sequential file, with duplicate Keys, Key length = 0, variable length records.

up to 200 characters can be read from the windows file system per line

when the line is written to a versados file, it is formatted as ASCII, blanks are compressed (tabs become compressed blanks) 

For ID RLEN=0 KEYL=0 files the EOL is not stored; instead, lines are stored as variable length records with the length of each record stored in the data block as the first big end-ian 16 bit value.

| 16 bit Length | rec1 data bytes  | 16 bit Length |  rec2 data bytes  | ....

NOTE - a CPM centric feature of the DLOAD and DROPZONE port, causes a $1a to be returned at EOF. The $1a must NOT be added to the Versados file.

(a bug in the VDOSFS prior to VDOSFS V1.0.4 does not allow Motorola disk attributes, only IBM disk attributes) 


DLV1-DLV4

The programs DLV1 thru DLV4 are prior generations of the download program.

They are incomplete and only good enough to load the next version.

To develop, i first used the VMEs10's CRT editor (E.LO) to create the first version, DLV1. 

DLV1 only downloaded a text file (crudely and buggy) to a file called DOWNLOAD.SA..

After i got DLV1 working, i then used Windows to edit the next version. 

Each new DLVx was used to download the next. 



In the GRAPHIC catalog, there's two programs to help speed up the system when graphics is not used.

GSEG G   = will get a Globally Sharable, Permanent Segment in SESSION &4, containing the VME10's Graphic RAM 
GSEG D   = will delete the segment (you must delete , before the GRAPHICS SERVER will work)

IG 1 will set the VME10's IG bit in CR1 to 1, disabling the graphic hardware
IG 0 will clear the IG bit

Either IG or GSEG can be used to speed up the system.  Why...When graphic ram is used to load and run programs the graphic hardware slows the system significantly. Using GSEG to lock up the Graphics RAM prevents the system from using graphic ram to load programs. Using IG 1 to disable the graphic RAM, will prevent the Graphic hardware from slowing the system; the Graphics RAM becomes regular RAM.

GSEG is a system task
IG is a non-system task

Add one to your UPSYSTEM.CF file

(NOTE - on vme10 emulator v1.0.4 and below..the disk light stays on during the IG  program..no disk access is actually occuring)



To put on a hard drive ....

As user 0, Validate User 500

=VALID 500



logon as 500

insert into FD02 and mount

=MT #fd02

Copy the files to the HD

=COPY WD01:.*.*.*,*.*.* 

If you wish, you can put the executables in user 0 so that they can be run by all users.

=copy wd01:500.download.*.lo,sys:0.&.*.lo
all or select? (choose select, so you can omit dlv1.lo-dlv4.lo)

=copy wd01:500.upload.*.lo,sys:0.&.*.lo

=copy wd01:500.graphic.*.lo,sys:0.&.*.lo

=copy wd01:500.dropzone.*.lo,sys:0.&.*.lo

(WARNING - The DLOAD,ULOAD and DROPZONE IO devices are not protected for multi-user. The IO is accessed in a Memory Mapped I/O segment with no semaphore to protect it, DO NOT run multiple instances of these programs)

 
(STORY - all these programs are HACKs. It has been almost 30 years since i last used Versados. Late, very late, one night, while running the Chain file to re-build Dropzone, the program escaped from the Emulator, found MS Encarta, opened the World Atlas, navigated to Japan and was attempting to delete Tokyo... its a monster -- true story :-) 