OldComp.cz

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


Právě je 18.04.2024, 07:52

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 25 ]  Přejít na stránku Předchozí  1, 2
Autor Zpráva
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 14.02.2022, 01:28 
Offline
Pan Štábní

Registrován: 29.06.2013, 16:52
Příspěvky: 1614
Has thanked: 31 times
Been thanked: 357 times
Mazat to bude nejspis jen 48 ramku a mozna i nastavovat stranku ram 0 u zx 128. Co takhle ten kod umistit do nejake 128 stranky, kterou si ten basic pak sam pripoji ?

_________________
http://velesoft.speccy.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 14.02.2022, 13:47 
Offline
Kecálek
Uživatelský avatar

Registrován: 30.05.2020, 01:05
Příspěvky: 190
Bydliště: Olomouc
Has thanked: 559 times
Been thanked: 102 times
S tou ram u 128 to vyzkouším, zatím si do těch prográmků píšu klasické LOAD příkazy.

_________________
ZX Spectrum+ 48 kB s D40 nebo divIDE 57c, MB03+, popřípadě Fuse a teď nově LNX


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 19.10.2023, 12:08 
Online
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 901
Has thanked: 51 times
Been thanked: 230 times
Asi niekedy na jar som sa pustil do komentovania disasemblovaného kódu ESXDOS 0.8.9 (MMC). Venoval som tomu asi mesiac voľného času a podarilo sa mi okomentovať viac ako polovicu kódu (z EPROM). Následne sme sa však dostali do životnej situácie, ktorá nás pripravila o takmer všetok voľný čas, a všetko nepodstatné muselo ísť bokom. Takže na pokračovanie v tejto akcii som nemal žiadny čas a už ani silu. A netuším, kedy sa dostanem späť do starých koľají.
Zanechať to úplne mi je ľúto.
Ak by sa našiel dobrovoľník, ktorý by chcel v mojej práci seriózne pokračovať, som ochotný odovzdať moje podklady.
Keby sa do toho pustilo viac ľudí, bolo by to ešte lepšie, lebo ako sa hovorí "viac hláv - viac rozumu"
Netvrdím, že moje komentáre sú na 100% presné, predsa len každým riadkom kódu sa musí človek dostať do myslenia autora, a je to kód na niektorých miestach komplikovanejší, než by bolo treba a navyše aj s niekoľkými chybami.
Má niekto odvahu?

Časti kódu ako príklad:
Kód:
; --------------------------------------------------------------
; search free device handler (first byte of dev data is zero)
; return with device data pointer in IY
; ACC:  device=disk
; DEVDATA has to be aligned (lower byte must be zero) !
DEVADD:         LD C,A          ; save dev ID           ; $341
                LD A,($2D47)    ; read device count     ; $342
                CP $06          ; only six devices possible     ; $345
                SCF             ; no room for more devs        ; $347
                RET Z           ; return with CF set    ; $348
                LD HL,DEVDATA   ; device handlers       ; $349
; look for unused record
; may be endless !!!!! no counter
DEVADD1:        LD A,(HL)       ; read first byte       ; $34C
                AND A           ; is zero (free rec)?   ; $34D
                JR Z,DEVADD2    ; zero found            ; $34E
                LD A,$28        ; 40 bytes per record   ; $350
                ADD A,L         ; add to pointer        ; $352
                LD L,A          ; pointer to next rec   ; $353
                JR DEVADD1      ; read another record   ; $354
; unused record found
DEVADD2:        LD (HL),C       ; save dev ID           ; $356
                PUSH HL         ; IY=HL                 ; $357
                POP IY
                LD HL,$2D47     ; devices in use        ; $35A
                INC (HL)        ; one more device       ; $35D
                RET             ;                       ; $35E
; --------------------------------------------------------------

; check if writing to SD ended successfully
SD_WR_BLK3:     LD A,$FF        ; send dummy CRC1       ; $1EAF
                OUT (SPI),A     ; to card               ; $1EB1
                NOP             ; send dummy CRC2       ; $1EB3
                OUT (SPI),A     ; to card               ; $1EB4
                CALL SD_R1      ; read R1 response      ; $1EB6
                AND $1F         ; lower 5 bits (correct value is 1E or 0E!!!!)   ; $1EB9
                CP $05          ; data rejected? (correct value is 4!!!!)   ; $1EBB
                LD A,$06        ; error code            ; $1EBD
                SCF             ; error flag            ; $1EBF
                JR NZ,SD_FIN    ; CS disable            ; $1EC0
SD_WR_BLK4:     CALL SD_R1      ; read R1 response      ; $1EC2
                OR A            ; 00 means busy         ; $1EC5
                JR Z,SD_WR_BLK4 ; repeat if still busy  ; $1EC6
; no timeout applied!!!!!!
SD_FIN:         CALL SD_DEACT   ; deactivate CS line    ; $1EC8
                LD IXL,A        ; save return code      ; $1ECB
                LD A,$00        ; remap page 00         ; $1ECD
                OUT (MEMPAGE),A ;                       ; $1ECF
                LD A,IXL        ; restore return code   ; $1ED1
                RET             ;                       ; $1ED3
; --------------------------------------------------------------


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 19.10.2023, 15:48 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3661
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 795 times
Martin1 píše:
Asi niekedy na jar som sa pustil do komentovania disasemblovaného kódu ESXDOS 0.8.9 (MMC).
Akym spsobom a v akom disasembleri to robis ? Akym sposobom hladas referencie ? Z tej ukazky kodu to nie je zrejme.
Martin1 píše:
Ak by sa našiel dobrovoľník, ktorý by chcel v mojej práci seriózne pokračovať, som ochotný odovzdať moje podklady.
...
Má niekto odvahu?
Odvaha nie je problem, otazka je skor, ci to ma zmysel. Predsa len, je to zivy, stale vyvijany projekt, kedykolvek sa moze objavit nova verzia. A je sanca, ze autor (si vezme priklad zo mna ;) a) zdrojaky napokon zverejni.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 19.10.2023, 18:16 
Online
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 901
Has thanked: 51 times
Been thanked: 230 times
Busy píše:
Akym spsobom a v akom disasembleri to robis ? Akym sposobom hladas referencie ?

Najhorším možným spôsobom. Disasembloval som to viacerými utilitami, nakoniec som vybral nejaký online, lebo mi každý riadok doplnil aj kódmi aj ascii.
Referencie si musím pracne dohľadávať, Hľadal som nejaký šikovný a jednoduchý nástroj, ktorý by mi aspoň s týmto pomohol, ale nič som nenašiel, tak som sa na to išiel otrocky a všetko robím v tuctovom textovom editore.
Busy píše:
Otazka je skor, ci to ma zmysel. A je sanca, ze autor zdrojaky napokon zverejni.

Neverím že budú zdrojáky v dohľadnej dobe zverejnené.
Mňa zaujímali nejaké závislosti medzi ZX ROM a ESX a tiež API, ktoré nie sú nikde dostupné.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 19.10.2023, 19:10 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 19:23
Příspěvky: 1917
Bydliště: Vsetín
Has thanked: 519 times
Been thanked: 816 times
Pamatuji si, že někdo dělal alternativu UNODOS, která měla zdrojáky. Toto jsem našel, ale je možné, že se to API mění s verzemi.
https://sourceforge.net/p/emuscriptoria ... ee/esxdos/

_________________
cs.speccy.cz, ondraspo186.8u.cz, zx-spectrum.cz


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 19.10.2023, 19:50 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3661
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 795 times
Martin1 píše:
Busy píše:
Akym spsobom a v akom disasembleri to robis ? Akym sposobom hladas referencie ?
Najhorším možným spôsobom. Disasembloval som to viacerými utilitami, nakoniec som vybral nejaký online, lebo mi každý riadok doplnil aj kódmi aj ascii.
Referencie si musím pracne dohľadávať, Hľadal som nejaký šikovný a jednoduchý nástroj, ktorý by mi aspoň s týmto pomohol, ale nič som nenašiel
A pytal si sa aj tu na oldcompe ? :poke:

Ja osobne pouzivam IDA Pro (Interaktivny DisAssembler Professional).
Velkou vyhodou je prave ta interaktivita - prvotny navrh disasemblingu (ktory uz obsahuje vsetky najdene referencie) si mozes interaktivne prisposobovat - pridavat komentare, pomenovat labely, zmenit data na instrukcie a naopak, nastavit format dat (bajty,wordy,text...), definovat polia, procedury, funkcie... Vsetko sa pameta vektorovo, t.j. ked premenujes label, premenuje sa zaroven aj na vsetkych ostatnych miestach. A ked si hotovy, vies si to exportnut ako plaintext zdrojak alebo listing aj s adresami a datami.
Na jednom Sindikate som mal aj prednasku kde som demonstracne disassembloval jeden ukazkovy kod.
Oficialna stranka je https://hex-rays.com/ kde je dokumentacia a da sa tam stiahnut aj verzia zadarmo pre osobne pouzitie.
Internetom sa siri aj takato hacknuta profi-verzia - staci len rozpakovat a spustit idaq.exe

Dalsim (vraj) velmi popularnym nastrojom je Ghidra ale ten som neskusal. Viem iba ze ma dost podobne moznosti ako IDA.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 19.10.2023, 20:43 
Online
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 901
Has thanked: 51 times
Been thanked: 230 times
Busy píše:
Ja osobne pouzivam IDA Pro (Interaktivny DisAssembler Professional).
Dalsim (vraj) velmi popularnym nastrojom je Ghidra

Na obe som pri pátraní natrafil. Dnes už ani neviem prečo som ich nepoužil.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 19.10.2023, 20:46 
Online
Profík

Registrován: 06.02.2019, 11:47
Příspěvky: 901
Has thanked: 51 times
Been thanked: 230 times
Solaris104 píše:
Pamatuji si, že někdo dělal alternativu UNODOS, která měla zdrojáky. Toto jsem našel, ale je možné, že se to API mění s verzemi.
https://sourceforge.net/p/emuscriptoria ... ee/esxdos/

Poznám, to je slabý odvar, viac som dokázal okomentoval za jeden deň. Ja komentujem význam skoro každého riadku.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nový esxDOS v0.8.9
PříspěvekNapsal: 20.10.2023, 14:43 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3051
Has thanked: 2200 times
Been thanked: 901 times
Martin1 píše:
...tiež API, ktoré nie sú nikde dostupné.

Oficialne ne, ale internet je toho plny, Na ZXFILES je v pravo hodne linku na priklady a zdrojaky, mnoho z nich ma souhrnny include soubor s prehledem sluzeb esxDOSu.

Balik zdrojaku i prikladu je taky v adresari MISC v archivu, co je ke stazeni na ZXFILES.
Nejdulezitejsi je asi soubor esxapi.txt. Tento neoficialni popis sluzeb spolu s esxdos.inc jsou v /MISC/ESXDOS/API/
Priklady a teorie k dot-cmd jsou v /MISC/DOCS/ESXDOS/

Je tam snad vse zakladni: Detect if unit is ready - Get + SetDrive - Open file - Read bytes from a file - Write bytes to a file - Seek in file - SetDirectory - Get Directory,... atp.
Inspiraci je unixove api, treba odtud: http://elm-chan.org/fsw/ff/00index_p.html

Predpokladam, ze jsi oslovil autora, proc to delas a co s tim zamyslis, resp. jakou sluzbu potrebujes. Odpovida, alespon na Telegramu, rychle.
Neni mi znamo, ze by funkce v poslednich verzich pridaval, v 0.88 a 0.89 hodne opravoval.
Pracuje na 0.90, byt asi zpomalene. Myslim, ze neni prilis nadseny, ze se jeho prace, ktera je nehotova (a podle nej nedokonala) vystavuje... viz ukradeny UNODOS.

Pokud autor nema jiny navrh, doporucuju publikovat jen udaje o sluzbach nebo udaje o sprave pameti a opravy nalezenych chyb (par tipu na opravy bude mit urcite Lanex).
esxDOS neni system, ktery by se mel ovladat nejakymi hackerskymi CALLy, pro obsluhu FATky je urceno RST8 s cislem sluzby :-)

_________________
// na co myslím, když sedím u oldkompů: režim


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ů: 25 ]  Přejít na stránku Předchozí  1, 2

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 4 návštevní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