This is week 27, the first week in July 2022. July 3rd – 9th.
Upcoming FujiNet appearances:
July 15 – 17 – Vintage Computer Federation South East in Atlanta GA.
Drop by and see the table with idolpx and FujiNet on various platforms- with an emphasis on full Commodore 64 bring up.
July 19 – 24 – KansasFest 2022
If you are attending virtually or in person make sure you see the 4pm session on FujiNet for Apple II by JeffP. A new device will be revealed.
You can find more information about the FujiNet project and purchasing a device at these locations:
- FujiNet Official Site
- Buy A FN Device from Vintage Computer Center
- Buy A FN Device from Arcade Shopper
- Wiki Pages for Devices & Coding
- Join our Discord
- The FujiNet Facebook Group
FujiNet Flasher is here – keep your FN up2date.
Overview
The summer heat, holidays (July 4th in the US) and vacations made this a slow, short week– except for two platforms: Apple II and Spectrum. Work continues in the background to prep for the above two shows, where idolpx (c64) and JeffP (AppleII) will show the amazing progress of the FujiNet team onto two huge micro platforms from the 80s.
Platforms
Apple II
There were some issues with using the FujiNet CONFIG application with a system that has the MDT from reactiveMicro. MDT is a CF Harddrive card system for AppleII. After some dependency detangling, testing by myself and RonKlein we had a working CONFIG again that was ok with all the MDT SmartPort devices that popped up on the buss.
Myself and Ron discussed AppleII disk image format conversions, he is working on converting over all the .2mg format disk images to .PO so they will work in the FujiNet CONFIG app. At this point CONFIG only supports .PO and .HD for now- time permitting more formats will be supported.
More discussion around GSOS and mounting FujiNet disk images from inside GSOS. Ron has this working!
Ron Klein: I mounted a converted IIgs .2mg image into a .PO (Arkanoid). I loaded GS OS 6.0.4 from the MDT.
Ron Klein: You can see the mounted Arknoid folder in the first image.
Ron Klein: I opened the Arkanoid folder and the folders/files appear correct.
Ron Klein: I attempted to load the Arkanoid program, but got the following error (in the last screen shot).
mozzwald: check fujinet debug output. maybe something will jump out there
Andy (me) then needed some help getting my GSOS partition booting on the IIGS, as I also have a MDT card. The trick was again provided by Ron:
Ron Klein: For the MDT, you press (and hold) Open Apple, then press the # of the partition you wish to boot from.
TNFS FUSE
Ron Klein (who is doing a tremendous amount of user land testing and exploration) noticed issues with the older tnfs fuse driver that used Python2. He stumbled upon the updated fuse client- mnemo had updated it to use Python 3 and Ron was the first person to test and verify it worked! Ron was able to mount a tnfs remote system locally on his machine and traverse the files. This FUSE method allows quick and easy transversal and searching of remote tnfs servers from your local shell. An interesting and novel way of connection that I was totally unaware of.
smolderer was doing some testing and updating in prep for the upcoming KS Fest and found an issue with CONFIG and ROM3 on the IIGS. Testing w/ ROM3 will need to happen at some point, but now he is the only person around with a ROM3. He will be at KS Fest with JeffP so there is a chance to iron out this issue in person at KS Fest…
CONFIG still has some issues with lower-case letters – for WIFI passwords. There are differences between the Apple II+ and IIe that make the lowercase handling incompatible at this point. More work on that will have to be done later.
mozzwald has the very first batch of Rev0 AppleFujiNet boards back. He has been doing final shake-down and testing on them with his setup. Some additional config will have to be done in the code to manage the pin outs but overall the board is working and booting things. Amazing job. There should be time to get one out for an upcoming show. There is a new branch to test pin mapping per board: pindef.
build_board = fujiapple-rev0 ; FujiApple Rev 0 Prototype
Boards have been shipped to the testers and will be arriving soon
ADAM
Slow week for ADAM- just the CONFIG regressions as the Atari code was back-ported in. A small typo was fixed that broke a SmartKey and the correct number of virtual slots was fixed and pushed in via PR.
Spectrum
thweasel and That Old Nerd continue again to barrel thru another week of the most insane platform bring up in FujiLand. At this point I’ll just let them talk about some salient points in their own words.
That Old Nerd: I was thinking on the way to work this morning. Without any modifications to BIOS, how many actual IO routines are there? I can think of Printer, which is a simple data dump, and cassette, which we are ignoring due to speed. Am I correct in stating that any future IOs that we access we are going to have to code into BIOS? If so can’t we just write the routine to match our hardware. Design something that sends the IO request and waits for a response, either through IRQ or a memory flag. That way we can have some breathing room on the speed of our IO handling.
thweasel: The horrible part is the IO bus on the Z80 gives you 16-bit address space, so you can put hardware all over the place; and there is no need for “bios” code for them. The Spectrum being the disorganized budget space, no standards guided the organisation of the IO space. Some of the peripherals are listed on the Wikipedia page, after a quick google I couldn’t see any nice lists, but there are a lot more than just the original sinclair made ones. Depending on the device it may replace the internal rom to provide software, or software was written to drive the hardware directly through out() in() IO calls. From what I can tell, directly driving hardware was common practice, custom tape loaders/disk drive routines etc.
skonkfactory, TCH and thweasel discussed education, ARM assembly and accountability in automated decision-making.
skonkfactory: interrupt coalescence is, like, my jam (to handle a couple gigabits a second of network traffic on a machine slightly less powerful than a raspberry pi 2, you need to do… some serious interrupt mitigation)
thweasel seemed to get a handle on timings for the WAIT on the Z80, but the IO speed needed is hampered by the ESP32 and its spin up times for SPI transactions.
thweasel: Filtering out the IO request with a programmable address decoder will help limit the IO slowdown to only the required IO addresses. BUT, this kind of IO speed is going to impact on the types of devices you could implement.
I tried using spi_device_transmit() in the ISR routine, but it seemed to crash the ESP. The only way I can get it working at the moment is spi_device_polling_transmit(); but that is taking 12uS to start up.
thweasel found that he’s not the only one unhappy with the SPI transaction time on the ESP32- forum postings on the Espressif forum show that the long setup time has been an issue for at least a year. Some investigation into the spi source itself on GH started… TON was back (under the weather for a bit) and suggested some logic changes. More investigation will ensue on how to unblock this.
thweasel: I still think the memory based decoder will be useful, even though the response time from the ESP isn’t great; being able WAIT the system and react to any IO request is a powerful feature. Call it “Slow virtual device IO” or something.
Lastly, in the all you have is a hammer and everything was a nail department:
skonkfactory: this would be so much easier if esp32 was cortex-m based
For Fun
Demos
Lost Party 2022 was held this week and some amazing Atari8bit demos debuted. All worth a look and listen. Top three:
3rd – Bring Back the Eighties – by FN discord member dely
2nd – Alley Dog Demo – by Agenda
1st – Rewind Demo – by New Generation and Zelax
Games
Scorched Earth had another preview release. This game is a candidate for network play via FujiNnet- let’s hope that work come together before it’s release (bocianu is exploring this).
KansasFest Details
Two participants in the FujiNet Discord will be giving back to back talks at KansasFest in a few weeks. Here are the descriptions of their talks:
smolderer:
Creating a head to head action game using VidHD text modes
When Fri, July 22, 4:30pm – 5:00pm
Description – Jay Craft will demonstrate Xslinger HD, a player vs. player retro-styled action game, that uses the VidHD card’s extended text modes as if they were a new graphics mode for the Apple II. The presentation will include a description of the text modes and how to use them as well as challenges and discoveries made while creating a game that features them. The session will also discuss the overall experience as a newcomer to assembly language and game programming.
Piepmeier:
FujiNet for Apple II’s – status and plans
When Fri, July 22, 4:00pm – 4:30pm
Description Jeffrey Piepmeier and Petar Puskarich will discuss and demo the FujiNet for Apple II. The FujiNet is a multi-peripheral device emulator and modern wireless network adapter for vintage computers. FujiNet origins, booting an Apple II+ over the internet for the first time, hardware and software development, current status and plans will be discussed. FujiNet firmware includes disk, printer, and network devices. Disk images are selected and mounted via the CONFIG program run on the 8-bit host and device configuration is made in a web browser. Network protocol adapters set the FujiNet apart from other networking solutions. Protocol processing (e.g., HTTP, FTP, etc.) is performed on the FujiNet and presented over simple open/close/read/write interface to the 8-bit host. The Apple II version currently supports block devices over the SmartPort bus and Disk II emulation is planned. Successes and challenges encountered during development will be discussed along with plans and future ideas.
Conclusion
That’s all for this week. VCF is happening at the end of this week, and KansasFest end of next week. FujiNet Rev0 boards will be around with testers this week- so a lot is going on. Hop over to the discord to talk to us in person.