OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 17.06.2025, 03:30

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 4 ] 
Autor Zpráva
 Předmět příspěvku: služby ESXDOSu?
PříspěvekNapsal: 03.06.2025, 10:54 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2732
Has thanked: 363 times
Been thanked: 733 times
Máte někdo k dispozici popis služeb?

Jestli správně chápu, co jsem dosud viděl v kódu několika binárek, tak ESXDOS poskytuje RST 16 pro výpis textů podobně jako ZX ROM a RST 8 využívá k volání DOS služeb přičemž číslo služby následuje v jednom bytu po instrukci RST 8.

Nakouknul jsem do lstap, hexdump a mnohem dříve do staršího sercp, takže něco mohu opsat. Vidím, že při spuštění tečkového příkazu je v HL ukazatel na řetězec parametrů, resp. nula pokud parametr nebyl zadán a ukončení příkazu signalizuje flag NC úspěšně, nebo C s chybou. Vidím tam čísla služeb po RST 8 a do určité míry mohu hádat k čemu jsou, u některých se nastavuje hodnota v B, u některých asi HL jako ukazatel?

Ale přesto bych rád viděl jakoukoli dokumentaci. Existuje něco takového? Alespoň stručný výpis jaké služby jsou k dispozici a jaké parametry očekávají?

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: služby ESXDOSu?
PříspěvekNapsal: 03.06.2025, 11:07 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3552
Has thanked: 2538 times
Been thanked: 1107 times
Nějaké povídání je v příloze.

Asi nejvíce popisný i aktuální doc je u nexťáků: https://gitlab.com/thesmog358/tbblue/-/ ... S_APIs.pdf
(jen bacha, něco mají upravené pro sebe, např. příkaz $ nefunguje na Spectru)

Linky na zdrojáky aplikací jsou zde: (níže vpravo)
https://esxdos.zxfiles.net/
je tam vždy seznam, něco jako esxdos.h nebo esxapi.inc
a taky na články, např. úvod do esxDOSu od Nihirashe: https://hype.retroscene.org/search/topics/?q=esxdos

nebo když si stáhneš sbírku zxfiles , tak v adresáři /MISC/ESXAPPS/ najdeš kupu všech dot-cmd (+ zdrojáky) dle autorů.
(akorát teď se mi tam přimotal omylem adresář DOCS s pdfkama, tak je to obludně veliké... za pár dnů opravím)

Je to esxkové API docela jednoduché, obzvlášť když předtím člověk čítával cokoliv od Skočovského 8-)
https://elm-chan.org/fsw/ff/

Kód:
CURRENT_DRIVE   equ   0x2a   ; *
MODE_READ   equ   0x01
F_OPEN   equ   154
F_CLOSE   equ   155
F_READ   equ   15

   ld   ix, filename
   ld   a, CURRENT_DRIVE
   ld   b, MODE_READ
   rst   8
   defb   F_OPEN
   ld   (file_ID),a
...
   ld   a, (file_ID)
   ld   bc, 6912
   ld   ix, 16384
   rst   8
   defb   F_READ
...
   ld   a, (file_ID)
   rst   8
   defb   F_CLOSE


Přílohy:
ESXDOCS.7z [14.19 KiB]
35 krát

_________________

eZX.MB03+ /archiv ZXFILES /ZX-TAR /prog. pro divSD
Obrázek .:. Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek
Nahoru
 Profil  
 
 Předmět příspěvku: Re: služby ESXDOSu?
PříspěvekNapsal: 03.06.2025, 19:17 
Offline
Óm Nejvyšší
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3552
Has thanked: 2538 times
Been thanked: 1107 times
Výukový materiál od Lanexe - načtení obsahu adresáře

Kód:
; LnxSpectrum ASM editor (www.ilnx.cz) 23.12.2021

   org   32768
   include "esxdos_def.asm"

Start
   ld   a,64   ;Drive (písmeno 64 (hd0), 65 (hd1), "*", "$")
   ld   ix,TestPath   ;Path
   call   ReadDir   ;Načíst položky
   di      ;Stop :)
   halt
TestPath
   defb   "/DEMOS/",0   ;Budeme si listovat složku Demos

;==  EsxDos ReadDir  =====================================================================
ReadDir
   ld   b,0   ;Možnost zapnout FA_USE_HEADER (b6), povoluje +3DOS
   rst   8   ;hlavičku (v DE), my ale nepoužíváme, takže 0.
   defb   F_OPENDIR

   ret   c   ;Chyba? Exit BEZ Close, ani se neotevřelo.
         ;Kód chyby je případně v reg A.
   ld   (.DirHandle),a   ;DirHandle Save

.DirHandle   equ   $+1
.NextItem
   ld   a,0   ;DirHandle Load
   ld   ix,.buffer   ;Načteme položku do bufferu
   rst   8
   defb   F_READDIR

   jr   c,.ReadDirError   ;chyba? Close a Ret
   and   a   ;je to záznam nebo je už konec?
   jr   z,.ReadDirExit   ;Už žádná položka >>

   ld   hl,.buffer   ;Záznam
   bit   4,(hl)   ;Folder?
   jr   nz,.NextItem   ;Složky nechceme, přeskakujeme

;V Bufferu je tady načtena jedna položka. S daty si naložte jak chcete :)

;<byte>   attributes (like MSDOS) (b4 = Folder)
;<asciiz> file/dirname (+null)
;<dword>  date
;<dword>  filesize

   jr   .NextItem   ;A šup na další položku

.ReadDirError
   push   af   ;Uložíme kód chyby i s Carry
   call   .ReadDirExit   ;Zavřeme kanál...
   pop   af   ;a vrátíme kód chyby i s Carry.
   ret      ;Exit

.ReadDirExit
   ld   a,(.DirHandle)   ;DirHandle Load
   rst   8   ;Zavřít
   defb   F_CLOSE
   ret

.buffer   defs   22,0


Přílohy:
esxdos_def.asm.7z [928 bajtů]
29 krát

_________________

eZX.MB03+ /archiv ZXFILES /ZX-TAR /prog. pro divSD
Obrázek .:. Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek Obrázek
Nahoru
 Profil  
 
 Předmět příspěvku: Re: služby ESXDOSu?
PříspěvekNapsal: 03.06.2025, 21:09 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2732
Has thanked: 363 times
Been thanked: 733 times
Díky. To vypadá, jako přesně to, co jsem hledal.

Škoda, že už dávno něco podobného není jako přehledná Wiki na esxdos.org.

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 4 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz