stringtranslate.com

Formato binario de Microsoft

En informática , el formato binario de Microsoft ( MBF ) es un formato para números de punto flotante que se utilizaba en los lenguajes BASIC de Microsoft , incluidos MBASIC , GW-BASIC y QuickBASIC antes de la versión 4.00. [1] [2] [3] [4] [5] [6] [7]

Hay dos versiones principales del formato. La versión original fue diseñada para sistemas con memoria limitada y almacenaba números en 32 bits (4 bytes), con una mantisa de 23 bits , un signo de 1 bit y un exponente de 8 bits . BASIC extendido (12k) incluía un tipo de doble precisión con 64 bits.

Durante el período en el que se trasladaba de la plataforma Intel 8080 al procesador MOS 6502 , las computadoras comenzaban a incluir más memoria como característica estándar. Esta versión se ofreció con el formato original de 32 bits o con un formato ampliado opcional de 40 bits (5 bytes). El formato de 40 bits fue utilizado por la mayoría de las computadoras domésticas de los años 1970 y 1980. Estas dos versiones a veces se conocen como "6 dígitos" y "9 dígitos", respectivamente. [8]

En PC con procesador x86 , QuickBASIC , anterior a la versión 4, reintrodujo el formato de doble precisión utilizando una mantisa de 55 bits en formato de 64 bits (8 bytes). MBF se abandonó durante el cambio a QuickBASIC 4, que utilizaba el formato estándar IEEE 754 , introducido unos años antes.

Historia

Bill Gates y Paul Allen estaban trabajando en Altair BASIC en 1975. Estaban desarrollando el software en la Universidad de Harvard en un DEC PDP-10 ejecutando su emulador Altair . [9] Una cosa que les faltaba era código para manejar números de punto flotante, necesario para soportar cálculos con números muy grandes y muy pequeños, [9] que sería particularmente útil para la ciencia y la ingeniería. [10] [11] Uno de los usos propuestos para Altair fue como calculadora científica. [12]

Panel frontal del Altair 8800

En una cena en Currier House , una residencia para estudiantes de Harvard, Gates y Allen se quejaron ante sus compañeros de cena de que tenían que escribir este código [9] y uno de ellos, Monte Davidoff , les dijo que había escrito rutinas de punto flotante. antes y convenció a Gates y Allen de que era capaz de escribir el código de punto flotante Altair BASIC. [9] En ese momento, aunque IBM había introducido sus propios programas, no existía un estándar para los números de punto flotante, por lo que Davidoff tuvo que crear el suyo propio. Decidió que 32 bits permitirían suficiente alcance y precisión. [13] Cuando Allen tuvo que demostrarlo al MITS , fue la primera vez que se ejecutó en un Altair real. [14] Pero funcionó, y cuando ingresó 'PRINT 2+2', la rutina de suma de Davidoff dio la respuesta correcta. [9]

Una copia del código fuente de Altair BASIC resurgió en 1999. A finales de la década de 1970, el ex tutor y decano de Gates, Harry Lewis , lo encontró detrás de algunos muebles en una oficina en Aiden y lo guardó en un archivador. Después de olvidarse más o menos de su existencia durante mucho tiempo, a Lewis finalmente se le ocurrió la idea de exhibir el anuncio en el vestíbulo. En cambio, se decidió preservar la lista original y producir varias copias para su exhibición y preservación, después de que la bibliotecaria y conservadora Janice Merrill-Oldham señalara su importancia. [15] [16] Un comentario en la fuente acredita a Davidoff como el autor del paquete de matemáticas de Altair BASIC. [15] [16]

Sistema Radio Shack Tandy TRS-80 Modelo I

Altair BASIC despegó y pronto la mayoría de las primeras computadoras domésticas ejecutaban alguna forma de Microsoft BASIC. [17] [18] El puerto BÁSICO para la CPU 6502 , como el que se usa en el Commodore PET , ocupaba más espacio debido a la menor densidad de código del 6502. Debido a esto, probablemente no encajaría en un solo chip ROM juntos. con el código de entrada y salida específico de la máquina. Como era necesario un chip adicional, había espacio adicional disponible, que se utilizó en parte para ampliar el formato de punto flotante de 32 a 40 bits. [8] Este formato extendido no solo fue proporcionado por Commodore BASIC 1 y 2, sino que también fue compatible con Applesoft BASIC I y II desde la versión 1.1 (1977), KIM-1 BASIC desde la versión 1.1a (1977) y MicroTAN BASIC desde versión 2b (1980). [8] No mucho después, los puertos Z80 , como el Nivel II BASIC para el TRS-80 (1978), introdujeron el formato de 64 bits de doble precisión como un tipo de datos separado del de 32 bits de precisión simple. [19] [20] [21] Microsoft usó los mismos formatos de punto flotante en su implementación de Fortran [22] y para su macro ensamblador MASM , [23] aunque su hoja de cálculo Multiplan [24] [25] y su implementación COBOL usaron coma flotante decimal codificada en binario (BCD). [26] Aun así, durante un tiempo MBF se convirtió en el formato de punto flotante de facto en las computadoras domésticas, hasta el punto en que las personas todavía ocasionalmente encuentran archivos heredados y formatos de archivo que lo utilizan. [27] [28] [29] [30] [31] [32]

Minicomputadora VAX-11/780

En un desarrollo paralelo, Intel había iniciado el desarrollo de un coprocesador de punto flotante en 1976. [33] [34] William Morton Kahan , como consultor de Intel, sugirió que Intel utilizara el punto flotante de Digital Equipment Corporation (DEC ) VAX. El primer VAX, el VAX-11/780 , acababa de salir a finales de 1977 y su punto flotante gozaba de gran prestigio. Los formatos de punto flotante de VAX se diferenciaban de MBF sólo en que tenían el signo en el bit más significativo. [35] [36] Sin embargo, con el objetivo de comercializar su chip en el mercado más amplio posible, se le pidió a Kahan que elaborara especificaciones. [33] Cuando los rumores sobre el nuevo chip de Intel llegaron a sus competidores, comenzaron un esfuerzo de estandarización, llamado IEEE 754 , para evitar que Intel ganara demasiado terreno. Como un exponente de 8 bits no era lo suficientemente amplio para algunas operaciones deseadas para números de doble precisión, por ejemplo, para almacenar el producto de dos números de 32 bits, [1] la propuesta de Intel y una contrapropuesta de DEC utilizaron 11 bits, como el formato de punto flotante de 60 bits probado en el tiempo del CDC 6600 de 1965. [34] [37] [38] La propuesta de Kahan también preveía infinitos, que son útiles cuando se trata de condiciones de división por cero; valores que no son un número, que son útiles cuando se trata de operaciones no válidas; números anormales , que ayudan a mitigar los problemas causados ​​por el desbordamiento; [37] [39] [40] y un sesgo de exponente mejor equilibrado , que podría ayudar a evitar el desbordamiento y el desbordamiento al tomar el recíproco de un número. [41] [42]

Cuando se lanzó QuickBASIC 4.00 , [ ¿cuándo? ] el estándar IEEE 754 se había adoptado ampliamente; por ejemplo, se incorporó al coprocesador 387 de Intel y a todos los procesadores x86 a partir del 486 . Las versiones 4.0 y 4.5 de QuickBASIC usan variables de punto flotante IEEE 754 de forma predeterminada, pero (al menos en la versión 4.5) hay una opción de línea de comandos /MBF para el IDE y el compilador que cambia de números de punto flotante IEEE a MBF, para Admite programas escritos anteriormente que se basan en detalles de los formatos de datos MBF. Visual Basic también utiliza el formato IEEE 754 en lugar de MBF.

Detalles técnicos

Los números MBF constan de un exponente de base 2 de 8 bits , un bit de signo (mantisa positiva: s = 0; mantisa negativa: s = 1) y un 23-, [43] [8] 31- [8] o 55- bit [43] mantisa del significado . Siempre hay un bit 1 implícito a la izquierda de la mantisa explícita, y el punto de base se encuentra antes de este bit asumido . El exponente está codificado con un sesgo de 128 [ cita requerida ] , de modo que los exponentes −127…−1 [ cita requerida ] están representados por x = 1…127 (01h…7Fh) [ cita requerida ] , exponentes 0…127 [ cita requerida] necesario ] están representados por x = 128…255 (80h…FFh) [ cita necesaria ] , con un caso especial para x = 0 (00h) que representa que el número entero es cero.

El formato de doble precisión MBF proporciona menos escala que el formato IEEE 754 y, aunque el formato en sí proporciona casi un dígito decimal adicional de precisión, en la práctica los valores almacenados son menos precisos porque los cálculos IEEE utilizan resultados intermedios de 80 bits y MBF no. 't. [1] [3] [43] [44] A diferencia del punto flotante IEEE, MBF no admite números anormales , infinitos o NaN . [45]

Formato MBF de precisión simple (32 bits, "BASIC de 6 dígitos"): [43] [8]

Formato de precisión extendida MBF (40 bits, "BÁSICO de 9 dígitos"): [8]

Formato MBF de doble precisión (64 bits): [43] [1]

Ejemplos

Formato de 32 bits: 84h, 20h, 00h, 00h
Formato de 40 bits: 84 h, 20 h, 00 h, 00 h, 00 h
Formato de 32 bits: 82 h, 00 h, 00 h, 00 h
Formato de 40 bits: 82 h, 00 h, 00 h, 00 h, 00 h
Formato de 32 bits: 81h, 00h, 00h, 00h
Formato de 40 bits: 81 h, 00 h, 00 h, 00 h, 00 h
Formato de 32 bits: 00h, 00h, 00h, 00h (o 00h, xxh, xxh, xxh)
Formato de 40 bits: 00h, 00h, 00h, 00h, 00h (o 00h, xxh, xxh, xxh, xxh)
Formato de 32 bits: 80h, 00h, 00h, 00h
Formato de 40 bits: 80 h, 00 h, 00 h, 00 h, 00 h
Formato de 32 bits: 7Fh, 00h, 00h, 00h
Formato de 40 bits: 7Fh, 00h, 00h, 00h, 00h
Formato de 32 bits: 80h, 80h, 00h, 00h
Formato de 40 bits: 80h, 80h, 00h, 00h, 00h
Formato de 32 bits: 80h, 35h, 04h, F3h
Formato de 40 bits: 80h, 35h, 04h, F3h, 34h
Formato de 32 bits: 81h, 35h, 04h, F3h
Formato de 40 bits: 81h, 35h, 04h, F3h, 34h
Formato de 32 bits: 80h, 31h, 72h, 18h
Formato de 40 bits: 80h, 31h, 72h, 17h, F8h
Formato de 32 bits: 81h, 38h, AAh, 3Bh
Formato de 40 bits: 81h, 38h, AAh, 3Bh, 29h
Formato de 32 bits: 81h, 49h, 0Fh, DBh
Formato de 40 bits: 81h, 49h, 0Fh, DAh, A2h
Formato de 32 bits: 83h, 49h, 0Fh, DBh
Formato de 40 bits: 83h, 49h, 0Fh, DAh, A2h

Ver también

Referencias

  1. ^ abcd "IEEE frente a formato binario de Microsoft; problemas de redondeo (completo)". Soporte de Microsoft . Microsoft . 2006-11-21. ID de artículo KB35826, Q35826. Archivado desde el original el 28 de agosto de 2020 . Consultado el 24 de febrero de 2010 .
  2. ^ "Tutorial (completo) para comprender los errores de punto flotante IEEE". Base de conocimientos . Microsoft . 2005-08-16. ID de artículo KB42980, Q42980. Archivado desde el original el 28 de agosto de 2020 . Consultado el 2 de junio de 2016 .
  3. ^ ab "Convertir números de punto flotante C++ anteriores a IEEE-754 a/desde C#". stackoverflow.com . 2010-04-21. Archivado desde el original el 28 de agosto de 2020 . Consultado el 2 de junio de 2016 .(NB. La segunda referencia podría ser errónea al decir que QB 4.0 podría usar MBF internamente, pero solo usa IEEE. Solo tiene algunas funciones de conversión para convertir números de punto flotante IEEE en cadenas que contienen datos MBF, por ejemplo, MKDMBF$ además de MKD$ que simplemente copia los bytes del valor IEEE en una cadena).
  4. ^ "La documentación de MASM 6.1 señala que 5.1 fue la última versión de MASM compatible con MBF" (PDF) . gente.sju.edu . Consultado el 2 de junio de 2016 .
  5. ^ Manual del usuario de GW-BASIC, Apéndice D.3 Llamadas a funciones USR.
  6. ^ BASIC Segunda edición (mayo de 1982), IBM: Apéndice C-15 (NB. Este es el manual de BASICA).
  7. ^ "Rutas ROM (matemáticas enteras)". Trs-80.com . Consultado el 2 de junio de 2016 .
  8. ^ abcdefghijklmnopqr Steil, Michael (20 de octubre de 2008). "Cree su propia versión de Microsoft BASIC para 6502". pagetable.com. Archivado desde el original el 30 de mayo de 2016 . Consultado el 30 de mayo de 2016 .
  9. ^ abcde Isaacson, Walter (20 de septiembre de 2013). "Amanecer de una revolución". Gaceta de Harvard . noticias.harvard.edu. Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
  10. ^ Rall, Louis B. (1987). "Una introducción al lenguaje informático científico Pascal-SC". Computadoras y Matemáticas con Aplicaciones . Centro de Investigación en Matemáticas, Universidad de Wisconsin-Madison , Madison, Wisconsin: Pergamon Journals Ltd. 14 (1): 53–69. doi :10.1016/0898-1221(87)90181-7.(17 páginas)
  11. ^ Leung, K. Ming (3 de febrero de 2005) [2000]. "Números de coma flotante en computadoras digitales" (PDF) . cis.poly.edu . Departamento de Informática y Ciencias de la Información, Universidad Politécnica. Archivado (PDF) desde el original el 14 de diciembre de 2018 . Consultado el 2 de junio de 2016 .
  12. ^ Becraft, Michael B. (26 de agosto de 2014). Bill Gates: una biografía. ISBN 978-1-44083014-3. Consultado el 30 de mayo de 2016 .
  13. ^ "El paquete de matemáticas". altairbasic.org . 2014. Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .(Nota: Altair BASIC 3.2 (Edición 4K).)
  14. ^ Orlowski, Andrés (11 de mayo de 2001). "La leyenda de Microsoft Altair BASIC habla sobre Linux, CPRM y esa foto tan aterradora: una entrevista muy poco común con Monte Davidoff". El registro . Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
  15. ^ ab Orlowski, Andrew (13 de mayo de 2001). "Código fuente BÁSICO de Raiders of the Lost Altair: vinieron, vieron... se desmontaron". El registro . Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
  16. ^ ab Griffiths, Ian (8 de mayo de 2000). "Búsqueda de la Fuente Sagrada: el viaje de Ian a Harvard". Archivado desde el original el 2 de enero de 2002 . Consultado el 30 de mayo de 2016 .
  17. ^ "Grandes personas personalmente responsables del avance del arte de las primeras computadoras". Oldcomputers.net . 2020-07-18. Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
  18. ^ "Básico 7.0 para Windows". comp.lang.basic.powerbasic.narkive.com . Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
  19. ^ Manual de hardware de Radio Shack: Manual de referencia BÁSICO de nivel II (1 ed.). Fort Worth, Texas: Radio Shack . 1978. Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .[1]
  20. ^ Manual de referencia BÁSICO de nivel II (PDF) . Radio Shack . 1979 . Consultado el 2 de junio de 2016 . {{cite book}}: |website=ignorado ( ayuda )
  21. ^ Manual de referencia BASIC-80 (MBASIC) (PDF) . Consultado el 30 de mayo de 2016 .
  22. ^ Manual del usuario de Microsoft FORTRAN-80 versión 3.4 (PDF) . Noviembre de 1980. págs.45, 55 . Consultado el 30 de mayo de 2016 . {{cite book}}: |website=ignorado ( ayuda )
  23. ^ Pätzold, Michael, ed. (Abril de 1993). "Zettelsammlung MS-DOS und AT" (en alemán). Gruppe Datenverarbeitung am MPI für Strömungsforschung Göttingen, Max-Planck-Institut. Archivado desde el original el 20 de febrero de 2005 . Consultado el 7 de octubre de 2015 .
  24. ^ "Manual multiplano Tandy 200" (PDF) . classiccmp.org . Consultado el 2 de junio de 2016 .
  25. ^ Especificaciones de Microsoft C Pcode , página 13. (NB. Multiplan no se compiló en código de máquina, sino en una especie de código de bytes ejecutado por un intérprete, para que Multiplan fuera portátil en el hardware más variado de la época. . Este código de bytes distinguía entre el formato de punto flotante específico de la máquina para calcular y un formato externo (estándar), que era decimal codificado en binario (BCD). Las instrucciones PACK y UNPACK se convertían entre los dos).
  26. ^ Microsoft COBOL-80 (PDF) . 1978. págs.26, 32 . Consultado el 30 de mayo de 2016 . {{cite book}}: |website=ignorado ( ayuda )
  27. ^ Lee, Patrick Y. "Diseño de archivo de paquete de correo QWK" (TXT) . archivos de texto.com . Consultado el 2 de junio de 2016 .
  28. ^ "Formato CSI Millennium (CSIM) con extensiones CSI Y2K". csidata.com . Boca Ratón, Florida: Commodity Systems, Inc. 1998-11-17. Archivado desde el original (TXT) el 5 de marzo de 2016 . Consultado el 2 de junio de 2016 . […] Este documento describe el formato de datos CompuTrac abandonado, que hasta hace poco era utilizado activamente por el software de gráficos MetaStock de Equis. […]
  29. ^ Billard, Russ (4 de mayo de 2016) [13 de julio de 2001]. "Conversión del formato binario de Microsoft al formato IEEE utilizando VB 6". Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
  30. ^ JerMyster (2 de julio de 2003). "¡Ayuda! ¿Alguien sabe cómo convertir el antiguo valor M/S MBF de Qbasic a VB6". Tek-Consejos . Foro de Visual Basic (clásico). Archivado desde el original el 28 de agosto de 2020 . Consultado el 30 de mayo de 2016 .
  31. ^ GL88. "Lectura de formato binario (QBasic) con C#". Social.msdn.microsoft.com . Consultado el 30 de mayo de 2016 .{{cite web}}: CS1 maint: numeric names: authors list (link)
  32. ^ "Rmetrics: lectura del formato de datos MetaStock en R". R.789695.n4.nabble.com. 30 de septiembre de 2013 . Consultado el 30 de mayo de 2016 .
  33. ^ ab "Intel y punto flotante: actualización de uno de los estándares más exitosos de la industria: la visión tecnológica para el estándar de punto flotante" (PDF) . Intel . 2016. Archivado desde el original (PDF) el 4 de marzo de 2016 . Consultado el 30 de mayo de 2016 .(11 páginas)
  34. ^ ab "Una entrevista con el viejo del punto flotante". cs.berkeley.edu. 1998-02-20 . Consultado el 30 de mayo de 2016 .
  35. ^ "Números de coma flotante VAX". nssdc.gsfc.nasa.gov . Archivado desde el original el 28 de agosto de 2020 . Consultado el 2 de junio de 2016 .(NB. El VAX-11/780 aún no implementó el formato "G". Aunque esto no se desprende directamente de las tablas porque las estructuras se han dividido en palabras de dos bytes, el orden de los bytes es en realidad el mismo que en CPU modernas. No hay suficiente espacio en el rango de exponentes para NaN, Infinity, infinitos o denormales).
  36. ^ "VAX11 780" (PDF) . Ece.cmu.edu . Consultado el 2 de junio de 2016 .
  37. ^ ab "IEEE 754: una entrevista con William Kahan" (PDF) . dr-chuck.com . Consultado el 2 de junio de 2016 .
  38. ^ Thornton, James E. (1970). Escrito en el Laboratorio de Diseño Avanzado, Control Data Corporation. Diseño de una computadora: The Control Data 6600 (PDF) (1 ed.). Glenview, Illinois: Scott, Foresman and Company . LCCN  74-96462. Archivado (PDF) desde el original el 28 de agosto de 2020 . Consultado el 2 de junio de 2016 .(1+13+181+2+2 páginas)
  39. ^ Kahan, William Morton . "¿Por qué necesitamos un estándar aritmético de punto flotante?" (PDF) . cs.berkeley.edu . Consultado el 2 de junio de 2016 .
  40. ^ Kahan, William Morton ; Darcy, Joseph D. "Cómo el punto flotante de Java perjudica a todos en todas partes" (PDF) . cs.berkeley.edu . Consultado el 2 de junio de 2016 .
  41. ^ Turner, Peter R. (21 de diciembre de 2013). Análisis numérico y procesamiento paralelo: conferencias impartidas en The Lancaster…. ISBN 978-3-66239812-8. Consultado el 30 de mayo de 2016 .
  42. ^ "Nombres para formatos de punto flotante estandarizados" (PDF) . cs.berkeley.edu . Consultado el 2 de junio de 2016 .
  43. ^ Personal de abcdef Borland (2 de julio de 1998) [10 de marzo de 1994]. "Conversión entre formatos Microsoft Binary e IEEE". Base de datos de información técnica (TI1431C.txt). Embarcadero USA / Inprise (originalmente: Borland ). ID 1400. Archivado desde el original el 2019-02-20 . Consultado el 30 de mayo de 2016 . […] _fmsbintoieee(float *src4, float *dest4) […] Formato binario MS […] orden de bytes => m3 | m2 | m1 | exponente […] m1 es el byte más significativo => sbbb|bbbb […] m3 es el byte menos significativo […] m = byte de mantisa […] s = bit de signo […] b = bit […] MBF es sesgo 128 e IEEE tiene sesgo 127. […] MBF coloca el punto decimal antes del bit asumido , mientras que IEEE coloca el punto decimal después del bit asumido. […] ieee_exp = msbin[3] - 2; /* en realidad, msbin[3]-1-128+127 */ […] _dmsbintoieee(double *src8, double *dest8) […] Formato binario MS […] orden de bytes => m7 | m6 | m5 | m4 | m3 | m2 | m1 | exponente […] m1 es el byte más significativo => smmm|mmmm […] m7 es el byte menos significativo […] MBF tiene un sesgo 128 y IEEE tiene un sesgo 1023. […] MBF coloca el punto decimal antes del bit asumido, mientras que IEEE coloca el punto decimal después del bit asumido. […] ieee_exp = msbin[7] - 128 - 1 + 1023; […]
  44. ^ "Grupos de Google". Grupos.google.com . Consultado el 2 de junio de 2016 .
  45. ^ Bucknall, Julian M. (3 de noviembre de 2018) [23 de octubre de 2007]. "Comprensión del MBF de precisión simple". boyet.com. Archivado desde el original el 2019-02-20 . Consultado el 30 de mayo de 2016 . […] Formato único IEEE 754 […] El exponente está sesgado en 127. Se supone 1 bit antes del punto de base (por lo que la mantisa supuesta es 1.ffff… donde las f son los bits de fracción ) […] Formato binario de Microsoft (precisión simple) […] El exponente está sesgado por 128. Se supone 1 bit después del punto de base (por lo que la mantisa supuesta es 0.1ffff… donde f son los bits de fracción) […] la mantisa IEEE es el doble del MBF mantisa. […] para convertir de MBF a IEEE simple […] reste 2 del exponente (uno para el cambio de polarización, uno para el factor de mantisa) y luego reorganice los bits de signo y exponente. La fracción no cambia. Para convertir de IEEE simple a MBF, […] agregue 2 al exponente (uno para el cambio de polarización, otro para el factor de mantisa) y luego reorganice los bits de signo y exponente. La fracción no cambia. […]
  46. ^ abcdefgh Steil, Michael, ed. (20 de octubre de 2008). "msbasic/float.s". NIEBLA64 . Archivado desde el original el 28 de agosto de 2020 . Consultado el 28 de agosto de 2020 a través de github.com.[2] (NB. Listados de desensamblaje de 6502 comentados, fusionados de varias versiones de Microsoft BASIC para 6502 entre 1977 y 1982 para recrear copias exactas en bytes de las ROM originales para 10 máquinas diferentes de diferentes proveedores).
  47. ^ abc Steil, Michael, ed. (20 de octubre de 2008). "msbasic/trig.s". NIEBLA64 . Archivado desde el original el 28 de agosto de 2020 . Consultado el 28 de agosto de 2020 a través de github.com.[3] (NB. Listados de desensamblaje de 6502 comentados, fusionados de varias versiones de Microsoft BASIC para 6502 entre 1977 y 1982 para recrear copias exactas en bytes de las ROM originales para 10 máquinas diferentes de diferentes proveedores).

enlaces externos