Tecnología, Internet y juegos
165 meneos
1666 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
100 65 1 K 288
100 65 1 K 288
  1. Ensamblador. A ver quién le echa pelotas. :-D
  2. No echaba nada de menos el ASM xD, pero que recuerdos...
  3. 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:
  4. #3 Y de aquella apuesto a que pensabas que COBOL ya estaba desfasado ¿me equivoco? jajaj
  5. 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
  6. Aquí uno que hizo el arkanoid en 1º de carrera, puto ensamblador, tenía hasta pesadillas.
  7. #1 Ensamblador escrito por Bill Gates y Paul Allen, ni más ni menos.
  8. #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
  9. 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
  10. #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.
  11. El código de la miniatura me ha dado este resultado.  media
  12. #1 ¡Me apunto!
  13. 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.
  14. #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.
  15. #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.
  16. #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.
  17. #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
  18. A buenas horas
  19. ¿Alguien se anima a generar el exe correspondiente?
  20. 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. Total, que en el 2060 tendremos el de windows 11
  22. #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. #6 yo aprendí de preadolescente con el spectrum. El gens y el mons.. Vaya pareja.
  24. 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. org 100h
    mov dx,msg
    mov ah, 9
    int 21h
    mov ah, 4Ch
    int 21h
    msg db 'Vaya coñazo',0Dh,0Ah, '$'
  26. #7 No, de ellos (de Allen mayormente) era la primera versión de Microsoft Básica para el Altair 8800
  27. #4 no, entonces cobol era relativamente nuevo. Fortran si era ya viejo
  28. Ahora que libere MSDOS 6.22 (o, mejor aun, 7.1) para mejorar Dosbox y Freedos.
    Y, ya de paso, Windows 98SE
  29. #9 Pero en realidad en este programa está bien utilizado.
  30. #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. Se lo metan por el culo.
  32. 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. #13 tu polla ahí!
  34. 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. Los nostálgicos echad un vistazo a qb64, también para GNU/Linux: www.qb64.org/portal/
  36. #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.
  37. Poesía para mis ojos.
  38. #13 A mí también me flipa, ahora también me flipa ARM.
  39. #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
  40. Estos de Microsoft no paran, otro código super útil, super interesante y super relevante que acaban de hacer libre.
  41. #31 Era lo que pensaba, que lo habian cambiado a mano. Mola el detalle :-)
  42. #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.
  43. #42 útil no mucho, pero interesante y relevante sí lo es.
  44. #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.
  45. #24 curso de ensamblador de Z80, publicado en microhobby a partir del número 96.
  46. #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.
  47. #5 Con sus pantalla de fósforo verde y su impresora matricial...
  48. #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.
  49. #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.
  50. #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.
  51. #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.
  52. #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.
  53. #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.
  54. #26 grandiosas las cadenas de DOS con el delimitador $
    Cuántas horas echadas en la lista de interrupciones de Ralf Brown
  55. #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).
  56. #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.
  57. #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
  58. #9 Recuerdo algún libro de programación o artículo de la época que calificaba el Goto como inmoral. {0x1f602} {0x1f602} {0x1f602}
  59. #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)
  60. #54 porque te enseñan que usar goto está mal, y nadie se plantea ¿porqué está mal usarlo?
  61. #41 Con la excepción de la recursividad.
  62. #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.
  63. #36 en los repositorios de debian tenemos pcbasic que da el pego 100%  media
  64. #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.
  65. #21 Yo se algo de programación scripting, y por los comentarios diría que la mitad de Menéame trabaja en Google :shit:
  66. #62 ya, no dejan de ser dialectos del mismo lenguaje. No eran exactamente lo mismo, aunque se parecían mucho
  67. El lema de mi vida está escrito en BASIC:

    ON ERROR RESUME NEXT
  68. #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
  69. #67 #36 El QB64 me ha lanzado la aventura conversacional en Basic de The Mist, que me encanta. Otros no son totalmente compatibles.
  70. #62 Joder que bueno era ese juego de bananas explosivas!!! :->
  71. #5 En la EGB disponer de eso era la bomba jejeje. Ese locoscript!!!! Aún tendré por ahí el bicho, la impresora, discs, etc.
  72. #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.
  73. #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.
  74. #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
  75. #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...
  76. #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
  77. #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.
  78. #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.
  79. #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
  80. #84 JMP. JNZ sería un salto condicional "Jump if No Zero". Da gusto encontrar compañeros de camino!
comentarios cerrados

menéame