FE3 RAM Disk

Basic and Machine Language

Moderator: Moderators

Vic20-Ian
Vic 20 Scientist
Posts: 1213
Joined: Sun Aug 24, 2008 1:58 pm

Post by Vic20-Ian »

Incredible - still can't believe this runs on a Vic-20

Great work.
Vic20-Ian

The best things in life are Vic-20

Upgrade all new gadgets and mobiles to 3583 Bytes Free today! Ready
Kananga
Vic 20 Afficionado
Posts: 317
Joined: Mon Mar 08, 2010 2:11 pm

Post by Kananga »

@Vic20-Ian: thanks :)

Mike pointed out that there are drive numbers for devices, so you can have device 8 with drive 0 and 1 and to address a specific drive you have to write "S0:foo" to scratch foo instead of "S:foo".

I did not know this (or forgot about it) and two books on the 1541 don't mention it, one is the C= 1541 user manual (german version).

Do many programs actually use the drive number for disk access?
Buy the new Bug-Wizard, the first 100 bugs are free!
Diddl
Vic 20 Afficionado
Posts: 425
Joined: Wed Jun 10, 2009 3:18 am

Post by Diddl »

Wow! Very cool.


Bit by bit we have a real DOS for the RAM disk. :D
Kananga
Vic 20 Afficionado
Posts: 317
Joined: Mon Mar 08, 2010 2:11 pm

Post by Kananga »

Diddl wrote:Bit by bit we have a real DOS for the RAM disk. :D
I wouldn't go too far with emulating a real DOS. I just want to put enough functionality in that you can use file browsers and other disk related programs without problems. Of course, if anything is needed by somebody using it in his program, please let me know.

I know a few file browsers and will have a look, if they work with the RAM disk. And I would really appreciate, if some of you did a quick check, if the RAM drive works with your favourite programs and tell me if not. Thanks! :)

It should be quite stable now, although some bugs always remain.
Buy the new Bug-Wizard, the first 100 bugs are free!
User avatar
joshuadenmark
Big Mover
Posts: 1217
Joined: Sat Oct 23, 2010 11:32 am
Location: Fr-Havn, Denmark
Occupation: Service engineer

Post by joshuadenmark »

Kananga wrote:There is a new release of the RAM DRIVE that adds support for the command channel (15). You can now read the status of the last operation, and scratch and rename files.
The driver should survive a reset, if the module area remains untouched.

Download RAM DISK 0.7 here

Running on real hardware as device 9 with the GUI:
Image

EDIT: unnecessary quotes removed.
:shock: wow - very impressed - hope to get my FE3 soon.
Kind regards, Peter.
____________________________________________________
In need of a wiki logon - PM me
Kananga
Vic 20 Afficionado
Posts: 317
Joined: Mon Mar 08, 2010 2:11 pm

Post by Kananga »

Hi all!

There is a new version of the RAM Disk Driver available in the download section: 0.8

Storing/Retrieving data, Scratch & Rename should be quite stable.
REL file support is experimental, i.e. feature complete but probably buggy.

Have fun!
Buy the new Bug-Wizard, the first 100 bugs are free!
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

Here's a file based disk copy program, which can be used to transfer the contents of a *.d64 or *.d81 disk image to the FE3 RAM-Disk (download):

Code: Select all

10 POKE55,195:POKE56,28:CLR:GOTO19
11 GET#4,A$,B$,C$,D$:F=1
12 GET#4,A$:IFA$=""THENRETURN
13 IFA$<>CHR$(34)THEN12
14 N$="":T$="":F=0
15 GET#4,A$:IFA$<>CHR$(34)THENN$=N$+A$:GOTO15
16 GET#4,A$:IFA$=""THENRETURN
17 IFA$>="A"ANDA$<="Z"THENT$=T$+A$
18 GOTO16
19 FORT=0TO60:READA:POKE7363+T,A:NEXT:POKE5,0:POKE6,29
20 INPUT"SRC DEV.";SD:INPUT"DST DEV.";DD
21 OPEN4,SD,0,"$":GET#4,A$,B$:GOSUB11
22 GOSUB11:ONFGOTO25:IFNOT(T$="PRG"ORT$="SEQ"ORT$="USR")THEN22
23 F$=N$+","+LEFT$(T$,1):PRINTF$:OPEN2,SD,2,F$+",R"
24 OPEN3,DD,3,F$+",W":SYS7363:CLOSE2:CLOSE3:GOTO22
25 CLOSE4:POKE55,PEEK(643):POKE56,PEEK(644):CLR:END
26 DATA 162,2,32,198,255,160,0,132,3,32,207,255,72,165,144,201,1
27 DATA 104,164,3,145,5,200,132,3,176,2,208,236,8,32,204,255,162
28 DATA 3,32,201,255,160,0,177,5,132,4,32,210,255,164,4,200,196
29 DATA 3,208,242,32,204,255,40,144,196,96
You just need to specify the device numbers of source and destination drive. The program then works through the entire directory of the medium in the source drive copying all PRG, SEQ and USR files. REL files are omitted, and direct access blocks are also not copied. Provided all data (except REL files) is accessible as files, the program can also be used as disk copier with either two real CBM disk drives, or as single drive disk copier with the FE3 RAM-Disk as temporary storage.

Maybe that program gives a little incentive for more people to test their programs with Kananga's FE3 RAM-Disk. :)

Greetings,

Michael
Last edited by Mike on Sun Aug 31, 2014 12:58 pm, edited 3 times in total.
Kananga
Vic 20 Afficionado
Posts: 317
Joined: Mon Mar 08, 2010 2:11 pm

Post by Kananga »

Mike wrote:Here's a file based disk copy program, which can be used to transfer the contents of a *.d64 or *.d81 disc image to the FE3 RAM-Disk (download):
Thanks, Mike!
Mike wrote:Maybe that program gives a little incentive for more people to test their programs with Kananga's FE3 RAM-Disk. :)
Perhaps, everybody else waits until you found all the bugs and I fixed them. :P
Buy the new Bug-Wizard, the first 100 bugs are free!
Kananga
Vic 20 Afficionado
Posts: 317
Joined: Mon Mar 08, 2010 2:11 pm

Post by Kananga »

All features are now implemented and I am proud to announce the official release of the RAM disk: 1.0.0

So what do you get?

You can load and save files from and to the RAM-Disk slightly faster than using SJLOAD and SD2IEC. Since that also comes with the FE3 and of course all data in RAM is lost if you switch of your VIC-20, this is in itself not worth much.

But, if you want to write a program that runs on real hardware and needs to load additional data, the RAM disk offers speed and compatibility with certain important features of the original hardware.

One situation where the RAM disk comes in handy is when programs need to load additional data from a fixed location, while being able to switch to other disks (or directories) for other operations.
On original hardware you would need two disk drives: One holding program data and the other the user data. Using the RAM disk you could copy all program data to RAM and use the SD2IEC for user data and still build a program that can run on original hardware (e.g. using two 1541s).

For example, you may have a game which sometimes needs to load level data. You could store the data in a REL file and use it on demand. Fortunately, the RAM disk supports REL files almost like a 1541 would, which allows you to write programs for both settings.

If you do not care about compatibility to the 1541, you can also use the "P"osition command for random access to any other file in a way compatible with SD2IEC.

In order to make integrating the RAM disk into your project easier, the initialisation routine looks for a program called "RDRUN" and, if found, loads and runs it instead of returning to the BASIC prompt. That way, you can write a program that loads the RAM disk from a boot loader before executing your own initialisation code.

Please let me know, if you need anything else to make the program useful!

Otherwise this is the final release.

Have fun!
Kananga
Buy the new Bug-Wizard, the first 100 bugs are free!
Diddl
Vic 20 Afficionado
Posts: 425
Joined: Wed Jun 10, 2009 3:18 am

Post by Diddl »

cool, thank you! :D
User avatar
joshuadenmark
Big Mover
Posts: 1217
Joined: Sat Oct 23, 2010 11:32 am
Location: Fr-Havn, Denmark
Occupation: Service engineer

Re: FE3 RAM Disk

Post by joshuadenmark »

Anyone got a download of @Kananga ramdisk?
Kind regards, Peter.
____________________________________________________
In need of a wiki logon - PM me
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: FE3 RAM Disk

Post by Mike »

Some time ago, Kananga moved his file repository to sourceforge: https://sourceforge.net/projects/vin20/files/

Here's the link to the *.zip of FE3 RAM Disk V1: https://sourceforge.net/projects/vin20/ ... p/download

Cheers,

Michael
Forbidden64
Vic 20 Hobbyist
Posts: 146
Joined: Sun Feb 28, 2016 9:59 pm
Location: CA USA

Re:

Post by Forbidden64 »

Kananga wrote: EDIT:
You could also write a program that copies a whole disk in one go, by storing the image in the RAM drive! But who does still use real 5 1/4'' disks?
...me. I use tapes too, often more than disks.
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: FE3 RAM Disk

Post by Mike »

Javier, Sven - FYI, I split off the recent discussion to the new thread "Using FE3RD in VICE (was: Re: FE3 RAM Disk)".
Post Reply