Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Re: [SharpMZ] Business World - nahrávání z Unikarty

"Michal Medek" <Michal.Bruntal@[doména skryta]> SHARP MZ-800

Ahoj,

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.
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?
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:
File: ..\MZT2\Yokai_A.mzt
Directory of MZT:                         size load exec
 OBJ  "SIDE A"          :` 48640 Bytes    BE00 1200 1200
 OBJ  "DEMO"            :`  6784 Bytes    1A80 1200 2C66
Length of data: 55424 Bytes.

File: ..\MZT2\Yokai_B.mzt
Directory of MZT:                         size load exec
 OBJ  "YOUKAI V1.1"     :` 36718 Bytes    8F6E 1200 A155
 OBJ  "MAP 8"           :`  6656 Bytes    1A00 9600 E804
Length of data: 43374 Bytes.

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.
Vyhoda je, ze se nemusi 'patchovat' kazda hra nebo BASICove programy.

Mikes

---------- Původní e-mail ----------
Zobrazit citovaný text Od: Vaclav Peroutka <vaclavpe[doména skryta]>
Komu: Počítače SHARP MZ a jejich emulátory <sharpmzmail.ordoz.com>
Datum: 22. 1. 2018 22:10:32
Předmět: [SharpMZ] Business World - nahrávání z Unikarty
Ahoj,

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.

U hry BW je ještě taková specialitka, že se nesmí sáhnout na zásobník - proto jsou zakomentované všechny CALLy.

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.

Vašek

mainprg:  
  ;;;;;;;;;;;;;;;;;;;;;;; precteme par byte z filata
 
     ;ld de, txt1
    ;call 0x0015        ; zobrazit text z DE
 
    ; otevreme soubor
    ld a, cmdOPEN
    out (CMDPORT), a

    ; Exstujici soubor pro cteni
    ld a, FA_OPEN_EXISTING + FA_READ
    out (DATAPORT), a

    ; Druhym parametrem je jmeno souboru
   ld    e, 0x00 ; konec jmena soubor
    ld hl, filename
    ld    c, DATAPORT
next_char:
    outi
    ld    a, (hl)
    cp    e
    jr    nz, next_char
  
    ; Podarilo se nam soubor otevrit?
    ;
    ; (Pokud je vse OK, tak ted mame ve statusu nastaveny
    ; bity READ_FILE, WRITE_FILE a EOF.)
    ;
    in a,(CMDPORT)
    bit 0, a        ; je READY ?
    jr nz, ERROR_PARAM    ; NENI: tohle muze nastat jen pokud
                ; jsme zapomneli ukoncit vkladani
                ; textoveho parametru znakem mensim jak 0x20
           
    and 0x80
    jr nz,ERROR_OPEN    ; ne, doslo k chybe pri OPEN

   ; pripravili jsme si v unikarte MZF, tak nacteme jeho hlavicku
   ld bc, 0x8051    ; cteme 128 bajt z DATA_PORTu
   ld hl, 0x10f0    ; a ukladame to na 0x10f0
   inir

   ; podle udaju z hlavicky si nacteme z DATA_PORTu telo na adresu 0x1200
   ld hl, 0x1200
   ld de, (0x10f0 + 0x12 )
rdbyte:        ini
   dec de
   ld a,d
   or e
   jr nz, rdbyte
   ; zavrit soubor
   ld a,cmdCLOSE
   out (CMDPORT),a

   out   (0xe0),A  ; zrusi spodni ROM a primapuje RAM
   jp    0x0000 ; skoci do RAMky, kde uz je pripravena BW1
  

ERROR_PARAM:
    ld de, msg_err_param
    call 0x0015        ; zobrazit text z HL
    di
    halt

ERROR_OPEN:
    ld de, msg_err_open
    jr print_errcode

;ERROR_SEEK:
;    ld de, msg_err_seek

print_errcode:
    call 0x0015        ; zobrazit text z HL
    in a,(CMDPORT)        ; kod posledniho prikazu
    in a,(CMDPORT)        ; unicard err code
    in a,(CMDPORT)        ; FatFS err code

    call 0x03c3        ; zobrazit obsah A
    di
    halt
   
msg_err_param:
    db    "ERROR: BP!",0x0d
msg_err_open:
    db    "OPEN ERROR: ",0x0d
;msg_err_seek:
;    db    "SEEK - ERROR CODE: ",0x0d

  
txt1: db "OPENING "  ; doplni se filename automagicky
filename:  db    "BW.DAT",0x0d, 0x00
txt2: db " OK",0x0d



_______________________________________________
SharpMZ mailing list
SharpMZmail.ordoz.com
http://mail.ordoz.com/mailman/listinfo/sharpmz

Zobrazit původní podobu

Vlákno · 17 zpráv

Zobrazit celé vlákno na jedné stránce

  1. [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty Michal Hucik - ORDOZ <ordoz@[doména skryta]>
  2. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty "Vaclav Peroutka" <vaclavpe@[doména skryta]>
  3. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty "Michal Medek" <Michal.Bruntal@[doména skryta]>
  4. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty Michal Hucik - ORDOZ <ordoz@[doména skryta]>
  5. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty "Michal Medek" <Michal.Bruntal@[doména skryta]>
  6. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty Michal Hucik - ORDOZ <ordoz@[doména skryta]>
  7. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty "Vaclav Peroutka" <vaclavpe@[doména skryta]>
  8. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty "Michal Medek" <Michal.Bruntal@[doména skryta]>
  9. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty "Michal Medek" <Michal.Bruntal@[doména skryta]>
  10. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty Michal Hucik - ORDOZ <ordoz@[doména skryta]>
  11. Re: [SharpMZ] Chyba v emulaci FDC - tyka se i Unikarty Michal Hucik - ORDOZ <ordoz@[doména skryta]>
  12. [SharpMZ] Business World - nahrávání z Unikarty "Vaclav Peroutka" <vaclavpe@[doména skryta]>
  13. Re: [SharpMZ] Business World - nahrávání z Unikarty "Michal Medek" <Michal.Bruntal@[doména skryta]>
  14. Re: [SharpMZ] Business World - nahrávání z Unikarty "Vaclav Peroutka" <vaclavpe@[doména skryta]>
  15. Re: [SharpMZ] Business World - nahrávání z Unikarty "Michal Medek" <Michal.Bruntal@[doména skryta]>
  16. Re: [SharpMZ] Business World - nahrávání z Unikarty Michal Hucik - ORDOZ <ordoz@[doména skryta]>
  17. Re: [SharpMZ] Business World - nahrávání z Unikarty "Vaclav Peroutka" <vaclavpe@[doména skryta]>