1. 9. 2008

TrueWare - aktuální stav

Dnes se Zilog uvolil a poslal na Speccy konferenci na Pandoře rutinku, která provádí Read/Write na IDE zařízení. S jeho svolením jí zde uveřejníme.

Zde je...

Vstupy:

;HL = target address
;B = number of sectors
;E = sector (or LBA[7-0])
;D = cyl-low (or LBA[15-8])
;C = cyl-high (or LBA[23-16])
;A = head etc. (or LBA[28-24])

;bit A.7=A.5=1
;bit A.4=device (0=master, 1=slave)
;bit A.6=CHS/LBA (0=CHS, 1=LBA)
;CY=operation (1=write, 0=read)

Jen na objasněnou (to co mi nebylo hned jasné):

- bit 7 a 5 reg. 'a' musí být nastaveny na 1
- carry flagem se určuje read/write
- reg. 'b' určuje počet cektorů, které chceme najednou načíst

readsec: out ($bb),a
        r1: in a,($bf)
        bit 6,a
        jr z,r1
        ld a,b
        out ($ab),a
        ld a,e
        out ($af),a
        ld a,d
        out ($b3),a
        ld a,c
        out ($b7),a
        ld a,$20
        jr nc,r2
        ld a,$30
r2:     out ($bf),a
        push af
r3:     in a,($bf)
        and $c8
        cp $48
        jr nz,r3
        pop af
        push bc
        ld bc,$a3
        jr nc,r4
        otir
        otir
        jr r5
r4:     inir
        inir
r5:     pop bc
        djnz r3
r6:     in a,($bf)
        rla
        jr c,r6
        ret


Tak a teď k aktuálnímu stavu prográmku TrueWare.

Jelikož jsem celý program skoro celý přepsal jsem téměř na začátku.

Funguje:

- načte se MBR sektor
- zjistí se info o první partition
- načte se první sektor FAT tabulky
- zjistí se první datový sektor

Chybí:

- hledání volného clusteru ve FAT tabulce (rozpracováno, chybí táááákhle malinko :) )
- samotný zápis těla souboru
- zápis hlavičky soubru
- uložení FAT tabulky

Zítra snad budu mít první předvedení - schopnou verzi :)

Teď už snad vše půjde rychleji...

9 komentářů:

sweet128 řekl(a)...

A co nějaký výběr adresáře? To bude kde/kdy? Když už FAT16, tak komplet.

Shrek řekl(a)...

Ja ti to reknu takhle:

Ja jsem si stanovil cil ulozit soubor na Fat16 (a pak ho zpatky precist). Udelat k tomu nejakou nadstavbu taky zvladnu...

Ale adresare nepotrebuji, nechci a nebudu podporovat.

Odpovim tvymi slovy, kterymi odpovidas casto Wixetovi: Na netu jsou (budou) zdrojaky, dodelej si to :)

Z řekl(a)...

jen takovy maly dotaz - funguje ta rutina? psal jsem to z hlavy rovnou do pandory, spectrum to nevidelo :>

Shrek řekl(a)...

Ja se k tomu jeste nedostal :)

Jen jsem procistoval stavajici code a prizpusoboval jsem to k te tvoji rutince...

Takze zitra dam vedet.

sweet128 řekl(a)...

Tak holt to po tobe dodelam, no.

Shrek řekl(a)...

Sweet128: tomu rikam nadseni ;)

Ale iniciative se meze nekladou :)

Zeptej se Logouta, od zacatku jsme rikali, ze na adresare serem ;)

Shrek řekl(a)...

Tak mi 3 dny blbne PeC a ne a ne se nastartovat (ted pisu z prace), tak nemuzu pokracovat.

Vcera vecer (kolem pulnoci) je problem s ovladaci gr. karty nvidia a novym Xorg... takze po vikendu budu pokracovat (jelikoz o viekndu se jedu rekreaovat :) )

vsem se omlouvam ze to tak dlouho trva, ale PC svet je proti me... :)

hood řekl(a)...

Mirdo, kua, tesim se na Trueware jak svina, dej pak vedet, jak s tim valcis....

z. řekl(a)...

jinac ta rutina je prepsana blbe, skakat se ma djnzem pred ten push, of coz, jinak se vypopuje stck - ale to hadam kazdy ponjal