NIPOS history 8.7.2002 Dokoncena indikacia casu a dodana do slucky prerusenia. Bios ma cca 2kB. 11.7.2002 Dokoncena zhruba klavesnica pod prerusenim, zatial bez optimalizacie. Testovaci build aj s klavesnicou, zda sa, ze funguje. Bios ma cca 3kB. Este treba upratat riadiace klavesy tak, aby sedeli so svojimi funkciami (DEL, sipky atd.). 12.7.2002 Trochu zoptimalizovana klavesnica, FKEYs su uz iba 12bajtove, ale zato klavesovy buffer je 83 bajtovy. Oboje este v RAM. Implementovane sluzby CONST a CONIN. Zrusene dvojkody. Riadiace kody este neupratane. GRAPH a SHIFT GRAPH este aktivne, ale bez diakritiky asi zbytocne. Vypustenim by sa usetrilo 128 bajtov. Zvuky klaves zatial neimplementovane. BIOS ma este stale cez 3 kB. 13.7.2002 Funkcne kluce aj klavesovy buffer presunute do VRAM. Konverzna tabulka klaves tiez presunuta do VRAM. Vytvoreny modul BIOSINIT, ktory okrem ineho zdruzuje inicializaciu tabuliek vo VRAM. Implementovane sluzby LIST, LISTST, PUNCH, READER. Vykreslenie funkcnych klucov. BIOS ma teraz cca 2,6 kB. 8.8.2002 Vytvoreny modul BIOSDSK, presunute diskove sluzby z BIOSHDD do BIOSDSK. Implementovane sluzby SETTRK, SETSEC, SETDMA. 10.8.2002 Implementovana sluzba SECTRA. CONIN ma vlastny zasobnik - moze sa volat odkialkolvek (aj z CONOUT...). Implementovany ERRMSG. KBDLEN je globalna. BIOSPR - opravene umiestnenie BRDOF. 14.8.2002 Vylepseny ERRMSG, implementovane chybove hlasky. Implementovane tabulky diskov a buffre. 17.8.2002 Zavedena premenna ERRENA pre povolenie chybovych hlasok. Okomentovana rutina ERRMSG. Implementovana sluzba SELDSK. Opraveny bug v BIOSINIT, ktory nevypinal VRAM. 19.8.2002 Do BIOSDSK pridane premenne SPT a CLSIZE pre ucely bufferovaneho pristupu k diskom. 20.8.2002 Implementovane rutiny pre zalohovany ramdisk. 21.8.2002 Zaclenenie rutin pre ramdisk, ciastocne implementovany WBOOT (bez nacitania CCP a BDOS), osamostatnene casove premenne. Sluzby BIOSu uz by mali byt funkcne (az na FDD a HDD), treba odladit (na praci s RAMDISKom). 23.8.2002 Modul BIOSLOAD, ktory preplacne Lamacov BIOS v pamati. Prve testovacie zlinkovanie s BDOS a CCP, funguje. 24.8.2002 Copyright info v BIOSLOAD, v BIOSINIT urobena autodetekcia veľkosti RD od 0-1MB. RD uz by mal byt kompatibilny s Lamacom vo vsetkych velkostiach. Treba este zmensit alokacny buffer pre RD na polovicu (pre 256 blokov). 26.8.2002 Do modulu BIOSDSK pridana premenna BOOTDS pre cislo bootovacieho disku. WBOOT cita CCP.SYS z bootovacieho disku. Osaleny BDOS. Este treba opravit SELDSK. Zvolene kodove meno novovznikajuceho operacneho systemu NIPOS. Odhaleny bug v Lamacovom CPM u RD 1MB - nekorektna tabulka DPB nedovoluje pocet poloziek v adresari vacsi ako 128, hoci adresar u 1MB RD ma priestor pre 256 poloziek (2 alokacne bloky po 4096 bytov). Z hladiska kompatibility bug zatial ponechany aj v nasom BIOSe. 27.8.2002 Opraveny warm boot, uz by mal bootovat korektne - navrat z externeho programu je korektny. BDOS aj CCP taha zo suborov CCP.SYS a BDOS.SYS na ramdisku E: vzdy pri warm boote, BDOS sa uz nemusi osalit, vzdy ho taha cerstvy. COLD boot nastavi navyse bootovaci disk ako default (zatial ramdisk E:). Do vysledneho BIOSLOAD treba pri linkovani prilinkovat aj modul BDOS. Autodetect zalohovaneho ramdisku rozpoznava automaticky nasledovne velkosti: 64KB, 128KB, 256 KB, 512KB, 1024KB (rozpoznavanie na zaklade zrkadlenia stranok). Pridane nejake info o detekcii diskov (do modulu BIOSLOAD). Mozeme zacat implementovat rutiny pre HD. 28.8.2002 Implementovana velka cast rutin pre HD. Alokacny buffer pre RD zmenseny na 32 bytov (256 blokov). 30.8.2002 Doimplementovane rutiny HD, odladene pod EMU na C: particii 15 MB. Funguje, citanie adresara je trochu zdlhave (cca 1s pri 1024 polozkach adresara), asi si treba zvyknut. Particia v BIOSe zatial nastavena natvrdo, treba doimplementovat automaticke rozpoznavanie particii do BIOSINIT. (Parametre particie: RELOFS=23h, RELNUM=782Dh, CHS fyz. 667/16/35) 31.8.2002 Poopraveny bug, ktory neinicializoval IDE8IF, praca s diskom odskusana na dvoch particiach - 15MB a 32 MB. V module BIOSINIT dorobena rutina na detekciu diskov HDSIZE. Dokoncena autodetekcia HDD. 6.9.2002 Vytvoreny modul BIOSFDD pre pracu s disketami 720kB - implementovane zakladne rutiny pre nastavenie stopy a sektora na radici WD. 7.9.2002 Doimplementovane nejake dalsie rutiny pre diskety, okomentovana dalsia cast Lamacovho BIOSu. 11.9.2002 Doimplementovana rutina citania sektora FDD v module BIOSFDD. 12.9.2002 Doimplementovana rutina zapisu sektora FDD v module BIOSFDD. Treba zacat ladit a optimalizovat. 19.9.2002 (NIPOS 0.01) Biosload 0.01. Default boot je E, Biosload moze byt s parametrom C, D, E - system taha z prislusneho disku, ale musi tam byt BDOS.SYS a CCP.SYS, inak hlasi Boot error. Vyhodena podpora B disku z BIOSFDD aj BIOSDSK, vyhodeny FOCUS z BIOSFDD, usetrili sme tak nejake miesto. Treba este usetrit 81 bajtov. 27.9.2002 Do BIOSLOAD pridane automaticke ulozenie CCP a BDOS do systemovych stop bootovacieho HDD (resp. RD, ak ma systemovu stopu). 28.9.2002 BIOSDSK - global FLUSH. BIOSHDD - uz by mal vediet bootovat zo syst. stop HDD/RD. Vyhodeny testovaci border z BIOSPR. Uz by mal vypinat motor FD, ked vyprsi timer (ak sa spusta z Lamaca, motor zhasne ihned). Inicializacia modu a paliet pri WBOOTe (napr. po FETe) - odskusat. Default boot je C namiesto E, da sa bootovat s parametrami C, D, E (E ale este nema syst. stopu, takze E nenabootuje!). Ak neni CMT.COM na bootovacom disku, tak ho vytvori. Inymi slovami, uz by mal byt BIOSLOAD.COM pouzitelny bez RD (zial, netestovane - zdrojaky su zatial iba na PDA). 30.9.2002 Opraveny vazny bug v slucke prerusenia (modul BIOSPR), ktora nicila obsah registra IY (malo za nasledok napr. nespravnu funkcnost FDISKu, ak bol spusteny pod NIPOSom, ako aj dalsich programov, ktore vyuzivaju indexregister IY, pripadne nespravnu detekciu parametrov particii!). Hlbka prerusovacieho zasobnika STCK0 zvacsena z 24 na 26 urovni (rezerva 1 uroven). Dalsi bug odstraneny v BIOSHDD, kde nestacila hlbka interneho zasobnika (STCK1) 20 urovni - pretiekol pri Disk Select Error a pretiekol by aj ak by nastal Read/Write error. Hlbka STCK1 zvacsena z 20 na 24 urovni (rezerva 1 uroven). Inicializacia prerusenia (rutina INITPR aj s tabulkami) presunuta z modulu BIOSPR do BIOSINIT, cim sa usetrilo nejake miesto. Uz by sa snad mohli zmestit FDD rutiny, treba doladit a vyskusat po kompilacii. V module BIOSFDD pasovane FRDBUF a FWRBUF na globalne, v BIOSDSK ako externe (modul BIOSFDD budeme kompilovat zatial samostatne, kym sa dokladne neodladi...). Premenna MOTTIM presunuta z BIOSFDD do BIOSPR. Do BIOSDSK pridany kondicional FDD, ktory podmienene rata s modulom BIOSFDD alebo bez neho. Oba lokalne zasobniky by uz mali byt predbezne vyladene, kazdy s jednourovnovou rezervou (vid vyssie). 1.10.2002 Do BIOSHDD (WBOOT) zaimplementovany warm boot aj zo systemovych stop FD (umiestnenie CCP+BDOS na FD ako u Lamaca 2.1C-3.23, na HDD/RD 0.D4-0.FF). Malo by fungovat hned ako sa prilinkuju FDD rutiny. 2.10.2002 Do BIOSINIT nadefinovane zmysluplnejsie funkcne kluce. Kompletne zreorganizovana a stransparentnena rutina INIT - teraz zahrna v sebe inicializaciu dalsich portov vratane hodin (GDG, 8255, 8253, PSG, SIO, PIO-A, PIO-B, IV, prerusenie), okrem DPB tabuliek diskov. INITPR zrusene a zaclenene do INIT. V BIOSHDD zrusena SET804 (zapracovana do INIT v module BIOSINIT), MODPAL premenovana na INIGDG (inicializuje mod 6, palety, scrollregistre a RAM). Zavedene globaly MAXLIN a CLRSCR. Mierne zmenene inic. bajty PIO-A podla LAMACA, vrateny test border - treba odskusat prerusenie. Modul BIOSPR zruseny a zacleneny do BIOSKBD. Modul BIOSFDD zruseny a zacleneny do BIOSDSK, diskety sa prekladaju cez kondicional FDD (definovany v BIOSDSK). Odstraneny drobny bug v detekcii particie D. Dodana detekcia FDD radica (ak je pritomny, oznami A: 720 kB - iny format zatial nepodporujeme) - treba odskusat. 3.10.2002 (NIPOS 0.02) Okomentovana detekcia HD particii v module BIOSINIT. Spravy o detekcii diskov aj copyright presunute do modulu BIOSINIT. Zavedena globalna rutina DETECT, ktora vsetko zdetekuje a vypise. Na vypisy pouzite sluzby BIOS namiesto BDOS (modul BIOSINIT pouziva vylucne sluzby BIOSu, bez potreby BDOSu v pamati). Skompilovane pod EMU, zda sa, ze este nefunguje korektne warm boot? 4.10.2002 (NIPOS 0.03) Odstraneny bug pri generovani CMT.COM v BIOSLOAD, ked vdaka zle nastavenej sluzbe Close a prehodenym POP BC a POP DE generoval blby subor. Este stale ma problemy s detekciou existencie CMT.COM na disku. Este blbne zapis na A: disk, kde hlasi falosny Read/Write error. 5.10.2002 (NIPOS 0.04) Odstraneny bug v module BIOSDSK, ktory hlasil falosny Read/Write error pri zapise na FD. Do BIOSLOAD pridany SELDSK na bootdisk, nakolko bez neho nevedel spravne zistit pritomnost CMT.COM. Vyhodeny testovaci border. Umozneny vyber disku A: aj ked neni pritomny FDD radic, lebo BDOS je tak sprosty, ze sa pri boote nevie vysporiadat s chybajucou mechanikou A: (pritomnost A: mechaniky zrejme striktne vyzaduju sluzby BDOS c. 0 a 13). V pripade, ze je pritomna mechanika A, BIOSLOAD urobi aj inicializaciu disk. systemu (inak by disk A vyzeral ako prazdny). BIOSLOAD mozny aj s parametrom A - vtedy taha CCP a BDOS z diskety (mozne parametre BIOSLOAD.COM: A,C,D (aj E, ale nenabootuje, lebo RD este nema v DPB specifikovanu systemovu stopu kvoli kompatibilite s Lamacom)). Este robi problem FET, ked sa spusta z diskety - nejak sa to v pamati porve, asi problem s prerusenim... Zrejme treba odladit povolenie prerusenia, hlavne v disketovych rutinach. 7.10.2002 (NIPOS 0.05) Vyrieseny problem s FETom - uz sa taha spravne aj s diskety. Do modulu BIOSDSK dorobene chranene prerusenie - rutina PDI s uschovanim stavu pred zakazanim prerusenia a rutina PEI s obnovenim stavu pred zakazanim prerusenia. Chranene prerusenie zaclenene aj do rutiny ERRMSG a do HDD rutin, tymto by malo byt prerusenie aspon pre diskove rutiny vyladene. Po navrate z FETu sa palety nastavia spravne, ale text nad kurzorom zmeni farebnost (FET pracuje iba s jednou rovinou VRAM) - vyriesit sa to zatial neda (neni to na zavadu), nakolko CPM po navrate z FETu nevie, ze tam bol FET. V module BIOSKBD a BIOSHDD su teraz male pismena ako default. Odskusane v reale na MZ. Chodi, akurat detekcia FDD mechaniky neni vzdy stopercentna (raz ju zdetekuje, inkedy nie. Detekci sa robi zapisom FEh do registra sektora s naslednym precitanim - v com je chyba?). Pozor - ak je pritomna FDD mechanika a zdetekuje ju, v FDD mechanike musi byt disketa, inak hlasi RW Error (ak neni disketa, staci parkrat abortovat) - vlastnost BDOSu, ktory ma problemy bez diskety v A mechanike. 8.10.2002 (NIPOS 0.06) V module BIOSDSK predlzene default casy pre FDD mechaniky: Rozbeh z 200ms na 1000ms, ustalenie na stope z 3ms na 30 ms, doba kroku z 6ms na 15ms. Rutina WTXMS globalna. V module BIOSINIT vlozena cakacia doba 10ms medzi zapis a citane registra sektora na WD radici pri detekcii FDD. BIOSLOAD vynecha prazdny riadok pred spravou o CMT.COM. 9.10.2002 (NC 1.06S) Upraveny NC tak, aby fungoval korektne na NIPOS ver. 0.06 (tento upraveny NC nepojde pod ziadnym inym systemom okrem NIPOS 0.06). Tento NC pridany do image diskety ako NC2.COM (pod USER 0). NIPOS - ziadne zmeny. Zdenek objavil barieru kapacity logickeho disku 8MB, za ktoru sa zatial neda ist, pravdepodobne sposobenu Lamacovou upravou BDOSu, zrejme pouziva iba 8bitove cislo stopy. Preto odporucam zatial vytvarat particie velke max. 7MB! Pri pokuse o zapis do oblasti nad 8MB je potrebne 16-bitove cislo stopy, preto v sucasnosti dojde k preteceniu a prepisaniu zaciatku particie (vratane bootsektora)! Treba opravit BDOS! 19.10.2002 Prekopany BDOS a aplikovane 2 patche: podpora diskov >8 MB a umoznenie korektneho bootovania z ineho disku nez A - vyhodena automaticka aktivacia disku A zo sluzby c. 13 - robilo problemy pri pritomnosti mechaniky bez diskety v mechanike. Namiesto neho sa aktivuje bootovaci disk. Nastavenie bootovacieho disku sa robi volanm sluzby c. 14 (vyber disku) s komplementom cisla disku v registri E (FFh disk A ... F0h disk P) pred prvym volanim sluzby c. 13. Hranica 8 MB v povodnom BDOSe nebola sposobena cislom stopy, ale sposobom, ako sa robil prepocet cisla alokacneho bloku na cislo stopy a sektora (pouzival sa prepocet cez 16-bitovy relativny sektor, v novej verzii sa robi prepocet cez 32-bitovy relativny sektor a vypocet cisla stopy sa robi aritmetickym delenim namiesto sekvencneho posunu - malo by to urychlit random seek na vacsich particiach pri posunoch o radovo desiatky stop). Treba odladit obidva patche. 21.10.2002 (NIPOS 0.07) BDOS nahradeny patchnutym BDOSom, uz podporuje 32MB particie. Odladene v emulatore. Patch pre sluzbu c. 14 (boot z ineho disku ako A) som zatial do tohto buildu neaplikoval, az kym sa neodladi patch pre velke disky. BIOS zostal nezmeneny, takze NC2 (1.06S) stale funguje. 27.12.2002 Zapocate prace na MZF verzii NIPOSu. Trochu preusporiadany BIOSINIT, teraz zacina vektorom vstupnych sluzieb (32 bajtov), nasleduje 300 bajtov (25x12) tabulky funkcnych klucov, dalsich 52 bajtov je vyhradenych pre buduci blok ESCD (ak nestaci, ESCD bude pokracovat v dalsom sektore). Prve tri sektory (3x512 b.) systemovej stopy CPM particie budu teda nasledovne: 0. sektor = BOOT sektor, 1. sektor = DPB sektor, 2. sektor = ESCD sektor (0..127 = hlavicka NIPOSSYS.MZF, 128..159 vstup. vektor BIOSINIT, 160..459 funkcne klavesy, 460..511 rezerva pre ESCD premenne). Kompletny podrobny popis systemovej stopy zverejnim neskor v samostatnom subore. 28.12.2002 (NIPOS 0.08) Dorobeny modul NIPOSSYS - MZF subor, ktory obsahuje BIOSINIT, zavadzac BIOSu a BIOS samotny. Ulozeny bude od 2. logickeho virt. sektora systemovej stopy CPM particie. Bude spustitelny aj ako samostatny MZF subor, ktory ale predpoklada existenciu BDOS a CCP v systemovej stope. Zapocate prace na bloku ESCD v ramci modulu BIOSINIT. Blikanie kurzora este trochu blbne. 2.1.2003 Odstranene bugy - z modulu BIOSINIT, kedy sa volali sluzby este nenatiahnuteho BDOSu. Vyrieseny problem bootdisku - uz neni potrebna disketa v mechanike. V BDOSe aplikovany patch pre bootdisk iny ako A (volanie sluzby 14 s komplementarnym cislom disku nastavi bootdisk pre sluzbu 13 - aplikovane do warm bootu). Vytvoreny novy BIOSLOAD.COM a NIPOSSYS.MZF (pozor - pred prvym spustenim NIPOSSYSu treba aspon raz spustit BIOSLOAD, aby sa nahral novy patchnuty BDOS do syst. stopy harddisku). Trochu poopraveny warm boot. Teraz ale hneva vyber neexistujuceho disku - neda sa zrusit abortom, asi chyba v CCP (CCP zrejme caka, ze BDOS 13 urobi aktivny disk A???). NC2 este stale chodi korektne. Ale uz pomaly mozeme zacat vyrabat instalacnu verziu NIPOSu, ktora spojazdni bootovanie cez IDEBOOT.MZF. 3.1.2003 Zapocate prace na instalatore NIPOSu (modul NIPOS). Vytvoreny obsah CPM bootsektora - loader operacneho systemu (modul NIPOSBOT) - treba odladit. 4.1.2003 dopoludnia (NIPOS 0.09) Skompilovany NIPOSBOT, odstranene globaly z BIOSINIT. 4.1.2003 vecer BIOSLOAD - ulozi aj bootsektor a jadro do systemovej stopy HDD (parameter E ulozi jadro, ale nie bootsektor do syst. stopy RD). Treba odladit, urcite treba este opravit vypocet umiestnenia BIOSu v module NIPOSSYS (jadro). Po prvom natiahnuti BIOSLOAD uz by mal fungovat IDEBOOT.MZF! 6.1.2003 (NIPOS 0.10) Do ESCD dodane parametre pre rozbeh FD mechanik. Odladene bootovanie cez IDEBOOT - konecne funguje (po viac nez roku)!!! Po spusteni BIOSLOAD.COM sa vsetko potrebne nahra do sysemovych stop HDD, potom staci bootovat uz iba cez IDEBOOT.MZF. IDEBOOT je sice mozne umiestnit do SRAM, ale POZOR - v takom pripade neodporucam pouzit ramdisk pd NIPOSom, nakolko zatial pouziva LAMACov format bez systemovej stopy (v pripade, ze IDEBOOT nenahrame do SRAM, ramdisk sa da pod NIPOSom pouzit). Opravime snad v dalsej verzii, ktoru uz bude mozne instalovat z CMT... 9.1.2003 (NIPOS 0.11, IDEBOOT V1.2) Zruseny Reset disku, malo by to bootovat rychlejsie (treba overit v reale). 13.1.2003 (NIPOS 0.12) Pridany test na format RD (NIPOS/LAMAC), ak neni naformatovany tak ho sformatuje s 1 systemovou stopou (=32 kB), umoznuje tak bezpecne nahratie IDEBOOTu do SRAM. Pridana moznost fixneho nastavenia velkosti RD v bloku ESCD (+9Eh). 16.1.2003 (NIPOS 0.13) Na Zdenkovu ziadost vyhodene cakanie cca 1s z inicializacie 8253 - co to spravi v reale? 22.2.2003 Napisana 1. verzia MZF instalatora NIPOSu (modul NIPOS.MAC), mala by nahradit BIOSLOAD. Treba este dorobit bootsektor RAMdisku (pre pripad instalacie na konfiguracii bez HDD). 26.2.2003 (NIPOS 0.13/MZF) Skompilovany MZF instalator, odstranene nejake bugy. Uz funguje s harddiskom. 1.3.2003 (NIPOS 0.13R/MZF) Uz funguje aj so solo RAMdiskom, vratane bootovania. Pri bootovani z RD bez pritomnosti HDD trva detekcia dost dlho, mozno bude treba upravit... 7.3.2003 (NIPOS 0.14) Opraveny bug falosnej hlasky o formatovani RD. Zrychlena inicializacia 8253. Zrusene cakanie na inicializaciu HDD po instalacii na RD bez pritomnosti HDD. Poopravena inicializacia VRAM tak, aby nedochadzalo k rusivemu obrazu. 8.3.2003 (NIPOS 0.15, FDISK 1.0B10/MZF) Vyrobena MZF verzia FDISKu (anglicka, slovenska, ceska). Implementovany AUTOEXEC, aj v ESCD. Na funkcnost AUTOEXEC.SUB je potrebny SUB.COM. 21.3.2003 (FDISK 1.0B11/MZF) Opraveny bug v MZF verzii FDISKu, v predoslej verzii bol zle nalinkovany MBR modul, prejavil sa neschopnostou IDEBOOTovat z novo naformatovaneho disku (bug objavil Tomas Lorenc pri experimentovani s FLASH kartami).