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 '' 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 .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