TECNOLOGíA, INTERNET, JUEGOS
164 meneos
1639 clics
Microsoft publica el código fuente de GW-BASIC

Microsoft publica el código fuente de GW-BASIC

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: github.com/microsoft/GW-BASIC

| etiquetas: microsoft , open source , gw-basic
99 65 1 K 288
99 65 1 K 288
El código de la miniatura me ha dado este resultado.  media
Tengo un diploma de programación con este lenguaje de mediados de los 80, creo que fue mi tercer o cuarto lenguaje de programación. Qué recuerdos :foreveralone:
#3 Y de aquella apuesto a que pensabas que COBOL ya estaba desfasado ¿me equivoco? jajaj
#4 no, entonces cobol era relativamente nuevo. Fortran si era ya viejo
#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.: es.wikipedia.org/wiki/Fortran
#3 para mí fue mi primer lenguaje. Con mis tiernos 9-10 años hice una versión del pong en un ZX Sectrum de 48K
#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)
#62 ya, no dejan de ser dialectos del mismo lenguaje. No eran exactamente lo mismo, aunque se parecían mucho
#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…   » ver todo el comentario
#62 Joder que bueno era ese juego de bananas explosivas!!! :->
#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.
Ensamblador. A ver quién le echa pelotas. :-D
#1 Ensamblador escrito por Bill Gates y Paul Allen, ni más ni menos.
#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.
#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.
#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.
#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.

archive.gadgetopia.com/post/6679/

Por otro lado, la versión para la CPU 6502 ya estaba liberada hace tiempo. www.pagetable.com/?p=774
#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.
www.youtube.com/watch?v=Ah_1HDf_tSU
#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).

*


xD xD xD xD
#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.
#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.
#7 No, de ellos (de Allen mayormente) era la primera versión de Microsoft Básica para el Altair 8800
#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.
#1 ¡Me apunto!
#1 Exagerao que eres, con la cantidad de castillos de lego que he ensamblao yo, y tampoco es pa tanto. :troll:
#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.
#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.
#15 Un goto aceptado a día de hoy: break y continue. El goto, bien usado, no es para tanto y hace el código más legible.
Ahora que libere MSDOS 6.22 (o, mejor aun, 7.1) para mejorar Dosbox y Freedos.
Y, ya de paso, Windows 98SE
Madre de Dios... que de años de Gw... por cierto, ¿os habéis fijado en el GOTO?
Argggg.... Vade retro satanás xD

el GOTO era el hermano drogata y oveja negra del GOSUB
#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.
#9 La primera vez que lei la explicación del GOSUB no lo entendí, andaba por 5º de EGB... xD
Yo era de goto FTW.
#9 Pero en realidad en este programa está bien utilizado.
#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
#41 Con la excepción de la recursividad.
#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.
#54 porque te enseñan que usar goto está mal, y nadie se plantea ¿porqué está mal usarlo?
#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.
#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 xD
#84 JMP. JNZ sería un salto condicional "Jump if No Zero". Da gusto encontrar compañeros de camino!
#9 Recuerdo algún libro de programación o artículo de la época que calificaba el Goto como inmoral. {0x1f602} {0x1f602} {0x1f602}
org 100h
mov dx,msg
mov ah, 9
int 21h
mov ah, 4Ch
int 21h
msg db 'Vaya coñazo',0Dh,0Ah, '$'
#26 grandiosas las cadenas de DOS con el delimitador $
Cuántas horas echadas en la lista de interrupciones de Ralf Brown
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.
#13 tu polla ahí!
#13 A mí también me flipa, ahora también me flipa ARM.
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. :shit:
#21 Yo se algo de programación scripting, y por los comentarios diría que la mitad de Menéame trabaja en Google :shit:
El lema de mi vida está escrito en BASIC:

ON ERROR RESUME NEXT
No echaba nada de menos el ASM xD, pero que recuerdos...
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 :shit:
#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.
¿Alguien se anima a generar el exe correspondiente?
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... xD
#5 Con sus pantalla de fósforo verde y su impresora matricial...
#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.
#5 En la EGB disponer de eso era la bomba jejeje. Ese locoscript!!!! Aún tendré por ahí el bicho, la impresora, discs, etc.
Total, que en el 2060 tendremos el de windows 11
Poesía para mis ojos.
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.
#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.
#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
Los nostálgicos echad un vistazo a qb64, también para GNU/Linux: www.qb64.org/portal/
#36 ¿Y qué te parece 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).
#36 en los repositorios de debian tenemos pcbasic que da el pego 100%  media
#67 #36 El QB64 me ha lanzado la aventura conversacional en Basic de The Mist, que me encanta. Otros no son totalmente compatibles.
Aquí uno que hizo el arkanoid en 1º de carrera, puto ensamblador, tenía hasta pesadillas.
#6 yo recuerdo el tocho del libro de PC Interno, que nos dejaban llevarlo al examen , 1.300 páginas en canal www.iberlibro.com/PC-INTERNO-2.0-Programación-sistema-Tischer/2253104
#6 yo aprendí de preadolescente con el spectrum. El gens y el mons.. Vaya pareja.
#24 curso de ensamblador de Z80, publicado en microhobby a partir del número 96.
#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.
#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.
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?
#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.
#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.
#48 Prescrito
A buenas horas
Se lo metan por el culo.
Que bueno que el código diga que fue versionado "37 years ago" cuando git nació en el 2005 :hug:

PD: desconozco si git se "come" timestamps de otros versionadores de código y los mantiene, pero vamos, muy bueno el puntazo.
#25 Nah, lo han cambiado a mano. Aunque si que tienes mutiples programas para importar de cvs, svn, ... y preservan las fechas y autores.  media
#31 Era lo que pensaba, que lo habian cambiado a mano. Mola el detalle :-)
Estos de Microsoft no paran, otro código super útil, super interesante y super relevante que acaban de hacer libre.
#42 útil no mucho, pero interesante y relevante sí lo es.
#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.

menéame