Loci - my Oric storage emulation project

This is the right place to discuss on how to implement hardware vsync, adding a VIA or AY chipset, puting multiple roms, or how to design a new flash expansion card.
User avatar
Sodiumlightbaby
Flight Lieutenant
Posts: 506
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

xahmol wrote: Thu Nov 28, 2024 5:07 pm But given your answer then there probably is not such a method.
At the moment only the LOCI ROM has anything close to autostart, and you have to push the button for it to happen. My point was, you can quite easily make something custom in its place. The standard LOCI ROM is a little boring, in the middle of the road if you like. A test bed for making things work. There is space here for other alternatives. Graphical carousel versions, canned selection lists, command line power-user shells, file manager types etc.
Or boot-one-named-dsk-directly-ROM.

But I must admit I don't know the application use-case in detail so I might be thinking all wrong here. Maybe if you tell us (or point to) what you had in mind, my thinking could be more relevant and helpful :D
Last edited by Sodiumlightbaby on Thu Nov 28, 2024 9:11 pm, edited 1 time in total.
User avatar
xahmol
Flight Lieutenant
Posts: 467
Joined: Sun Jun 28, 2020 7:32 pm
Location: Utrecht, The Netherlands
Contact:

Re: Loci - my Oric storage emulation project

Post by xahmol »

Ah, check, I was I think confusing the Loci ROM with the ORIC ROM.
Do not want to touch OrIc ROM for a launcher, as anything it launches will then probably fail.
But changing the Loci ROM will be a very good option, did not realise that was an option. Yes. In that case I can basically replace the whole interface with my own if I want. Something to definitely investigate.

By the way: what my DMBoot for C128 does is a user definable boot menu where you can with one key press launch any of the predefined slots for programs to launch, including mounting the right disk images in the multiple drives and maybe change the ORIC ROM as well.
Where the slots can be defined by picking programs from the Loci storage using a filebrowser.

Example:
Place my Oric Screen editor on key A which with the key press A mounts the program disk on disk 1 and a work disk on disk 2.
Place dflat dev environment on key B, which with one key press on B changes ORIC ROM to the dflat one and mount a work disk in drive 1.

And to further visualize: video of it working on C128.
User avatar
Sodiumlightbaby
Flight Lieutenant
Posts: 506
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

xahmol wrote: Thu Nov 28, 2024 9:10 pm But changing the Loci ROM will be a very good option, did not realise that was an option. Yes. In that case I can basically replace the whole interface with my own if I want. Something to definitely investigate.
Yes exactly ;-)

The LOCI ROM uses the CC65 target system with a custom linker config in cfg/loci.cfg and a modifed "none" standard library (in libsrc/) to become a ROM. But it's all rather straight forward stuff replicatable on other development systems.

Edit: Nice video. Yeah, looks like a good case for an alternative LOCI ROM :D
User avatar
iss
Wing Commander
Posts: 1723
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Loci - my Oric storage emulation project

Post by iss »

Just a note: LOCI runs CP/M for Oric too!
I have made lot fixes and updates in the Oric sources but didn't committed the changes yet.

btw, IMHO it's time to open new thread for common discussions, wishes and dreams not directly related to the main development and testing ...
User avatar
Sodiumlightbaby
Flight Lieutenant
Posts: 506
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

iss wrote: Thu Nov 28, 2024 9:40 pm Just a note: LOCI runs CP/M for Oric too!
I have made lot fixes and updates in the Oric sources but didn't committed the changes yet.
:Mind blown: :lol: Well done!
iss wrote: Thu Nov 28, 2024 9:40 pm btw, IMHO it's time to open new thread for common discussions, wishes and dreams not directly related to the main development and testing ...
Probably a very good idea. This one is a bit of a novel as well :lol:
User avatar
ibisum
Wing Commander
Posts: 1815
Joined: Fri Apr 03, 2009 8:56 am
Location: Vienna, Austria
Contact:

Re: Loci - my Oric storage emulation project

Post by ibisum »

Sodiumlightbaby wrote: Thu Nov 28, 2024 11:32 pm Probably a very good idea. This one is a bit of a novel as well :lol:
This is probably the greatest thread on DF ever, but I concur .. LOCI is out there now .. its time to level up the threads.
User avatar
Sodiumlightbaby
Flight Lieutenant
Posts: 506
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

Happy to be outranked by the forum masters, but I'll keep posting development updates here and ask others to move conversations and updates to new threads and I'll contribute there.

So for development update - Having seen 6502Nerd's video I knew I had to put some attention to the 60Hz mode issue where the ROM comes up in 60Hz text instead of 50Hz as programmed. The way his monitor/TV corrupted when 60Hz hit in was a real eye-soar.

Two issues were found:
1. Font data copied in early on ROM boot interpreted as mode data when the suspended app was in hires mode.
2. Turns out

Code: Select all

 lda $1a 
isn't quite the

Code: Select all

 lda #$1a 
we want for setting text 50Hz mode :oops:
User avatar
Sodiumlightbaby
Flight Lieutenant
Posts: 506
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

New release pair has been published, wrapping up the fixes for issues discussed over the week - and initial version of CSAVE support!

LOCI-firmware v0.2.1
https://github.com/sodiumlb/loci-firmwa ... tag/v0.2.1
  • Fix DSK functions using logic ops instead of bit ops in flag testing
  • Add Bootstrapping support with embedded ROMs
  • Add Initial TAP save functionality and CSAVE patches for Basic 1.0 and 1.1b ROMs.
Firmware binary, as usual, also includes the updated LOCI ROM v0.2.3

LOCI ROM v0.2.3
  • Fix for non-working mode setting, resulting in 60Hz text mode of the UI
  • Add UI support for TAP FFW (jump to end of .TAP file) command

Notes on CSAVE
:!: Be careful with this feature at the moment - assume your TAP files will be clobbered :!:
There are loads of protection and usability features missing, e.g.
  • You currently write to the .TAP file that is mounted from the location you are at.
  • There is no way of creating a new empty .TAP file.
  • A FFW function has been added to jump to the end of the current file to help a little but it's at the bare minimum IMHO to try out and tune the core behaviour.
  • Writing to .TAP files in internal flash storage works, but there is no way of moving them out to USB.
  • All bytes output are stored - excessive synch bytes create bloat in many cases, like selecting a file through the counter and over-writing it.
  • Getting file attribute based protection is still TODO - no files are protected until that is fixed (!)
This version has just been tested with writing and over-writing simple basic programs in Basic 1.0 and 1.1b. There might be other cases I need to find, learn and understand to fix.
User avatar
iss
Wing Commander
Posts: 1723
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Loci - my Oric storage emulation project

Post by iss »

I've quickly tested 0.2.1/0.2.3 and it works! :) (updated raxiss.com).

Spotted minor things:
- image selection: are "DEL-press" and "eject button" equivalent in regard of their action?
- power cycle required (no way to activate LOCI rom menu again) - to reproduce: power-on, action button -> LOCI menu, Microdisc - on, ESC to boot, on screen "insert system disc" - can't enter LOCI menu again. Honestly this can't be considered as bug but if it can be improved would be nice, so very very low priority. :)
User avatar
Sodiumlightbaby
Flight Lieutenant
Posts: 506
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

iss wrote: Mon Dec 02, 2024 11:26 am - image selection: are "DEL-press" and "eject button" equivalent in regard of their action?
Yes, "Del" on any of the file mount fields equals pushing the eject buttons. But inside the file selector pop-up it is actual file delete - so be careful ;-)
iss wrote: Mon Dec 02, 2024 11:26 am - power cycle required (no way to activate LOCI rom menu again) - to reproduce: power-on, action button -> LOCI menu, Microdisc - on, ESC to boot, on screen "insert system disc" - can't enter LOCI menu again. Honestly this can't be considered as bug but if it can be improved would be nice, so very very low priority. :)
That is a bug. The DSK emulation fails robustness when no DSK file is attached but access is attempted, and ends up in a very weird state :oops:
User avatar
6502Nerd
Pilot Officer
Posts: 121
Joined: Thu Oct 08, 2020 9:48 pm
Location: Leicestershire, UK
Contact:

Re: Loci - my Oric storage emulation project

Post by 6502Nerd »

Quick update for everyone but I've been exchanging this week on various details and to cut the story short, dflat now works well with Loci as a storage media using API calls vs ROM patching.

Due to 16KB constraint, the dflat build scripts create a regular ROM and a Loci ROM. This is so I can strip out my. Arduino SD card and cassette routines for Loci.

I've managed to reproduce the features my Arduino board provided so all programs work the same.

I haven't released the ROM yet. Will do that hopefully this weekend with a YT video showing dflat on Loci.
User avatar
Sodiumlightbaby
Flight Lieutenant
Posts: 506
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

Small release set to support ongoing issues and activites

Firmware v0.2.2 / ROM v0.2.4
https://github.com/sodiumlb/loci-firmwa ... tag/v0.2.2
  • Update TinyUSB submodule to latest <- @coco.oric maybe this fixes the USB panics.
  • Fix DSK emulation robustness when no .DSK file is mounted <- @iss "insert system disc", mount .DSK in LOCI, return now works :-D
  • Fix dirent.d_size field from 16 to 32bit <- Important for anyone doing native directory listing calls.
ROM change is only the added support for 32bit dirent.d_size field.

If you are building FW yourself, the TinyUSB lirbary change requires update of the git submodule. I wish I could give good guidance of the git command to do that right, but I suck at that, failed even when following supposed good tutorials and ended up brute force removing and re-initialising it myself.
User avatar
iss
Wing Commander
Posts: 1723
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Loci - my Oric storage emulation project

Post by iss »

Great! Firmware v0.2.2 / ROM v0.2.4 works :)
IMG_20241207_205327.jpg
Q: what's test_108k_rom? Is it the same as diag108j.rom? :?
User avatar
Sodiumlightbaby
Flight Lieutenant
Posts: 506
Joined: Thu Feb 22, 2024 11:38 am

Re: Loci - my Oric storage emulation project

Post by Sodiumlightbaby »

Great! test108k.rom is the latest diagnostic ROM from MikeB
https://oric.signal11.org.uk/html/diagrom.htm

I guess it is a small update from j?

Try holding the action button :lol:
User avatar
iss
Wing Commander
Posts: 1723
Joined: Sat Apr 03, 2010 5:43 pm
Location: Bulgaria
Contact:

Re: Loci - my Oric storage emulation project

Post by iss »

Sodiumlightbaby wrote: Sat Dec 07, 2024 8:46 pm I guess it is a small update from j?
Try holding the action button :lol:
I didn't know that 'k' version exists - I used the 'j' and always test the action-long-press in production of our LOCI's :). The changes are minor - it's bug fix in 'VIA_init' routine (exatly the same case $1a -> #$1a :lol: ) - nice!

EDIT: ROM selection from 'Internal storage' and 108k version - emergency boot :)
Attachments
IMG_20241207_235926.jpg
IMG_20241207_235840.jpg
Post Reply