Giter Club home page Giter Club logo

fujinet-config's Introduction

fujinet-config

More documentation to be written as it takes shape.

This repo is the primary repo for the CONFIG application for every supported platform on FujiNet.

In the beginning there was only Atari. And so the CONFIG application was just called fujinet-config. Then came the ADAM and now common code for all the platforms began to take shape in this repo. Apple II soon joined, then RC2014 and soon C64. Atari was merged back in here in 2022 Fall by frachel so there is one place for all platform CONFIGs going forward.

What is CONFIG?

CONFIG is the primary management application for the FujiNet device. It manages the WIFI connections and credentials, the SD card if one is inserted , and it traverses the HOSTS for images to mount in the Virtual SLOTS. The main page of CONFIG is the familiar HOSTS and SLOTS view that greets most people at boot with a FN device active on their system. CONFIG also can copy images to and from the SD card (Atari) and it has it's own configuration screen that shows the current network configuration of the ESP32 on your local network.

The CONFIG application must be coded and compiled to build a native binary application for each host platform. Then there are some scripts used to copy the CONFIG application to a bootable disk image for each platform. The process for those steps varies by platform. The final bootable disk image is then used in the main fujinet repo to flash the fs on the FN with the disk image, which is then loaded and mounted when you are booting the system without a virtual mounted disk.

Compiling on the Atari

To compile, currently requires:

CC65 built and installed on your system

Pull down cc65 code

Build cc65

For unix environments:

$ PREFIX=/usr/local/cc65 make
$ sudo PREFIX=/usr/local/cc65 make install

For MSYS2 environments, you must be in an MSYS2 shell, and then install with

$ PREFIX=/usr/local/cc65 make
$ PREFIX=/usr/local/cc65 make install

Note the lack of sudo.

After this, you can use any subsystem shell (e.g. UCRT64) to run cc65 as normal.

WARNING: If you are in a MinGW shell or any other sub-environment, the install will work, but will not be able to find the installed cfg, lib etc files. You must be in the MSYS2 shell for compiling and installing cc65, but not to run it.

Additional Tools

Building config also requires these additional tools:

Now with those prerequisites out of the way:

$ make -f Makefile.atari clean dist

Check for any errors. If sucessful there will be a log line:

created image "autorun.atr"

copy autorun.atr to ~//fujinet-platformio/data/BUILD_ATARI/ and then using PIO "Upload Filesystem Image" to load the new image onto the FujiNet. Your new CONFIG should be ready to test and use.

Compiling on the Apple II

To compile, currently requires:

CC65 built and installed on your system

Pull down cc65 code

Build cc65:

$ PREFIX=/usr/local/cc65 make
$ sudo PREFIX=/usr/local/cc65 make install

Pull PlatformIO repo & config repo

git clone https://github.com/FujiNetWIFI/fujinet-platformio.git
git clone https://github.com/FujiNetWIFI/fujinet-config.git
  • You need the platformIO repo because the build script expects it to be in the same directory as CONFIG, so that it can push the completed Apple boot disk into the proper folder to be pushed to the FN device.

Now with those prerequisites out of the way:

cd fujinet-config-adam.git
$ make -f Makefile.apple2 clean dist

Check for any errors. If sucessful there will be logs that say:

...
java -jar dist.apple2/ac.jar -as dist.apple2/dist.po config.system sys <config
cp dist.apple2/dist.po ../fujinet-platformio/data/BUILD_APPLE/autorun.po

you will find your autorun.po in the directory indicated above. You can now flash this to the FN using the PIO's Upload Filesytem Image.

Compiling on the Apple IIgs

These instructions allow Apple IIgs users to build native GS/OS versions of CONFIG. Note that for generating the firmware version, instructions under Compiling on the Apple II above still apply.

Two makefiles allow building GS/OS versions of CONFIG:

  • Makefile.apple2gs builds a standalone ORCA shell EXE which can then be installed in the Utilities folder.
  • Makefile.apple2cda builds a Classic Desk Accessory (CDA) which allows configuring wifi and mounting/umounting images on the go under GS/OS or ProDOS 8, without need for rebooting.

To compile, currently requires:

GoldenGate built and installed on your system

Note: you'll have to buy GoldenGate before being able to build it. See the project page: https://goldengate.gitlab.io/.

A copy of the Byte Works ORCA/C and its libraries is also required. You can get it there: https://juiced.gs/store/opus-ii-software/.

Pull down GoldenGate code

Build GoldenGate:

Detailed instuctions for building the GoldenGate binaries are given in the project README.md. For installation of GoldenGate and ORCA/C components, see https://goldengate.gitlab.io/manual/#installation.

CC65 headers installed in GoldenGate

In addition, cc65 headers conio.h, apple2.h and peekpoke.h are necessary and should be present in ORCA/C include search path. You may copy them under ~/GoldenGate/Libraries/cc65. These are available here: https://github.com/cc65/cc65/tree/master/include.

Now with those prerequisites out of the way:

To build the ORCA shell EXE:

cd fujinet-config-adam.git
$ make -f Makefile.apple2gs clean dist

Check for any errors. If successful there will be logs that say:

...
cp dist.apple2/bootable.po dist.apple2/dist.po
java -jar dist.apple2/ac.jar -p dist.apple2/dist.po config exe <config

You will find the CONFIG shell EXE in the disp.po image. Just copy it under prefix #17, then add this to 15:SYSCMND:
CONFIG U configure Fujinet

Restart ORCA shell or issue a commands 15:syscmnd and you're ready.

To build the CDA:

cd fujinet-config-adam.git
$ make -f Makefile.apple2cda clean dist

Check for any errors. If successful there will be logs that say:

...
cp dist.apple2/bootable.po dist.apple2/dist.po
java -jar dist.apple2/ac.jar -p dist.apple2/dist.po fuji.da cda <config

You will find the FUJI.DA CDA in the disp.po image. Just copy it on your GS/OS boot disk under System/Desc.Accs and you'll have FujiNet Config in the Desk Accessories menu after a reboot.

Compiling on the ADAM

To compile, currently requires:

Make using 'make -f ' where file is Makefile.

Compiling on the RC2014

To compiled, currently requires:

Make using make -f Makefile.rc2014

Screen Shots

CONFIG on the ADAM

ADAM CONFIG

CONFIG on the AppleII

Apple II CONFIG

CONFIG on the Atari

Atari CONFIG

fujinet-config's People

Contributors

a8jan avatar barbeque avatar benjamink avatar diggerbonk avatar dillera avatar frachel avatar hcgernhardtiii avatar jeffpiep avatar juzzas avatar lebraseric avatar markjfisher avatar mike-wiese avatar mozzwald avatar oliverschmidt avatar robjustice avatar techcowboy avatar tschak909 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fujinet-config's Issues

Apple 2 Modem, various commands don't work

With Apple IIGS (but probably anything), and Apple fujinet, ATTERMVT52 and its cousins all show errors, ATPHONEBOOKLIST, ATPHONEBOOKCLR, both show error. ATPB1=WWW soft locks the VT100 program, ATCPM does nothing.

Really, the thing that would be actual useful to me is ATPB, since VT100 has no way to store phone numbers. Not a big deal, but nice to have.
Thanks.

Long filename not being retrieved when using "<" and ">" to go to prev/next page.

When you use ">" to go to the next page of files, the bar will be on the 1st file of the new page. If this happens to be a truncated filename that would normally show the long-filename at the bottom, it's not triggering the call to get the long filename.

If you went to the next page by scrolling down after the last entry on a page, then it does work properly.

Selection bar not visible on monochrome monitor

(Atari) The selection bar is not visible on a monochrome (green) monitor. Selections need to made "blind". Maybe have a different color scheme that works both on color and mono screens, or have a function to switch to a high contrast color scheme (I've tried to find the code where the colors are set to be able to deliver a patch, but I can't find the code)

Add missing feature from original config where filename starting with a '+' actually represent a host name, to be mounted and browsed.

Missing feature from the "combined" config program -

The original Atari config had a feature where if a filename started with a + sign, such as +xyx.com it would take everything to the right of the + sign, mount it as a new host, and go to it's directory listing (see here: https://github.com/FujiNetWIFI/fujinet-config-old/blob/master/src/diskulator_select.c#L364)

Guru Meditation Error - Changing media permissions on empty slot

It is currently possible to press V or VI (Read Only / Read Write) on empty media slots. This causes the fujinet device to core dump, and reboot.

[22:25:10] Fuji cmd: MOUNT IMAGE
[22:25:10] Selecting '' from host #255 as r on D2:
[22:25:10] fujiHost #-1642137242 opening file path "�    _v��f��~m>HՁ"
[22:25:10] Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.

Turn off screen-saver (attract mode color cycling) if joystick is used

Once attract mode is in effect, Joystick movement doesn't disable it. Add code to disable it when the joystick is used.

"Joysticks alone will not reset location 77 to zero. You will have to add a POKE 77,0 to your program periodically or frequently call in a subroutine to prevent the Atari from entering attract mode if you are not using any keyboard input."

Various issues related to filename and filter length for the Atari

From @a8jan on Discord:

  • When mounting image file, in shown file details, sometimes file name is truncated, sometimes it overwrites file date text
  • When browsing long path, the path is truncated, current directory is not visible, maybe ellipses can be used here too
  • Sometime empty file filter is not sent properly (when longer path was previously visited)
    • 9:37:25.684415 > Opening directory: "/222222/ABCDEFGHIJKLMNOPQRSTUVWXYZ/_NUYNB~T/abcdefghijklmnopqrstuvwxyz/dir-1", pattern: "ir-3a/"

Only first page after mounting a file

Hi,

if you go through the directories of some server to mount a file and this file is not on the first directory page, then after mounting the file the menu jumps back to the first directory page - but the NEXT PAGE button is missing.

You have to go up one directory and the reselect the directory where you came from to get the NEXT PAGE button back.

(Atari version, firmware 1.1 dated AUG 13th.)

XeAtari

Disk Swap Button

If you swap disks using the button and then enter the FujiNet Config Menu the entries for D1: and D2: show the values from before the swap.

(Atari version, Firmware 1.1 dated AUG 13th, 2023)

Feature Request: Return to source directory after copy to SD

At the moment after you have made a copy from a host to your SD card you are taken to the destination location as opposed to returning to the source location.

Having the ability to be return to the source location would be useful if you were copying multiple files from a host to your SD especially if you have had to navigate a large directory structure.

Example:

Host/Games/Game Folder/Game_File.atr
Perform Copy

SD/Games/Game_File.atr
Copy complete

Host/Games/Game Folder/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.