An unusual demo that the Vic20 could also probably initiate

Basic and Machine Language

Moderator: Moderators

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

An unusual demo that the Vic20 could also probably initiate

Post by Vic20-Ian »

I put this in the programming thread because while it looks like it is initially a C64 demo, it is probably equally feasible on a Vic20 as it is executed by the disk drive which both could use.

I am not usually a fan of demos but this one is really quite impressive and definitely worth watching the video.

https://hackaday.com/2021/07/08/c64-demo-no-c64/
Vic20-Ian

The best things in life are Vic-20

Upgrade all new gadgets and mobiles to 3583 Bytes Free today! Ready
User avatar
chysn
Vic 20 Scientist
Posts: 1205
Joined: Tue Oct 22, 2019 12:36 pm
Website: http://www.beigemaze.com
Location: Michigan, USA
Occupation: Software Dev Manager

Re: An unusual demo that the Vic20 could also probably initiate

Post by chysn »

That's impressive.

For somebody who's been into Commodore stuff since 1980, it might be surprising that I've never once owned a Commodore floppy drive. Even when I had a C64, I was almost (save for floppy drives at school) entirely committed to tape. It's not like my parents wouldn't have bought me one for Christmas, or that I couldn't have saved up my allowance. It just never was something I thought about.

I realize that the 1541 has a 6502 and at least one 6522. I didn't know that it had enough RAM to do this kind of stuff, or that it had a mechanism to start executing code. Now I'm thinking it might be fun to pick up a 1541 and mess about with it.
VIC-20 Projects: wAx Assembler, TRBo: Turtle RescueBot, Helix Colony, Sub Med, Trolley Problem, Dungeon of Dance, ZEPTOPOLIS, MIDI KERNAL, The Archivist, Ed for Prophet-5

WIP: MIDIcast BASIC extension

he/him/his
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: An unusual demo that the Vic20 could also probably initiate

Post by Mike »

chysn wrote:I realize that the 1541 has a 6502 and at least one 6522. I didn't know that it had enough RAM to do this kind of stuff, or that it had a mechanism to start executing code.
Actually, that setup - with computer and intelligent drives as we see with CBM 8-bitters and 1541 drives - is much more akin to a computer network than what other contemporary computers got with their peripherals.

However, you must have been really quite aloof of this topic if it only appeared to you in the present time, with this example, that the IEC drives are actually computers on their own. The drives were not only reprogrammed in their RAM to install code for fast serial protocols, they also found use as co-processor to accelerate the computation of fractals, for example.
Vic20-Ian wrote:[...] probably equally feasible on a Vic20 [...]
Of course it is entirely possible to port the loader to the VIC-20. But what does it buy you? If you follow the discussion in the C64 demo scene, even though the demo gets lots of praise regarding the idea, it is questioned whether it is a C64 demo at all. After the first code has been loaded into the drive, it is completely autonomous and loads the following parts into itself with a track loader that also runs entirely within the drive. It is really a 1541 demo. Porting the loader to the VIC-20 adds nothing to the actual feat done.

In fact, the CBM drives provide a way to load a file from disk directly into their RAM and execute it there. This is possible with those files typed USR, and it is only necessary to send "&filename" over the command channel to the drive. Then the demo would run from any 8-bit CBM that could otherwise use it as 'normal' peripheral.
Vic20-Ian
Vic 20 Scientist
Posts: 1214
Joined: Sun Aug 24, 2008 1:58 pm

Re: An unusual demo that the Vic20 could also probably initiate

Post by Vic20-Ian »

"Of course it is entirely possible to port the loader to the VIC-20. But what does it buy you?"

I thought it would intrigue Vic20 only users (I rarely use a C64) who might want to explore this.

Yes it is a 1541 or drive demo but if my post served to get a Vic20 only user interested then it may inspire something else equally impressive.
Vic20-Ian

The best things in life are Vic-20

Upgrade all new gadgets and mobiles to 3583 Bytes Free today! Ready
tlr
Vic 20 Nerd
Posts: 567
Joined: Mon Oct 04, 2004 10:53 am

Re: An unusual demo that the Vic20 could also probably initiate

Post by tlr »

Haven't checked the code here but if it doesn't use it already you could port it to use the 1541 utility loader function. That way a single '&' command to the drive could start it. Very portable. IIRC there is at least one 1541 DOS version that supports booting such a disk automatically when having the IEC-port pins tied in a certain way during reset.
User avatar
Mike
Herr VC
Posts: 4841
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: An unusual demo that the Vic20 could also probably initiate

Post by Mike »

tlr wrote:Haven't checked the code here but if it doesn't use it already you could port it to use the 1541 utility loader function. [...]
ATM, the demo uses a PRG file to run on the C64 that inits the drive.

Maybe you could tell Matthias over CSDb about this? I tried to reach out to him via e-mail regarding that same idea, but my e-mail got bounced.
IIRC there is at least one 1541 DOS version that supports booting such a disk automatically when having the IEC-port pins tied in a certain way during reset.
That feature was present in the 1540 DOS and very early 1541 DOS versions, but it got removed with later revisions as it led to an error blink status of the drive when the IEC signals provoked that drive boot procedure, but the seeked-for utility file did not exist:
ftp.zimmers.net wrote:1541-e000.901229-03.bin

The firmware of an old-style 1541 with long board. This ROM has an autobooting feature: if CLK and DATA are held low during bootup, the drive will wait for them to raise, and execute a "&*" command.
... the utility file needs to be of CBM file type USR, and these files happen to feature a checksum - both of which are very unlikely to find on most disks.
Post Reply