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.
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
Last edited by Sodiumlightbaby on Thu Nov 28, 2024 9:11 pm, edited 1 time in total.
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.
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
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: 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
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
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.
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.
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
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.
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
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.
Sodiumlightbaby wrote: ↑Sat Dec 07, 2024 8:46 pm
I guess it is a small update from j?
Try holding the action button
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 ) - nice!
EDIT: ROM selection from 'Internal storage' and 108k version - emergency boot