|
|
21.03.2025., 20:05
|
#501
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Memorijska ograničenja
Zapravo je Basic (interpreter, ne compiler) relativno kompaktan, Forth recimo je možda malo kompaktniji, ali i prilično kriptičan... on će u firmware biti uključen puno kasnije na neuspješnom Jupiter Ace firme koju su osnovali dizajneri Spectruma nakon što su ga završili... Na ostalim platformama Forth će biti relativno opskurna opcija. I drugi jezici se relativno slabo primaju - rekao bih da je sve do sredine 80-ih tržište jednostavno zadovoljavala kombinacija dva postojeća jezika - lako razumljivog (i bez komplikacija s kompajliranjiem) Basica za početnike, i strojnog jezika (bilo kroz monitor ili asembler) za "prave programere" uključujući razvoj aplikacija.
No postojalo je nešto što se zove VTL (Very Tiny Language) i tražilo je tipično - 0.75K memorije! Manje i od mnogih asemblera. VTL je tada, koliko se dâ naći, bio dostupan samo za 8080 i Motorolin 6800, kao prve mikroprocesore. Za 6502 već nije (tada... danas implementacija VTL za njega postoji, kao nečiji retro projekt), jer kad se 6502 pojavio već su memorije bile jeftinije i korisnici se nisu morali patiti sa VTL-om koji nikako nije bio user friendly, budući mu je sintaksa bila ograničena i kriptična, evo manuala, pa čitajte:
https://altairclone.com/downloads/ro...2%20Manual.pdf
Taman kad se VTL pojavljuje (zapravo nakon Basica) cijene RAM memorija padaju, a popularnost računala raste što omogućava uključivanje firmware-a u
po bitu puno jeftinije mask ROM-ove. Tako da VTL kao kompaktna opcija koja bi omogućila programiranje u kakvom-takvom high-level jeziku na sistemima s manjim memorijama zapravo nikad nije zaživio, osim nešto u embedded aplikacijama, već je više ovako povijesna crtica. Bilo je sličnih kriptičnih jezika i na drugim sistemina, recimo HP je još početkom 70-ih nego što je prešao na Basic koristio svoj HPL, ali ja bih se ovdje ipak držao sustava baziranih na mikroprocesorima.
Što se pak Basica tiče, Microsoft je za Altair (odnosno Intelov 8080) napisao spomenute 4/8/12 K implementacije koje su, osim što su trebale relativno skup sistem, imale i poveliku cijenu, od 150 dolara za 4K verziju naviše (iako su cijene bile niže kroz neke pakete s hardverom). Altair korisnici su krenuli kopirati taj softver što je rezultiralo poznatim ljutitim pismom Billa Gatesa, iz čega se rodio takozvani Tiny Basic kao alternativa.
On nije bio zaštićen već besplatan, zapravo je definirana sintaksa a implementacija je bila današnjim rječnikom "open source". Osim otvorenosti, drugi cilj, možda i važniji - po njemu je uostalom dobio i ime - je da to bude minimalna implementacija jezika, kako u smislu raspoloživih komandi i struktura - nema stringova, matrica, floating point aritmetike - tako i u smislu zauzeća memorije. Tiny Basic je tipično zauzimao oko 2K memorije i tako adresirao manje sisteme, što je učvrstilo poziciju Basica kao najraširenijeg jezika visokog nivoa.
Ajmo mi sad na firmware "1977 trinity" računala.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
22.03.2025., 17:31
|
#502
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Apple II, prvi dio
Prvi se pojavio Apple II. Dok je HW, naročito video podsustav, bitno drukčiji nego kod Apple I, mikroprocesor je naravno isti. Tako da Apple II uključuje monitor program, s više funkcionalnosti od onog kod prethodnika, pozivan s čuvenim CALL -151. Uključuje stvari poput kopiranja ili usporedbe blokova memorije, i vršenja operacija zbrajanja i oduzimanja u samom monitoru. Ali osim monitora uključuje i nešto što se zove mini-assembler!
To je ono što mu ime kaže, pojednostavljena verzija asemblera (i disasemblera), dakle omogucuje korištenje 6502 mnemonika poput LDA umjesto kriptičnog hex koda! Bilo je ograničenja u nekim adresnim modovima, nije bilo labela već su se morale upisivati stvarne adrese, naravno ni makroa, nisu se mogli upisivati decimalni brojevi, samo hex. Zapravo najveće ograničenje je što se nije moglo editirati kôd u smislu da se između nekih instrukcija ubaci jedna ili više novih, nego se moralo kopirati blok memorije. Svejedno, jako korisna stvar. I mali dragulj efikasnog (ali i nepreglednog) Wozovskog (+ Allen Baum) programiranja, sve skupa je stalo u par stotina bajtova.
Monitor je mogao komunicirati s kasetofonom (uključujući verify), printerom, a kasnije i diskovima za što se privremeno moralo izaći u Basic. Što se njega tiče, on je baziran na Basicu koji je Woz napisao za Apple I te dopunio sa podrškom za grafiku, zvuk i slično. To je bio cjelobrojni tj. Integer Basic, tako je i nazvan. Woz-ova originalna ideja je bila računalo namijenjeno prvenstveno igrama, a ne rješavanju nekih matematičkih problema, te je brzina izvodenja koje cjelobrojna aritmetika (ali i cjelobrojna deklaracija, manipulacija...) nudi bila pogodnija za to.
Apple II je već bio koncipiran malo ozbiljnije, no Wozniak nije imao vremena redizajnirati Basic da mu doda rad s brojevima u pokretnom zarezu, podrška za FP obično nije neka dodatna komanda (iako ćemo poslije vidjeti da je Acorn to zapravo upravo tako napravio) već traži hrpu promjena u postojećem kodu. Problem je što je Woz originalni Basic (prvi za 6502 uopće) pisao ručno, bez ikakvih programskih alata, pa bi njegov redizajn bio mukotrpan.
Ono što jest napravio je da je napisao rutine za matematičke operacije koje rade nad brojevima u pokretnom zarezu. Konkretno radi se o četiri osnovne operacije, korijenu, usporedbi i konverziji iz/u integer cjelobrojni zapis. Format je bio 24-bitna mantisa (dakle teoretski do šest, navučeno sedam znamenki) i 8-bitni eksponent. Te rutine zauzimaju oko 1.5K i našle su mjesto u Apple II ROM-u (koji je zauzimao 8K), zajedno s tim Integer Basicom, monitorom i mini-assemblerom, editorom, te još nekim sitnicama poput "sweet 16" virtualne mašine za manipulaciju 16-bitnim podacima poput pointera.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
23.03.2025., 17:32
|
#503
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Apple II, drugi dio
Spomenute FP rutine su se mogle pozvati iz strojnog jezika. Naravno korisnici su htjeli te operacije integrirane u sam Basic - kao kod "1977 trinity" konkurenata (TRS80 i Commodore PET - oni su sljedeći na redu), te naravno i nedostajuće transcendentalne funkcije - log/exp, trigonometrija…
Umjesto da prilagođavaju vlastiti Basic (Woz je tada bio zauzet dizajnom disk kontrolera) naručili su Basic od Microsofta koji je nakon 8080 verzije za Altair krenuo raditi verzije i za druge mikroprocesore, naravno da je popularni 6502 došao brzo na red. Za njega su radili dvije pod-verzije, glavna razlika je bila u FP točnosti i posljedičnim potrebama za memorijom. Apple se nije odlučio za verziju iste točnosti kao Wozove rutine, s 24-bitnom mantisom, već za ovu drugu verziju, "9 digit basic", s 32-bitnom mantisom.
Na to su dodali neke svoje ekstenzije (i promjene sučelja poput one uglate zagrade umjesto OK) i nazvali Applesoft basic - on je na originalnom Apple II opcija i učitava se u RAM. Krajem 1979 originalni Apple II zamjenjuje "plus" verzija koja ima 12K ROM- u njemu je sada Applesoft Basic, a stari Integer Basic može se učitati u RAM. Iako je ROM 4K veći, Basic i proširenja OS-a za bolju integraciju s diskovima su narasli nešto više od toga pa je recimo mini-assembler ispao van - vratit će se tek u poboljšanoj verziji modela Apple IIe, tamo negdje 1985. Monitor program je pak ostao dio firmwarea u svim modelima.
Nakon plusa, a prije IIe i IIc, Apple je imao "Apple III" kao poslovni sistem sa bržim CPU-om, više memorije, boljom grafikom, i djelomičnom kompatibilnošću s Apple II. Poboljšani Basic koji je došao s njim (dodatne naredbe, dvostruka FP preciznost itd.) dolazio je na disku i radio pod SOS (sophisticated operating system) koji je zamijenio DOS i također se učitavao u RAM, standardno je nuđen i Pascal, opet na disku... Sam firmware od 4K je sveden na boot loader. Apple III nije uspio na tržištu, ali neke njegove ideje zaživjele su na IIe i IIc.
No, što se firmwarea tiče, ti kasniji Apple II modeli vraćaju se konceptu II+ modela, s Applesoft Basicom u ROM-u, i uz minimalne izmjene, taj koncept firmwarea bit će zadržan do kraja Apple II linije (osim GS, on je drukčiji). Neće biti nekih bitnih poboljšanja Basica, ali će uvesti podrška za nove mogucnosti poput 80 kolona, malih slova, više memorije... Apple DOS, kao i drugi jezici (najpopularniji je Pascal) učitavat će se u RAM sa diskova koji su na Apple II postali praktično standard.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
25.03.2025., 17:58
|
#504
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
TRS80, prvi dio
Tandy je pak za svoj TRS80 planirao koristiti minimalistički Tiny Basic koji je načelno integer-only, no brzo su shvatili da im treba floating point podrška pa su dodali nju, s 24-bitnom mantisom. Za razliku od Apple II koji je imao integer Basic i FP rutine, TRS80 basic je FP imao integriran, ali samo četiri osnovne operacije - Basic potprogrami za korijen i transcendentalne funkcije dani su u priručniku, i to je sigurno prikladnija literatura za nekoga koga zanima kako se one (ne baš točno...) računaju od rutina na strojnom jeziku iz nekog ROM-a. Također je u odnosu na Tiny Basic dodan rad sa stringovima, matricama i još par komandi. Zapravo dosta toga, kad se sve skupa zbroji.
Skupa sa I/O rutinama taj firmware je zauzimao 4K ROM, oko dvaput više od tipične Tiny Basic implementacije. Od samog početka taj je Basic zamišljen kao privremeno rješenje jer je imao ograničenja u smislu broja funkcija, broja varijabli (samo dvije string varijable, jedan array…), preciznosti računanja u pokretnom zarezu... i zato je odmah pri predstavljanju nazvan "Level I" basic. Utjecao je i na druge implementacije, recimo Galaksiju koja je preuzela (pretpostavljam da ne možemo reći "pokrala", kako je Level I u startu baziran na open source Tiny Basicu) njegov kôd i nešto ga poboljšala, i onda proširila s opcionalnim "ROM B" firmwareom.
"Level II" basic pojavio se oko pola godine kasnije i to je kompletna (ANSI recimo, Tiny je jako ograničen podskup) Basic implementacija - identično kao i kod Applea, ni Tandy nije dorađivao vlastitu verziju Basica, već je licencirao Microsoft verziju - Microsoft je tad (u 8080/Z80 tracku) imao standardnu i "extended (“12K") verziju - ovo je bilo nešto između, no primjerice Level II Basic mogao je koristiti jedno od glavnih poboljšanja extended verzije - FP matematiku visoke preciznosti (56-bitna mantisa, dakle oko 16 značajnih znamenki), po čemu je medu jeftinijim popularnim mikroračunalima bio jedinstven jako dugo vremena, valjda do pojave MSX računala (koji koriste praktično isti Basic) sredinom osamdesetih.
Skupa s poboljšanjima OS-a koja su omogućavala proširenja sistema diskovima, firmware je narastao na 12K ROM -u slučaju nadogradnje Level I ROM bi se izbacio, pa ga Level I Basic programi nisu mogli pozivati - no bilo je moguće prevesti Level I Basic u Level II Basic, tako da je osigurana kompatibilnost. Postojao je i Level III Basic kao proširenje Level II Basica koje se u originalnim TRS80 modelima učitavalo u RAM (u kasnijim modelima njegovi dijelovi su uključeni u veći ROM).
Ovakvo proširivanje bilo je prilično rijetko na ostalim Basicima; Microsoftova Level II implementacija uključivala je nekoliko skokova u RAM (“hooks"), gdje bi se na standardnom sistemu nalazio samo neki “return", no umjesto toga mogli su biti skokovi na rutine koje proširuju Basic. Osnovna ideja je bila proširivanje disk naredbama, ali korišteno je i u druge svrhe.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
26.03.2025., 17:55
|
#505
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
TRS80, drugi dio
Originalni TRS80 je kasnije nazivu dodao "Model I" (nema veze sa Level I, II, III Basicom...) jer je Tandy izbacio - otprilike kad i Apple svoj II plus - “Model II", koji nije bio kompatibilan sa jedinicom. Dok je Model I bio SOHO (small office / home office) odnosno kućno računalo koje je prilično ozbiljno flertalo s poslovnim primjenama (imao je 64-kolonski tekst, numeričku tastaturu, brzo je dobio 5.25" diskove...), Model II bio je još puno ozbiljniji model s bržim procesorom, više memorije (i iznad 64K), ekspanzijskim karticama, 80-kolonskim tekstom i 8" floppy-jima (sa DMA! kasnije je bio dostupan i hard disk) vrlo sličnih karakteristika kao kasniji IBM PC.
Firmware u Model II sveden je na boot loader OS-a sa diska, slično kao kod Apple III, ili kod tipičnog CP/M stroja - to je bio neki standard za poslovni sustav: evo ti diskovi pa ti učitaj prvo OS, pa onda Fortran ili Cobol ili database program ili procesor teksta ili što ti već treba... Nažalost, standardni OS kod Tandy-ja nije bio CP/M (iako su ga kasnije ponudile nezavisne firme - općenito da Tandy nije sa cijelom TRS80 linijom bio toliko zatvoren prema 3rd party-jima mogao je biti puno uspješniji..) nego TRS-DOS pa je izbor softvera bio ponešto ograničen, no naravno da su bili dostupni Basic i nekoliko drugih programskih jezika. Model II je poslije evoluirao u MC68000+ Z80 stroj no to se nije nešto primilo.
Model III je pak bio zamjena za Model I (logično, ha? ide Tandy-ju to korištenje rimskih brojeva, nije nimalo zbunjujuće) koji je ušao u probleme s FCC certifikacijom koja je dovela do potpune transformacije američkog tržišta (o tome nekom drugom prilikom), i kao takav se i on (kao i primjerice Apple IIe) vraća originalnom konceptu te opet ima Basic kao glavni dio firmwarea - ono nešto između Level II i Level III Basica, otprilike Microsoft extended Basic, što je jako dobar Basic i za to vrijeme (rane osamdesete).
Originalna Z80 bazirana TRS80 serija u 80-im pomalo gubi zamah jer se Tandy orijentira na CoCo seriju baziranu na Motorolinom čipsetu (6809 procesor, 6847 video kontroler itd) - Tandy se nije puno zamarao detaljima kao što je kompatibilnost. Kod originalnih CoCo koji izlaze krajem 1980. standardni firmware od 8K uključuje ColorBasic, koji je licenciran od Microsofta, baziran na njihovom 6809 Basicu, koja je jedna od lošijih njihovih implementacija jer ne koristi dobro bitno veće mogućnosti 6809 u odnosu na prethodne 8-bitnike.
Naime, taj procesor izlazi u slično vrijeme kad i 8086/88, a Microsoft se brzo odlučio koncentrirati na njih, dok je 8-bitne platforme osim donekle 8080 s kojim je 8086 source kompatibilan prilično zanemario - zato i pojava Microsoftove (!) Z80 kartice sa Digital Research OS-om za Apple II - zahvaljujući njemu nije bilo dajnjeg portinga softvera na 6502. Uglavnom, CoCo Basic ne impresionira ni mogućnostima, ni brzinom. Kao i kod Model I, postoji mogućnost nadogradnje na bolji Basic, ovdje je to Extended Color Basic, i traži proširenje ROM-a sa 8 na 16K. I opet kao kod prethodnog modela, Extended Color Basic je preduvjet za recimo proširenje sistema diskovima... velški (polu)klon, Dragon 32, ima pak taj poboljšani Extended Basic kao standard.
Naravno od sredine 80-ih Tandy će se više fokusirati na PC kompatibilce, no to više nije pod TRS80 brandom. Pod TRS80 serijom ima međutim i nekih prijenosnika, najpoznatiji je model 100 iz 1983 (originalno zapravo japanski, Kyocera, dizajn, koji je Tandy otkupio skupa sa firmwareom), sa CMOS verzijom 8085 procesora, a njegov firmware (koji uz Basic uključuje i kalendar/imenik, terminal, tekst editor - više o tome kad se budem bavio prijenosnicima) je vjerojatno i zadnji softver gdje je značajan dio kodiranja odradio stanoviti Bill Gates (koji je bio primarno 808x programer i malo je pisao za ostale procesore) osobno.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
28.03.2025., 17:38
|
#506
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Commodore, prvi dio
PET je dizajn Chuck Peddle-a, te je za razliku od kasnijih VIC20 / C64 /C16 na čiji je dizajn u puno većoj mjeri utjecao Jack Tramiel, prilično ozbiljan sistem (zanemarimo li izvedbu tipkovnice prve verzije PET-a). To se vidi i po firmware-u koji je bitno veći od svega dosad razmatranog - čak 14K. OK i ovi kasniji sistemi imaju ROM-ove bar na nivou konkurencije... sigurno ne odmaže što je Commodore imao proizvodnju ROM-ova in-house iako ih je kasnije itekako kupovao izvana kad je prodaja njihovih strojeva nadmašila očekivanja, pa se MOS technology više koncentrirao na štancanje CPU i video / sound čipova.
Na wikipediji je navedeno da PET ima 16K ROM (prva verzija, poslije će to još malo narasti), no 2K ROM zauzimaju definicije bogatog seta karaktera (uključuju razne grafičke znakove) koje PET ima. Istom metrikom za Apple II i TRS80 bismo trebali dodati oko 0.3-0.5K njihovih character generator ROM- ova, što je povrh njihovih 8/12K (Apple II/II+), odnosno 4/12K (Level I / Level II). Commodore dakle sa 14K neto ima najopsežniji firmware od ove trojke, što ne znači da ima i apsolutno svaki detalj koji oni imaju - recimo nema mini asembler poput Apple II, samo običan monitor. Nema ni "double precision" ni neke komande Level II Basica.
Poput Apple-a, C= koristi bogatiju verziju Microsoftovog 6502 Basica - dakle kompletan "trinity" je na kraju na Microsoftu - sa preciznijom aritmetikom ("9-digit Basic") - zapravo velika većina 6502 Basica su takvi. "6-digit Basic" postoji za KIM-1 (iko je "9-digit" čak i tamo češći), Ohio Scientific i takve manje popularne sisteme. Zapravo je Basic za PET nešto stariji od (Microsoftovog, ne Wozovog integer) Basica za Apple II - razlike su prilično male, nešto je bugova ispravljeno, PET-ov je u ROM-u, a Applesoft se na originalnom Apple II učitava u RAM... Ta sličnost se vidi u sintaksi (bez komandi koje su sam Apple odnosno Commodore dodali), te u brzini izvođenja u raznim benchmark testovima koja je praktično identična.
Geneza 6502 Basica ide naime nekako ovako: kod portiranja 8080 Basica, manje zbog toga što je riječ o portu (ipak pričamo o asembleru. ..), više zbog toga što 6502 ima lošiji code density (kako je više "RISC", jel'...) nije ispunjen cilj da stane u 8K ROM - ispalo je tek nešto manje (inače kao i kod Altair tj. 8080 Basica zahtjeve se kod učitavanja u RAM moglo smanjiti izbacivanjem trigonometrijskih funkcija, što je bilo jedno od pitanja korisniku pri pokretanju), a trebalo je mjesta i za machine specific I/O rutine koje dodaje proizvodač HW-a - neki ekvivalent BIOS-a - što može biti i koji kilobajt. Pa je logika bila, kad iako ne stane, ajmo ponuditi više, 32-bitnu mantisu i još komandu ili dvije, u oko 9K. Ali ne i 56-bitnu mantisu 8080 Extended Basica.
I Apple i Commodore su dobili po jedan update tog Basica (AppleSoft II i Commodore Basic 2) koji su uglavnom ispravke bugova, uz par sitnih optimizacija, a u Commodore slučaju i jedan "easter egg" - WAIT6502,1 će generirati "MICROSOFT!" iako taj string nećete naći kad čitate sadržaj ROM-a (jer je sakriven među koeficijentima za sinus funkciju, ima maskirane više bitove korištenih karaktera, i još je zapisan unazad). Navodno na traženje Gatesa osobno nakon nesuglasica s Tramielom - o tome u idućem postu - kao dokaz autorstva tog softvera. Iako slično postoji i u verzijama Basica za neke druge platforme pa možda ni nema veze s tim...
Slično "antipiracy" rješenje će inače napraviti Jobsov team sa Macintoshem, uključivanjem "Stolen from Apple" ikone, a poučen pokušajem krade ROM-a od firme Franklin Ace koja je kopirala Apple II - Mac je također bio jednostavan hardverski, bez ASIC-ova (osim onog IWM - koji je opet integracija ranijeg diskretnog dizajna koji se lako kopira, PAL čipovi se također relativno lako kopiraju testiranjem kombinacija inputa) i ROM firmware je bila praktično jedina zaštita od kopiranja.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
29.03.2025., 18:27
|
#507
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Commodore, drugi dio
Budući je Basic na PET-u u osnovi isti (uključujući procesor) kao na Appleu Il+, znači da su mu i memorijski zahtjevi bez machine specific rutina slični - dediciranih 8K plus malo prelijevanja u drugi ROM, kako ću objasniti krajem posta - pitanje je što zauzima 2K odnosno kasnije bar 4K dodatnog firmware prostora u odnosu na Apple?
Commodore - opet velim koncipiran kao relativno ozbiljan sistem - ima zapravo naznake pravog OS-a, možemo to zvati BIOS (iako je ipak više od toga, bar u to vrijeme - ajde u PC doba je već malo drukčije), a Commodore ga zove KERNAL. Većina ostalih sistema tog vremena ima pomiješan OS sa Basicom, bar dok se ne dodaju diskovi, a često i nakon toga. Commodore je vidio prednosti u odvajanju što je naravno već tada bila praksa na "velikim" računalima, i koristio je taj princip uz relativno malo izmjena od PET-a do C65.
I taj OS dio je bogatiji nego na Appleu, u smislu recimo rada s imenovanim datotekama i kod kaseta (rijetko koji sustav u to vrijeme to ima), mnogo fleksibilniji, te s većom apstrakcijom hardvera. Originalni PET 2001 iz 1977 imao je 4K za I/O rutine, i još 2K za editor. Postoji osam rutina za rad s ulazom/izlazom karaktera i s tastaturom, koje su generalnog tipa - poziva ih Basic, a mogu se pozvati i iz strojnog jezika.
Ostalih šest vezanih uz rad sa storageom, otvaranje/zatvaranje I/O kanala, su u biti proširenja Basica, ne baš korisna za strojne programe - oni sami moraju provjeriti i vratiti Basic argumente itd. To je povezano s činjenicom da je 8K ROM-a premalo za Microsoftov "9-digit" 6502 Basic (uzima oko 9K) pa se na taj način malo prelilo. Uostalom ni s ovakvim odvajanjem nije uvijek moguće striktno odrediti gdje prestaje OS, a gdje počinje jezik, već u nekim detaljima bude kako dizajneri odluče.
Kasnija PET 4000/8000 serija je dodatno proširila taj OS, najviše komandama za rad s diskovima (sjetimo se, low- i mid- level disk rutine su kod Commodorea bile u samom disk driveu koji je imao vlastiti procesor i solidan ROM, pa je gro DOS-a zapravo tamo), i ta se proširenja propagiraju na Basic koji se naziva Commodore Basic 4.0. A onda se, počevši s VIC20, Commodore preorijentirao na jeftinije sisteme (i Chuck Peddle otišao iz firme) pri čemu je kernal odnosno firmware općenito temeljito restrukturiran.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
31.03.2025., 18:59
|
#508
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Commodore, treći dio
VIC20 ima 20K ROM-a od kojeg 4K otpada na set karaktera, a 16K na firmware, što je manje nego u proširenim verzijama PET-a. Basic je Commodore Basic 2.0, sličan onome na kasnijim modelima originalnog PET 2001, i zauzima 8K ROM, plus nešto sitno u kernal ROM-u koji je isto 8K. Basic ne podržava glavne feature VIC-20 - pseudografiku, boju i zvuk. Za to je potreban "Super expander cartridge" koji je izašao dosta nakon samog VIC-20. Na ovaj način Commodore je mogao iskoristiti postojeći Basic, ne kasneći u izlasku na tržište, i ne povećavati ROM kapacitet tj. trošak iznad ciljanog.
A nema ni troška dodatne licence prema Microsoftu - to i ostala proširenja Basica za svoje kasnije 650x strojeve napisali su njihovi vlastiti programeri. Naime, Commodore je platio Microsoftu smiješnu fiksnu cifru za Basic, bez ikakvih tantijema po prodanom primjerku - na što Gates vjerojatno nikad ne bi pristao da je imao ideju koliko će se Commodoreovi strojevi prodavati. Kad je VIC20 došao na red već se PET prodao u puno primjeraka i da je Tramiel došao s željom za poboljšanom verzijom Basica skupo bi je platio. Ovako je za 25,000 dolara (OK, plus troškovi in-house programera na kasnijim strojevima) dobio Basic koji je uključio u desetke miliona prodanih računala.
Isti Basic 2.0 će naime koristiti i C64, a i jezgra Basica 3.5 u TED strojevima (16/116/+4) je također pokrivena tom starom Microsoft licencom koje korisnici nisu ni svjesni.. tek je za Basic u C128 malo drukčija priča na koju ćemo doći. Uglavnom Gatesu se pregovori s teškim Tramielom nisu svidjeli, možda zato onaj easter egg… naravno Gates i ekipa će te rane probleme s zaradom na Altairu, Commodoreu i još nekim sistemima pošteno (ili nepošteno?) naplatiti kasnije, nešto na drugim 8-bitnicima, a najviše na PC platformi.
Sto se VIC20 kernala tiče, editor koji je bio odvojen je sad integriran, izbačen je machine code monitor, i još neke manje promjene. OPEN, CLOSE, LOAD i SAVE sad su dostupni i strojnim programima, ne samo Basicu. Dodana je podrška za serijski bus (modifikacija IEEE-488 sučelja kakvo je koristio PET, potrebna zbog one FCC certifikacije), formatiranje tekstualnog ekrana i slično.
C64 ima oko dvanaest puta više RAM-a od VIC-20, ali ROM je iste veličine i identično podijeljen, tako su Kernal i Basic gotovo identični kao na VIC20 - maksimalni reuse već dostupnog kao i kod recimo kućišta, tastature, periferija... C64 ima naravno još puno više dodatnih grafičkih i zvučnih mogućnosti koje se dodaju kroz "Super expansion module" i kroz “Simons’ Basic" koji je napisao stanoviti britanski 16-godišnjak, David Simons, koji je kasnije radio na razvoju SCO Unix kernela…
Moja procjena je da ta proširenja ima tek malen postotak C64 korisnika, tako da su ostali osuđeni na kriptične PEEK i POKE naredbe ako žele iskoristiti najveći adut C64, njegove grafičke i zvučne mogućnosti. Zvuči kao sramota za Commodore, no to im se isplatilo kroz brzi izlazak na trzište, izbjegavanje troška dodatnog ROM prostora i licenci... a i tipičan C64 korisnik ionako je bio konzument igrica a ne programer. Onima koji jesu još bi dodatno prodali proširenje Basica.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
02.04.2025., 18:42
|
#509
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Commodore, četvrti dio
U paraleli s C64 Commodore izbacuje i neuspješnu CBM-2 seriju, nasljednika PET-a, i tamo se opet koristi veći Basic 4.0 sa PET-a, ali nešto poboljšan. Dok je C64 koristio 6510 - 6502 s par I/O portova, jedan od njih služi za ROM/ RAM preklapanje - ovi strojevi koriste 6509 koji uključuje jednostavan MMU za adresiranje do megabajta (poslovni stroj, jel'). Tako da treba podrška za to, također je poboljšan i rad sa diskovima i još par stvari - iako je Basic tu zapravo samo neki "front end", a to su sve zapravo poboljšanja kernala. Sama struktura kernala je međutim puno sličnija onome novome iz VIC20 iz C64 nego onome iz PET-a, uz te dodatne funkcije.
Nakon toga, kao zadnju platformu razvijenu većinom tokom Tramielovog mandata, Commodore izbacuje seriju baziranu na TED čipu - Commodore 16 (i 116 podvarijantu sa spektrumovskom gumenom tastaturom), te Commodore +4. Ta je platforma, tvrde upućeni, inicijalno bila inspirirana uspjehom Sinclairovih proizvoda - jeftini strojevi prvenstveno namijenjeni učenju programiranja pa su shodno tome imali i relativno dobar Basic (ako gledamo po kompletnosti, ne po brzini, preciznosti... ali o tome kad Sinclair Basic dođe na red). Commodore je ipak odlučio ugraditi bolji HW u smislu grafike, zvuka, I/O mogućnosti, ali opet su to strojevi koje ciljaju tržište ispod C64 pa možda čak i VIC20, odnosno bar je to bila ideja.
Tokom razvoja Tramiel međutim odlazi (i nešto ljudi s njim), ovi koji ostaju baš i ne znaju što će s tim, i onda imamo dvije različite podvarijante platforme, pa i firmwarea. Prvu čine Commodore 16 i 116, i oni su bliski originalnoj zamisli, a ROM je na njima punih 32K, po 16k za Kernal (i charset) i Basic. U Kernal se vraća monitor (stroj za programiranje, jel,), dodaje link na vsync interrupt odnosno TIME funkciju, char output podržava nove grafičke načine, i još neke sitnice. Još je veće poboljšanje Basica - novi Basic 3.5 uključuje sve nedostajuće grafičke i zvučne naredbe, strukturno programiranje, renumeriranje i slično.
Commodore +4 je pak dobio ime po tome što uz OS/Basic uključuje četiri aplikacije - procesor teksta, tablični kalkulator, poslovnu grafiku, i bazu - slično kao paket na Sinclair QL-u, samo što se ne učitava u RAM kao tamo, nego je u dodatnih 32K firmwarea, za dosad rekordnih 64K ROM ukupno.
Takoder je RAM povećan na 64K, i Commodore pokušava pozicionirati +4 kao "ozbiljni" stroj (svojevrsnu zamjenu za zastarjeli PET), s cijenom iznad one C64, u čemu nema puno uspjeha.
Za razonodu puno je lošija opcija od jefinijeg C64, a taj ugrađeni software su svi opisivali u rasponu od "lošeg” do "potpuno neupotrebljivog". Moj je dojam da i da imaš i četiri Wozniaka u 32K ROM ne možeš nagurati četiri poštene aplikacije... da ne usporedujemo sa QL-om koji je koristio drugi procesor, možemo pogledati koliko je resursa tražio dosta sličan Apple Works softverski paket za Apple II. On se učitavao s diska i radio samo na 128K strojevima - naravno dio je ostao za podatke, ali veliki dio je uzimao i kôd, pa su AppleWorks korisnici često proširivali memoriju i iznad 128K. Po meni, bolje da su u +4 stavili recimo pošten procesor teksta, a ostalo dodavali kroz ROM kasete.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
03.04.2025., 02:51
|
#510
|
Registrirani korisnik
Registracija: Feb 2005.
Postova: 4,017
|
Quote:
leonardo10 kaže:
Po meni, bolje da su u +4 stavili recimo pošten procesor teksta, a ostalo dodavali kroz ROM kasete.
|
možda samo nisu znali kako trebaju izgledati word/wordPerfect, excel/Lotus123 i access/dBase programi?
sa aspekta potrebnog vremena, čini mi se da se svaka od njih može isprogramirati u roku mjesec dana, ako znaš tačno kako trebaju funkcionirati
|
|
|
03.04.2025., 18:04
|
#511
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Po meni nije problem nedostatak vizije oko toga kako aplikacija treba izgledati, a vjerojatno ni vrijeme razvoja, nego nedostatak prostora.
AppleWorks nisu mogli stići proanalizirati jer je išao otprilike istodobno, no u vrijeme kad se piše +4 firmware (1984.) već odavno postoji Visicalc kao killer-app za Apple II, ili zrela verzija uspješnog View tekst procesora za BBC, pa su mogli vidjeti koliko oni memorije traže za svoj 6502 kod. Onda bi valjda zaključili da ne može u 32K stati četiri takva programa, a da budu suvisli.
Kod razvoja softvera koji će ići u ROM treba na brzinu odšacati koliko ti prostora treba, pa to valjda radiš tako da uspoređuješ s nečim sličnim. Baš iduće dvije platforme koje planiram diskutiraju utjecaj količine ROM-a na kvalitetu tog softvera.
No, kod konkretno +4, možda je jedino bilo važno da se može u promotivni materijal napisati da su uključene “četiri aplikacije” (slučajno ili ne, toliko ih je nudio i QL koji je marketiran dosta ranije, a Commodore je oduvijek bio dosta fokusiran na britansko tržište), a upotrebljivost tko šljivi.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
04.04.2025., 18:14
|
#512
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Commodore, peti dio
Zadnji Commodoreov osmobitnik, ne računajući nedovršeni C65, je C128. Sjetimo se priče s HW-om - BBC koji ima dva procesora i dva posve odvojena grafička podsustava je mila majka, on ima Teletext i non-Teletex odvojene, ali bar dijeli 6845 i RAM. U C128 su i takve stvari odvojene... Slično, ako ne i gore, je i sa firmwareom, praktično sav je dupliran.
C64 Kernal i Basic zauzimaju svojih 16K, Kernal i Basic koji se koriste u C128 modu su odvojeni i zauzimaju dodatnih 48K (jesam li pisao da su mask ROM-ovi jeftini?) - 16K za kernal i punih 32K za Basic. Povrh toga je char ROM, i neka interna ROM proširenja (function ROM), kao alternativa vanjskim cartridgeima. Tu mogu doći neki utility-ji, GEOS, i slično.
Novi kernal je prošireni C64 kernal pa je dosta poziva isto (iako velim, posve nova instanca na drugom čipu, C64 firmware je posebno). On podržava dodatne mogućnosti kao što su 80 kolonski ekran, pravi serijski interface, proširena tastatura... U tom ROM-u je takoder i Z80 BIOS - C128 zbog nekih hardverskih problema starta u Z80 načinu i onda, ako se ne boota CP/M sa diska, predaje kontrolu 8502 (brži i blago modificirani 6510) procesoru, bilo u C128 ili u C64 načinu.
CP/M ima naravno dobar izbor Basica i drugih jezika, ali oni nisu firmware nego se učitavaju s diska. U C128 modu koristi se 8502 CPU te ROMiran Basic 7.0 i u 32K naravno stane hrpu toga (uključujući i druga instanca hrpe koda iz Basic 2.0 koji se koristi u C64 načinu) - po prvi put su u standardnom ROM-u podrška za spriteove (uključujući njihovo editiranje) i SID zvuk, i Basic je potpuno strukturiran. Naravno podrška za nove C128 mogućnosti je također tu, a veća memorija se pokušava iskoristiti na način da se Basic program i podaci spremaju u različite banke memorije. Tako da će ispisati nešto tipa “122365 Basic bytes free".
Naravno treba spomenut i da C128 Basic uz (C) 1985 Commodore ispisuje i (C) 1977 Microsoft, što je prvi put da se MS navodi. U ovo vrijeme Commodore naime završava Amigu i treba Basic za nju (bolji od onog koji je isporučio Metacomco), za koji se obraća Microsoftu. Iako su u vrijeme te diskusije C128 Basic napisali (odnosno dodatno proširili MS jezgru) - ali ne još i zapržili u ROM - Commodoreovi programeri, Microsoft postavlja zahtjev da ih se spomene i za ostale nadolazeće strojeve koji koriste njihov stari Basic, i zato se kao autor spominje i Microsoft, ali sa 1977. godinom otkad datira njihov u C128 korišteni 6502 kod.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
06.04.2025., 18:31
|
#513
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Atari (8-bit), prvi dio
U ovo vrijeme vidjeli smo Basic u ROM-u nemaju dva tipa računala - jeftina kit računala skromnih memorija (KIM-1, MK14...) te skupa poslovna (S-100, Tandy model II, Apple III...) koja imaju diskove i veliki RAM kao startnu konfiguraciju. No nemaju ni neka popularna računala u ovoj srednjoj, kućnoj klasi. Jedan primjer je Sharp MZ serija, no ajmo radije pogledati Atarija, konkretno originalne 400 i 800 modele, koji Basic nude samo kao ROM cartridge, no kasniji modeli će uključiti Basic u osnovnu konfiguraciju. Njihov ROM je 10K, od čega 1K nije firmware, već character set. 7K uzima operativni sistem, na koji ću se vratiti.
Zadnjih 2K uzimaju floating point rutine, koje OS uopće ne koristi, već su namijenjene softveru u ROM cartridge-ima, uključujući Basic, ali i neki ROM s igricom ih može koristiti. Ima nešto više rutina nego u Wozovom nikad u Basic integriranom Apple II floating point paketu - osim konverzije (također u/iz ASCII zapisa broja) i četiri osnovne aritmetičke operacije tu su i log, exp i neke polinomne funkcije pomoću kojih će Basic računati recimo trigonometrijske funkcije.
Glavni problem međutim nije popis FP funkcija (recimo često korišteni sqrt nije potreban jer je optimalan algoritam svodiv na osnovne aritmetičke operacije - ili na log i exp ako netko baš inzistira na sporom i netočnom rezultatu)- već što je zapis mantise u calculator-style BCD (binary coded decimal) obliku što rezultira kodom prema kojem i brzina notorno loših algoritama Stevena Vickersa izgleda sasvim pristojno. Zato će biti i ponuđeni 3rd party ROM-ovi koji će zamijeniti ovu katastrofu od kodiranja no tipičan Atari korisnik se, opet, uglavnom igra i programiranje ga ne zanima previše, pa taj replacement ROM neće steći neku popularnost.
Atari OS je osim po količini ROM-a koju zauzima, i po konceptu dosta slična stvar kao Commodoreov kernal, ali sama implementacija je bitno različita. Za početak, podržano je nekoliko načina rada - osim preuzimanja kontrole od samog cartridgea, ima i mogućnost automatskog boota sa bilo diskete ili kasete, te tzv. "OS blackboard" način - odlazak u Atari Memo Pad program gdje se može slobodno pisati tekst, kao u nekom rudimentarnom procesoru teksta, gdje se sve napisano i tretira kao slobodni tekst, ne kao neke OS naredbe. Ali se s tim tekstom ne može nešto pametno napraviti...
U kojem načinu će sistem završiti ovisi o tome da li je cartridge umetnut, disk s boot sekvencom postoji itd., kao i tome što korisnik izabere na tastaturi, koja ima i neke dodatne tipke baš za podržati razne OS mogućnosti
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
07.04.2025., 22:04
|
#514
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Atari (8-bit), drugi dio
OS je zadužen i za komunikaciju sa periferijama od kojih je većina spojena na Atarijey serijski bus (obično ga se naziva serial input/output - SIO - iako je inicijalno taj naziv u biti upravo za dio OS-a zaduženog za komunikaciju s njim). Bus je osmišljen zbog tada uvedene FCC certifikacije u smislu smanjenja EM emisija, čemu pomažu sabirnice s malo pinova - ista priča kao kod VIC20 i C64. Njegov autor, Joe Decuir, kasnije će biti jedan od kreatora USB-a i po vlastitim riječima u tom projektu iskoristiti iskustvo iz Atarija. Te periferije često imaju u sebi ROM s driverom koji se onda kopira u RAM kao proširenje OS-a, a nekad i vlastiti mikroprocesor - poput floppy-ja, Commodore style.
Na taj SIO se u lanac spajaju diskovi, printeri, modemi, light pen, RS232/ centronics konverteri... a i kasetofon koji ne koristi njegov komunikacijski protokol u potpunosti, sustav ga ne prepoznaje automatski kao ostale, i mora biti zadnji u tom daisy-chain lancu. Game controlleri (Atari podržava više tipova, ne samo klasične palice) ne koriste taj bus jer su čisti ulaz, kao i integrirana tastatura uostalom.
SIO podrška kao i ona za te ulaze dakle uzima dio OS-a, uz navedene boot, Memo Pad funkcije, a uz spomenute BCD FP rutine tu je još dio grafičkih rutina poput konfiguracije ekrana, crtanja linija i slično, koje su takoder mogle završiti i kao dio Basica, no stavljene su ovdje. Za razloge opet se vraćamo na Microsoftov Basic koji je u popularnijoj "9-digit" varijanti uzimao oko 9K - zbog lošeg code density kojeg 6502 ima, nije to MS specifičnost, vidjet ćete sličan efekt i na non-MS Basicima kasnije na što je zbog velikih Atarijevih grafičkih i zvučnih mogućnosti trebalo dodati još puno dodatnog koda koji bi ih podržao.
Problem je što razvoj ovako kompleksnog hardvera traje, i u nekom trenutku je određeno da je maksimalna veličina ROM cartridgea 8K, što je za igrice sasvim solidno, no Basic je druga priča. Promjena tog parametra značila bi redizajn čipseta i zato je Basic trebao stati u toliko. Brzo je postalo jasno da to s Microsoftovim kodom neće biti moguće. Zato se ugovor s Microsoftom otkazao, a za Basic je zadužena firma Shepardson Microsystems Inc. (SMI) koja je kao reference imala razvoj sistemskog softvera za firme kao što su Apple i Cromemco. Ta je firma na kraju isporučila siromašniju verziju Basica koja se svejedno morala preliti u OS ROM-ove (da, njihove su i očajno spore BCD FP rutine).
Gledano iz korisničke perspektive SMI Basic je ponešto različit od Microsoftovog. Jedna promjena je recimo što za razliku od MS (i većine ostalih) Basica ne radi razliku između naredbi koje se mogu nalaziti unutar programa i onih koje se izdaju kao direktne komande, tj. bez linijskog broja. Kako uz to omogućuje skraćeni zapis, može se napisati "program" tipa:
1 L.
L. je skraćeno od "LIST" (koji obično nije dostupan unutar programa) te je ovaj program od samo tri znaka potpuno funkcionalan - izlista sam sebe.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
08.04.2025., 21:18
|
#515
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Atari 8-bit, treći dio
Iako kompaktniji, taj SMI Basic imao je i nekih prednosti kao što je ON GOTO naredba - ovisno o vrijednosti neke varijable (1, 2, 3...) može se - slično primjerice Case naredbi u Pascalu - odrediti na koju će liniju program dalje skočiti. Ti brojevi linija mogu naravno biti varijable, pa se zapravo može skakati na labele, tj. imenovane potprograme. Druga prednost, Atari Basic provjerava sintaksu na ulazu (o motivaciji za to više kad dođem na neke kasnije Basice). A bilo je toga i još... Naravno glavna prednost su dodane naredbe za grafiku (podržava većinu Atarijevih stvarno velikih mogućnosti, a ima čak i nekakav fill), zvuk, palice za igru... Za to treba povelika količina koda, pa će negdje trebati uštedjeti.
OK, a što nije imao, osim suvisle FP matematike (ona nepotpuna i spora FP biblioteka u ROM-u)? Recimo nije imao višedimenzionalne matrice, stringove je tretirao kao obične jednodimenzionalne pa je programer morao voditi računa o duljini stringa. Dvodimenzionalne matrice ili matrice stringova se pak nije moglo riješiti na neki jednostavan način, nego s grananjima, PEEK/POKE i sličnim kemijama. Primjeri nekih funkcija koje su falile a pristutne su na relativno običnim Basicima su recimo TAB i DEF FN.
Tu je onda i sporost Basica, pogotovo kad se uzme u obzir da je za ROM-heavy kôd Atarijev procesor bio bar 50% brži od Commodorea ili Applea s 1 MHz procesorom... Za FP dio osim što se kreće od u startu loše BCD baze ima i problem lošeg programiranja, u ovom slučaju operacija množenja (samo o tome kako ubrzati množenje u softveru, hardveru ili kombinaciji dala bi se napisati knjiga... a teško je naći kôd koji ne koristi tu operaciju, ili koji ne bi bio optimalniji kad bi je koristio) i dijeljenja. Osim samih tih funkcija to utječe i na sporost transcendentalnih funkcija koje se svode na njih.
Osim u računanjima, SMI Basic ne briljira ni u brzini ostalog, obično tu razliku rade razna grananja. To je gotovo sigurno posljedica zahtjeva za kompaktnošću koda, a kako ćemo kasnije vidjeti brzina Basica nije garancija uspješnosti platforme (čak prije obrnuto - što više funkcija i što brži izlazak na tržište, a brzina kakva ispadne). Jedan primjer, na koji ću se opet kasnije vratiti, je FOR-NEXT petlja čija je brzina izvršavanja bitna i u benchmark i u stvarnim programima, a lako ju je postići ako se u NEXT logiku doda pointer na FOR. Ako toga nema i ako to ne koristi (a obično ne koristi) ni osnovna GOTO / GOSUB logika, već se linije stalno ponovno pretražuju to baš jako uspori stvar.
Raspisao sam se puno o Atari Basicu, a to ni nije dio firmwarea? Radi se o tome da je Atari serija temeljito obnovljena 1983. sa 600XL i 800XL modelima kad je taj spor i ograničen Atari Basic postao 8K ROM unutar samog računala, praktično bez ikakvih promjena - jer zašto bi plaćali poboljšanu verziju? Dodatno, OS - čiji su source code pisali Atarijevi programeri - je sad narastao na 16K, čisto jer je imalo smisla koristiti veće ROM čipove - ali FP nije poboljšan. Većina stvari koje su tada dodane nisu naročito korisne, no te promjene su svejedno uzrokovale da postoje prilični problemi u smislu kompatibilnosti sa starim softverom. Sretnici s diskovima mogli su u RAM učitati neke patcheve koji to uglavnom rješavaju.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
10.04.2025., 18:59
|
#516
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
TI 99/4, prvi dio
Idem otprilike kronološki, i od kod nas popularnijih platformi idući na redu je Sinclair Basic. No prije bih rado prošao kroz par zanimljivih sistema koji su ili bili popularni drugdje, ili neuspješni, ali tehnički zanimljivi. Oni su na tržište došli u slično vrijeme kao ZX serija ili čak kasnije, ali sam njihov razvoj je bio u slično vrijeme ili ranije. Takoder neki produkti su i već stigli propasti dok su Sinclairovi dosezali prodajne rekorde.
Prvi je TI99/4 koji i dolazi na tržište mrvicu prije ZX80, ali na drugoj stani Atlantika. Koncept računala je onaj koji je proslavio superuspješne VIC20 i C64 koji dolaze kasnije - dobra grafika i zvuk za atraktivne igre, no za razliku od igraćih konzola poput Atari VCS-a može se koristiti kao računalo pa tako ima i Basic i to, za razliku od Atarija 400/800, odmah kao dio firmwarea.
Reklamna kampanja kao i kod Commodorea cilja na roditelje da djeci umjesto igračke kupe nešto što će im pomoći u kasnijem životu. U početku se ne prodaje naročito dobro, tek sa boljom i jeftinijom (99/4A) verzijom iz '81 uzima zamah i postaje jedno od najprodavanijih računala (opet, većinom u Americi).
Texas Instruments je poluvodički gigant koji je par godina ranije od proizvođača čipova za kalkulatore postao proizvodač kalkulatora i to s dampinškim cijenama, uništavajući pritom kupce svojih čipova i time stekao neke neprijatelje poput Tramiela (što će upravo taj TI99/4A koštati glave u cjenovnom ratu koji je pokrenuo Commodore). Krajem sedamdeset planiraju ponoviti isto sa mikroračunalima. TI je tad iznimno značajan proizvođač nekih ključnih komponenti za računala poput memorija i TTL čipova.
Što se tiče procesora, TI ima svoju (ne naročito uspješnu) liniju minija i rezultat toga je 16-bitni, uključujući 16-bitnu sabirnicu podataka, TMS9900. Iako se vjerojatno pojavio nešto prije Intelovog 8086, obično ga se ne navodi kao prvi 16-bitni procesor iz razloga što nije u potpunosti single chip rješenje - registri su mu u RAM-u. Nema ni ono što bismo iz današnje perspektive svakako očekivali od 16-bitnog procesora - probijanje 64K barijere 8-bitnika. lako se s vanjskim MMU i to može (kao i na hrpi kasnijih 8-bitnika), no opet to je ipak manje elegantno čak i od rada sa 64K segmentima koje koristi spomenuti 8086.
Za 99/4 je navodno planirana jeftinija i integriranija evolucija tog procesora (9985 s internih 8K ROM i 0.25K RAM i 8-bitnom sabirnicom prema ostatku hardvera), ali od toga na kraju nije bilo ništa - pojavila se kao što smo vidjeli u "Component shopping" postovima varijanta s 8-bitnom sabirnicom i scratchpad RAM-om, ali bez ROM-a tako da je skupi 9900 spojen sa tih 8K ROM i 0.25K punom brzinom tj. 16-bitno, a s ostatkom sustava preko logike koja ga prilagođava na 8-bitni bus. Za taj bus su pak uspjeli razviti odličan grafički i zvučni čip, koji će se naći u mnogo uspješnih sistema, kako sam pisao u "Component shopping" sekciji, dok TI procesori neće.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
11.04.2025., 20:15
|
#517
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
TI 99/4, drugi dio
Naravno da ne postoji gotov Microsoft Basic za taj opskurni procesor, iako se Microsoft nudio TI-u da ga napiše i navodno su ti razgovori relativno daleko došli... Umjesto toga TI odlučuje razviti nešto vlastitim snagama, moguće je razlog ograničenje memorije (Microsoft se nije baš htio baviti kompaktnijim verzijama Basica), slično kao kod Atarija, na što ću se vratiti. Tu treba znati da je TI9900 "pravi" 16-bitni procesor što znači da su mu i sve instrukcije dugačke 16 bita (*) pa je rezultat lošiji code density nego kod 8-bitnika.
(*) I opet poseban pozdrav Intelu koji je sa 8086/88 migrirao na 16 bita uz očuvanje dobrog code density-ja, jer je hrpa instrukcija ostala 8-bitna, što je moguće jer BIU (bus interface unit) i ta priča omogućavaju takvo netrivijalno (zapravo jako komplicirano kad čovjek malo uđe u to) miješanje instrukcija i podataka različite duljine, a koja može biti i kraća od širine sabirnice. Kod Intela je osigurana čak i asembler level kompatibilnost (uključujući programe za automatsko prevođenje 8080 asemblerskog koda).
Oko spomenutog ograničenja memorije TI je odredio da će 99/4 imati samo 8K ROM-a (kao što rekoh, ideja je bila da tih 8K bude čak i unutar samog procesora pa je to očito "tvrdo" ograničenje) i onda je taj manji code density dodatni problem... Rezultat TI razvoja pod tim memorijskim limitacijama: Basic interpreter koji se u testovima gotovo uvijek nalazi na samom dnu po brzini izvođenja. To nimalo nije čudno kad se objasni kako je napravljen - Basic interpreter naime uopće nije napisan u TI9900 strojnom jeziku! Umjesto toga, Basic je napisan u kompaktnom GPL-u koji je također u tom 8K ROM-u (srećom širokom 16 bita).
GPL kratica znači "Graphics Programing Language" no u osnovi se radi o makroasembleru, u ono vrijeme bismo ga možda mogli usporediti s Wozovom "Sweet 16" virtualnom mašinom koja olakšava manipuliranje 16-bitnim podacima (gdje brzina nije toliko bitna), a bliže današnjici bismo ga mogli usporediti s recimo Java byte codeom - naravno motivacija uvođenja je različita nego u tim slučajevima. Tu igra specifičnost 9900 procesora (i nekih drugih iz 70-ih) u vidu “X” (execute) instrukcije koja tretira podatak u registru kao neku pseudoinstrukciju tj. potprogram. Basic je dakle dvostruko interpretiran, kôd je napisan u tom kompaktnom GPL jeziku, i onda GPL interpreter te tipično 8-bitne GPL instrukcije pretvori u niz 16-bitnih TI9900 instrukcija.
Ovaj pristup štedi ograničeni ROM, ali daje izrazito sporu brzinu izvodenja. Tu brzinu izvođenja dodatno smanjuje jako spora komunikacija s RAM-om gdje se spremaju korisnički programi, varijable i radni prostor Basica. Naime, 16K RAM-a koje TI/994A ima, osim što je na 8-bitnoj sabirnici podataka (od RAM-a na 16-bitnoj je samo 256 bajtova - spomenuti vanjski registri, CPU stack i slično) i u memoriji čiji bandwidth se dijeli s video čipom, do samog RAM-a se dolazi kroz registre tog video čipa! Zapravo je čudo da nije još sporiji. Spašava ga što TI9900 nije spor procesor - možda ne briljira na jednostavnim instrukcijama, ali na kompleksnijim je dosta brz, i ima za to vrijeme veliki set (vanjskih) registara (16 x 16 bita).
Taj TI Basic nešto je različit od Microsoftovog, i za razliku od Commodorea ili Atarija ujedno obuhvaća i funkcije OS-a. Svim trikovima unatoč, zbog samo 8K ROM-a koji je na raspolaganju za njega i GPL, nema ni sve naredbe uobičajene na Microsoftu, a ni one koje iskorištavaju dobru grafiku i zvuk računala. Njih prodaju u "extended Basic" ROM cartridgeu koji izlazi oko godinu i pol kasnije od samog računala. Zapravo bi možda imalo više smisla da umjesto tako uškopljenog i ograničenog Basica imaju pravi na cartridgeu, Atari-style, ali ovako su bar mogli tvrditi da je Basic dio paketa. Vidjeli smo da je sličan pristup imao i Commodore, a vidjet ćemo ga i kod još nekih. No prvo idu neki koji su Basicu posvetili puno pažnje.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
13.04.2025., 20:24
|
#518
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
DAI PC, prvi dio
DAI je pak navodno započeo život kao europska (PAL / SECAM) verzija spomenutog TI99/4... Priča je da je TI kao zanemarivao europsko tržište, pa je britanska podružnica suočena s rastućom popularnošću lokalnih platformi uzela stvar u svoje ruke i išla se raspitivati okolo može li netko napraviti nešto što američka centrala neće.
Kad se TI iz te priče povukao (budući će TI99/4 grafički čip ipak biti dostupan i u europskoj verziji, dapače i u non-TI strojevima poput MSX-a, a još prije toga će američka verzija TI99/4 biti prodavana bundle-ana s NTSC televizorom), DAI je u nešto modificiranoj formi razvijen od belgijske firme DAI (zapravo njihovih engleskih inženjera) u možda najmoćnije kućno računalo sa samog početka 80-ih, slično Acornovom BBC-u, ali nešto bolje od njega u dostupnoj memoriji - što nije teško, jer je količina RAM-a BBC-ova slaba točka - ali malo je bolji i u grafici, zvuku... koji su BBC-eve jake strane. A pojavio se skoro dvije godine ranije od njega, negdje početkom '80.
Također - posve suprotno od TI99/4 od kojeg navodno potiče - je od BBC-a bolji u (relativnoj) brzini Basica, a to je već iznenađujuće jer je BBC Basic smatran jako brzim, dapače ako se po jednoj stvari pamti BBC, to je valjda po tome. Brzinu BBC Basica uključujući usporedbu sa drugim popularnim sistemima ću dosta detaljno proanalizirati kad dođem do Acornovog firmwarea, ali u par idućih postova ću se ipak referirati na njega kao neki standard.
Stvar je još čudnija kad se zna da DAI nije koristio TI-ev prilično brzi 16-bitni 9900, nego su se preorijentirali na Intel 8080 (koji je sporiji od Z80 jer nema njegovih dodatnih registara i instrukcija), i to verziju na 2 MHz, a taj procesor mora i malo čekati zbog video konflikta (za dvije od maksimalne tri RAM banke) i kod pristupa RAM-u, tako da je osnovna brzina procesora možda i tri puta manja od one Acorn BBC-a. Što znači da je brzina u Basicu posljedica implementacije koda tog jezika, ne brzog procesora.
8080 je izabran umjesto Z80 ili bar 8085 jer je firma imala iskustvo s njim, koristila ga je u svojim industrijskim računalima. I to u 1 MHz verziji što je bilo sporo za stroj koji treba handlati takvu grafiku (ekran može zauzimati do 21K memorije - više od svih popularnih 8-bitnika i ne puno manje od 32K koliki je ekran na QL-u ili Atariju ST), pa su zaključili da trebaju brzi Basic, a kasnije svejedno prešli na 2 MHz verziju procesora. I kakav je to onda Basic koji je, sveden na istu brzinu procesora, preko tri puta brži od Acornovog ponosa? Pa, kao sušta suprotnost onom dvostruko interpretiranom u TI, ovdje imamo Basic koji je djelomično kompajliran! No sa stanovišta korisnika, opet 100% interpreter.
Brzinu Basica ću velim povremeno spominjati jer mislim da je to jedan od najvažnijih parametara (no koliko može biti objektivan netko tko je u stanju napisati stotine postova o maksimiziranju propusnosti dijeljene memorije ili telefonske parice?)... Zasad ću samo reći da je ako gledamo apsolutnu brzinu izvođenja kao prosjek uobičajenog benchmarka (o tome velim više kasnije, kad dođem do BBC basica) DAI nešto brži od BBC-a jer je dosta brži u FP funkcijama, a u ostalom malo sporiji.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
14.04.2025., 19:42
|
#519
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
DAI PC, drugi dio
A brži u FP je, jer je u benchmarkiranom stroju bio prisutan i 9511 numerički koprocesor! Jedan od onih čipova koje je AMD licencirao Intelu tamo prije nego su oni krenuli razvijati svoj 8087, i vjerojatno zahvaljujući tome dobio licencu za 8086 i nasljednike (inače 8086 je DAI koristio kao alternativu za 8080 u svojim industrijskim računalima i dosta dobro bi sjeo u ovaj DAI PC, s povelikim i 16 bita širokim RAM-om - ali onda se moguće ne bi trudili oko kompajliranja Basica). No FPU je bio opcija i to ne baš jeftina (oko 150 funti), ali svakako od firmwarea u potpunosti podržana. Također dodana da se ubrza sistem koji bi, čak i s 2 MHz procesorom, bio relativno anemičan za količinu obične i video memorije koju ima.
Kad se softverski onesposobi taj koprocesor, e tek onda usporedujemo brzinu samog Basica, i sad je DAI PC oko dvaput sporiji od BBC-a. Zapravo su te softverske FP rutine relativno spore, možda baš zbog toga što je koprocesor opcija, pa ili to grananje unosi overhead, ili se nisu oko njih previše potrudili. Ako gledamo benchmarke koji ne uključuju (u to vrijeme ipak slabo korištene) transcendentalne funkcije, DAI je nekih 25-30% sporiji od oko, gledano po snazi procesora, oko triput bržeg BBC-a. odnosno, svedeno na istu brzinu procesora, njegov Basic je za te testove preko dvaput brži od BBC-evog koji je u apsolutnim vremenima u samom vrhu još par godina kasnije. Očito to djelomično kompajliranje puno pomaže.
Da je DAI zamijenio procesor sa Z80A na 4 MHz (bilo je planova, ali su prije toga propali zbog visoke cijene računala i posljedičnog tržišnog neuspjeha) stvar bi letjela i bez dodatnih Z80 instrukcija, a s njima pogotovo. Iako će se DAI na svoj Basic referirati kao na "quasi interpreter" budući se taj djelomični compiling u smislu prevođenja u intermediate "run-time" code radi pri samom unosu programa, samo korištenje je potpuno interaktivno kao kod običnog Basic interpretera i ne traži ništa dodatno od korisnika. Zapravo mu daje i više - slično Sinclair Basicu, već pri unosu linije ispituje se sintaksa i prijavljuje greška.
Taj polu-kompajlirani Basic je nešto bogatiji od Microsoftovog i uključuje i naredbe koje podržavaju velike grafičke (iako su zapravo low-level rutine u drugom modulu, vidi idući paragraf) kao i zvučne mogućnosti platforme, tako da je - opet slično kao kod BBC-a - tu i ENVELOPE naredba (pitam se jesu li u Acornu proučavali DAI? Timing štima...). Kad smo kod zvuka, postoje TREMOLO i GLISSANDO parametri, a postoji i TALK naredba koja služi za sintezu govora, no na jako rudimentaran način - moguće je kroz nju definirati niz frekvencija kao neke foneme no sve ostalo mora programer sam, uz puno eksperimentiranja (ili analize snimljenog govora). Dakle i oko grafike i zvuka su se baš potrudili, za razliku od Commodorea ili TI-a.
Ukupan firmware DAI PC-a je u to vrijeme najvećih 24K, i podijeljen u šest modula: uz Basic, tu su još Math package (uz FP uključuje i pravu integer aritmetiku za razliku od Microsoft Basica, i to 32-bitnu što je rijetkost u ovo vrijeme), Screen Driver Module (bavi se setupom ekrana, podržavajući sve tekstualne i grafičke načine načine i mogućnosti tog zaista fleksibilnog generatora - sličnom onome u kasnijem Enterpriseu kojeg je dizajnirao stanoviti Nick Toop, koji je bio uključen i u Acorn BBC dizajn - i izvršava grafičke Basic komande uključujući za to doba možda i jedinstvenu implementaciju FILL naredbe), Keyboard Scan + Encode Routine, i Machine Language Utility (monitor program s naredbama poput EXAMINE, MOVE itd).
Posljednji, "Housekeeping module" je set rutina koje koriste ostali moduli - možemo ga nazvati i OS-om, a glavna funkcija mu je bank switching - zahvaljujući modularnosti firmwarea ROM-ovi se uključuju po potrebi što, opet slično kao kod BBC-a, omogućava probijanje 64k barijere. U samo DAI PC kućište je ugrađeno 24K ROM (8K uvijek selektirano, plus jedna od četiri 4K banke selektirana po potrebi - tih 6x 4k ROM se ne mapira na gornjih šest SW modula, već Basic i housekeeping module vode računa koji ROM treba pageati ovisno o tome koji od preostalih modula se trenutno koristi), te najviše 48.25K RAM, a još par KB je rezervirano za memorijski mapirane periferije, bilo interne ili eksterne.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
16.04.2025., 18:45
|
#520
|
Pišite što hoćete…
Registracija: Apr 2019.
Lokacija: Gdje rukoslav i slični ne zalaze
Postova: 3,776
|
Luxor ABC, prvi dio
Što sam napisao, bilo bi zanimljivo vidjeti stroj sa Z80A i semi-compiliranim Basicom (a koji je i opet, sa stanovišta korisnika interpreter kao i svaki drugi)? Evo ga! Odnosno "evo ih" jer ima više modela... ABC je kratica za "Advanced Basic Computer" što je pretpostavljam zamišljeno kao "napredno Basic računalo", no svakako mu dobro stoji i "računalo s naprednim Basicom".
ABC je jako popularna serija računala u Švedskoj, zemlji dobrih inženjera, ali gotovo nepoznata van nje (bilo ih je nešto u drugim nordijskim zemljama, te po licenci u nama susjednoj Mađarskoj pod brandom BRG). Prva verzija, ABC 80, izašla je prije TI i DAI, još krajem 1978. Dizajnirana je od firme Dataindustrier AB (DIAB), sličnog industrijskog backgrounda kao belgijsko-britanska fima vrlo slične kratice koja je kreirala DAI PC. I opet slično kao za DAI, imala je već spreman niz korisnih periferija od diskova nadalje, i kao i oni došli su na ideju kreirati ABC 80 kao kućno računalo.
Inspirirani vjerojatno sa TRS80 odlučili su uključiti CRT monitor (u 80-ima bila je dostupna i jeftinija opcija s modulatorom) koji je Amstrad-style služio i kao napajanje, te kasetofon. Kako je bila riječ o firmi bez iskustva s masovnom proizvodnjom, udružili su se s firmom Luxor, proizvođačem televizora i audio opreme, i na većini tržišta je prodavano pod Luxor brandom. Kućište je kombinacija plastike i metala te ima kvalitetnu Keytronics kapacitivnu tastaturu.
Što se elektronike tiče, procesor je Z80A, no ne na maksimalnom clocku nego na 3 MHz, kako bi se mogle koristiti nešto sporije memorije bez komplikacija. Dobavljač većine ostalih čipova je Texas Instruments (velike face u komponentama to vrijeme, kako sam pisao), ne samo memorija i TTL/PROM glue logike, već i zvučnog čipa (lošijeg nego onog u TI99/4, BBC...) te video logike koja generira crno-bijeli 40x24 tekst i 80x72 grafiku (korištenjem TRS80 / Galaksija style 2x3 blok grafike).
To nije nimalo impresivno čak ni za 1978., tako da mu je, suprotno DAI-u koji tu briljira, video slaba točka. Videu je dodijeljeno odvojenih 1K RAM, a korisnička memorija je 16K DRAM, vrlo solidno za kućno računalo iz te godine, proširivo (ali eksterno) na 32K.
Firmware, koji je ipak tema ove serije postova, čine četiri čipa po 4K, i to je najjača strana ovog računala. Ta četiri čipa nemaju neku posebnu podjelu, tako da je u tih 16K pomiješan Basic sa OS rutinama i dosta ograničenim editorom. I sam Basic ima nekih ograničenja (naziv varijable dugačak najviše dva slova...) ali je općenito bogatiji od većine implementacija u to vrijeme i uključuje naredbe kao ON ERROR GOTO, zatim CHAIN i COMMON koji omogućavaju podjelu Basic programa na module koji se pojedinačno učitavaju u RAM i dijele varijable. Pa naredbe kao IMP(lication), XOR, tracing, dosta napredan rad s datotekama, i slično.
__________________
Projektant, rekreativac, svirač, štreber, tata, učitelj, volonter
|
|
|
 |
|
Sva vremena su GMT +2. Trenutno vrijeme je: 06:19.
|
|
|
|