Konference: Počítač SHARP MZ-800 a emulátory
| Od: | Radek Suk |
| Datum: | 10.1.2012 12:18 |
| Předmět: | Re: Floppy driver |
Jeste pred usnutim jsem si rikal ze je tam stejne jina chyba, protoze to
co pisi bude problem az u HD disket ale u DD se to neprojevi - zde je
dvojnasobny cas. Jinak i posledni verze nefunguje.
Idelani je dat zdrojaky na http://ordoz.com/sharp/fddrv/ a napsat co
presne pouzivas pro preklad - logicky to delas v Linuxu alespon podle
souboru. Take bych to cisloval tak napr fddrv7.mzf - ja stejne to
prejmenovavam na 8 znaku nez to dam do Sharpa a to uz proto abych to
nepopletl.
Michale posilam klicovou cast z MZ DOSu at vidis jak to resim ja. Mozna
ti to pomuze nebo to muze nekoho inspirovat.
Radek
makej: ld de,(z_bufer) ; de-kam davat data
makej0: push de ; cy-0 input cy-1 output a-kod
;
ld (makej3+1),a ;
ld a,3h
out (0fch),a ; znemozni preruseni PIO-a
di
in a,(0d8h) ; nulovani INTRQ vystupu radice
ld de,freemem
ld hl,10h
ld bc,3
ldir ; oblast 10h uloz
ld l,20h
ld c,7
ldir ; oblast 20h uloz
ex de,hl
ld hl,kondopameti-1
jr c,makej1
ld hl,kondoradice-1
makej1: dec de
ld c,7
lddr ; rutinka pro data z/do radice (oblast 10h
a 20h)
ld a,0c3h
ld (10h),a
ld hl,makej5
ld (11h),hl
im 0
ld a,(fyztyp)
bit 3,a
ld a,1h ; clock - 1 Mhz DD-typ
jr z,makej2
ld a,7h ; clock - 2 Mhz HD-typ
makej2: out (0dfh),a
pop de
push de
ld a,(de) ; pro pripad ze je zapis do radice je nutno
cpl ; mit uz v acc pripraven bajt
ld hl,makej4 ; adresa skoku
ld c,0d8h
makej3: ld b,0
ei
out (c),b ; vysli instrukci
makej4: jp (hl) ; nekonecna smycka
makej5: pop hl ; vyrovnani zasobniku
in a,(0d8h) ; prevezmi status
di
push de
xor a
out (0dfh),a ; clock - 1 Mhz
ld hl,freemem
ld de,10h
ld bc,3
ldir ; oblast 10h obnov
ld e,20h
ld c,7
ldir ; oblast 20h obnov
im 2
ld a,83h
out (0fch),a ; povol preruseni od PIO-a
pop de ; kolik bajtu jsem precetl
pop bc ; kde zacina bufer
ld hl,(delsek) ; pocet bajtu ktere se maji prenest
add hl,bc
and a ; preneslo se spravny pocet bajtu ?
sbc hl,de ; 0 - ano
ret
zacdoradice: ; doda 1 bajt do radice
out (0dbh),a
inc de
ld a,(de) ; delka rutinky je 7 bajtu !
cpl
ei
ret
kondoradice:
zacdopameti: ; prevezme 1 bajt z radice
in a,(0dbh)
cpl
ld (de),a ; delka rutinky je 7 bajtu !
inc de
ei
ret
kondopameti:
freemem: ds 10 ; sem ulozim co je pri spusteni od adresy 20h a 10h
Dne 10.1.2012 8:58, Michal Hučík (sharpemu tu byla ta zakroucena vec pandora.cz) napsal(a):
>
>
>
> Dne 10.1.2012 3:01, Radek Suk (sharpemu tu byla ta zakroucena vec pandora.cz) napsal(a):
>>
>>
>> Proto asi bude stacit zmenit to RETI na RET. Proc vlastne chces delat
>> RETI, vzdyt je to uplne k nicemu - preci neovladas zadny Z80 periferni
>> obvod timto prerusenim?
>>
>
> Ahoj Radku, mas pravdu ... divam se do zdrojaku HD cp/m a vidim tam RET
> a ne RETI ... ja jsem ho tam dal asi proste ze slusnosti ;)
> Posilam verzi ve ktere je pouze EI a RET, tak jsem zvedavy.
>
> Michal
>
>
> ---
[2012/1 (125)] [2012/2 (34)] [2012/3 (57)] [2012/4 (46)] [2012/5 (40)] [2012/6 (44)] [2012/7 (64)] [2012/8 (57)] [2012/9 (32)] [2012/10 (55)] [2012/11 (25)] [2012/12 (63)]
[1999 (1)]
[2000 (168)]
[2001 (733)]
[2002 (459)]
[2003 (654)]
[2004 (224)]
[2005 (105)]
[2006 (182)]
[2007 (201)]
[2008 (294)]
[2009 (363)]
[2010 (782)]
[2011 (522)]
[2012 (642)]
[2013 (442)]