El 6128 tiene, como todo el mundo sabe, un segundo banco de memoria de 64K, el cual, por desgracia, no se puede usar desde Basic. Pero sí puede emplearse como disco RAM, y en el artículo os explicamos cómo hacerlo. BANK-128 es un programa que permite gestionar desde Basic o código máquina las 64K extras para diversos usos. Este programa incluye en el sistema cuatro comandos del tipo RSX que pueden manipular el banco cómodamente. Dos de estos cuatro comandos necesitan determinados parámetros para poder operar , devolviendo un mensaje de error si se omite alguno de ellos o si la operación no se puede realizar con los parámetros introducidos. La memoria del CPC 6128 está dividida en dos bancos de 64K cada uno, el primero es el normalmente usado para Basic y el segundo necesita ciertas operaciones para ser utilizado. El segundo banco lo podemos considerar dividido en cuatro bloques de 16K cada uno, y sólo se podrá acceder a él activando el bloque que necesitamos en un momento dado, es decir, al utilizar el banco extra no podremos tenerlo activado en su totalidad sino que lo utilizaremos activando uno de sus cuatro bloques cuando lo necesitemos. El bloque activado solapa a la RAM de Basic, quedando en la zona de memoria #4000 - #7FFF, es decir, el bloque activado sustituye el segundo bloque de 64K de la RAM de Basic, pudiendo utilizarlo en este momento. Cuando no lo necesitemos, lo desactivaremos, volviendo a ser funcional la RAM de Basic anteriormente solapada. La subrutina activadora de bloques es la #BD5B; antes de saltar a ella cargaremos el acumulador con un valor u otro, dependiendo del bloque a activar: A=0 desactiva cualquier bloque A=4 activa el bloque 1 A=5 activa el bloque 2 A=6 activa el bloque 3 A=7 activa el bloque 4 Los comandos son los siguientes - |SAVE: Graba la zona #40—#B0FF en el segundo banco de 64K. Este comando es útil cuando queremos salvar de forma rápida un programa determinado para utilizarlo más adelante sin necesidad de volverlo a cargar del disco.
También es útil para el programador de código máquina al que le interesa salvar un programa antes de acceder a él para comprobar su funcionamiento. Si pulsamos CONTROL, SHIFT y ESC, aunque el sistema es inicializa-do, la RAM EXTRA no lo es, con lo que nuestro programa todavía permanece en ella, pu-diendo recuperarlo si cargamos BANK-128 de nuevo.|SAVE guarda también las variaciones en el banco EXTRA. - |LOAD: Hace la función contraria que |SAVE, cargando en el bloque #40 - #B0FF los contenidos del segundo banco, que previamente habían sido introducidos en éste mediante la orden |SAVE.
- |BLOCK , n: Activa en la zona #4000-#7FFF el bloque n de l6K del banco extra.
n = 1 bloque 1 n = 2 bloque 2 n = 3 bloque 3 n = 4 bloque 4 Para desactivar cualquiera de estos bloques utilizaremos |BLOCK,0- |MOVE,n1,n2,n3: Se utiliza para realizar rápidamente desplazamientos de memoria.
n1 =dirección origen n2=dirección destino n3 = número de bytes a desplazar Subrutinas y desarrollo del programa EXP: Produce una expansión del bloque #4000—#7FFF hacia direcciones más altas y más bajas de la siguiente forma: 0 2000 8000 A000 1000 4000 6000 7FFFCMP: Realiza la operación inversa a EXP, pasando lo expandido a la zona #4000 - #7FFF.Nota: el resto del progama está comentado en el listado del programa adjunto a estas hojas. Función general EXP: expande CMP: comprime LOAD: comando RESET: reestablece los contenidos de las zonas #8000—#B0FF y #40— #3FFF SAVE: comando BLOCK: comando CONT: salto relativo TABLE: direcciones de mensajes ILEGAL: direcciones de mensajes INIT: direcciones de mensajes DOWN: ejecuta un CHR$(10) y CHR$(13) PRINT: imprime mensajes en pantalla BUC: inicio de bucle en PRINT ERR: visualiza mensaje de error MOVE: comando NDO: saltos relativos DO: saltos relativos OUT: imprime mensaje de error BEGIN: inicialización del programa COMMAN: tablas de los comandos RSX ORDERS: tablas de los comandos RSX El programa principal es BANK128.BIN, que se encuentra en código máquina. Este va acompañado de un cargador Basic que imprime información y por supuesto, carga BANK128.BIN, haciendo un CALL &A48F que es la dirección de BEGIN. El nombre del cargador es BANK-128.BAS, pero se puede prescindir de él cuando no se quiere perder un programa Basic que podamos tener en memoria tecleando lo siguiente: LOAD "BANK128.BIN" MEMORY &A2FF: CALL &A48FLa única función de BANK-128 (el cargador Basic) es imprimir información y hacer las operaciones indicadas arriba.BANK128 permite salvar varios programas Basic en el banco extra siempre y cuando éstos no tienen más de 16K. La forma de hacerlo es la siguiente: |BLOCK, 1 |MOVE&40,&4000,&3FC0:desplaza el programa al bloque 1|BLOCK,0desactiva el bloque 1 Para recuperarlo:|BLOCK,1 |MOVE,&4000,&40,&3FC0 |BLOCK,0Podríamos almacenar tres programas más, situándolos en los tres bloques restantes.SA
| ★ AMSTRAD CPC ★ DOWNLOAD ★ |
|
CPCrulez[Content Management System] v8.732-desktop/c Page créée en 263 millisecondes et consultée 663 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|
|