Stránka 180

NCB85

Keď som sa rozhodol hrať so SmallC bolo mi jasné, že budem potrebovať niečo, kde by som mohol overiť vygenerovaný kód. Nazrel som do šuflíku so skromnými zásobami súčiastok. Mal som jeden SAB8085, dve 8155, dve SRAM 128kB, asi 5 EPROM 27128, dve 74LS373, nejaké 8255, jednu 8253 a kopec 7400, 7490A a podobne.…

XT mánia 3. Commodore PC

V Nemecku kedysi vyrábané a v Nemecku veľmi populárne boli PC od firmy Commodore. Málokto o nich vie, pretože Commodore sa hlavne spája s najvyrábanejším počítačom všetkých čias s C64. Je to zaujímavé, ale práve PC ktoré mali grafické a zvukové možnosti o triedu horšie ako C64 zlomili Commodoru krk.…

XT mánia 2. TurboXT

PP-06 je "moje první láska" ale kto by už len dnes chcel mal na stole hučiacu, fučiacu, 20 kilogramovú obludu s rozlohou menšej autodráhy ? Priznávam sa, keby som bol skôr objavil PP-06 tak si ju asi znova kúpim.…

XT mánia 1. PP-06

Bolo to už dávno. Chodil som na výšku a v Bratislave práve rušili BEZku. Kamarát sa mi nezištne pochválil, že tam práve kúpil PC za 1300Kčs. Okamžite som poprosil mamu či by mi nedala na počítač :-) Nebolo to až tak celkom ružové.…

SCC9. SmallC – výrazy

Toto je najťažšia časť kompileru. Nedá sa popísať jednoducho, preto len jednoduchý popis. Každý operátor má nejakú prioritu a asociativitu. Operátory sú rozdelené podľa priorít. Každej priorite zodpovedá jedna metóda hier1 až hier9.…

SCC8. SmallC – ukladanie premenných

Keď som už ukladanie hodnôt do premenných v minulých blogoch načal, tak dám aj jeden príklad. Pozrieme sa ako sa narába s rôznymi typmi premenných. Vždy keď je treba uložiť hodnotu do nejakej premennej je volaná táto metóda.…

SCC7. SmallC – symbol table

Napísať kompiler nie je jednoduché, pretože je to komplexná úloha. Je treba porozumieť viacerým častiam, ako napr. parser, generátor kódu, vyhodnocovanie výrazov a dátové štruktúry. Keď to zase na druhej strane všetko do seba zapadne, tak to konečne začne dávať zmysel.…

SCC6. SmallC – pohľad do kódu

Videli sme aký jednoduchý je kód pre príkazy. Ich implementácia v kompileri tiež patrí medzi jednoduchšie časti. Toto je zjednodušený listing. Ukazuje akým spôsobom kompiler vygeneroval postupnosť inštrukcií z predchádzajúceho článku.…

SCC5. SmallC – príkazy

Príkazy sú prekvapivo jednoduché na implementáciu. Skúsme sa pozrieť na if. Zadajme: main(){    if (1) {    } else {    }} Dostaneme: main:;if (1) { lxi h,#1 mov a,h ora l jz $2;} else { jmp $3$2:;}$3: A koniec mainu: }$1: ret Hmm je treba komentár ?…

SCC4. SmallC – funkcie

Jedna z najväčších výhod C jazyka sú lokálne premenné. Lokálne premenné nemajú miesto vo výslednej binárke, ale sa alokujú dynamicky. Počas behu programu, pri potrebe lokálnej premennej sa na zásobníku alokuje pamäť.…

SCC3. SmallC – krátky program

V minulom článku sme skúsili interaktívny režim SmallC. Teraz skúsme kratučký program a pozrieme sa na vygenerovaný kód. Spustime kompiler príkazom scc8080 -t Zadajme: int gla, glb = 3;char msg[]="hello world", glc, *glpc;method_a () {   gla = glb;   glc = 'x';   glpc = msg;}Dostaneme: ; gla = glb; lhld glb shld glado primárneho registrového páru sa načítala hodnota na adrese glb a uložila sa na adresu gla ; glc = 'x'; lxi h,#120 mov a,l sta glcdo HL sa načítalo 'x' čo je ASCII 120, všimnime si, že aj typ char sa načítava do registrového páru.…

SCC2. SmallC – deklarácie premenných

SmallC je jednopriechodový kompiler. Nežartujem. Číta C kód z textového súboru alebo konzoly. Nepoužíva lex/yacc. Ron si napísal vlastný parser, lexer a generátor kódu. Na výstupe generuje asm kód. Tento je spracovávaný asemblerom.…

SCC1. Úvod do SmallC

Bol socializmus. Hrávali sa dve hymny. Československá a sovietska. V televízii boli dva programy. Amatérske rádio prinášalo články o splnených úlohách a zjazdoch KSČ. Na viedni bežal KITT. Vrchol techniky boli sedemmelódiové digitálky.…

XT Mánia 5. FDC BIOS a disketovky

PC/XT vedelo pracovať s (malo podporu v BIOSe) mini disketami DS/DD o rozmere 5.25 palca s kapacitou 360kB (double sided - DS ,40 stôp a 9 sektorov, double density - DD).…

XT mánia 4. XT-IDE BIOS a IDE karty

Počítače PC nikdy neboli predmetom lásky zberateľov a retro nálad. Dôvod bude asi v tom, že PC zatiaľ neumrelo a ani sa nechystá na odchod. Ale časy sa predsa len menia.…

NCB85 2. XMODEM

Dotaz na Rádio Jerevan: Je pravda, že každý návštěvník Rudého náměstí v Moskvě dostane auto?Odpověď: V principu ano. Ovšem nejedná se o Rudé náměstí v Moskvě, ale o Náměstí Gorkého v Kijevě.…

NCB85 3. Cross compiled Hello World

Používať moderné IDE na vývoj pre CP/M nie je žiadna prevratná myšlienka. Fakt ale je, že to skoro nikto nerobí. Snáď preto, že starí CP/M harcovníci majú odpor k Windows, alebo možno preto, že iba nepoznajú silu a výhody moderných IDE.…

NCB85 4. Command line params

Hello World bol prvý krok. Ďalší krok je otestovanie parametrov zadávaných v príkazovom riadku CP/M. CRTSO bude trošku zložitejšie. ; Run time start off for Small C. .module CRET .area CRET (REL,CON) ;program area CRTSO is RELOCATABLE .list (err, loc, bin, eqt, cyc, lin, src, lst, md) .nlist (pag) .globl crtsoend lxi h,0 dad sp shld stksav ; save the stack pointer lhld 6 ; pick up core top lxi d,-10 ; decrease by 10 for safety dad d sphl ; set stack pointer lxi h,0x0080 push h ; line buffer is at 0080H call Xarglist lhld Xargc push h lxi h,Xargv push h call main ; call main program jmp 0 ; warm boot, reload CCPstksav: .ds 2crtsoend: .end Musel som upraviť dodaný CRTSO k SmallC pretože nefungoval.…

NCB85 5. File I/O

Prvý program Hello World overil funkčnosť konzolového I/O a cross compilácie. Druhý program otestoval spracovanie vstupných parametrov z CP/M príkazového riadku. Ďalším krokom je test file systému. Pripravil som krátky program, ktorý vypíše na konzolu obsah súboru.…

NCB85 6. CP/M 64k V2.2

Dnes ráno mi prišla doštička interface k NCB85 a PMD32SD od Martina. Kábel som už mal pripravený tak som rýchlo osadil súčiastky, naprogramoval EPROM a zapol hyperterminál. Po zapnutí som videl toto: Keby to vždy išlo takto hladko :-) Odteraz sa budem snažiť testovať a ladiť na NCB85.…