Retro UNIX 386 v2 iin kernel programlama/gelitirme notlar...
(Erdoan Tan).. Tarih srasna gre gnlk taslak notlar.
------------------------------------------------------------------------------
(Yaplm ve yaplacak ilemleri/deiiklikleri aklamak ve hatrlamak iin.)

benioku3.txt'den devam..
(O dosyann sonunda Retro UNIX v1.2, Kernel v0.2.2.2 tamamlanm oldu)

..burada yazdklarm Retro UNIX v1.2, Kernel v0.2.2.3'in gelitirme notlar.

12/07/2022'de ...

*) Retro UNIX 386 v1.1'de IBM PC/AT (ve XT-286) ROM BIOS int13h disk
   fonksiyonlarn esas alan diskio proedrlerinde sadeletirme
   yaptm. Retro UNIX'de kullanlmayan fonksiyonlar ve fazla kodlar sildim.
   (diskio.s, diskdata.inc ve diskbss.inc dosyalarnda disket ve hard disk
   iin reset/read/write dndaki fonsiyonlarn silinmesiyle sadeletirme
   ve ksalma oldu ve disket prosedrlerinde bir adet bugfix oldu)
   Bu deiiklikleri versiyon 1.1 ve versiyon 1.0'da denedim. Hatasz olduunu
   dorulaynca versiyon 1.2'ye uyarladm.

16/07/2022'de .. (15/07/2022 akam balayarak)

*) u8.s'de karmak ve orijinal unix v1'deki buffer handling kalntlar
   tayan buffer handling (arabellek kullanm) kodunu zgn/original basit
   kodla deitirdim. Buffer header'daki buffer status ksmnda bit 0 valid
   buffer flag, bit 1 write/modified flag, bit 2 read flag dierleri
   kullanlmyor eklinde basitleti. Diske yazma veya okuma ileminden nce
   bo buffer (bit 0 = 0) aranyor, bulunuyorsa kaytlanyor, sektr zaten
   bir buffer'da kullanlmsa (status bit 0 = 1, device ve LBA ayn) o buffer
   ile devam ediliyor. Free (invalid) yok ise, en eski kullanlm (en son
   kullanlan buffer daima buffer pointer listesinin bana alnyor) buffer
   yeni sektre atanyor (status bit 0 = 0 yaplarak, geersizletiriyor).
   'wslot' status bit 1'i 1 yapyor; 'dskrd' status bit 2'yi 1 yapyor ama
   validation bit 0 olarak braklyor. Disk r/w ilemi baarl olursa,
   'poke' validation flag'n yani status bit 0'i 1 dier bitleri 0 yapyor.
   Bylece o bloklar/sektrler bufferlarda hazr tutulmu oluyor.
   (Okuma veya yazma hatas olursa ilgili buffer geersizletiriyor ki, 
   diskteki ierik ile buffer'daki ierik farkl olmasn. Kernelde mevcut
   haliyle 16 adet buffer (16*520 byte) tanml. u8.s'ye iine yeni buffer
   yntemi aklamalarn yazdm. ux.s'deki 1 byte'lk 'active' alann
   artk (u8.s'de) kullanlmad iin iptal ettim.		
   		
17/07/2022'de ...

*) diskio.s, u0.s, u1.s, u5.s, memory.s ve unix386.s iinde gereksiz 16 bit
   shift (shr, shl) kodlarn 32 bite dntrdm (baz gereksiz
   66h prefixlerini kernel kodundan karmak iin) ve diskio.s iindeki
   gereksiz 'xor ch, ch'yi iptal ettim.	

18/07/2022'de ...

*) diskio.s'de 'DMA_SETUP' da iyiletirme yaptm (sadece 512 byte/sector
   disketler tanml olduundan gereksiz ksm iptal edip, direkt 512 byte'a
   gre kodu ksalttm). u2.s'de 'maknod ve 'anyi' iinde 'wslot' la ilgili
   gereksiz pusp-pop'lar iptal ettim (ebp artk 'wslot' iinde deimiyor).								