{"id":20989173,"url":"https://github.com/latchdevel/qram1989","last_synced_at":"2026-04-21T22:32:08.568Z","repository":{"id":145788560,"uuid":"444711815","full_name":"latchdevel/qram1989","owner":"latchdevel","description":"Ejercicio de preservación del software \"hecho en casa\" en la decada de 1980","archived":false,"fork":false,"pushed_at":"2022-01-05T07:50:47.000Z","size":1107,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-20T07:46:00.392Z","etag":null,"topics":["6128","amstrad","bankman","basic","cpc","dsk","greaseweazle","hxcfe","qram","sna","spc","webassembly","z80"],"latest_commit_sha":null,"homepage":"https://latchdevel.github.io/qram1989/index.html?file=disk/qram.dsk\u0026input=cat%0Arun%22Q9%0A","language":"Assembly","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/latchdevel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-05T07:49:00.000Z","updated_at":"2023-10-10T22:05:08.000Z","dependencies_parsed_at":"2023-04-21T08:17:44.518Z","dependency_job_id":null,"html_url":"https://github.com/latchdevel/qram1989","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/latchdevel%2Fqram1989","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/latchdevel%2Fqram1989/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/latchdevel%2Fqram1989/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/latchdevel%2Fqram1989/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/latchdevel","download_url":"https://codeload.github.com/latchdevel/qram1989/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243401486,"owners_count":20285051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["6128","amstrad","bankman","basic","cpc","dsk","greaseweazle","hxcfe","qram","sna","spc","webassembly","z80"],"created_at":"2024-11-19T06:24:01.686Z","updated_at":"2025-12-29T22:33:39.145Z","avatar_url":"https://github.com/latchdevel.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QRAM 1989\n\nDurante 1989 se indexaron cientos de referencias de artículos médicos publicados en revistas de la época como _JANO, MEDICINA CLÍNICA, CIENCIA MÉDICA, MEDICINA INTEGRAL, TIEMPOS MÉDICOS,_ etc.\n\nPara tal fin, se desarrolló un programa de gestión **\"QRAM\"**, en [Locomotive Basic](https://es.wikipedia.org/wiki/Locomotive_BASIC), en un ordenador personal [Amstrad CPC6128](https://es.wikipedia.org/wiki/Amstrad_CPC), muy popular a finales de los ochenta.\n\nSiendo necesario explotar los 128 Kbytes de memoria del CPC6128, se recurrió al gestor de bancos de memoria proporcionado por Amstrad [BANKMAN](https://github.com/sevioptero/Amstrad-CPC6128-Manual-del-Usuario/wiki/1.11.-Introducci%C3%B3n-al-gestor-de-bancos-de-memoria).\n\nHaz click aquí [**Amstrad CPC6128 QRAM DSK**](https://latchdevel.github.io/qram1989/index.html?file=disk/qram.dsk\u0026input=cat%0Arun%22Q9%0A) para rememorar su uso.\n\n![QRAM FICHA1](images/Screenshot.png)\n\n## Emulador Amstrad CPC6182\nEl emulador forma parte del conjunto de herramientas de emulación de sistemas de 8-bits publicadas en el repositorio [github.com/floooh/chips](https://github.com/floooh/chips), el cual, compilado como un objeto [\"WebAssembly\"](https://es.wikipedia.org/wiki/WebAssembly) puede ejecutarse en cualquier navegador web con soporte JavaScript/HTML5, requiriendo únicamente tres archivos estáticos:\n* **index.html**\n* **cpc.js**\n* **cpc.wasm**\n\nLicencia [**\"zlib/libpng\"**](https://opensource.org/licenses/Zlib) Copyright (c) 2018 Andre Weissflog\n\n## Disco 3\" CF-2 (qram.dsk)\nEl soporte para el almacenamiento del programa de gestión y los archivos de datos fue un [disco de 3\" CF-2](https://www.cpcwiki.eu/index.php/CF2_Compact_Floppy_Disc), ya que el CPC6128 integra internamente tanto la controladora [\"FDC µPD765\"](https://www.cpcwiki.eu/index.php/765_FDC) como su correspondiente disquetera fabricada por Hitachi.\n\n![QRAM 1989 DISK](images/QRAM.png)\n\nEl sistema operativo de disco del Amstrad CPC [AMSDOS](https://es.wikipedia.org/wiki/AMSDOS) soporta tres formatos estandar para los discos:\n* **CPC-DATA**: 40 pistas, con 9 sectores por pista de 512 bytes, 180 Kbytes en cada cara del disco, de los cuales son utilizables 178 Kb.\n* **CPC-SYSTEM**: 40 pistas, con 9 sectores por pista de 512 bytes, 180 Kbytes en cada cara del disco, pero 2 pistas se reservan para el [CP/M](https://es.wikipedia.org/wiki/CP/M), por lo que solo son utilizables 169 Kb.\n* **CPC-IBM**: 40 pistas, con 8 sectores por pista de 512 bytes, 160 Kbytes en cada cara del disco, son utilizables 158 Kb con compatibilidad con [CP/M-86](https://es.wikipedia.org/wiki/CP/M-86).\n\nPara la lectura del disco original se emplea la misma disquetera modelo [EME-155](https://www.cpcwiki.eu/index.php/Amstrad_FDD_part) utilizada en 1989, junto con una controladora [USB GreaseWeazle V4](https://github.com/keirf/greaseweazle/wiki/Greaseweazle-Models).\n\nEl script en Python que maneja la GreaseWeazle lee la información del disco sin procesar, almacenándola en formato [\"SuperCard Pro\"](https://www.cbmstuff.com/downloads/scp/scp_image_specs.txt) como un **\"raw flux stream\"**.\n\n`$ gw read --revs 5 --rpm 300 --drive B --tracks=\"c=0-39:h=0\" qram.scp`\n\nLa generación de una imagen de disco [**DSK**](https://www.cpcwiki.eu/index.php/Format:DSK_disk_image_file_format) a partir del **SPC** se realiza mediante una adaptación del software [\"HxC Floppy Emulator Project\"](https://github.com/latchdevel/HxCFloppyImageConverter).\n\n`$ hxcfe -finput:qram.scp -conv:AMSTRADCPC_DSK -foutput:qram.dsk`\n\nExistiendo varias herramientas capaces de extraer archivos de una imagen DSK, solo [ManageDSK](https://www.cpcwiki.eu/index.php/ManageDsk) puede extraer los archivos Basic \".BAS\" en formato \"listado\".\n\n![ManageDSK](images/ManageDSK.png)\n\n## Snapshot (qram.sna) \nDado que el proceso de carga resulta tedioso, para facilitar una fácil y rápida puesta en marcha, se ha generado una instantánea \".SNA\" del sistema mediante el emulador [WinAPE v2.0 beta2](http://www.winape.net/) del tipo \"Version 3, First 128K (uncompressed)\" con el programa de gestión cargado en memoria junto con un archivo de fichas y aplicado un filtro genérico, posibilitando acceder al sistema con todo su contenido de forma inmediata.\n\nHaz click aquí [**Amstrad CPC6128 QRAM SNA**](https://latchdevel.github.io/qram1989/index.html?file=qram.sna) para acceder.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flatchdevel%2Fqram1989","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flatchdevel%2Fqram1989","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flatchdevel%2Fqram1989/lists"}