DWLOAD - DriveWire for everybody

A place to discuss everything Dragon related that doesn't fall into the other categories.
jedie
Posts: 655
Joined: Wed Aug 14, 2013 12:23 pm
Location: germany
Contact:

Re: DWLOAD - DriveWire for everybody

Post by jedie »

btw. is it possible to load the code via cassette?
Can somebody provide a .WAV file?
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: DWLOAD - DriveWire for everybody

Post by tormod »

Jedie, please see the DWLOAD HOWTO 2 (third post). I know I posted too much information in one go, but it is all in there :)

DWLOAD is not compatible with the old DLOAD protocol. It uses the DriveWire protocol which opens up for so many more possibilities. It merely recycles the DLOAD keyword. To modify the keyword it would have been necessary to patch the lower 8KB ROM, but this one is soldered on most Dragon 32 motherboards, so it was not an option.
jedie
Posts: 655
Joined: Wed Aug 14, 2013 12:23 pm
Location: germany
Contact:

Re: DWLOAD - DriveWire for everybody

Post by jedie »

btw. where is the DWLOAD source code ?
... too many ideas and too little time ... Related stuff written in Python:
Dragon 32 emulator / PyDC - Python Dragon 32 converter: https://github.com/jedie/DragonPy
DWLOAD server / Dragon-Lib and other stuff: https://github.com/6809
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: DWLOAD - DriveWire for everybody

Post by tormod »

Jedie, see the first post. Much more interesting than the DWLOAD code is the code for the dweebs, showing how you can write your own dweebs. I will put them in a repository, but for now I'll attach a few here.
Attachments
dweeb-sources.tar.xz.zip
Some dweeb example source files
(2.92 KiB) Downloaded 307 times
sorchard
Posts: 530
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: DWLOAD - DriveWire for everybody

Post by sorchard »

Has anybody else got DriveWire working with xroar under Windows?

I'm using the suggested command line for xroar, but after I type 'DLOAD', 'DWLOAD' appears and then nothing happens :?

The DriveWire server looks like it is working as I can see activity in the log when I connect with telnet.
Stew
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: DWLOAD - DriveWire for everybody

Post by pser1 »

hi, sorchard
I am not only using DWLOAD under XRoar, but use it to develop and test my dweebs
Besides, I use GDB to debug, 'cause most of the times things don't go perfect the first hundred times ;-)

If verything is well configured, when you write DLOAD, you are calling the default autoexec program.
There must be a file in the DW4 folder with exactly this name: AUTOLOAD.DWL

This one can be a Basic program that shows a menu or a game that starts immediately.

If you have other files in the DW4 folder, you can call them this way:
DLOAD"FileName.ext to load and run/exec it
DLOADN"FileName.ext just to load it

Note that DLOAD accepts the use of folders, for instance:
DLOAD"GAMES/KING.BIN"
DLOAD"BASIC/MyProgram.BAS
These will search the folder inside the DW4 one

Tell me what happens when you call an existing file in the DW4 folder, maybe we could find out what's happening.

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

Re: DWLOAD - DriveWire for everybody

Post by sorchard »

Hi pser1, thanks for the help,

I'm still not having any luck...

When I use the suggested command line:

xroar -default-machine dragon64 -romlist d64_1=roms\d64-dwload-becker.rom -cart rsdos -cart-becker

The Dragon freezes at the copyright message, presumably because of the lack of rsdos rom?

If I reset the Dragon and type 'DLOAD"FLAP"', then nothing happens after 'DWLOAD' appears. (I put 'FLAP' in the same folder as the DriveWire executable)

Thinking it might work with dragondos, I tried this:

xroar -default-machine dragon64 -romlist d64_1=roms\d64-dragondos-dwload-becker.rom -cart dragondos -cart-becker

This time the Dragon starts up cleanly but I get the same behaviour after typing 'DLOAD"FLAP"'

Would you expect there to be an error message if a file cannot be found? And surely it doesn't require a dos rom to work, which implies that the suggested command line isn't quite right...
Stew
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: DWLOAD - DriveWire for everybody

Post by tormod »

sorchard wrote:Hi pser1, thanks for the help,

I'm still not having any luck...

When I use the suggested command line:

xroar -default-machine dragon64 -romlist d64_1=roms\d64-dwload-becker.rom -cart rsdos -cart-becker

The Dragon freezes at the copyright message, presumably because of the lack of rsdos rom?
No, you don't need any rsdos ROM, but XRoar requires this option to activate the Becker interface.

If it hangs after the copyright message, it is because it tries to get AUTOLOAD.DWL from the server. On a real Dragon it will timeout in less than a second if there is no DriveWire server, however the Becker routines for emulation don't have a timeout, so it hangs...
If I reset the Dragon and type 'DLOAD"FLAP"', then nothing happens after 'DWLOAD' appears. (I put 'FLAP' in the same folder as the DriveWire executable)
If it just hangs, it is not communicating with the DW4 server. On the other hand, if a file is missing on the server, you would get a MO ERROR (mount error) and it would not hang.

Thinking it might work with dragondos, I tried this:

xroar -default-machine dragon64 -romlist d64_1=roms\d64-dragondos-dwload-becker.rom -cart dragondos -cart-becker

This time the Dragon starts up cleanly but I get the same behaviour after typing 'DLOAD"FLAP"'

Would you expect there to be an error message if a file cannot be found? And surely it doesn't require a dos rom to work, which implies that the suggested command line isn't quite right...
As explained above, a file not found yields a MO error. The command line is right, it is an XRoar quirk.

If you use the files and command lines in my HOWTOs there should not be any problem, I spend quite some time testing it all out. But what I don't have control over is your DriveWire4 server installation and configuration. That you can telnet to it sounds promising though.

Does XRoar spit out exactly this?

Code: Select all

$ xroar -default-machine dragon64 -romlist d64_1=d64-dwload-becker.rom -cart rsdos -cart-becker
Module init: GTK+-2 UI
Module init: GTK+-2 file requester
Module init: GtkGLExt video
Module init: OSS audio
ERROR: OSS: failed to open device
Module init failed: OSS audio
Module init: ALSA audio
	16-bit signed little-endian, stereo, 48000Hz
	3 frags * 320 frames/frag = 960 frames buffer (20ms)
Module init: GTK+-2 keyboard input
Machine: Dragon 64
Loading ROM: ./d64-dwload-becker.rom
	32K mode BASIC CRC = 0x4c2eb7f5
Cartridge: RS-DOS
Or is there any warning messages about the Becker interface or server?
sorchard
Posts: 530
Joined: Sat Jun 07, 2014 9:43 pm
Location: Norwich UK

Re: DWLOAD - DriveWire for everybody

Post by sorchard »

My apologies, I was jumping to conclusions without really knowing what I was talking about :oops:

I captured an instruction trace and it's stuck in spin here:

Code: Select all

bf43| f6ff41      LDB     $ff41               cc=d4 a=ff b=00 dp=00 x=0000 y=0001 u=0012 s=7f2a
bf46| c502        BITB    #$02                cc=d4 a=ff b=00 dp=00 x=0000 y=0001 u=0012 s=7f2a
bf48| 27f9        BEQ     $bf43               cc=d4 a=ff b=00 dp=00 x=0000 y=0001 u=0012 s=7f2a
At the risk of making more assumptions it looks like it's waiting for something to read from the Becker port.


xroar stderr output is this:

Code: Select all

Module init: Windows SDL UI
Module init: Windows file requester
Module init: SDL OpenGL video
Module init: SDL audio
	16-bit signed little-endian, stereo, 48000Hz
	2 frags * 1920 frames/frag = 3840 frames buffer (80.0ms)
Module init: SDL keyboard input
	No joysticks found
Machine: Dragon 64
Loading ROM: roms\d64-dwload-becker.rom
Loading ROM: ./Dragon Data Ltd - Dragon 64 - IC18.rom
	32K mode BASIC CRC = 0x4c2eb7f5
	64K mode BASIC CRC = 0x17893a42
Cartridge: RS-DOS
Module shutdown: SDL keyboard input
Module shutdown: SDL audio
Module shutdown: SDL OpenGL video
Module shutdown: Windows file requester
Module shutdown: Windows SDL UI
It seems to confirm that xroar does see DriveWire running because if I don't start DriveWire first then I see this line:

WARNING: becker: connect 127.0.0.1:65504 failed

I'm sure I've missed an important step somewhere. I'll have to have a play to see if I can provoke some different behaviour.
Stew
User avatar
tormod
Posts: 416
Joined: Sat Apr 27, 2013 12:06 pm
Location: Switzerland
Contact:

Re: DWLOAD - DriveWire for everybody

Post by tormod »

In the DriveWire4 GUI there is a command line interface at the bottom of the window saying "Hint: You can enter DW commands here". In this field, type

Code: Select all

dw server status
and it will print what version you have. It should be 4.3.3o, 4.3.3p or 4.3.4d.
Post Reply