gigatron/rom/Apps/CardBoot/old/Notes.txt
2025-01-28 19:17:01 +03:00

72 lines
3.0 KiB
Plaintext

XXX Names: GTOS, BOSS, PROMPT/COMMAND, MINIDOS, ...
XXX CardBoot -> Find load and run a GT1 file
XXX Dir -> Builtin command. Only names
XXX List -> External command: file size, date, volume label
XXX Cls -> Clear terminal
XXX Stat ->
XXX Type -> command (consider passing of ARGS)
XXX Device letters or not? A: B: C:
Familiary, goes back to before CP/M
XXX Directories or not?
XXX Switches or not
CardBoot.gcl
[Loads from ROM, lives $8a0...up]
Checks SD card and FAT32
Can find and load one file: GTOS.gt1
May use application specificic SYS functions
GTOS.gt1 -- Basic operating system services (BOSS)
"CP/M BOOT"
Welcome message (throw-away code in $500)
CLS + "GTOS v1 32K" + Apple II beep
Load and execute Command.gt1
Provide resident services in $200..$4f9
- BOSS.writeByte "CP/M CONOUT"
- BOSS.readByte "CP/M CONIN"
- BOSS.setDevice "CP/M SELDSK"
- BOSS.readDir/find/enter/delete/create
- BOSS.loadFile -- Gt1 loading
- BOSS.readSector "CP/M READ"
- BOSS.writeSector "CP/M WRITE"
- BOSS.command "CP/M WBOOT (DOS COMMAND.COM)"
- BOSS.spawn
- BOSS.launch
- Won't be reloaded during a session
- Controls all shadow memory. May hide in banked memory
- Can use generic SYS functions, but not app-specific
- Can be be replaced without EPROM change
API:
- Use fixed addresses, but only few (esp. zero page) --> function codes
-
Command.gt1 -- Command parser and dispatcher
Lives in top..$7fff
Display OK/error, this unifies error reporting
Show prompt and cursor symbol
A> _
Handle user input with line editing
Built-in command: Change device letter
Built-in command: Dir
Find file '<CMD>' in root dir
If not found, return to prompt
Find argument files, open if found?
Load first sector of file in $500..$6ff
If not a command -> BOSS.Launch
If command, loadFile and run? Or defer
to command itself
<CMD>.gt1:
Do stuff with BOSS
Exit:
Big program -> BOSS.prompt
Small program -> RET
Launch.gt1:
Escapes GTOS
Stand-alone loading from bottom of visible screen area, like Loader
Requirements: compatible with Tetronis, Apple-1, MSBASIC
Reset terminal, video etc
Fast loading GT1 file -> sectors must be split