Post by Deleted on Feb 16, 2018 11:53:15 GMT
Hey all I just registered at Melon64 and was directed here. I'm wanting to re-release an old project of mine called WSDOS and my question here is how do I go about doing that these days. I used to just upload stuff to Compuserve, back in the day of the 150 dollar phone bill. Can I just use this ADD ATTACHMENT thing or is that for other stuff? Not too much with it these days.
ANYWAY
After not ONE PERSON replying or offering help in any way I prove my worthiness by finding a file sharing site and offering this link to my software. I guess if I can't get advice I'll take my chances with the upload button.
Well what do you know the attachment thing works now. If that uploaded then good, but in case it didn't try this link:
www112.zippyshare.com/v/SFy4LKlA/file.html
Please feel free to ask questions. Oh yeah, here's a copy of the docs just to view from here.
Title: WSDOS 7.1
Author: Sid Davis
Build: December 2017
Platform: PC running WinVICE-2.3 (X128 emulator)
Original build date: V1.0 in early 1992 (likely February)
--------------------------------------------------------------------------------
--- Introduction ---
WsDos is a program for the Commodore 128 PC. It provides a way to load and run
C64-mode software using the C128's native burst mode protocol. This is done by
loading a program while in 128-mode, then switching down to 64-mode where it is
started.
Installing itself into a seperate bank of memory, the program is protected from
being overwritten while in 64 mode. It is also invisible to a suprising amount
of C128 software as well. It even survives a CP/M session!
The biggest change in version 7 over v6 is the autoexec feature and the ability
to use RAMDOS. Low level routines in previous versions made viewing the ramdisk
directory impossible, and had to be re-written; otherwise the RAMDOS innovation
is mostly external.
Support for expanded (256K) C128s now enables WsDos to use bank 3 instead of
bank 1, freeing 5k of bank 1 memory and making WsDos even more invisible to the
system.
-Sid
--------------------------------------------------------------------------------
Here is a list of most features:
-program code overrides internal ROM routines and starts itself every reset
-fully compatible with CMD's RAMLink (since V5)
-supports display of petascii (and raw ascii) textfiles
-autoexec functionality gives you the ability to do anything you want on each
disk you own (run C128 programs, install fastload drivers etc)
-works with devices 8 to 30
-copy single files to and from any drive
-can run up to ten 64-mode programs (per disk side) automatically when you reset
-correctly supports C128s that have been internally expanded to 256K
-offers a way to create more commands (executables) upon demand
-works together with RAMDOS (included on the system disk)
"HELP" is no longer supported because it occupied a rather large amount of RAM.
As of this version it exists only on the system disk and has a filename of
"help". Just enter the word "help" into the console. You will be presented with
a one-page HELP screen, where all WsDos commands and key definitions can be
viewed on demand.
--------------------------------------------------------------------------------
The following is an overview of all resident WSDOS commands, and the keys they
occupy on a PC keyboard using X128:
Character X128 key Function
"$" (dollar) same key Directory
"/" (forward slash) same key Load
ANYWAY
After not ONE PERSON replying or offering help in any way I prove my worthiness by finding a file sharing site and offering this link to my software. I guess if I can't get advice I'll take my chances with the upload button.
Well what do you know the attachment thing works now. If that uploaded then good, but in case it didn't try this link:
www112.zippyshare.com/v/SFy4LKlA/file.html
Please feel free to ask questions. Oh yeah, here's a copy of the docs just to view from here.
Title: WSDOS 7.1
Author: Sid Davis
Build: December 2017
Platform: PC running WinVICE-2.3 (X128 emulator)
Original build date: V1.0 in early 1992 (likely February)
--------------------------------------------------------------------------------
--- Introduction ---
WsDos is a program for the Commodore 128 PC. It provides a way to load and run
C64-mode software using the C128's native burst mode protocol. This is done by
loading a program while in 128-mode, then switching down to 64-mode where it is
started.
Installing itself into a seperate bank of memory, the program is protected from
being overwritten while in 64 mode. It is also invisible to a suprising amount
of C128 software as well. It even survives a CP/M session!
The biggest change in version 7 over v6 is the autoexec feature and the ability
to use RAMDOS. Low level routines in previous versions made viewing the ramdisk
directory impossible, and had to be re-written; otherwise the RAMDOS innovation
is mostly external.
Support for expanded (256K) C128s now enables WsDos to use bank 3 instead of
bank 1, freeing 5k of bank 1 memory and making WsDos even more invisible to the
system.
-Sid
--------------------------------------------------------------------------------
Here is a list of most features:
-program code overrides internal ROM routines and starts itself every reset
-fully compatible with CMD's RAMLink (since V5)
-supports display of petascii (and raw ascii) textfiles
-autoexec functionality gives you the ability to do anything you want on each
disk you own (run C128 programs, install fastload drivers etc)
-works with devices 8 to 30
-copy single files to and from any drive
-can run up to ten 64-mode programs (per disk side) automatically when you reset
-correctly supports C128s that have been internally expanded to 256K
-offers a way to create more commands (executables) upon demand
-works together with RAMDOS (included on the system disk)
"HELP" is no longer supported because it occupied a rather large amount of RAM.
As of this version it exists only on the system disk and has a filename of
"help". Just enter the word "help" into the console. You will be presented with
a one-page HELP screen, where all WsDos commands and key definitions can be
viewed on demand.
--------------------------------------------------------------------------------
The following is an overview of all resident WSDOS commands, and the keys they
occupy on a PC keyboard using X128:
Character X128 key Function
"$" (dollar) same key Directory
"/" (forward slash) same key Load
- a C64 program
"^" (arrow up) delete Load and run a C64 program
"?" (question mark) same key Show the load-address of a file
"@" (at) [ Disk input/output
"#" (pound) same key Set target drive for filecopy operations
"*" (asterik) ] Copy a file to the target drive
"%" (percent) same key Display/edit autoboot data within memory
"«" (arrow left) tilde Update (save) the autoboot data file ("%")
"!" (exclamation) same key Summon and display autoboot data from disk
"£" (lira) insert Display native (CBM format) textfiles
"&" (ampersand) shifted 6 Display imported text (like NotePad files)
"x" same key Exit to basic (ESC = F1 key on a PC)
Here is the basic key layout:
F1=$:* Directory F2=« Save % data
F3=@ui Reset drive F4=! Load % data
F5=A: Source=8 F6=#A: Target=8
F7=B: Source=9 F8=#B: Target=9
HELP Show help
RUN Boot top file on disk
ESC Exit to basic (you may also enter an "x").
--------------------------------------------------------------------------------
Internal Commands
Using WsDos commands is a simple chore. In most cases you just add a filename
after the command character; others use different syntaxes because they serve
special purposes. Here are instructions on how each one is used. Remember, never
seperate the commands from the input they expect with a SPACE.
----------
$ = Directory
This character may be entered alone, or with jokers and wildcards. For instance
if you entered "$?w*", you'd get a directory listing of any file that contains a
"w" at the second position from the left in the filename.
NOTE: Most of the time you'll probably just use the F1 key (F9 in X128) instead.
----------
/ = Load
- a C64 program
Sometimes it's handy to load a program without starting it- so it can be listed
or edited.
If you press the CNTRL key while loading a file, it will be LISTed for you in
C64 mode. The basic startup screen will display the remaining number of bytes
free. If you see a negative number, that means your program was larger than the
usual 38911 bytes allowed for basic. In this case, the number would indicate how
many bytes (plus 1) beyond $A000 the program extended to.
Example:
/gorf
----------
^ - Load and run a C64 program
This function works only on programs that start with RUN, so don't try to use
it on an auto-starting type of file. If a program starts itself when you enter:
'load"program",8,8', then you should enter 64-mode to load it. You'll probably
be better off anyway if you do, because such software often uses its own fast-
loader.
Example:
^gorf
----------
? = Display the load-address marker of a file
Use this to determine the address within memory that a file was originally
saved from. This will tell you if it is a RUN-able C64 program, because normally
all 64-mode programs that are started with RUN begin at 2049 ($0801).
Example:
?gorf [return]
At this point you'd get a message like:
$0801 2049 C64
The "C64" part at the end will only be displayed if the file starts at 2049,
hinting that you should be able to use WsDos to boot it.
Note: As of version 5, you may also load and run basic programs saved from other
old CBM computers; like the PET, CBM or VIC-20.
----------
@ = Disk I/O
This command serves a dual purpose. If entered by itself it will dump the error
buffer of the active disk drive to the screen. It can also be used to send disk
commands. For instance, if you press the F3 key, the "ui" (reset) command is
sent to the drive and will force a message like:
73, cbm dos v4.3 1750,00,00
Common examples:
@r:autoexec=dosedit.out -renames "dosedit.out" to "autoexec"
@s:trashfile -deletes a file
@n:testdisk,13 -formats a disk; giving it the label "testdisk" and
a disk ID of 13
@v: -validate the disk
----------
# = Assign a target drive
This is used to tell the filecopy function which drive it should write to when
copying a file. It must be entered at least once after every reset before any
copy operation can take place; afterwards that same drive will be used until you
specify another.
Follow the "#" with the desired drive letter and a colon.
Example:
#m:
Target ready
Drive M is now ready to capture a file copied from drive A, or any other disk
drive you may be using (the file will always be copied from the active drive).
----------
* = Copy a file
This command will copy a file to whatever drive you've assigned using the
previous command. Unlike many other WsDos commands, wildcards may not be used
here. If you try to copy a file to the same disk, or if a file with the same
name already exists on the target drive, the operation will abort with an error.
You may stop copying at any time by pressing the stop key and keeping it held
down until you receive the message "job aborted".
Example:
*gorf
----------
% - Autoboot editor
This command is used to enter (or edit) autoboot data. It works in tandem with
two other commands ("«" and "!").
To assign a filename to a key, type in the "%" character, follow it with the
key number that you want to use for that file, a colon and then the filename
(these may contain jokers or wildcards if you wish). Note that only numerical
keys (0 through 9) may be used.
Example:
%1:ghostbusters
or
%1:gho*
You may enter the "%" character by itself any time you'd like to view the data
contained within memory. This data may differ from what is on the logged drive.
----------
« = Save autoboot data to disk
This does exactly what it says, and is always entered by itself. The file it
creates on the disk will have a filename of "%", and as of version 6 will only
use one block of disk space. A SCRATCH command is sent to the drive and then the
new data is saved.
----------
! = Load and display autoboot data from disk
This will search the current drive for your autoboot data, and if it is found,
it will be loaded into memory and its contents displayed. If you see the blue
"No Data" message after entering this command, it's because no autoboot data was
found on the disk. Like with "«", this must be entered as a single character.
----------
£ = Display the contents of a CBM formatted text file to the screen
Many disks contain documentation in the form of sequential text data, and
although they may also be PRG files, they are usually stored as SEQ or USR
filetypes. Simply enter the command character and tag on the filename of the
petascii textfile you'd like to read. At this time the contents will be scrolled
continuously until the end of the file is reached, so use the NOSCROLL key (F8
in X128) to pause while reading. Abort with the STOP key.
Example:
£cbm textfile
----------
& = Display a raw IBM (ASCII) formatted text file
This command is similar to the CBM text-display function, but in this case each
ASCII character is translated to its CBM counterpart so that the file can be
correctly displayed. This mostly involves inversion of lower and upper case
characters, however certain codes differ between formats and must be exchanged
with CBM PETASCII.
Note: If you try to read a PETASCII text file using this command, the entire
file will be FORCED TO UPPER CASE AND WILL LOOK JUST LIKE THIS.
Example:
¬epad textfile
----------
x = Exit WsDos
Entering an "x" will cause WsDos to revert to native 128-mode where you can
carry on as usual. You may prefer to bail instantly by pressing ESCAPE (F1 in
X128).
----------
PEEP = toggle keyclick sound
--------------------------------------------------------------------------------
External Commands:
Unlike the DOS examples included with previous versions, these can actually be
useful at times. You'll need to have the system disk in the drive you're using.
To use them, just type in their filenames (like with CP/M or MSDOS).
The following is a list of executable commands included on the system disk (all
self-written, unfortunately).
MON
-Enters the machine-language monitor (MLM). When you exit the monitor with an
X, you will find yourself back in WsDos. This is a convenient way to program
your own code in ML without being forced to exit to basic first.
NEW
-Clears memory page 11 ($0b00) so that new autoboot data may be entered and
saved.
FORMAT
-Performs a cold-init of the RAMDOS. This shouldn't be used unless you need to
set up the ramdisk from scratch; otherwise any files stored in it will be erased
(you will be required to confirm this action). The interface page used will be
27, and RAMDOS will be assigned device number 20 (M).
RAMDOS
-Once the ramdisk has been formatted to store files, this will install the
warmstart patch designed for RAMDOS into the last bank of memory. Once that's
done, the computer is reset. You'll notice that drive M (device 20) has now
become the default drive. At this point, RAMDOS is ready to be used to boot your
programs instead of a disk drive, and will remain active until you turn it off.
DOSEDIT
If you already know how to program BASIC 7.0 a little (but don't know machine
language), then you can use this program to create small executables that WsDos
will recognize as its own.
Example:
To run a C128 program, you could get into DOSEDIT and enter:
d=peek(186):run"yourprogram",u(d)
Up to 152 characters can be used as input for DOSEDIT. The last 8 characters
(totalling 160) are reserved and serve to cause your programs to return to the
main program using the string ":sY12261". If you run into an error while testing
your work , just hit RUN-STOP and RESTORE (this will always cause a reset until
you exit to basic).
When you are finished editing your one-liner, just press RETURN. The file it
creates will be named "dosedit.out", and can always be renamed. If you name it
"autoexec" and place its disk in the system drive, your command can be executed
whenever you reset the machine. This gives you control over what will happen
when specific disks are inserted and the reset button is pressed.
NOTE:
-If an autoboot ("%") data file is present on drive A or M, and you press one
of the numerical keys during the reset, this will override the autoexec feature
and boot a program into 64-mode instead.
HELP
-View the old HELP screen. This file is on the system disk, and should remain
there until you are used to the key layout and commands.
KILL = Kill Ramdos
DRIVEx = conscript a device as a system drive
- There are 4 "drive" commands, one for each drive (8 thru 11). These cause the
drive to be used as a system drive on the next boot. These will not work when
RAMDOS is enabled.
--------------------------------------------------------------------------------
Programming your own commands in machine language:
All WSDOS executables must contain a load address of $3000, and a header I.D.
of "wsdos98". If your code does not follow that protocol, then it will not be
recognized as a valid command and WsDos will ignore it. The next 2 bytes should
contain first the low, followed by the high byte of your program's entry-point
within memory.
NOTE: The header must be in lower-case petascii.
EXAMPLE:
Here is a very simple example of how to program your own WsDos commands in
machine-language. The following code causes the 128 to revert to C64 mode by
pointing the entry vector (located in your code at $3007+8) to $FF4D.
As mentioned, first put in the low byte and follow it with the high byte.
The code should now look something like this from within the C128's monitor:
$3000 57 53 44 4f 53 39 38 4d ff 00 00 00 00 00 00 00
The code can now be saved with
s"go64",8,3000,3009
--------------------------------------------------------------------------------
Autobooting files
It is possible to automatically boot one of a possible ten C64 programs per
disk-side every time you press the reset button. To be able to do this you must
first set up an autoboot data file and save it to those disks that contain the
files.
The autobooter works more or less like so:
Every time the computer is reset, WsDos will search the disk within the first
drive it finds (usually A: or M:) for a file named "%". If it is found, it is
loaded into memory and then the keyboard is checked. If it sees that you are
pressing one of the number keys, that key number is used as a reference to one
of a possible 10 filenames and WsDos will boot that program into 64-mode.
If you use a real 128, this feature makes things very convenient. Basically,
you just press a key while resetting the machine, and keep it held down until
you know the file is loading. It doesn't get much easier than that
If RAMDOS isn't active, you can change the autoboot drive to whatever one you
want by turning off any devices with unit numbers smaller than the one you want
to use, then reset the computer. Otherwise there are the 4 "drive" commands.
--------------------------------------------------------------------------------
Ramlink compatibility
Back in the day I was a RAMLink user, I remember how older versions of WsDos
would crash when I tried to load or boot into 64-mode. It turned out that the RL
required special attention when it was time to switch to 64-mode. Once that was
fixed, I added a way to remember how the "swap" buttons were set up at run-time
so they could be set up the same way in 64-mode.
Some of the RL's code was ignored so that the same partition and subdirectory
the user booted from in 128-mode would still be there in 64-mode. WsDos will
also activate Jiffydos in either mode if it detects a RAMLink.
--------------------------------------------------------------------------------
Other notes
The startup screen shown after you've bailed to basic from WsDos will now
display the actual amount of basic bytes free. As a result, you will now see a
slightly smaller number (116477) when using an unexpanded machine, because on
those systems the entire code is stored in bank 1. On expanded 256k systems,
this number will show all 122365 basic bytes to be free because WsDos will live
in bank 3.
You can change screen modes easier now- just set up the 40/80 key (F7 in X128)
to the way you need it and hit the RUN-STOP and RESTORE combination. In X128,
those keys are ESC and PAGE UP, respectively. This will force a software reset
and change the screen mode.
--------------------------------------------------------------------------------
I know this is too little too late, but maybe someone down the line will still
find this program useful.
-Sid Davis (sidswlan@gmail.com)