Jump to content
apc

FujiNet Config loading faster

Recommended Posts

Config loader update!

 

After exercising with all the helper scripts and tools, here is an image which contains loader & FujiNet CONFIG (and config tools):

 

autorun-zx0.atr

 

As the name indicates the new ZX0 compression is used. With ZX0 the compressed CONFIG is smaller and it loads a bit quicker compared to LZ4 variant.

ZX0 decompression routine was embedded into boot loader. Both Config loader and CONFIG are decompressed while being read from disk.

As it was before, HISIO is enabled as soon as possible to speedup SIO transfers and CONFIG is loaded with banner and growing progress bar.

 

Build process was automated, "make dist" should do all the hard work. For this purpose I prepared Python script which acts as very simplified SuperPacker (and other script to prepare somehow relocatable code and other script to update final ATR, and ... it was interesting to get all this working together)

 

As a bonus, once the CONFIG is compressed with ZX0 the file segments are "decorated" to make the result Atari DOS compatible/loadable again. However DOS cannot decompress file segments (there are some exceptions ;-) ) so decompression routine is bundled and called prior passing the control to CONFIG. I.e. Same CONFIG file can be loaded by ZX0 capable loader (during boot) with inline decompression and it can be loaded as a regular DOS program later from disk.

 

Credits: @xxl for ZX0 decompression port to 6502 and boot loader @HiassofT for high speed SIO @bocianu for FujiNet banner @pirx for compression ideas  🙂

 

Source code: https://github.com/a8jan/fujinet-config-loader - branch "zx0" (If everything works fine, will be glad to move into FN repos)

 

Jan

 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
11 minutes ago, tschak909 said:

how do I test?

-Thom

 

replaced autorun.atr with the new one above in fujinet-platformio/data/ then upload filesystem

 

soooper fast, me likes :D 

  • Like 1

Share this post


Link to post
Share on other sites
23 minutes ago, tschak909 said:

how do I test?

-Thom

 

- mount as D1: and boot - CONFIG should load

- mount as D2: with some DOS disk in D1: boot DOS and load CONFIG - CONFIG should load

- replace autorun.atr with autorun-zx0.atr (rename to autorun.atr), build firmware image, test with firmware

@mozzwald can you test if the loader build process works (git clone ... make dist) on your side? then we can test if build process works on WSL .. would be nice :)

Edited by apc

Share this post


Link to post
Share on other sites
3 minutes ago, apc said:

- mount as D1: and boot - CONFIG should load

- mount as D2: with some DOS disk in D1: boot DOS and load CONFIG - CONFIG should load

- replace autorun.atr with autorun-zx0.atr (rename to autorun.atr), build firmware image, test with firmware

@mozzwald can you test if the loader build process works (git clone ... make dist) on your side?

Building relocatable ZX0 decompressor
../tools/relgen.py zx0unpack-1000-f.obj zx0unpack-1201-f.obj ../tools/pack/a8/zx0unpack.obj
Traceback (most recent call last):
  File "../tools/relgen.py", line 208, in <module>
    main()
  File "../tools/relgen.py", line 142, in main
    with open(fnout, 'wb') as fout:
FileNotFoundError: [Errno 2] No such file or directory: '../tools/pack/a8/zx0unpack.obj'
Makefile:60: recipe for target '../tools/pack/a8/zx0unpack.obj' failed

this is as far as I got

Share this post


Link to post
Share on other sites
4 minutes ago, mozzwald said:
Building relocatable ZX0 decompressor
../tools/relgen.py zx0unpack-1000-f.obj zx0unpack-1201-f.obj ../tools/pack/a8/zx0unpack.obj
Traceback (most recent call last):
  File "../tools/relgen.py", line 208, in <module>
    main()
  File "../tools/relgen.py", line 142, in main
    with open(fnout, 'wb') as fout:
FileNotFoundError: [Errno 2] No such file or directory: '../tools/pack/a8/zx0unpack.obj'
Makefile:60: recipe for target '../tools/pack/a8/zx0unpack.obj' failed

this is as far as I got

ok, give me a minute, i guess, git does not store empty directory ...

Share this post


Link to post
Share on other sites

workaround: mkdir tools/pack/a8

going to put some placeholder file there to keep the a8 dir in git

Share this post


Link to post
Share on other sites
3 minutes ago, apc said:

workaround: mkdir tools/pack/a8

going to put some placeholder file there to keep the a8 dir in git

indeed, adding the dir makes it work

Share this post


Link to post
Share on other sites
Just now, mozzwald said:

indeed, adding the dir makes it work

good, should be fixed in repo

  • Like 1

Share this post


Link to post
Share on other sites
11 hours ago, apc said:

Config loader update!

 

After exercising with all the helper scripts and tools, here is an image which contains loader & FujiNet CONFIG (and config tools):

 

autorun-zx0.atr 90.02 kB · 2 downloads

 

As the name indicates the new ZX0 compression is used. With ZX0 the compressed CONFIG is smaller and it loads a bit quicker compared to LZ4 variant.

ZX0 decompression routine was embedded into boot loader. Both Config loader and CONFIG are decompressed while being read from disk.

As it was before, HISIO is enabled as soon as possible to speedup SIO transfers and CONFIG is loaded with banner and growing progress bar.

 

Build process was automated, "make dist" should do all the hard work. For this purpose I prepared Python script which acts as very simplified SuperPacker (and other script to prepare somehow relocatable code and other script to update final ATR, and ... it was interesting to get all this working together)

 

As a bonus, once the CONFIG is compressed with ZX0 the file segments are "decorated" to make the result Atari DOS compatible/loadable again. However DOS cannot decompress file segments (there are some exceptions ;-) ) so decompression routine is bundled and called prior passing the control to CONFIG. I.e. Same CONFIG file can be loaded by ZX0 capable loader (during boot) with inline decompression and it can be loaded as a regular DOS program later from disk.

 

Credits: @xxl for ZX0 decompression port to 6502 and boot loader @HiassofT for high speed SIO @bocianu for FujiNet banner @pirx for compression ideas  🙂

 

Source code: https://github.com/a8jan/fujinet-config-loader - branch "zx0" (If everything works fine, will be glad to move into FN repos)

 

Jan

 

video or didn't happen :)

  • Haha 1

Share this post


Link to post
Share on other sites

My RetroTink actually takes a few moments to sync up to my Atari's display, and by that time, the status bar is already gone and status loading. (Of course, I am running HSIO)

 

-Thom

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...