![]() ![]() ![]() ![]() Cpc Online CpcAlive instalador para Windows y DosBox Documentación CpcAlive ![]() |
Acceso
a la memoria del CPC desde el entorno X86 El ordenador Cpc dispone de 128Ko de memoria divididas en dos bancos de 64Ko cada una llamadas deposita 0 y banco 1. El banco 0 está constituido por los cuatro bloques de 16Ko numerados de 0 a 3. El banco 1 utiliza los bloques números 4 a 7. El emulador completa a estos dos bancos con 248 bloques suplementarios disponibles numerados pues de 8 a 255. El acceso a la memoria de la Cpc depende del tamaño del módulo. En efecto, se realizan los módulos se encargan y al mismo sitio que la memoria de la Cpc (segmento Ems). La primera dirección Cpc accesible se indica a la dirección 0216h de la tabla de instalación del módulo. En el caso de un módulo que utiliza cuatro bloques, el valor 0 indica que ninguna dirección es accesible. Nota: El número de bloques utilizados por el último módulo estado cargado puede obtenerse a partir del BASIC de esta manera: info$=string$(18,"X"):|INFO,@info$:NbrBlocs=val("&"+mid$(info$,17,2)):PRINT NbrBlocs Es posible elegir al banco que se desea conectarse en los bloques disponibles tras el módulo a través el octeto de dirección 0215h de la tabla de instalación del módulo. El valor -1 indica que no hay nada para conectar con el módulo, el valor 0 conecta al banco 0 del Cpc en los bloques disponibles, el valor 1 conecta al banco 1 del Cpc en los bloques disponibles. Por ejemplo, si desea conectar el banco 1 tras el módulo poniendo el valor 1 en el octeto de dirección 0215h de la tabla de instalación del módulo, y si la primera dirección Cpc accesible indicada es 08000h, los dos últimos bloques del banco 1 se conectarán tras el módulo, a la próxima llamada del módulo. También es posible elegir la cantidad de bloques para conectar del módulo a través el octeto de dirección 0228h de la tabla de instalación del módulo. El valor 1 por ejemplo, se conectará a los tres últimos bloques del Banco 0 o 1 después de la parte conectada del módulo. Cambios serán efectivos en la próxima convocatoria del módulo o mediante una llamada a las función 4 del interrupción 018h (valor 4 en registro AH). El valor 2 en el octeto de dirección 0215h de la tabla de instalación del módulo conecta los bancos tras el módulo indicando el número del primer bloque del banco que debe conectarse en el octeto de dirección 0213h de la tabla de instalación. Por ejemplo si pone el valor 3 en el octeto de dirección 0213h de la tabla de instalación y si la primera dirección Cpc accesible indicada es 04000h, los bloques 3,4 y 5 de los bancos 0 y 1 se conectarán tras el módulo. El valor 7 en el octeto de dirección 0213h de la tabla de instalación conectará el último bloque del banco 1 seguido de los bloques 8 y 9 de la memoria adicional. También es posible como anteriormente usar el octeto de dirección 0228h de la tabla de instalación del módulo para cambiar el tamaño del módulo. Cambios serán efectivos en la próxima convocatoria del módulo o mediante una llamada a las función 4 del interrupción 018h. El valor -2 en el octeto de la dirección 0215h de la tabla de instalación del módulo conecta los bloques de otro módulo. Los bloques superiores del módulo se conectarán entonces tras el módulo que llamará. Basta para eso de indicar el número de módulo complementario a través del octeto de dirección 0213h de la tabla de instalación. También es posible como anteriormente usar el octeto de dirección 0228h de la tabla de instalación del módulo para cambiar el tamaño del módulo de llamada. Cambios serán efectivos en la próxima convocatoria del módulo o mediante una llamada a las función 4 del interrupción 018h. El emulador tratada de manera particular el banco 0 a causa entre otras cosas de la gestión de la pantalla Cpc. Es pues preferible utilizar la interrupción 018H del sistema DOS programado a tal efecto para los accesos en escritura. A través esta interrupción, los accesos en lectura así como en escritura son accesibles en la totalidad de la memoria, cualquiera que sea el tamaño del módulo conectado. Aquí se detallan los valores de AH a transmitir para acceder a las distintas funciones de esta interrupción. |