Hace 3 años | Por ochoceros a devblogs.microsoft.com
Publicado hace 3 años por ochoceros a devblogs.microsoft.com

GW-BASIC era un intérprete de BASIC que provenía del Advanced BASIC/BASICA de IBM, el cual a su vez provenía de Microsoft BASIC. El código de GW-BASIC publicado es del 10 de Febrero de 1983. El código fuente es 100% ensamblador. Repositorio: https://github.com/microsoft/GW-BASIC

Comentarios

Unregistered

#3 Y de aquella apuesto a que pensabas que COBOL ya estaba desfasado ¿me equivoco? jajaj

pawer13

#4 no, entonces cobol era relativamente nuevo. Fortran si era ya viejo

s

#28 Y sin embargo en Fortran se ha continuado ampliando y es utilizado para cálculos matemáticos de precisión en supercomputador en física etc.: https://es.wikipedia.org/wiki/Fortran

D

#17 el GW-BASIC era para PC, no para Spectrum. Si no recuerdo mal el programa gorila.bas de los gorilas que se lanzaban plátanos con tiro balístico estaba hecho en GW Basic (pues no, era QBasic dicen más abajo)

uno_ke_va

#62 ya, no dejan de ser dialectos del mismo lenguaje. No eran exactamente lo mismo, aunque se parecían mucho

s

#70 Son dialectos del mismo lenguaje con más o menos instrucciones (básicamente las amplicaciones para instrucciones gráficas que por ejemplo la versión V.2 del commodore 64 no traía de serie y requería un cartucho de ampliación -se hacian rutias de pokes y peeks para suplir eso y códigos de teclado que ponía como símbolos en lugar de la orden estándar-) el Gw-basic ya lleva todas las rutinas más nuevas de esas versiones de basic (circle, line etc) hasta el qbasic y el quickbasic donde hay un cambio brutal añadido por microsoft donde el lenguaje incorpora muchas nuevas posibilidades, estructuras de programación, control de flujo de código etc que parecen copiadas del ALGOL pudiendo permitir una programación muy estructurada, sin números de línea, sin gotos ni gosubs y declarando todo al inicio con el Dim al estilo más del pascal pero con palabras del estilo del basic. A partir de ahí se le añaden los objetos y pasa a ser el Visual-Basic con su propio IDE etc..

Pero hasta los quickBasic y QBasic son variaciones del mismo basic con ampliaciones y cosas adaptadas a las máquinas y a partir de esos ya es otro nivel más bien otro lenguaje con instrucciones parecidas pero parece ya otra cosa...

Dunnotheman

#62 Joder que bueno era ese juego de bananas explosivas!!!

D

#3 Yo tambien lo tengo (lo tengo colgado en la pared de mi habitación),era la época en que se empezaba a programar en mi instituto.

eltoloco

#7 ¿Seguro? Pregunta sincera. Desconozco el tamaño de Microsoft en esa época, o si lo compraron a alguien y luego lo fueron modificando.

En cualquier caso dudo mucho que el propio Bill Gates escribiese gran parte del código de la Microsoft primigenia, según tengo entendido su labor era más bien comercial, como la de Jobs. Quién si programaba todo lo importante en su momento era Steve Wozniak.

Black_Diamond

#23 del propio artículo...

Microsoft’s various BASIC implementations can trace their origins all the way back to Bill Gates & Paul Allen’s implementation of Microsoft’s first product – a BASIC interpreter for the Altair 8800.

Por otro lado, se supone que GW viene de Gates, William. En realidad significa Gee-Whiz, una forma informal de decir impresionante o alucinante.

eltoloco

#46 el propio artículo es la web de Microsoft, ¿Pretendes que lo tome como imparcial? Hay que saber diferenciar información de propaganda.

Además según #27 no es el mismo interprete este que el del 8800, este sería un sucesor.

EsePibe

#46 #57 La primera versión del BASIC de microsoft fué llamada "Altair Basic" desarrollada para un ordenador que vendía como kit la cadena de tiendas "Radio Shack".

Bill Gates presentó su versión de BASIC en el Homebrew computer Club en una cinta de papel perforado. Esa cinta fué robada durante el evento y así fue como el BASIC de Billi Gates fue el primer software pirateado en la historia.

https://archive.gadgetopia.com/post/6679/

Por otro lado, la versión para la CPU 6502 ya estaba liberada hace tiempo. https://www.pagetable.com/?p=774

D

#23 Sí, Bill programaba en assembler. Su último trabajo según dijo fue en un computador portátil de Radio Shack, el TRS-80 Model 100.

Allen creo que hizo las rutinas de punto flotante, Bill Gates creo que hizo el interpretador.

Gates, junto con Neil Konzen, también programó Donkey, un juego escrito en GWBasic para el IBM PC.

keylogger

#23 Sacado del propio código:

COMMENT *

--------- ---- -- ---- ----- --- ---- -----
COPYRIGHT 1975 BY BILL GATES AND PAUL ALLEN
--------- ---- -- ---- ----- --- ---- -----

ORIGINALLY WRITTEN ON THE PDP-10 FROM
FEBRUARY 9 TO APRIL 9 1975

BILL GATES WROTE A LOT OF STUFF.
PAUL ALLEN WROTE A LOT OF OTHER STUFF AND FAST CODE.
MONTE DAVIDOFF WROTE THE MATH PACKAGE (F4I.MAC).

*


lol lol lol lol

P

#72 loooool el PDP-11, que tiempos programando en el emulador para Mac en la UIB que cada 2 por tres se colgaba y tenias que cerrar ventanas para liberar memoria, el Gallir era aún joven y no tenia el ferrari.

eltoloco

#76 por suerte ahora las prácticas de estructura de computadores se hacen con el Motorola 68000, que sigue siendo un coñazo pero al menos es más moderno que el PDP-11.

Al menos el año que la hice yo, nos contaron que antes se hacía con el PDP-11, y que lo cambiaron porque solo funcionaba en Mac, y tenían que ejecutar un emulador de Mac OS y dentro de él otro emulador de PDP.

D

#7 No, de ellos (de Allen mayormente) era la primera versión de Microsoft Básica para el Altair 8800

bitman

#7 Gates y Allen desarrollaron el intérprete para Altair 8800, no el del IBM PC XT. Éste fue un producto posterior desarrollado en la empresa, quizá metieron mano en el código pero imagino que en esa situación ya tenían un equipo de programadores dedicados a estos temas.

D

#1 ¡Me apunto!

D

#1 Exagerao que eres, con la cantidad de castillos de lego que he ensamblao yo, y tampoco es pa tanto.

D

#1 Ostia,eso si que era duro.Todavía recuerdo lo de programar la puta pila de los cojones.GW-BASIC,COBOL,PASCAL eran más fáciles,pero cuando me tocaba ensamblador era un dolor de huevos enorme.

D

#10 Y de hecho el GOTO está en casi todos los lenguajes "clásicos", ejemplo C, Java....
El goto tiene sus casos de uso perfectamente recomendados y aceptados, por ejemplo para "saltar" entre switchs anidados.

r

Ahora que libere MSDOS 6.22 (o, mejor aun, 7.1) para mejorar Dosbox y Freedos.
Y, ya de paso, Windows 98SE

l

Madre de Dios... que de años de Gw... por cierto, ¿os habéis fijado en el GOTO?
Argggg.... Vade retro satanás lol

el GOTO era el hermano drogata y oveja negra del GOSUB

xyria

#9 Yo uso en Pascal Objects goto, sólo en procedimientos excesivamente complejos con varias condiciones que, generalmente, ejecutan un mismo código de finalización. Es perfectamente legible.

D

#9 La primera vez que lei la explicación del GOSUB no lo entendí, andaba por 5º de EGB... lol
Yo era de goto FTW.

D

#9 Pero en realidad en este programa está bien utilizado.

Caresth

#9 Cuando ahora llamas a una función y luego sigues adelante, estás haciendo un goto con etiquetas. Si quieres, un gosub. Yo sigo pensando en lineal. Será porque aprendí con este BASIC

casius_clavius

#41 Con la excepción de la recursividad.

bitman

#9 el tan denostado GOTO tiene correspondencia directa en ensamblador con las instrucciones de salto absoluto o relativo incondicionales. Nunca entendí porqué a la gente se le hacía bola usarlo.

d

#54 porque te enseñan que usar goto está mal, y nadie se plantea ¿porqué está mal usarlo?

casius_clavius

#54 Creo que porque por pereza uno acaba poniendo gotos en todas las direcciones posibles y el código acaba por ser ilegible. Es justo lo que solucionaba la programación estructurada.

l

#54 ¿Te refieres a JMP o JNZ ?
Ey, que estás hablando con un programador y aventurero.... me hice mi primer machete para afeitarme en ensamblador lol

bitman

#84 JMP. JNZ sería un salto condicional "Jump if No Zero". Da gusto encontrar compañeros de camino!

Urasandi

#9 Recuerdo algún libro de programación o artículo de la época que calificaba el Goto como inmoral. 😂 😂 😂

I

org 100h
mov dx,msg
mov ah, 9
int 21h
mov ah, 4Ch
int 21h
msg db 'Vaya coñazo',0Dh,0Ah, '$'

bitman

#26 grandiosas las cadenas de DOS con el delimitador $
Cuántas horas echadas en la lista de interrupciones de Ralf Brown

D

Pues a mi me flipaba el assembler del x86.
Fmd: Uno que desensabló el ANTICMOS ( virus de boot ) para ver como arrancaba el pc y hacer un boot manager.

Joice

#13 tu polla ahí!

D

#13 A mí también me flipa, ahora también me flipa ARM.

D

No se nada de programar y he leído vuestros comentarios con atención. No he aprendido nada pero me ha vuelto a crecer la virginidad.

D

#21 Yo se algo de programación scripting, y por los comentarios diría que la mitad de Menéame trabaja en Google

Unregistered

No echaba nada de menos el ASM lol, pero que recuerdos...

ElPerroDeLosCinco

El lema de mi vida está escrito en BASIC:

ON ERROR RESUME NEXT

prejudice

Yo también aprendí a programar con un libro de GW-BASIC antes de tener ordenador.
Los primeros programas que hice los escribí en la libreta de un cuaderno

Trigonometrico

#35 Alguien decía que los mejores programadores hace décadas eran los rusos, o todavía soviéticos, porque aprendían a programar con lápiz y papel.

yoprogramo

¿Alguien se anima a generar el exe correspondiente?

D

Yo recuerdo que escribí un programa para un AMSTRAD PCW y me encontré con ese basic. Yo era entonces un imberbe que tenía un CPC 464 con el basic 1.0 y no me costó nada "migrar" de uno a otro... lol

D

#5 Con sus pantalla de fósforo verde y su impresora matricial...

Ed_Hunter

#5 Los Amstrad CPC y los Amstrad PCW usaban el mismo tipo de procesador, de la familia del Zilog Z-80 y usaban versiones de BASIC desarrolladas por Locomotive Software, Locomotive BASIC en los CPC y Mallard BASIC en los PCW, así que es normal que la transición te resultase sencilla.

Dunnotheman

#5 En la EGB disponer de eso era la bomba jejeje. Ese locoscript!!!! Aún tendré por ahí el bicho, la impresora, discs, etc.

noexisto

Total, que en el 2060 tendremos el de windows 11

D

Poesía para mis ojos.

pip

El gorilla.bas que venía de ejemplo con QBasic (sucesor de éste) era el antecesor espiritual de Worms, entre otros.

Como antiguo programador de ensamblador tengo que decir que ese código está muy bien hecho y muy limpio.

D

#33 Creo recordar de alguna Amiga Format de la época (el Worms lo programaron en Amiga originalmente y si no recuerdo mal tampoco en blitz basic, no digo que la versión final lo fuese), que el autor se inspiró en el Scorched Earth, luego lo fué a vender a no se que feria, donde estaba Team 17 y el resto es historia.

s

#33
Pues mirando no está bien hecho. Ya le veo un fallo de entrada:
" GoSub InitVars "

Hay puestas varias etiquetas para llamar en lugar de declarar un Sub o una Functión para eludir todos los gotos y gosubs

D

Los nostálgicos echad un vistazo a qb64, también para GNU/Linux: https://www.qb64.org/portal/

woopi

#36 ¿Y qué te parece https://www.freebasic.net/ Tiene soporte para basic antiguo pero también características más modernas. ¡Ah! Y me olvidaba de GAMBAS. No es compilado, pero recuerdo que tenía buena pinta. (Igual que Lazarus, aunque es Pascal).

amanecequenoespoco

#36 en los repositorios de debian tenemos pcbasic que da el pego 100%

D

#67 #36 El QB64 me ha lanzado la aventura conversacional en Basic de The Mist, que me encanta. Otros no son totalmente compatibles.

albandy

Aquí uno que hizo el arkanoid en 1º de carrera, puto ensamblador, tenía hasta pesadillas.

gelatti

#6 yo recuerdo el tocho del libro de PC Interno, que nos dejaban llevarlo al examen , 1.300 páginas en canal https://www.iberlibro.com/PC-INTERNO-2.0-Programaci%C3%B3n-sistema-Tischer/22531041668/bd

ur_quan_master

#6 yo aprendí de preadolescente con el spectrum. El gens y el mons.. Vaya pareja.

Black_Diamond

#24 curso de ensamblador de Z80, publicado en microhobby a partir del número 96.

bitman

#47 Libro de ensablador Z80 para MSX de DataBecker, con el listado de un ensamblador, un desensamblador y un programa monitor en listados dentro del libro, que tenías que pasar a la computadora a mano. ¡Tremendo, pero cuánto se aprendía!
BASIC fue mi primer lenguaje.

kverko

#24 yo también soy de aquella generación de jóvenes programadores de basic de andar por casa. Es una seña de identidad para mí.

Pensé que con los medios que hay ahora otras generaciones tomarían el relevo pero me equivoqué y eso que debido a mi profesión conozco a muchísimos jóvenes.

D

Pregunta de ignorante, porque una vez terminada la vida comercial de un software no se libera? Que esto es de hace 40 años, que ventajas trae? Que ventajas e inconvenientes traería la publicación del código de Windows 98 o alguno más reciente?

pip

#40 el software se libera o no si el propietario del copyright lo quiere, da igual cuanto tiempo haya pasado o si es útil comercialmente o no.

Esto trae pocas ventajas prácticas, al menos que alguien quiera hacer un intérprete exacto de gw-basic.
Es historia de la informática, tiene utilidad didáctica y documental.

Para Windows 98 sería una situación similar.

Black_Diamond

#40 por ejemplo, que te puedo demandar si encuentro una puerta trasera o un bug que permitió una fuga de datos de mi empresa hace 20 años.

D

#48 Prescrito

Scipion

A buenas horas

sieteymedio

Se lo metan por el culo.

h3ndrix

Que bueno que el código diga que fue versionado "37 years ago" cuando git nació en el 2005

PD: desconozco si git se "come" timestamps de otros versionadores de código y los mantiene, pero vamos, muy bueno el puntazo.

skgsergio

#25 Nah, lo han cambiado a mano. Aunque si que tienes mutiples programas para importar de cvs, svn, ... y preservan las fechas y autores.

h3ndrix

#31 Era lo que pensaba, que lo habian cambiado a mano. Mola el detalle

S

Estos de Microsoft no paran, otro código super útil, super interesante y super relevante que acaban de hacer libre.

pip

#42 útil no mucho, pero interesante y relevante sí lo es.

Black_Diamond

#42 Es historia. Es importante si quieres estudiar la evolución de la civilización moderna. Es como cuando liberan toda la correspondencia de un rey medieval o los inventarios del archivo de indias.