This Week in FujiNet marks the start of the summer wind-down. While it was a hot, wet week all around the globe work continued in the FujiNet space with updates on a number of platforms. The end of the week was the VCF Mid-West Festival 17 outside Chicago. FujiNet had a table and a number of members of the Discord worked the table for the two day show. I was there for first day- I decided to make a road trip out of it and drove out from Philly to Chicago to make the show. I’ve been to a number of VCF East festivals (in Wall, NJ) and have heard and watched scenes from previous Mid-West shows and wanted to see for myself. I wasn’t able to attend any of the talks, but I know they will be available online to watch. The show itself was amazing and worth the trip out and back. I have a VCF MW section below with some select photos from my visit.
This Week in FujiNet covers Sunday September the 4th to Saturday September the 10th, the 36th week of 2022.
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
- Antonio @masteries on AA Sells FujiNets from Spain
- GH Project Wiki Pages for Devices Hacking & Coding
- Join our Discord and learn and contribute
- The FujiNet Facebook Group has interesting discussions
Check Mr. Robot’s Live Fujinet Server Status – where to connect with your FN
FujiNet Flasher – keep your FN up2date for best results.
VCMW
Here are some VCFMW walk-thrus, with stops at the FN table. The links are queued up already to take you to the FujiNet interactions.
Videos for MW will be posted here as they are available:
https://www.youtube.com/c/VCFMidwest
Photos
Jamie @idolpx was at VCFMW working the FN table
The Fujinet table is setup Friday night, ready for the start of the show:
The show in progress, JohnB, JoeH and Jamie (seated) explaining how awesome FujiNet is:
Detail of the Apple2 running the ISS Tracker:
JoeH (@mozzwald) getting into details about the Apple2 implementation:
8Bit slicks demo had some networking issues at the start of the show:
FujiNets in the wild — other exhibits featured FujiNets!
This, amazingly, is a hotdog in Chicago (I approve):
Chicago has some stunning architecture and viewing from the river is the coolest way to see it:
Platforms
ADAM
dotmatrix continues the work to reproducing the MIOC. seatsafetyswitch is helping with a 2nd pair of eyes. dotmatrix has switched to xilinx for better tooling and is targeting the XC95 series CPLD. A CPLD (Complex Programmable Logic Device) is an interesting device that sits between PALs and a FPGA device in complexity…
… we can see that a CPLD consists of multiple macrocells or function blocks. The macrocells are connected through a programmable interconnect, which is also referred to as GIM (global interconnection matrix). By reconfiguring the GIM, different logic circuits can be realized. CPLDs interact with the outer world utilizing digital I/Os.
quoted from: https://www.autodesk.com/products/fusion-360/blog/cpld-overview/
dot’s work soon produced some good outcomes:
dotmatrix: Its ALIVE!!!(evil laugh)……Its fully operational within the Xilinx simulator 🙂
So many things to get here….typos in toplevel(human error), a flop that is Xilinx friendly, a F-ing stupid bug in my (testbench), and a bunch of “tool” dont touch this , dont touch that, and dont even think about doing that…
Now to make it all driven from the command line for simulation regressions, and some more tests….but the beast has been slayed…..all we need now is a PCB.
There was some back and forth about the refresh line in the Z80 and MIOC. goltmans was asked about this and went to do some research.
goltmans: According to adamem source… writing to IO port 0x60 is the normal MIOC bank select. Writing to 0x42 selects the third party ram pages. I think this is a 64k page though, so the same 64k page is swapped out for the entire expansion ram. I haven’t tried that to be sure though. So there would be a constraint on selecting pairs of lower and upper 32kB bank pairs to the same 64k page if I’m not mistaken.
Apple 68k – Macintosh
KatherineS @dreamkat appeared and shared a ton of good information about SmartPort vs the Mac’s DCD (Direct Connected Drive) aka HD20- the hard-drive that connects to the floppy port on pre-scsi Macs. dreamkat corrected me with the details that the Mac isn’t using the Apple2 SmartPort protocol (I thought it was)- while the Mac uses the same IWM chip inside it’s signaling on the lines is different, and it’s a different protocol. One of the main things it telling the Mac if it’s a Hard Drive attached or a floppy. @dreamkat is a great resource to have for help with wrangling this very un-documented aspect of the early Macintosh.
dreamkat: The 7-to-8 encoding is the same as SmartPort
I just made that name up, IDK what it’s really called
But the status on the phase and other lines is totally different
KatherineS was a contributor to the SmartPortSD project, which was incorporated into the FujiNet ecosystem by JeffP and became the primary code base for the FN implementation of SP. Of course JeffP then went super-genius and implemented SPI on top of the ESP32 for the SP protocol which has really refined the ability of the ESP32 to handle the SP protocol.
Apple II
After a very quiet start to the week JeffP popped in and kickstarted a furious amount of work with:
Jeff Piepmeier: @here … I just pushed a change to the spirx branch that solved my memory handling exceptions. It boots to CONFIG, but I run into problems trying to navigate to a host. Wondering if the testers can help figure out why its hanging up.
then later:
Jeff Piepmeier: @Thom Cherryhomes i think i found at least one problem … SP from the IIc is not exactly 250.00000 kbps. According to my logical analyzer its 31.25 us/byte not 32us/byte. That’s 256 kbps.
Jeff Piepmeier: that’s the tail end of a long receive packet … I was 300 us too slow.
@Thom Cherryhomes i just mounted and booted the ISS tracker
And just like that it came together!
Jeff pushed this back into master and people started stress testing. With mixed results…
Jeff Piepmeier: the SPI buffer has to be 32-bit aligned, but i read it byte by byte
wonder if i’ve just gotten lucky
Rory McMahon got an A2 fujinet and started testing on his Apple IIe- but had some bad reads trying Total Replay.
Even with some read errors it still brought on the feels…
Rory McMahon: scrolling through all those games on Total Replay brings me back to my mid teens. almost tears.
dreamkat also got FujiNet going for the first time and joined the testing crew. After a bit she was convinced to go pull down the code and roll the latest from JeffP.
dreamkat: Ugh I shudder to think what’s hidden under that fseek. It’s going out to the internet, literally anything could be happening and the error’s not propagating back up the stack
Jeff and the team continue to try and nail down the problem. They will be sucessful.
Atari8
A few people were active on the 8bit channel this week.
PhilaBusta got interested in some json parsing while working in BASIC with the N: Device. ThomCh and Scoth42 helped out with some troubleshooting for his code.
bocianu hopped back in with:
bocianu: I have probably asked this question before, but I cannot remember – what is the best way to detect if fujinet device is present?
mozzwald helped him out.
Michael Sternberg continued with improvements to NOS for Atari.
Michael Sternberg: I have NOS pagination working for DIR, TYPE/HELP.
For TYPE/HELP, I am happy with the results. The routine observes SCRFLG ($02BB). This memory location is incremented by the screen handler each time a line of text scrolls off the top of the screen. So the TYPE/HELP command enters a wait-for-key loop when SCRFLG reaches a limit.
For DIR, the solution that worked for TYPE/HELP was awkward for directory listings. This is because DIR is dumping 128 bytes at a time (or 256 – can’t remember) and it is not obvious how many lines will scroll. So it either paused too early or too late. The current solution is that the text stream is paused on demand using the SPACE key and resumes when any-key-except-SPACE is pressed. Pausing a DIR listing on demand felt like a more natural way for it to work anyway. I would’ve preferred to use SPACE to start/stop. But, hey, it’s a 7-byte feature.
At the end of the week mnemo came looking for some utils to spot check his 800XL which he got working w/ Fujinet. He used ACP for screen colors and then proceeded to look for a disk testing app. When he found none he jumped right in and started coding something in C for the Atari.
mnemo: GUI is fully working already 😄
Amazing
It’s so much faster to do this in C
Atari Lynx
Alex Thinssen showed up and started hacking on the FN Lynx. He appears to be this Alex Thinssen, who likes Lynx and Dot Net.
AlexThissen: It is compiling now
Commodore
The discord was quiet but Jamie @idolpx was busy prepping and hacking for VCFMW, where he was at the table all show and then some. The Meatloaf FujiNet continues to bake and is getting nearer to being complete.
PC Compatibles
The first boards are back and being brought to life by mozzwald.
mozzwald: need some bodgery to fix the unable to flash problem. RX/gpio2 needs moved. if it’s not floating, it won’t go into flash mode
I can’t figure out the uart_driver_error. I disabled the flush and got rid of the first error. then tried adding a read and debug print but it came back. basically trying to use the rs232 port causes uart_driver_error
Thom Cherryhomes: weeeeeeeeeeeeeeeeeeeiiiiiiiiirrrddddd
mozzwald: was thinking about the rs232 today and remembered the INVALID pin was hooked up. added a digitalRead to the service loop and it is receiving data:
RS232 SETUP RS232 Setup Flush Available heap: 4383003 Setup complete @ 333 (329ms) WiFiManager::start() complete WIFI_EVENT_STA_START RCVD RS232 DATA RCVD RS232 DATA RCVD RS232 DATA RCVD RS232 DATA RCVD RS232 DATA RCVD RS232 DATA
The first board will soon be going out to ThomCh for the Grid bring-up using his dos driver for FujiNet.
Project Status
Here is an interesting project view from GH – commits. As we start the fourth quarter of 2022 the project has made incredible strides this year with more in store in the last few months…
Things to Try
Here are a few things that have come up that need to be further explored by me or you.
- https://github.com/savetz/FujiNet#fujinet-bounce – bouncing ball between screens. Do it with FujiBOINK! Do it will the real Amiga ball between Atari and C64!
- https://github.com/FujiNetWIFI/fujinet-nhandler/tree/master/nos – run the NOS and explore how to use it
- https://github.com/FujiNetWIFI/fujinet-platformio/wiki/CP-M-Support – figure out and play with CPM on the Atari via FN. Stefan Vogt is making a follow up Hibernate game that will require CPM on the Atari- and he’s going to use FujiNet to provide the CPM for his game development and testing.
In Conclusion
So another week and another show is wrapped up. Again, almost too much to keep track of. As I start these TWIFs I think I can do it in an hour but there is always so much to record that it always takes longer…so much longer. But then I look back and realize if I don’t log what is happening each week there will be way to much to sift thru at a later date and sort out who was doing what when and had what breakthru. So it’s worth it.