Konference: Počítač SHARP MZ-800 a emulátory
Od: | Radek Suk |
Datum: | 10.1.2012 13: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)]