Konwersja numeru banku MEMAC B na PORTB i odwrotnie

From Atariki

Revision as of 14:13, 22 kwi 2009; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

Rdzeń FX VBXE może emulować wewnętrzne rozszerzenie pamięci Rambo XL. W takiej sytuacji część (wyższe 256 KB) pamięci VRAM jest widziana przez komputer jako 16 banków rozszerzenia pamięci RAM, którym steruje rejestr PORTB.

Kolejne banki pamięci Rambo XL odpowiadają bankom MEMAC B o numerach od 16 do 31, w następujący sposób:

MEMAC B $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A $1B $1C $1D $1E $1F
PORTB   $83 $87 $8B $8F $A3 $A7 $AB $AF $C3 $C7 $Cb $CF $E3 $E7 $EB $EF

W celu konwersji można skorzystać z tabelki jak powyżej albo, jeśli ważny jest raczej rozmiar programu niż czas jego wykonywania się, z poniższych procedur.

Konwersja MEMAC B na PORTB

; MEMAC B -> PORTB
; we: nr banku MEMAC B w akumulatorze
; wy: kod PORTB w akumulatorze

   ora #%11110000
   lsr 
   php
   lsr
   php
   asl
   plp
   rol
   plp
   rol
   rol
   rol

Konwersja PORTB na MEMAC B

; PORTB -> MEMAC B
; we: kod PORTB w akumulatorze
; wy: nr banku MEMAC B w akumulatorze

   and #%01111111
   lsr
   lsr
   lsr
   php
   lsr
   php
   lsr
   plp
   rol
   plp
   rol
Personal tools