Late (not actually) to the FE3 party. Operational Queries.

Modding and Technical Issues

Moderator: Moderators

8bitDenial
Vic 20 Newbie
Posts: 17
Joined: Sat Mar 30, 2024 5:01 pm

Late (not actually) to the FE3 party. Operational Queries.

Post by 8bitDenial »

First post. LONG post…

So, I bought a Rev.10 FE3 kit in TWENTY-THIRTEEN and having picked up another Vic20 just this week, decided I might as well make the effort to blow the dust off the box and build the thing. :D

Good news, people. My soldering skills haven’t failed me and it worked at first power-up.

I’ve used an SD2IEC before (on my C64) and have a (comparatively) small SD card, which I dropped some Vic prg and d64 files onto. These load perfectly from the FE3, from the fb file browser.

I managed to upgrade the unit to the latest revision firmware, then found an even newer one. Things seemed to be going well.

However, I cannot wrap my head around the FE3 program and cart LOADERs. WTH is this? Having to write a BASIC program to set parameters to load a cart or program?

…I know this device could be considered “retro” in itself (having sat in a box, unbuilt for nearly 10 years), but still, WTH?

I SERIOUSLY can’t get my head around creating these “loader” things.

From the root of my SD, I created a VIC20 folder. Inside this, I placed a CRT folder and inside here, I put TWO cartridge files to test. avenger.crt and choplifter.crt

I then spent the entire evening, scratching (my head AND files), trying to create a loader in BASIC, then having to eject the SD as - even though the @SCRATCH command confirmed 1 file had been scratched - a $ command showed the file STILL existed on the drive, then having to save the file as a temporary “LDR” file, transferring the SD to a Raspberry Pi, just so I could delete the old loader and rename the new ldr file to loader, eject and… :roll:

I’ve only been using the FE3 for an evening and I’ve probably worn out the SD slot already…

Luckily, I found I could OVERWRITE the loader on the Vic20 itself, by saving with the (documented) left arrow, which gave me the option to replace the existing file. No more continual SD swapping.

So, questions:

1. SCRATCH doesn’t. Why? I’m pretty sure I have the correct syntax. It confirms it “scratched” one file. Subsequent directory listings however, disagree. The loader file still exists and (before I RTFM’d and found the left-arrow save option), this was confirmed by moving the SD to my Pi.

2. LOADERS. For the love of…? Given the directory structure I outlined above, would someone be kind enough to demonstrate how I get my .crt files loaded? I thought I’d got somewhere with avenger.crt (it’s listed as loading at $A000) but once I got beyond the loading errors, the loader now just drops me back to a READY prompt. I’ve yet to get anything other than .prg and .d64 files to work, which I’m loading directly from the SD2IEC via the fb file browser.

3. PAL/NTSC. The original fe3firmware (up to v1.29) appears to be just a single binary. The newer version has separate PAL and NTSC binaries. Does this mean there was no distinction between regions in the “official” versions?

4. As mentioned, I’ve successfully updated the FE3 firmware but how do I go about updating the SD2IEC firmware. I’ve read that I should just unzip the SD2IEC firmware to the root of an SD and power up. On my other SD2IEC, I see the LEDs flash rapidly on power-up, but the FE3 doesn’t seem to do ANYTHING. Granted, it works as well as my other unit, so probably doesn’t NEED to be updated but again, having sat in a box for nearly ten years?…

I’ve a new-fangled, tfw8bit PU+2 winging its way to me as I type.

I WANTED to build the FE3 as I got tired of tripping over it and need more RAM than the 16K my Vixen cart allows, but given the PU+2 will work with my existing SD2IEC, I’m wondering if I’ll continue to use the FE3, once the newer gadget arrives?..
User avatar
Orangeman96
Vic 20 Amateur
Posts: 48
Joined: Tue Jan 16, 2024 3:42 pm
Location: U.S.A.

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by Orangeman96 »

8bitDenial wrote: Sat Mar 30, 2024 6:05 pm I SERIOUSLY can’t get my head around creating these “loader” things.
I realize you have already ordered a PenUltimate+2, but perhaps you might find this thread useful: "Ultimate Expansion" - new firmware for FE3.

Best,

OGM
Last edited by Orangeman96 on Sun Mar 31, 2024 12:01 pm, edited 1 time in total.
User avatar
srowe
Vic 20 Scientist
Posts: 1341
Joined: Mon Jun 16, 2014 3:19 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by srowe »

8bitDenial wrote: Sat Mar 30, 2024 6:05 pm However, I cannot wrap my head around the FE3 program and cart LOADERs. WTH is this? Having to write a BASIC program to set parameters to load a cart or program?

…I know this device could be considered “retro” in itself (having sat in a box, unbuilt for nearly 10 years), but still, WTH?

I SERIOUSLY can’t get my head around creating these “loader” things.
I can sympathize with you, I found the LOADER file concept a little confusing at first. I wrote a new User Guide to try and explain the structure of them more clearly, along with examples

[https://eden.mose.org.uk/download/FE3%2 ... 0Guide.pdf]
So, questions:

1. SCRATCH doesn’t. Why? I’m pretty sure I have the correct syntax. It confirms it “scratched” one file. Subsequent directory listings however, disagree. The loader file still exists and (before I RTFM’d and found the left-arrow save option), this was confirmed by moving the SD to my Pi.
Can you give an example? Are you SCRATCHing files in a .d64, or on the SD card itself.
2. LOADERS. For the love of…? Given the directory structure I outlined above, would someone be kind enough to demonstrate how I get my .crt files loaded? I thought I’d got somewhere with avenger.crt (it’s listed as loading at $A000) but once I got beyond the loading errors, the loader now just drops me back to a READY prompt. I’ve yet to get anything other than .prg and .d64 files to work, which I’m loading directly from the SD2IEC via the fb file browser.
FE3 doesn't understand .crt files. I'm not sure they existed when the firmware was first written.
3. PAL/NTSC. The original fe3firmware (up to v1.29) appears to be just a single binary. The newer version has separate PAL and NTSC binaries. Does this mean there was no distinction between regions in the “official” versions?
The JiffyDOS protocol is timing sensitive: to the exact CPU cycle. The two versions of my FE3 firmware differ only in this timing. I'm not sure how the original firmware works on both models, luck possibly.
4. As mentioned, I’ve successfully updated the FE3 firmware but how do I go about updating the SD2IEC firmware. I’ve read that I should just unzip the SD2IEC firmware to the root of an SD and power up. On my other SD2IEC, I see the LEDs flash rapidly on power-up, but the FE3 doesn’t seem to do ANYTHING. Granted, it works as well as my other unit, so probably doesn’t NEED to be updated but again, having sat in a box for nearly ten years?…
That should be all you need to do. What SD2IEC firmware are you running at the moment?. If you read the command channel with @ immediately after dropping to BASIC that should tell you.
I’ve a new-fangled, tfw8bit PU+2 winging its way to me as I type.

I WANTED to build the FE3 as I got tired of tripping over it and need more RAM than the 16K my Vixen cart allows, but given the PU+2 will work with my existing SD2IEC, I’m wondering if I’ll continue to use the FE3, once the newer gadget arrives?..
I think the FE3 is an extremely versatile cart, you can create configurations that cover pretty much any setup and make them immediately available from flash. My replacement firmware even supports loading multistage tape-based files without modification, I don't believe that's possible with the PU+2 (I don't own one myself).
8bitDenial
Vic 20 Newbie
Posts: 17
Joined: Sat Mar 30, 2024 5:01 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by 8bitDenial »

Thanks for your reply.

I’m using your firmware. Thank you also for continuing to improve this device.

I found and have been reading revision 2.1 of the user guide.

I was trying to SCRATCH the non-working loader file from the SD.

My understanding is the SD2IEC sees the SD card like a hard disk? I’m able to create the loader file on the root of the SD just by SAVE-ing with a SAVE “LOADER”,8,1 command.

I was expecting another disk command, @SCRATCH:”LOADER”,8 to remove the file. SCRATCH confirms one file is scratched, but following up and checking with a “$” command shows the file still exists. I can only remove this file from the SD using another, more modern computer.

Until I found the <- command, which allowed me to overwrite the file from the Vic, my experiments in trying to create a working loader file, resulted in a LOT of SD swapping.

My .crt files are just files renamed to display a .crt extension, so I can differentiate them as cartridge dumps. The files avenger.crt and choplifter.crt have just been renamed this way by myself, just so I know they were originally ROMs, dumped from Vic20 cartridges.

As with .prg files (for example), I don’t believe the file extensions are required, or make a difference to loading into the Vic.

However, assuming the SD card, (if mounted in a PC) has the drive letter D:, how would I go about loading a file from FE3, which could be found on a PC as D:\VIC20\CRT\avenger.crt ?

In my loader attempts, I’ve been TRYING to load the file with a LOADER consisting of:
10 “AVENGER”
20 +”//VIC20/CRT/AVENGER.CRT”,8,$A000
30 +RESET

This results in the file loading, but then drops me back to a READY prompt.

In this example, the file I’ve named as avenger.crt originally had [A000] as part of the filename, which I’m assuming was the original cartridge ROMs loading/execution address.
8bitDenial
Vic 20 Newbie
Posts: 17
Joined: Sat Mar 30, 2024 5:01 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by 8bitDenial »

FE3 firmware could also (maybe) benefit from a built-in renumber command?

I’m numbering the lines in my loader file, like I would a bog-standard BASIC program and can imagine after a few dozen entries, this one file could get a bit awkward to wrangle.

While experimenting with NOT creating a successful LOADER file, I’m already finding I’m inserting lines to test out different commands.

A nice RENUM command may come in useful, though I guess there’d already be a separate program/routine for this already, which I can add into the program loader, assuming I can ever create a working one… :roll:
8bitDenial
Vic 20 Newbie
Posts: 17
Joined: Sat Mar 30, 2024 5:01 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by 8bitDenial »

Oh, there we go…

I just answered my own query on the SCRATCH command.

@SCRATCH:LOADER works and removes the LOADER file from the root of the SD Card. No card swapping required.

Why I thought I’d need to be implicit and specify the drive number, I don’t know…

This was on the back of discovering that to LOAD the loader into memory, I could simply type /LOADER and then to save it back, <-LOADER

Looks like I’m using quotation marks and drive numbers where I don’t need to…
User avatar
srowe
Vic 20 Scientist
Posts: 1341
Joined: Mon Jun 16, 2014 3:19 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by srowe »

8bitDenial wrote: Sun Mar 31, 2024 5:16 am My .crt files are just files renamed to display a .crt extension, so I can differentiate them as cartridge dumps. The files avenger.crt and choplifter.crt have just been renamed this way by myself, just so I know they were originally ROMs, dumped from Vic20 cartridges.

As with .prg files (for example), I don’t believe the file extensions are required, or make a difference to loading into the Vic.
Correct, file names/extensions have no significance.
However, assuming the SD card, (if mounted in a PC) has the drive letter D:, how would I go about loading a file from FE3, which could be found on a PC as D:\VIC20\CRT\avenger.crt ?

In my loader attempts, I’ve been TRYING to load the file with a LOADER consisting of:
10 “AVENGER”
20 +”//VIC20/CRT/AVENGER.CRT”,8,$A000
30 +RESET

This results in the file loading, but then drops me back to a READY prompt.

In this example, the file I’ve named as avenger.crt originally had [A000] as part of the filename, which I’m assuming was the original cartridge ROMs loading/execution address.
In line 20 you've got a device number of 8, that needs to be the file type. Try changing it to C. All accesses are implicitly to the same device as the LOADER file.
User avatar
srowe
Vic 20 Scientist
Posts: 1341
Joined: Mon Jun 16, 2014 3:19 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by srowe »

8bitDenial wrote: Sun Mar 31, 2024 6:39 am FE3 firmware could also (maybe) benefit from a built-in renumber command?

I’m numbering the lines in my loader file, like I would a bog-standard BASIC program and can imagine after a few dozen entries, this one file could get a bit awkward to wrangle.

While experimenting with NOT creating a successful LOADER file, I’m already finding I’m inserting lines to test out different commands.

A nice RENUM command may come in useful, though I guess there’d already be a separate program/routine for this already, which I can add into the program loader, assuming I can ever create a working one… :roll:
The Programmers Aid has a RENUMBER command but I see the advantage having one in the FE3 wedge. I'll take a look to see if there's enough room to squeeze one in.
8bitDenial
Vic 20 Newbie
Posts: 17
Joined: Sat Mar 30, 2024 5:01 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by 8bitDenial »

Nope.

I simply CANNOT create a working loader for the FE3.

I’ll just wait until my PU+2 arrives after the holiday break and use that instead.

At least I have a software-selectable RAM pack until the modern cart arrives.

¯\_(ツ)_/¯
User avatar
srowe
Vic 20 Scientist
Posts: 1341
Joined: Mon Jun 16, 2014 3:19 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by srowe »

Can you attach the program you've trying to load and I'll create a loader for you.

[Edit] You also find your program is already in this collection

https://www.sleepingelephant.com/ipw-we ... php?t=9616
8bitDenial
Vic 20 Newbie
Posts: 17
Joined: Sat Mar 30, 2024 5:01 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by 8bitDenial »

srowe wrote: Sun Mar 31, 2024 1:31 pm [Edit] You also find your program is already in this collectionhttps://www.sleepingelephant.com/ipw-we ... php?t=9616
Awesome collection.

I’m using the loader from this collection to learn the structure of LOADERs.

I was trying to get Avenger working. The loader in this collection uses the blkp command to lock more than just the blkp5 that I was using.

The closest I got, was the file loading, then getting dropped back to a READY prompt.

I’ve put the shared SD back into my tfw8b SD2IEC and removed all the vic20 files from it.

This collection deserves its own dedicated SD card and, if nothing else, it’s proved the FE3 I put together yesterday is 100% functional.

There’s more than one title in there, which pulls the absolute living PUDDINGS out of the ol’ Vic20 and FE3 and it’s loaded everything I’ve tried without skipping a beat.

My favourite folder is the tape-to-disk one. I never had a disk drive in 82, so loading from tape was my only option.

Mower Mania. The sound of the guy struggling to get his mower to start still cracks me up, to this day.

So many fond memories…
User avatar
mathom
Vic 20 Dabbler
Posts: 80
Joined: Wed Aug 07, 2019 11:37 am
Location: Centennial, Colorado
Occupation: Software Engineer

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by mathom »

If you are sure your cartridge file is loading you might want to check whether it has the $A000 address in the first two bytes. If those two bytes end up at the beginning of your loaded block in ram your cart can't run. It depends on whether you are loading the file to a specified address or loading it like a .prg which uses that address but doesn't load it into memory.
...mathom...
User avatar
srowe
Vic 20 Scientist
Posts: 1341
Joined: Mon Jun 16, 2014 3:19 pm

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by srowe »

8bitDenial wrote: Sun Mar 31, 2024 6:39 am A nice RENUM command may come in useful, though I guess there’d already be a separate program/routine for this already, which I can add into the program loader, assuming I can ever create a working one… :roll:
I've released a new version, 1.8, which has a REN command in the wedge. This can be used to renumber loader files. Download from the usual link.

:!: It makes no attempt to fixup line references within the program. This isn't a problem for loader files but it will mangle any file with GOTOs etc.
User avatar
Mike
Herr VC
Posts: 4843
Joined: Wed Dec 01, 2004 1:57 pm
Location: Munich, Germany
Occupation: electrical engineer

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by Mike »

There's also a RENUMBER command in the Programmer's Aid cartridge, the dump of which could easily be installed with the cartridge menu of FE3 ...
User avatar
Orangeman96
Vic 20 Amateur
Posts: 48
Joined: Tue Jan 16, 2024 3:42 pm
Location: U.S.A.

Re: Late (not actually) to the FE3 party. Operational Queries.

Post by Orangeman96 »

Perhaps the renumber functionality of CBM prg Studio could be used, especially if a given loader is being built within a Windows, Unix/Linux, or macOS environment? -OGM
Post Reply