dimanche 19 octobre 2008

Code INIT

Voici un exemple de ce que pourrait être votre fichier d'init, un bon début pour coder une démo sur PC-Engine. Pour rappel la Bank $00 est toujours et automatiquement mappée sur le Mpr7 au démarrage.
Bank $FF (IO Port) est généralement mappée sur Mpr0 et Bank $F8 (8ko Ram) sur Mpr1.

Pour résumer voici ce qu'effectuent ces quelques lignes :

-Désactive les interruptions
-Initialise le processeur en haute vitesse
-Initialise le vecteur de reset $FFFE
-Map les banks $00, $F8, et $01 à $05
-Initialise les 8ko de ram
-Initilaise le pointeur de pile à $FF

; ----
; STARTUP.ASM
; ----

.bank 0
.org $FFFE
.dw _reset

.org $E000
.code

_reset:
sei
csh ; clock set high

cld

; MPR0 $0000-$1FFF BANK $FF
; MPR1 $2000-$3FFF BANK $F8
; MPR2 $4000-$5FFF BANK $01
; MPR3 $6000-$7FFF BANK $02
; MPR4 $8000-$9FFF BANK $03
; MPR5 $A000-$BFFF BANK $04
; MPR6 $C000-$DFFF BANK $05
; MPR7 $E000-$FFFF BANK $00

lda #$FF
tam #0

lda #$F8
tam #1

stz $2000 ;init 8k ram
tii $2000,$2001,$1FFF

ldx #$FF ;init the stack pointer to 21FF
txs

lda #$01
tam #2

inc a
tam #3

inc a
tam #4

inc a
tam #5

inc a
tam #6

jmp main

0 commentaires: