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

History and Preservation Issues

Moderator: Moderators

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

Postby Mike » Fri Nov 17, 2006 4:12 am

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

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

Postby eslapion » Mon Dec 04, 2006 10:53 pm

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: 3102
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Postby Mike » Tue Dec 05, 2006 2:09 am

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: 2426
Joined: Thu Oct 13, 2005 8:58 am

Postby nbla000 » Tue Dec 05, 2006 9:14 am

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:

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

Postby a1bert » Tue Dec 05, 2006 4:25 pm

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

User avatar
MacbthPSW
Vic 20 Afficionado
Posts: 477
Joined: Wed Apr 06, 2005 1:56 pm

Postby MacbthPSW » Tue Dec 05, 2006 6:07 pm

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.

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

Postby eslapion » Wed Dec 06, 2006 1:43 am

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: 2426
Joined: Thu Oct 13, 2005 8:58 am

Postby nbla000 » Wed Dec 06, 2006 3:10 am

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: 3102
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Postby Mike » Wed Dec 06, 2006 3:15 am

@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

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

Postby a1bert » Wed Dec 06, 2006 4:41 am

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: 2426
Joined: Thu Oct 13, 2005 8:58 am

Postby nbla000 » Wed Dec 06, 2006 5:52 am

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?

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

Postby eslapion » Wed Dec 06, 2006 2:55 pm

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: 2426
Joined: Thu Oct 13, 2005 8:58 am

Postby nbla000 » Thu Dec 07, 2006 2:22 am

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

User avatar
carlsson
Class of '6502
Posts: 5516
Joined: Wed Mar 10, 2004 1:41 am

Postby carlsson » Thu Dec 07, 2006 9:15 am

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: 2426
Joined: Thu Oct 13, 2005 8:58 am

Postby nbla000 » Thu Dec 07, 2006 10:13 am

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 :!:


Return to “Collecting and History”

Who is online

Users browsing this forum: No registered users and 1 guest