<html><body>Ahoj,<br><br>aha, takze kdyz zadas soubor bez cesty, tak se otevre na te puvodni. Tak to by chtelo vyzkouset - kouknu na to. A kdyby ne, tak by se to dalo upravit. Jestli das casem nejakou upravu k dispozici (myslim upravenou hru), tak na to kouknu. Nebo si zkusim ten zdrojak, co jsi poslal ;-)<br><br>Mikes<br><br><aside>
---------- Původní e-mail ----------<br>
Od: Vaclav Peroutka <vaclavpe@seznam.cz><br>
Komu: Počítače SHARP MZ a jejich emulátory <sharpmz@mail.ordoz.com><br>
Datum: 23. 1. 2018 19:09:46<br>
Předmět: Re: [SharpMZ]
        Business World - nahrávání z Unikarty
</aside><br><blockquote data-email="vaclavpe@seznam.cz"><br>Ahoj Mikeši,<br>rozdíl je ten, že nevím, jaké máte poslední API na unikartě. Michal Hučík mi upravoval kód na staré unikartě, aby se nenuloval aktuální adresář po dočtení souboru, a možná nějaké další drobnosti.<br><br>Vašek<br><br><br><blockquote data-email="Michal.Bruntal@seznam.cz">Ahoj,<br><br>tak jsem zkoumal ten kod. Nejak nechapu v cem by mela byt ten rozdil mezi starsi/upravenym a novym modelem? Vzdyt to klasicky otevre soubor nacte hlavicku, pak telo a otestuje errory.<br>Takto vlastne musis upravit prvni dil programu/hry tak, aby si pres API 
unikarty otevrel a nacetl druhy dil. A pak dal a dal. A co teda vlastne 
dela ta uprava fw jinak?<br>Obavam se, ze na MZT souboru, ktery ma vice casti to nepujde pouzit. Musel by jsi udelat seek na pokracovani v souboru. Treba takova hra jako Yokai_A.mzt a Yokai_B.mzt, to by byl asi orisek, predelat, protoze kazda cast ma jeste nekolik dilu:<br>File: ..\MZT2\Yokai_A.mzt<br>Directory of MZT:                         size load exec<br> OBJ  "SIDE A"          :` 48640 Bytes    BE00 1200 1200<br> OBJ  "DEMO"            :`  6784 Bytes    1A80 1200 2C66<br>Length of data: 55424 Bytes.<br><br>File: ..\MZT2\Yokai_B.mzt<br>Directory of MZT:                         size load exec<br> OBJ  "YOUKAI V1.1"     :` 36718 Bytes    8F6E 1200 A155<br> OBJ  "MAP 8"           :`  6656 Bytes    1A00 9600 E804<br>Length of data: 43374 Bytes.<br><br>Jinak posledni update fw pro unikartu to resi prohazovanim image QD postupne na dalsi a dalsi, ale je potreba, aby programy bud nahravaly dalsi casti z QDisku nebo cekaly na prohozeni disketek. Vzhledem k tomu, ze vetsina programu pouziva rutiny z monitoru, tak je to resitelne. Akorat je tu problem s adresama QD radice, ale to je jina story.<br>Vyhoda je, ze se nemusi 'patchovat' kazda hra nebo BASICove programy.<br><br>Mikes<br><br><aside>
---------- Původní e-mail ----------<br>
Od: Vaclav Peroutka <vaclavpe@seznam.cz><br>
Komu: Počítače SHARP MZ a jejich emulátory <sharpmz@mail.ordoz.com><br>
Datum: 22. 1. 2018 22:10:32<br>
Předmět: [SharpMZ] Business World - nahrávání z Unikarty
</aside><br><blockquote data-email="vaclavpe@seznam.cz">Ahoj,<br><br>jak jsem psal minulý týden, tak se mi nepovedlo upravit BW1.MZF tak, abych mohl hru Business World nahrát z unikarty. Tak to už neplatí, kód, který je přiložen níže, se dá použít pro nahrávání vícesouborových her - ale pouze těch, co si otevírají v emulátoru CMT PATCH. Tj.pokud v loaderu není nahrávání obrázků nebo podobná zvěrstva.<br><br>U hry BW je ještě taková specialitka, že se nesmí sáhnout na zásobník - proto jsou zakomentované všechny CALLy.<br><br>Nevím popravdě, jak to funguje na Vašich novějších unikartách, já používám ten starší model můj a kód Michalův.<br><br>Vašek<br><br>mainprg:   <br>  ;;;;;;;;;;;;;;;;;;;;;;; precteme par byte z filata<br>  <br>     ;ld de, txt1<br>    ;call 0x0015        ; zobrazit text z DE<br> <br>    ; otevreme soubor<br>    ld a, cmdOPEN<br>    out (CMDPORT), a<br><br>    ; Exstujici soubor pro cteni<br>    ld a, FA_OPEN_EXISTING + FA_READ<br>    out (DATAPORT), a<br><br>    ; Druhym parametrem je jmeno souboru<br>   ld    e, 0x00 ; konec jmena soubor<br>    ld hl, filename<br>    ld    c, DATAPORT<br>next_char:<br>    outi<br>    ld    a, (hl)<br>    cp    e<br>    jr    nz, next_char<br>   <br>    ; Podarilo se nam soubor otevrit?<br>    ;<br>    ; (Pokud je vse OK, tak ted mame ve statusu nastaveny<br>    ; bity READ_FILE, WRITE_FILE a EOF.)<br>    ;<br>    in a,(CMDPORT)<br>    bit 0, a        ; je READY ?<br>    jr nz, ERROR_PARAM    ; NENI: tohle muze nastat jen pokud<br>                ; jsme zapomneli ukoncit vkladani <br>                ; textoveho parametru znakem mensim jak 0x20<br>            <br>    and 0x80<br>    jr nz,ERROR_OPEN    ; ne, doslo k chybe pri OPEN<br><br>   ; pripravili jsme si v unikarte MZF, tak nacteme jeho hlavicku<br>   ld bc, 0x8051    ; cteme 128 bajt z DATA_PORTu<br>   ld hl, 0x10f0    ; a ukladame to na 0x10f0<br>   inir<br><br>   ; podle udaju z hlavicky si nacteme z DATA_PORTu telo na adresu 0x1200<br>   ld hl, 0x1200<br>   ld de, (0x10f0 + 0x12 )<br>rdbyte:        ini<br>   dec de<br>   ld a,d<br>   or e<br>   jr nz, rdbyte<br>   ; zavrit soubor<br>   ld a,cmdCLOSE<br>   out (CMDPORT),a<br><br>   out   (0xe0),A  ; zrusi spodni ROM a primapuje RAM<br>   jp    0x0000 ; skoci do RAMky, kde uz je pripravena BW1<br>   <br><br>ERROR_PARAM:<br>    ld de, msg_err_param<br>    call 0x0015        ; zobrazit text z HL<br>    di<br>    halt<br><br>ERROR_OPEN:<br>    ld de, msg_err_open<br>    jr print_errcode<br><br>;ERROR_SEEK:<br>;    ld de, msg_err_seek<br><br>print_errcode:<br>    call 0x0015        ; zobrazit text z HL<br>    in a,(CMDPORT)        ; kod posledniho prikazu<br>    in a,(CMDPORT)        ; unicard err code <br>    in a,(CMDPORT)        ; FatFS err code<br><br>    call 0x03c3        ; zobrazit obsah A<br>    di<br>    halt<br>    <br>msg_err_param:<br>    db    "ERROR: BP!",0x0d<br>msg_err_open:<br>    db    "OPEN ERROR: ",0x0d<br>;msg_err_seek:<br>;    db    "SEEK - ERROR CODE: ",0x0d<br><br>   <br>txt1: db "OPENING "  ; doplni se filename automagicky<br>filename:  db    "BW.DAT",0x0d, 0x00<br>txt2: db " OK",0x0d<br><br><br><br>_______________________________________________
<br>SharpMZ mailing list
<br>SharpMZ@mail.ordoz.com
<br>http://mail.ordoz.com/mailman/listinfo/sharpmz
<br></blockquote>_______________________________________________
<br>SharpMZ mailing list
<br>SharpMZ@mail.ordoz.com
<br>http://mail.ordoz.com/mailman/listinfo/sharpmz
<br></blockquote>_______________________________________________
<br>SharpMZ mailing list
<br>SharpMZ@mail.ordoz.com
<br>http://mail.ordoz.com/mailman/listinfo/sharpmz
<br></blockquote></body></html>