DWEEBS - applications for DWLOAD - DriveWire

A place to discuss everything Dragon related that doesn't fall into the other categories.
pser1
Posts: 1668
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

DWEEBS - applications for DWLOAD - DriveWire

Post by pser1 »

Hello

This is a thread in wich we could share the programs we make that work together with DWLOAD, the Tormod's program that allows loading any file from the PC world to the Dragon,
if you use the patched ROM instead the standard one or use the HighRam version.

This very first message is dedicated to my first dweeb, its name: LROM

The goals of this dweeb are:
1) allow the user to run any ROM file from the archive, loading and running it at $C000. The syntax for this is:
DLOAD"LROM""ROMName (no need to put the .ROM extension)
It adds the .ROM extension if none is present in the command line
If you have quite a lot of them, it is a good idea to create a folder inside the drivewire folder, I named it ROM (not that strange!)
Then you have to call the ROMs inside the folder like this:
DLOAD"LROM""ROM/ROMName
2) allow the user to save the ROM to a real diskdrive (if desired). The syntax for this is:
DLOAD"LROM"N"ROMName
in this case you just need to know the ROM length and do:
SAVE"ROMName",&H3000,&H3000+length,&H3000
Later you can load it to RAM and with the help of a small machine language routine switch to MAP1,
copy the ROM from $C000 on and finally jump to it

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pre-requisites:
- The ROM must have a length multiple of 256 bytes (due to DriveWire). In case you have ROMs that are not that length, if you use Linux or MacOS-X you may use the pad256 script
that Tormod loaded in the "DWLOAD - DriveWire for everybody" thread.
If you are a Windows user, you may use a java application (uploaded here) with the name: Pad256.jar
- The computer MUST have 64k because the program needs to switch to MAP1 (all RAM) and copies there the Basic Interpreter as well as the ROM program to be executed
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The cases with length equal to 16384, would overwrite Dragon I/O area. To avoid this, the dweeb loads from DW4 to RAM the whole 16k so that you could copy all of it,
but will only write into upper RAM (MAP1) 16k-256bytes.

Note:
It will accept the use of variables, for instance
A$="APP/LROM"
B$="ROM/ASTRO"
DLOADA$B$ will start it, while
DLOADA$NB$ will just load it

=====================================================================================================

Pad256 (JAVA utility)
- Allows multi-file selection from a directory/folder (any kind of file) by keeping Control pressed (windows style)
- Converts each one to DW compatible by adding the needed nulls to make its length multiple of 256
It creates a new file by adding -DW4 before the ".ext" (you can rename it later)
If the new file already exists, notifies this and doesn't do anything on it.

- on finishing all of the selected files, it goes back to the file-select window.
Cancelling will return to the system

cheers
pere
Attachments
LROM.zip
The dweeb
(525 Bytes) Downloaded 1174 times
LROM-DRM Source.zip
The source file
(3.74 KiB) Downloaded 1168 times
Pad256.zip
The java utility to make ROMs compatible with DW
(3.5 KiB) Downloaded 1206 times
Last edited by pser1 on Sun Nov 09, 2014 1:03 am, edited 1 time in total.
pser1
Posts: 1668
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by pser1 »

This second post presents two dweebs that work with VDK files.
These are intended for users that have real floppies in their standard set.

FLO2V dweeb
- allows copying a floppy from the default Dragon drive to a new VDK file in the PC Windows file system
so you can save a backup of the disk and use it on XRoar as well.
Times are pretty good: 2 min for 180k, 3 min for 360k and 6 min for 720k (all of them rounded up)
- standard syntax:
DLOAD"FLO2V""VDKName.VDK"

- Unfortunately the DW4 command OP_NAMEOBJ_CREATE ($02), always retuns error: unknown Opcode
this might be solved in the future, but by now, I have created a file DISK00.VDK only 256 bytes long
that you will have to copy each time you want to use this dweeb.
With the command: DLOAD"FLO2V""DISK00.VDK it gets mounted and DW4 accepts writing on it (expanding it as needed)
On finishing the process, the resulting VDK is fully usable in XRoar, without problems, and you could rename it as desired.

- Works with floppies 180k, 360k and 720k
- Copies DOS disks as well as OS-9 / NitrOS-9 disks too.
- Accepts the syntax: DLOAD"FLO2V""DISK/DISK00 (in case you have put the empty VDK in that folder)
and it adds the .VDK extension if none is present in the command line

-----------------------------------------------------------------------------------------------------

V2FLO dweeb
- allows copying an VDK to a floppy on the default Dragon drive to restore a previous backup
or simply to transfer a XRoar disk to the real Dragon drives.
standard syntax:
DLOAD"V2FLO""VDKName.VDK"

- It is mandatory to convert each VDK to DW4 compatible (by making the header 256 bytes long)
the cretaed new VDK will work flawlessly with XRoar too.
To create it, I have uploaded here a little java program that does this job: VDK2DW4.jar

- The dweeb verifies that VDK and floppy have same capacity
- Can work with three disk capacities (180k, 360k and 720k)
- It copies either DOS disks as well as OS-9 or NitrOS-9 ones.
- Accepts the syntax: DLOAD"V2FLO""DISK/CHANG2
and it adds the .VDK extension if none is present in the command line

-----------------------------------------------------------------------------------------------------

VDK2DW4 (JAVA utility)
- Allows multi-file selection from a directory/folder (only VDK files) by keeping pressed Control (Windows style)
- Converts the header to 256 bytes long.
If the file already has a 256 bytes header, notifies this and doesn't do anything on it.
Else creates a new file in same folder adding at the end of the name -DW4 (before the extension)

- on finishing all of the files, goes back to the file-select window.
Cancelling will return to the system


cheers
pere

EDIT: Carefull with these two dweebs. They have been corrected and enhanced in latest messages!
Attachments
V2FLO-DRM.zip
V2FLO source
(4.91 KiB) Downloaded 1177 times
V2FLO.ZIP
V2FLO dweeb
(630 Bytes) Downloaded 1174 times
FLO2V-DRM - NEEDS PREVIOUS VDK.zip
FLO2V source
(6.07 KiB) Downloaded 1169 times
FLO2V.ZIP
FLO2V dweeb
(764 Bytes) Downloaded 1157 times
DISK00 - empty 256 bytes long.ZIP
Empty VDK 256 bytes long for FLO2V dweeb
(124 Bytes) Downloaded 1147 times
VDK2DW4.zip
Java app to make VDK compatible with DW4
(4.26 KiB) Downloaded 1178 times
Last edited by pser1 on Sat Apr 11, 2015 5:16 pm, edited 1 time in total.
pser1
Posts: 1668
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by pser1 »

This one goes to the VDIR dweeb:

- standar syntax:
DLOAD"VDIR""DiskName" or
DLOAD"VDIR"F"DiskName"

Between the command "VDIR" and the name of the Disk, the user may add a parameter (N, F or nothing)
- reads the directory of the desired VDK and shows the result in two different ways:
a) as in DragonDOS (with 'N' or without parameter) as in first example above
b) full (sectors used in each extent) if param equals "F" as in second example above

Accepts the syntax:
DLOAD"VDIR"[p]"DISK/GAMES01 - being the parameter optional
and it adds the .VDK extension if none is present in the command line

- Requires that the VDK has a header 256 bytes long (use Java util VDK2DW4.jar to adapt them)

- It fills the screen in blocks of 12 rows and waits for a key to continue. Break cancels and quits
- Works with disks of capacity 180k, 360k and 720k

Some screenshots follow ...

cheers
pere

Normal Dir Command.jpg
Normal Dir Command.jpg (9.36 KiB) Viewed 21945 times
Normal Dir Result.jpg
Normal Dir Result.jpg (9.75 KiB) Viewed 21945 times
Full Dir Command.jpg
Full Dir Command.jpg (5.53 KiB) Viewed 21945 times
Full Dir 1st Screen.jpg
Full Dir 1st Screen.jpg (11.43 KiB) Viewed 21945 times
Full Dir 2nd Screen.jpg
Full Dir 2nd Screen.jpg (10.13 KiB) Viewed 21945 times
Attachments
VDIR-DRM .zip
the dweeb source
(8.22 KiB) Downloaded 1168 times
VDIR.ZIP
the dweeb file
(1002 Bytes) Downloaded 1172 times
Last edited by pser1 on Sat Apr 11, 2015 5:15 pm, edited 2 times in total.
pser1
Posts: 1668
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by pser1 »

Hello,

next one is: VLOAD. It allows the user to load and run/execute any program contained in any VDK image in the PC

cheers
pere

Code: Select all

VLOAD dweeb
example of use:  
DLOAD"VLOAD"[p]"DiskName""FileName.Ext"
if the parameter (p) equals 'N' the FileName won't be run/executed. Else it will.

- The first part of the progam searches in the VDK directory for the requested file and if found, 
  then the program sets up a RAM table that contains the info about the sectors that must be loaded 
  to have the whole file in RAM
  Next it calls DLOAD again passing another dweeb name as parameter (TABLDR)

- This second part uses the RAM table built by the previous dweeb and, in order to free as much memory 
  as possible, it reallocates a part of itsef (the final loader part) below $400 and jumps to it

- This final part loads the needed sectors in RAM and quits or starts the loaded program upon the param

- Accepts that the VDK has no extension and adds .VDK to the name if none is present in the command line
- Accepts separators between parameter, disk and file
DLOAD"VLOAD"[P],"DiskName","FileName.Ext"

Attachments
dweebs.zip
(1.06 KiB) Downloaded 1177 times
sources.zip
(9.63 KiB) Downloaded 1165 times
pser1
Posts: 1668
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by pser1 »

just a note for the users who love to have their programs inside folders:

The VLOAD dweeb calls another one with the name TABLDR. The very first one can be wherever you prefer, you will call it preceding the folder that contains it ...
DLOAD"FOLDER1/VLOAD""FOLDER2/DiskName""FileName.ext
But VLOAD will ask DW4 to load TABLDR, and DW4 will search only it in its own folder, so TABLDR must be copied always
in the folder where you installed DriveWire4.

Feel free to put any questions related to the use or development of these small programs.
If you are willing to develop your own mini-apps and get stuck at any point, just let me know and we will try to solve any problem that could arise.

cheers
pere
sorchard
Posts: 531
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by sorchard »

Thanks for all this hard work, Pere. I can see great uses for all of these pieces of software, plus they form a handy reference for developing new ones.

One thing I noticed is that the filename specified for DLOAD is strictly relative to the DriveWire folder i.e. you can't specify an absolute path like "c:\somefolder\file.bin". But what you can do (in Windows at least) is specify something like "..\somefolder\file.bin" to get outside the DriveWire folder.
Stew
pser1
Posts: 1668
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by pser1 »

Hello Stew,

thanks for your words!

Yes, you are right, DriveWire works from its folder, so no previous ones unless you use the very same window syntax.
I have copied VDIR in the root of my disk D where DW4 has its own folder and this command works flawlessly:
DLOAD"../VDIR""DISK/GAMES1

This is a good point to be known by the users in case they will to have the small apps outside DW4

cheers
pere
pser1
Posts: 1668
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by pser1 »

Stew,

just a question
Have you drives in your regular Dragon set?

We all have found programs / games that refuse to work properly when disks are attached.
The same will happen with DriveWire if you have the Dragon Data or any other controller working at the same time you are
connected to DW4 and load one of those games ...
I will look in my files, I am sure there must be a program (that Steve Evans uploaded) to simply disable the drives
or in a better way, using it within a litle basic program you can make it disable drives and start the game as well ...

cheers
pere
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by tormod »

These are some absolutely great dweebs! They make DriveWire really useful for people using Dragon DOS disks and images. And ROML turns your DriveWire server into a gigantic multicart :) Well, if you have 64 KB of RAM, that is... no, I am not jealous, we all know 32 KB is enough for everybody... but I think I know what my next hardware project will be about :)

About accessing directories outside the DriveWire4 server, I wouldn't rely too much on this behaviour, to me it seems like a bug and security issue and I think it might be changed in future DriveWire4 versions.
zephyr
Posts: 1474
Joined: Mon Jul 21, 2008 1:18 am

Re: DWEEBS - applications for DWLOAD - DriveWire

Post by zephyr »

pser1 wrote: We all have found programs / games that refuse to work properly when disks are attached.
The same will happen with DriveWire if you have the Dragon Data or any other controller working at the same time you are
connected to DW4 and load one of those games ...
I will look in my files, I am sure there must be a program (that Steve Evans uploaded) to simply disable the drives
or in a better way, using it within a litle basic program you can make it disable drives and start the game as well ...
There are three to choose from in the Uploads section.

viewtopic.php?f=7&t=341

viewtopic.php?f=7&t=308

viewtopic.php?f=7&t=191
Post Reply