Când discutăm despre pionierii programării la domiciliu, puține lucruri evocă mai bine acea epocă decât BASIC-ul prezent pe calculatoarele din anii 1970–1980. Microsoft a pus pe GitHub codul sursă integral al Microsoft BASIC pentru 6502, versiunea 1.1, interpretul din 1978 adaptat pentru PET, VIC-20, Commodore 64 și Apple II. Astfel, oricine poate acum să studieze, modifice și redistriue cele 6.955 de linii de cod în asamblare, sub licența MIT.
Povestea acestui program este strâns legată de începuturile revoluției calculatoarelor personale, când memoria RAM era scumpă și fiecare octet conta. Varianta de BASIC pentru procesoarele MOS 6502 a oferit multor utilizatori primele lecții de programare: instrucțiuni simple precum 10 PRINT ‘HELLO’ și 20 GOTO 10 transformau ecranul într-un mic laborator de experimente. Interpretul prelua acele comenzi ușor de citit și le traducea, pas cu pas, în instrucțiuni executabile de procesor.
Codul publicat este surprinzător de compact: doar 6.955 de linii în limbaj de asamblare, aproape la nivelul interacțiunii directe cu procesorul. Această densitate era necesară pentru a obține funcționalitate maximă cu memorie minimă. MOS 6502 fusese proiectat pentru a reduce costurile: în timp ce alte procesoare costau zeci sau sute de dolari, 6502 era vândut în jur de 25 de dolari. Inginerul Chuck Peddle urmărea exact ideea de a face calculatoarele accesibile, iar acest cip a ajuns în console și computere precum Atari 2600, Nintendo Entertainment System și milioane de mașini Commodore.
Partea financiară arată și o oportunitate ratată. În 1977, Commodore a licențiat BASIC-ul pentru 6502 de la Microsoft pentru o sumă fixă de 25.000 de dolari. Aceea le-a acordat drepturi perpetue de distribuție pe orice volum de produse, fără redevențe per unitate. La momentul respectiv, 25.000 părea o sumă considerabilă, dar dat fiind că ulterior au fost vândute milioane de computere cu acel BASIC, Microsoft ar fi putut obține mult mai mult negociind o taxă per unitate, așa cum a procedat în alte cazuri.
Versiunea eliberată acum, etichetată 1.1, include corecțiile implementate de John Feagans, inginer la Commodore, împreună cu Bill Gates, în timpul vizitei lui Feagans la birourile Microsoft din Bellevue în 1978. Îmbunătățirile includ gestionarea memoriei, unele mecanisme de “garbage collection”, iar acea variantă a apărut ulterior sub numele BASIC V2 pe Commodore PET. Bill Gates a povestit ulterior că el și Rick Weiland au scris acel 6502 BASIC și că el a introdus comanda WAIT, un mic exemplu care ilustrează cât de manuală și directă era dezvoltarea software la acel moment.
Publicarea codului oferă nu doar o oportunitate istorică de a citi software care a influențat milioane de utilizatori, ci și o resursă educațională pentru cei care vor să înțeleagă programarea aproape de nivelul hardware-ului. Pentru pasionați, reprezintă o fereastră către soluții compacte de optimizare, gestiune a memoriei și tehnici folosite când fiecare octet conta.
Microsoft BASIC 1.1 demonstrează cum combinația dintre un procesor ieftin, un interpret eficient și un model de afaceri acceptat de producători a impulsionat o industrie. Codul publicat păstrează urmele compromisurilor tehnice și problemelor rezolvate atunci, de la rutine de intrare-ieșire la administrarea memoriei, oferind exemple concrete: 6.955 de linii de asamblare, licență MIT pe GitHub și modificări realizate în 1978 de Feagans și Gates. Această deschidere către trecut permite să vedem deciziile care au modelat computerele personale.
Publicarea nu este doar un act de nostalgie; este un memento despre cum designul hardware și deciziile comerciale au influențat adoptarea tehnologiei. Citiți acele linii de asamblare și veți găsi soluții pentru limitări reale: rutine compacte, trucuri de memorie și abordări directe pentru interpretarea linie-cu-linie. Observați cifra 6.955, denumirea BASIC V2 și contribuțiile lui John Feagans și Bill Gates ca repere concrete ale unei epoci tehnice distincte. Care dintre aceste elemente ți se pare cel mai interesant sau util pentru proiectele tale actuale?
hm, 6955 linii? si eu abia reușesc 95… lol
hehe, au pus codul vechil pe net — cine mai vrea floppy?