Aqui no hay ninguna captura. Todas las imagenes estan dibujadas desde los bytes de la cinta, ejecutando en Python las mismas rutinas de volcado que corre el Z80. Los listados y las cifras se reproducen con make, y el reensamblado devuelve la cinta entera byte a byte.
El fichero CARGA ocupa de 0xC000 a 0xD3DF, pero su direccion de ejecucion es 0xD302, no 0xD300. La razon esta en esos dos bytes: valen 69 D3, o sea la palabra 0xD369, que es el bucle que lee un bloque de cinta.
La primera parte del juego termina con ld hl,(0xD300) / push hl / ret en 0x5CC2, y asi vuelve al cargador a pedir la segunda sin llevar la direccion escrita en su propio codigo. El cargador sobrevive a los dos programas, porque ningun bloque de cinta pasa de 0xD2FF.
La cinta trae cuatro ficheros: una linea de BASIC, el BIN CARGA, y dos bloques sin cabecera de 30.472 y 30.467 bytes. Esos dos no los lee la BIOS: los lee a mano el bucle de 0xD369 con TAPION y TAPIN, byte a byte, y los reparte en tres bytes de sincronia, 0x2400 bytes a 0x4000 y 0x5300 bytes a 0x8000.
Las dos mitades del juego ocupan por tanto exactamente las mismas direcciones en momentos distintos. Por eso el proyecto son cinco listados y no uno: carga, p1bajo, p1alto, p2bajo y p2alto.
Aqui no hay pantallas: hay un corte longitudinal del barco de 128 x 52 baldosas -1024 x 416 pixeles-, con la cubierta, tres mastiles con sus velas y sus escalas de jarcia, y tres crujias de camarotes y bodega por debajo.
Los 0x1A00 bytes van de 0x9000 a 0xA9FF, y lo que dice que el ancho es 128 es el paso de 0x80 entre filas del bucle de 0x4285. El juego recorta de ese plano una ventana de 32x24 con scroll en las dos direcciones.
Las cinco mercancias -agua, vino, comida, madera y tela- se compran en el almacen del muelle gastando una unidad de las dieciseis de DINERO. Pero el numero no se queda en un contador: la rutina de 0x4F60 de la segunda parte estiba la carga en la bodega, un monton por mercancia y tantas piezas como unidades queden.
Dibujadas, las baldosas de cada monton son toneles de duelas (0xBF-0xC4), sacos atados (0xB9-0xBE), tablones apilados (0xC6-0xC8) y rollos de tela (0xC5, 0xC9 y 0xCA).
La cinta graba bloques de tamano fijo -0x2400 y 0x5300 bytes- pase lo que pase, pero el programa de la primera parte acaba en 0x5F9F y el de la segunda en 0x5C3F. Detras se grabo lo que hubiera en memoria. Son 7.564 bytes de 66.016 (11,5 %) que estan identificados y contados, pero que ninguna instruccion toca; 4.534 de ellos son cola de bloque.
Uno de esos restos se puede leer: de 0xCC56 a 0xD2FF, la primera parte lleva 1.706 bytes identicos al fichero CARGA salvo un byte. Es la pantalla de carga, todavia puesta en memoria cuando se grabo el bloque.
Descodificada la tabla de nombres de 0xD000, en el margen derecho de la pantalla de carga se lee en vertical "OMIKRON Softwarwe", con dos w. La errata esta en la cinta, no en este desensamblado, y hay un test que la fija.
Las letras no son ASCII: son indices de baldosa, y van en dos alfabetos distintos dentro de la misma tabla (0x00-0x19 y 0x20-0x39, dos juegos para las mismas veintiseis letras), mas seis baldosas (0x3A-0x3F) para las mayusculas grandes de dos baldosas de alto con las que empiezan "El", "Descubrimiento" y "America".
Debajo de cada imagen esta de donde sale y que se esta viendo.
CARGA. Es la unica pieza de la cinta que nombra a la casa, y lo hace con una errata: OMIKRON Softwarwe, en vertical por el margen derecho