Newsgroup: it.comp.retrocomputing
Titolo: Microsoft... since 1975

Salve, vorrei porvi (tanto per cambiare) un quesito.
Microsoft, fin dal 1975, ha dominato come casa produttrice di interpreti
BASIC, dall'Altair 8800 ai PC. Quasi tutti gli home/personal computer
hanno, in ROM o su disco, una versione del BASIC by Microsoft, con poche
eccezioni, come Apple o Sinclair: Altair, Commodore, Aquarius, MSX,
Amiga, Olivetti Prodest PC128, GWBASIC e QuickBasic per PC... e chissa'
quanti altri che non so.
I dialetti BASIC by Microsoft sono tutti simili tra loro, ad esempio
annoverano tra le istruzioni grafiche SCREEN, LINE, PSET, PRESET, e non
solo; anche le istruzioni piu' generiche sono in genere INKEY$, ON ERROR
GOTO, WHILE...WEND, LINE INPUT, FILES
Il punto e' che il solo BASIC Commodore (sempre di Microsoft) e'
profondamente differente da questo "substrato comune".
Infatti qui compaiono istruzioni differenti: GRAPHIC, DRAW, BOX, PAINT,
GETKEY, TRAP, HEADER, DIRECTORY... ed anche quelle che hanno lo stesso
nome, hanno differente sintassi, come OPEN, COLOR, ...
Perche' questa differenza SOLO con i Commodore?
Altra domanda: i BASIC Commodore sono numerati da una versione. Tale
numero pero' non sembra indicarne il grado di "evoluzione": Ad es.
- BASIC 1.0 rispetto al BASIC 2.0 difetta solo del token "GO"
- BASIC 4.0 contiene MOLTI MENO comandi di BASIC 3.5
Com'e' possibile che il BASIC 3.5 sia venuto dopo il BASIC 4.0?
L'aggiunta di un solo token giustifica il passaggio dalla versione 1.0
alla 2.0?
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Perché Jack Tramiel, da vecchio volpone quale era, era riuscito in qualche
modo ad infinocchiare Bill Gates, convincendolo a vendergli il suo Basic nel
1977 pagando la licenza una tantum. Sostanzialmente, Jack ha pagato a Bill
solamente le versioni del Basic scritte per i PET, ma tutte le versioni
successive, riscritte ed estese dalla Commodore per conto proprio, non erano
soggette al contratto iniziale stipulato fra le due parti e quindi nemmeno
soggette a costi di licenza.
La Commodore ha sviluppato il suo Basic per conto suo. L'unico in qualche
modo più fedele all'originale è appunto quello dei primi PET. Il bello di
tutta questa storia è che Microsoft non ha beccato nemmeno un penny di
royalties su 21 milioni di Commodore 64 venduti in tutto il mondo.
Per primi PET intendo proprio quelli che si bruciano con una semplice POKE
59458,xx o POKE 59595,yy (xx e yy sono volontariamente omessi).
Riccardo

 modo più fedele all'originale è appunto quello dei primi PET. Il bello di
Ok, ma anche il BASIC dei primi PET e' sostanzialmente diverso rispetto
agli altri dialetti by Microsoft. Riprendo l'istruzione OPEN, dalla
sintassi completamente diversa (nel BASIC PET) rispetto agli altri
BASIC.
BASIC PET:
OPEN <canale#>,<device#>,<mode#>,"<stringa>"
Altri BASIC Microsoft
OPEN "<nomefile>" FOR <INPUT|OUTPUT> AS [#]<canale#>
La tua spiegazione potrebbe chiarire la questione della numerazione
delle versioni (tipo BASIC 3.5 piu' ricco del BASIC 4.0). Non spiega
pero' cio' che ho detto appena sopra.


 OPEN "<nomefile>" FOR <INPUT|OUTPUT> AS [#]<canale#>
questa se non erro e' la procedura del Qbasic, giusto? comunque non sono
solo input e output ma c'è pure l'append ;) . A proposito, <canale#> cosa
e'? io generalmente faccio ad esempio
OPEN "dati.dat" FOR INPUT AS #1
e poi per esempio per caricare da quel file faccio
INPUT #1, nomevariabile$
ma quel <canale#> non lo uso mai... mi puoi spiegare a che serve? ;)

 59458,xx o POKE 59595,yy (xx e yy sono volontariamente omessi).
Ciao Ricky, parli per caso del famigerato POKER killer che mandava in panne
i PET?


Invece credo di sě. Pensavo di essere stato chiaro nel farti capirei che la
Commodore ha sviluppato ed evoluto il Basic per conto suo. Non aveva alcuna
restrizione nello stravolgere l'interprete a suo piacimento ed adattarlo
meglio alla struttura dei suoi elaboratori. Le modifiche apportate sono
sempre state mirate ad adattare meglio l'interprete alla struttura hardware
dell'elaboratore e al il modo in cui gestiva l'input/output con le
periferiche, un modo del tutto differente da un Altair, non credi ? :-)
Riccardo

 questa se non erro e' la procedura del Qbasic, giusto?
Se cosě fosse, stiamo parlando di un linguaggio uscito per la prima volta
nel 1991. Non ricordo, onestamente, quale fosse la sintassi del GW-Basic.
Comunque siamo piuttosto lontani dal 1977 ...
Riccardo

 Comunque siamo piuttosto lontani dal 1977 ...
Proprio lontani lontani? Non proprio... Rilancio la domanda: a quando
risale la prima versione del GW-BASIC?



La prima release dovrebbe essere uscita un lustro più tardi , con le prime
release OEM di MS-DOS. Su IBM DOS si poteva trovare invece BASICA , che
provvedeva a lanciare il BASIC residente su ROM. Nel caso dei computer IBM,
infatti, il Basic è su ROM e si può lanciare facilmente anche da debug con
una chiamata all'INT 18h del BIOS:
J:\>debug
-a 0100
xxxx:0100 int 18
xxxx:0102
-g 0100
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=xxxx  ES=xxxx  SS=xxxx  CS=xxxx  IP=0100   NV UP EI PL NZ NA PO NC
xxxx:0100 CD18          INT     18
-p
Ora non ti so dire se lanciando il BASIC in questo modo è poi possibile
restituire il controllo al DOS. Presumibilmente, credo di no.
Riccardo

 ha scritto nel
messaggio news:5UHp8.98785$%g7.31...@twister2.libero.it...

Sě. Vuoi provarlo su un tuo PET ?
Anche se non ti ho dato i valori giusti, basta un ciclo FOR da 1 a 255 e ...
Don't do this at home, kids!
Riccardo

 [snip]
Anche questo molto interessante... Anche (ad esempio) il PS/2 Model 70
quindi ce l'aveva, il BASIC in ROM? Oppure era "prerogativa" dei soli
XT?


 Don't do this at home, kids!
Cioe' Riccardo, vuoi dire che con queste POKE si DISTRUGGE in maniera
irreversibile un PET?


 OPEN "<nomefile>" FOR <INPUT|OUTPUT> AS [#]<canale#>
Nella sintassi di una istruzione/comando/funzione/... si usano
determinate convenzioni. La scrittura
<nomefile>
si intende "al posto di <nomefile> si sostituisce una stringa che
rappresenta il nome di un file".
quando qualcosa e' tra parentesi quadre, e' opzionale:
[#]
Cioe' il cancelletto lo puoi mettere oppure no.
Quindi <canale#> e' semplicemente un "segnaposto". nel tuo esempio e' il
numero 1. Il cancelletto dopo la parola "canale" e' semplicemente un
modo abbreviato di dire "numero", ovvero "numero di canale".
Mi scuso per la banalita' della spiegazione ma in informatica e' meglio
essere piu' precisi (anche se la mia descrizione non puo' definirsi
propriamente "formale") piuttosto che tralasciare qualcosa.
P.S. Forse il "numero di canale" non e' il termine piu' indicato...
Forse e' piu' indicato il termine "numero di file".



Credo proprio di sì. Il PS/2 80 ha tranquillamente il suo Basic in ROM e il
70 usa il medesimo disco di riferimento. Se i dischi fissi non funzionano e
non è possibile fare il boot da dischetto, il PS/2 parte in Basic. Prova a
lanciare un INT 18H col debug come ti ho scritto e sappimi dire.
Riccardo


Esattamente. Un PET della prima generazione. Non è una mia invenzione, eh!
Ma non l'ho nemmeno mai provato. Fai una ricerca veloce su google con quelle
locazioni di memoria e troverai conferma. Se non erro brucia uno dei chip
VIA, un MOS 6522.
Niente di irreversibile. Ma vista la penuria di questi integrati, anche nei
flavour Rockwell e UMC, non è il caso di provare, secondo me.
Riccardo

> Sģ. Vuoi provarlo su un tuo PET ?
meglio di no, ora ne ho solo 5! ;)
saluti

 irreversibile un PET?
Già, sono i famosi "killer POKE" :-)
Se non sbaglio vanno a scasinare col CRTC. Spegnendo IMMEDIATAMENTE la
macchina forse si riesce ad evitare il peggio...
--
  ____                                                             __
 / ___|____   Daniele Gratteri, Italian Commodore and Amiga user  ///
| |   |___/   E-MAIL: 
daniele_...@inwind.it
             __  ///
| |___|___\   IRC: FIAT1100D - ICQ: 53943994                 \\\///
 \____|       URL: 
http://spazioweb.inwind.it/danielegratteri
 \///

> 59458,xx o POKE 59595,yy (xx e yy sono volontariamente omessi).
Acnhe con gli msx e' possibile una cosa del genere: impostando in modo
particolare le porte joystick, anche da basic, e' possibile farle
andare in corto con danni piu' o meno gravi per il fido msx.
Ciao
mau_rizio

 ha scritto nel messaggio
news:3ca992c5...@news.mclink.it...

Ho letto che la stessa cosa vale anche per il Commodore 65. Basta cercare di
utilizzare i SID in modalità FAST e uno dei due si brucia. Ma il C65 è solo
un prototipo, invece questi altri computer dovrebbero essere esenti da bug
così fastidiosi e pericolosi.
Riccardo

così fastidiosi e pericolosi.
Dovrebbero, anzi alcuni lo sono. Si dice infatti che i danni varino a
seconda del costruttore: alcuni si danneggiano sul serio altri si
piantano finche' non vengono spenti e riaccesi.
A quanto mi risulta nessuno ha ancora redatto un elenco dei danni a
seconda del modello :)
Ciao!
mau_rizio
°-_ Non ho un museo, ho una sala giochi! _-°

 lanciare un INT 18H col debug come ti ho scritto e sappimi dire.
Funziona! IBM Basic C1.10. Lanciando poi "SYSTEM" il sistema si
schianta, e lo devi riavviare



Hai visto ? Uomo di poca fede =))
Ciao,
Riccardo

ZX80, ZX81), TI-99/4A.
A memoria, ci sarebbero il BBC Basic e l'HU-Basic... :)
-- 
Nibunnoichi
"Perche' la vita e' un brivido che vola via,
E' tutto un equilibrio sopra la follia"

 A memoria, ci sarebbero il BBC Basic e l'HU-Basic... :)
BBC Basic di Acorn... e HU-Basic? dov'era?


 Hai visto ? Uomo di poca fede =))
Non ho mica detto che non ci credevo


 A memoria, ci sarebbero il BBC Basic e l'HU-Basic... :)
C'e' anche quello del Computer Module dell'Intellivision, con le 
istruzioni limitate a 4 caratteri (es. PRIN) e la syntax hilight 
all'inserimento (ovvero, scrivi l'istruzione, batti invio e quello 
ti colora le varie parti).
-- 
ciriciao from kirone
togliere il punto tra "lib" ed "ero", che ci sta per antispam
gia' che ci siete, togliete pure l'.invalid

e HU-Basic? dov'era?
HUdson Soft, principalmente nel mercato Asiatico.


istruzioni limitate a 4 caratteri (es. PRIN) e la syntax hilight 
La Mattel sempre un passo avanti, ai suoi tempi! E' stato il primo
editor con syntax highliting che abbia mai visto in vita mia ^^
Infatti contavo di parlarne, un giorno ;)


 mia ^^ Infatti contavo di parlarne, un giorno ;)
 
Sulle prime non capivo perche' facesse quel buffo effetto, temevo 
un (altro) guasto. E non capivo perche' PRINT "HELLO WORLD!" 
insistesse a stampare uno zero. ^___^;;;
Poi ho letto per bene il manuale scaricato dalla rete (RTFM!) ^_^;
E' un BASIC orientato al gioco (e come potrebbe essere altrimenti, 
trattandosi di un modulo per una console?), con istruzioni 
ottimizzate per gli sprite (sequenza, collisioni, ecc.). Permette 
pure il grab degli sprite dalla cartuccia inserita nello slot a 
destra (senza di essa, il Module non va o_o;)
Non l'ho studiato a fondo, pero' e' un'interessante variazione sul 
tema :)


tema :)
Interessantissima!!


 ZX80, ZX81), TI-99/4A.
Forse anche Acorn.
-- 
Registered user at 
http://counter.li.org
 # 170453
ICQ 61259284
GnuPG Key fingerprint = 10E0 2B05 0B0A 3525 8760  788B 59B6 C74A 250E 65B6