I have been busy with a couple of Spectrum projects lately - specifically a lightweight WIMP environment for the +3e DOS system.
I have used a mix of C (for prototyping logic) and inline Z80 ASM (which there always seems more to learn )
What I would like to achive is the ability to "read" the "disk device(s)" and or their "partitions" using either z88dk C or I suspect a few ASM routines to provide the following -
Shuffling XPBD's
as a resource the +3e DOS has 2 additional XPBD resources that the user can assign to a Partition
in BASIC we have
Code: Select all
MOVE "C:" IN "0>PROGRAMS"
MOVE "D" IN "1>GAMES"
Code: Select all
MOVE "C:" OUT
MOVE "C:" IN " 0>Utilities"
Other useful things I would like to achieve in Z88dk (via C and or ASM via a C wrapper)
Getting a Partition Listing
very simple, what partitions are available to be used
Code: Select all
CAT TAB
Code: Select all
CAT "C:"
I do struggle to find resources regarding the access of the +3e DOS system - a lot of what I have been able to do is very much trial... error... error.... error and trial again.
if anyone reading this has any sources and or examples with using ASM / C and +3e DOS, and are willing to share - I do humbly offer my sincere thanks and credit on the release of some of the software that will be open source.
Other Nice Things:
Loading Files from the program - replacing the, lets call it a GUI File Commander atm, by loading say a Game ".bas" file, which in turn would typically then load a screen file and then the game code.
I have a very "hacky" way of doing this atm, by manipulating the strings that are set up in the VAR-iable memory area.
e.g.
Code: Select all
1 REM *** Item Loader
2 CLEAR 32767
10 BORDER 0 : PAPER 0 : INK 7 : CLS
20 LET u$="0>"
30 LET a$="C:"
40 LET b$="PARTITIONNAME"
50 LET c$="FILENAME.EXT"
60 LOAD "ZXLEXE.BAS" CODE, 32768
70 RANDOMIZE USR 32768
80 LET d$ = u$ + a$ + b$ + c$
90 LOAD d$
While this "WORKS" its far from optimal.
My hope is to have within a contained program the bare requirements of a Window Icon Menu and Pointer system (skinable) providing a very lightweight OS/ Graphical GUI - File commander for the spectrum +3e environment and a platform to write some interesting software and a dungeon crawler of sorts.
If its at all possible I would like to open this open and post a build log and any code that is written for it, I would like to publish it here as this forum is an invaluable resource in my research and begging for help.
Besides it would be a great way to give back, get some feedback on the approach and execution, and no doubt a billion and one ways to optimise it.
And Lastly -
Thank you for reading