I think I might have found an undocumented VIC cartridge...

History and Preservation Issues

Moderator: Moderators

User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

Before someone else does the same:

I've reverse-engineered the object-code of Waterloo BASIC. I made a fully relocatable source-code from the *.prg; with labels; instructions and data clearly separated. If there's substantial interest, I plan to merge Waterloo BASIC and MINIGRAFIK. Maybe I'll include a disc drive fast loader as well.

From the analysis of the source-code I can give some more info:

The LIST command had been slightly altered, it now also accepts a comma as range-separator, i.e. LIST 10,20 works like LIST 10-20.

All new tokens are internally extended with 2 bytes, that contain a cached TXTPTR - the destination of the command, if it diverts the control flow.

Greetings,

Michael
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Post by eslapion »

Well, what do you know... I just recovered a JEWEL!

I have the complete instruction manual for the VIC-20's version of Waterloo Structured Basic. It has 191 pages.

The software and book was created by D.D. Cowan, J.W. Graham, J.W. Welch and T.A. Wilkinson.

The book is © 1983.

Hey guys... I really want to archive this so you can get access to it but thats a LOT of work... can anyone help ?
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

I'm currently dissecting HYPRA-SYSTEM (fast LOAD from and fast SAVE to floppy) for inclusion into this project. I also plan to include the VIC Wedge.

1. HYPRA-SYSTEM uses a buffer within itself (much alike to TurboDisk) but that can be handled, as well as a small bit of self-modifying code.

2. VIC WEDGE alters the CHRGET routine, and checks an address within the line-input routine of the interpreter. Since the line-input is transferred to Waterloo Basic, that address will need to be altered.

So this is the near complete list of programs I'd put into BLK 5:

- Waterloo Basic (2K)
- MINIGRAFIK (1K, enhanced version)
- Hypra-System (2K)
- VIC Wedge (< 1K)

For Hypra-System, it would be favourable to have a buffer at $9800 (I/O 2) or $9C00 (I/O 3).

Eslapion, how much would you charge for an 32K expander with:

* BLK 1, 2, 3 filled with RAM.
* BLK 5, switchable between RAM/ROM, and write protect option for RAM.
* I/O 2, and I/O 3 filled with RAM.

Greetings,

Michael
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

Mike wrote:Before someone else does the same:
Maybe I'll include a disc drive fast loader as well.
I'm interesting on Fast Loader for 1541/1581, looking on various post i will use source code of VIMM project (Marko Makela) fast loader routines to write a fastloader program for a Vic-20 but if you include a disc drive fast loader in your project i'm waiting for a while. Do you have some samples PRG source etc to test it? how does it works? thanks, bye.
maybe too many questions :wink:
a1bert
Vic 20 Dabbler
Posts: 96
Joined: Mon Jan 23, 2006 12:49 am

Post by a1bert »

nbla000 wrote:I'm interesting on Fast Loader for 1541/1581, looking on various post i will use source code of VIMM project (Marko Makela) fast loader routines
Actually, Marko is not involved in VIMM other than that the fastloader is based on the fast loader from "Veni Vidi Vici". The 1581 code was developed by me.

Talking about demos, some time last spring I NTSC-fixed almost all of the VIMMII parts, but one part just didn't work the same in VICE than the actual machine and I never was energetic enough to finish the job.

-Pasi
MacbthPSW
Vic 20 Afficionado
Posts: 478
Joined: Wed Apr 06, 2005 1:56 pm

Post by MacbthPSW »

a1bert wrote:Talking about demos, some time last spring I NTSC-fixed almost all of the VIMMII parts, but one part just didn't work the same in VICE than the actual machine and I never was energetic enough to finish the job.
We'd love to see it if you ever finish it! I remember trying to watch it on my NTSC VIC-20 some years ago. If I remember right, the first part works okayish, and then it dies (from the loader?). Edit: now that I think about it more, I think it was VVV that I was remembering.

I'm pretty sure an NTSC-fixed "Risen from Oblivion" (for the C-128) is going to be released shortly, would be cool if the VIC also got a top notch release around the same time. Both platforms could use a lot more demos.
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Post by eslapion »

Mike wrote:For Hypra-System, it would be favourable to have a buffer at $9800 (I/O 2) or $9C00 (I/O 3).

Eslapion, how much would you charge for an 32K expander with:

* BLK 1, 2, 3 filled with RAM.
* BLK 5, switchable between RAM/ROM, and write protect option for RAM.
* I/O 2, and I/O 3 filled with RAM.

Greetings,

Michael
If you put the code for Hypra into BLK5 then it cannot be used to load ROM images of games that uses that BLK.

However, adding a 2k ram section for I/O2 and 3 is very easy. A 6116 (2k x 8) SRAM chip can be stacked on top of the 32k chip. I can use a pair of diodes to create an additionnal AND logic gate for the CS line.

What you want is equivalent to a base 32k expander with one ROM option in BLK5. The write protect option (RW/RO switch) comes standard with all expanders. The only thing special is the extra 2k ram.

My price: Base expander is 30$ + 5$ for 1 ROM option + 10$ for the extra 2k RAM.

Does that sound reasonable ?
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

My price: Base expander is 30$ + 5$ for 1 ROM option + 10$ for the extra 2k RAM.

Does that sound reasonable ?
Yes, that's sounds good!!!

But for me the first question is to have a working fastloader for 1541/71/81 drives that works simply loading it LOAD"FASTLOADER",8,1.
Yes i know that if you use bank 5 you cannot load cartridge image but may be a first step, after a lot of testing and optimizations it can be modified.
Actually, Marko is not involved in VIMM other than that the fastloader is based on the fast loader from "Veni Vidi Vici". The 1581 code was developed by me.
Thank's for the specification my post was just a fast explanation of my future :?: works.

In any case i'm happy to see that a fast loader for Vic-20 is not only a my wishing list.

Anyone says which differences there are from Hypra-Load and Marko Makela's fast load based routines, which may be more compatible with normal and pucrunched files?
User avatar
Mike
Herr VC
Posts: 4816
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Post by Mike »

@nbla000:
Do you have some samples PRG source
I've completely separated instructions and data, and inserted labels into the part of the speeder that runs in the VIC. I'll send you the original *.PRG file via e-mail.
etc to test it? how does it works?
It's an "old style" floppy speeder, that puts some code in the drive and then uses a 2-bit parallel protocol (CLK and DTA) over the serial bus. The loops are timed out with NOP's, so it is PAL and 1541 only at the moment. With the source available soon, it should be possible to make a conversion to NTSC. It achieves roughly 4-5 times speedup with both LOAD and SAVE.

@eslapion:
Does that sound reasonable?
That's a good offer. It will take another few - free - evenings for me to complete the ROM - I'll PM you when I've done it.

Greetings,

Michael
a1bert
Vic 20 Dabbler
Posts: 96
Joined: Mon Jan 23, 2006 12:49 am

Post by a1bert »

nbla000 wrote:Anyone says which differences there are from Hypra-Load and Marko Makela's fast load based routines, which may be more compatible with normal and pucrunched files?
Well, the fastloaders we are using in VIC20 demos do not achieve the fastest possible transfer speed because they are designed to be interruptable at any point. They have 2-way handshaking using both CLK and DATA lines, which makes it 4-20(?) times slower than a fastloader that transfers a byte at a time using both CLK and DATA for transfer.

Because the transfer is interruptable, loading can be easily performed while demo parts are active. Well, you could still make parallel byte transfers, but then you would need to check if there is enough time to perform the transfer before the next interrupt. Because the timer interrupt is used for raster interrupt generation, that would be fairly easy to implement now that I think about it.

-Pasi
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

Thank's a1bert for your explanation

Since i want after 25 years to use a working fastloader for Vic-20 and 1541/1581 drives i'm searching a starting point to write ones if nobody has already done.

Mike has send me a first prg version of his Hypra-System (thanks again Mike) that works for 1541 drives in Pal mode only for now.
I've tested it and results are very impressive, 100% of programs and games tested (using VICE in emulation only for now) works and starts quickly (Basic, ML, unexpanded, 3/8/16k expanded, pucrunched or not)

Now i think that if Mike wants his project it's a good start point and we can merge our knowledge to do a first complete fastloading system using a1bert/-pasi 1581 information too

It's a nice idea?
User avatar
eslapion
ultimate expander
Posts: 5458
Joined: Fri Jun 23, 2006 7:50 pm
Location: Canada
Occupation: 8bit addict

Post by eslapion »

nbla000 wrote:Since i want after 25 years to use a working fastloader for Vic-20 and 1541/1581 drives i'm searching a starting point to write ones if nobody has already done.
JiffyDOS ?
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

eslapion wrote:JiffyDOS ?
JiffyDOS is an hardware solution, i don't like to modify Vic-20 and drives, my best choice is a cartridge and/or a loader as first file of a 1541/1581 disk
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Post by carlsson »

By the way, earlier this year I extracted the fastloader from VIMM and made it a loadable program. It works reasonably well, but there was some last issues or features that I wanted to add before publishing it. If anyone is interested, I can upload the code later tonight, so nobody needs to re-invent the wheel once more.
Anders Carlsson

Image Image Image Image Image
User avatar
nbla000
Salmon Run
Posts: 2582
Joined: Thu Oct 13, 2005 8:58 am
Location: Italy

Post by nbla000 »

carlsson wrote:I extracted the fastloader from VIMM and made it a loadable program.
Very interesting, with 1581 drive support too?
carlsson wrote:there was some last issues or features that I wanted to add before publishing it.
I suggest a very useful future like Action Replay 6 cartridge for the C64
Typing command $ or $8 or $9 display directory on screen and not load it in memory.
carlsson wrote:If anyone is interested, I can upload the code later tonight, so nobody needs to re-invent the wheel once more.
I agree, sources are appreciated.



Denial: if not there were it would have to invent it :!:
Post Reply