I think I might have found an undocumented VIC cartridge...
Moderator: Moderators
- Mike
- Herr VC
- Posts: 4879
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
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
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: 5458
- Joined: Fri Jun 23, 2006 7:50 pm
- Location: Canada
- Occupation: 8bit addict
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 ?
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 ?
- Mike
- Herr VC
- Posts: 4879
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
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
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
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.Mike wrote:Before someone else does the same:
Maybe I'll include a disc drive fast loader as well.
maybe too many questions
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.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
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
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.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.
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: 5458
- Joined: Fri Jun 23, 2006 7:50 pm
- Location: Canada
- Occupation: 8bit addict
If you put the code for Hypra into BLK5 then it cannot be used to load ROM images of games that uses that BLK.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
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 ?
Yes, that's sounds good!!!My price: Base expander is 30$ + 5$ for 1 ROM option + 10$ for the extra 2k RAM.
Does that sound reasonable ?
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.
Thank's for the specification my post was just a fast explanation of my future works.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.
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?
- Mike
- Herr VC
- Posts: 4879
- Joined: Wed Dec 01, 2004 1:57 pm
- Location: Munich, Germany
- Occupation: electrical engineer
@nbla000:
@eslapion:
Greetings,
Michael
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.Do you have some samples PRG source
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.etc to test it? how does it works?
@eslapion:
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.Does that sound reasonable?
Greetings,
Michael
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.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?
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
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?
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?
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
Very interesting, with 1581 drive support too?carlsson wrote:I extracted the fastloader from VIMM and made it a loadable program.
I suggest a very useful future like Action Replay 6 cartridge for the C64carlsson wrote:there was some last issues or features that I wanted to add before publishing it.
Typing command $ or $8 or $9 display directory on screen and not load it in memory.
I agree, sources are appreciated.carlsson wrote:If anyone is interested, I can upload the code later tonight, so nobody needs to re-invent the wheel once more.
Denial: if not there were it would have to invent it