Files
giochino-amiga/main_test.s
2025-12-01 18:23:49 +01:00

63 lines
1.3 KiB
ArmAsm

; Test version - Load game.bin manually from Workbench CLI
; This helps us verify if the game code itself works
ORG $20000
START:
; Don't call Forbid - we're running from CLI
; move.l 4.w,a6
; jsr -132(a6)
; Save old view
lea CUSTOM,a6
move.w INTENAR(a6),d0
or.w #$8000,d0
move.w d0,OldIntEna
move.w DMACONR(a6),d0
or.w #$8000,d0
move.w d0,OldDmaCon
; Disable all interrupts and DMA
move.w #$7FFF,INTENA(a6)
move.w #$7FFF,DMACON(a6)
move.w #$7FFF,INTREQ(a6)
; Initialize Subsystems
bsr InitGraphics
bsr InitGameLogic
; Enable DMA for Copper, Bitplanes, Blitter
move.w #$83C0,DMACON(a6) ; Set DMAEN, BPLEN, COPEN, BLTEN
MAIN_LOOP:
; Wait for vertical blank
bsr WaitVBlank
; 1. Read Input
bsr ReadInput
; 2. Update Game Logic
bsr UpdateGame
; 3. Check for Exit (Left Mouse Button for now)
btst #6,CIAA
bne.s MAIN_LOOP
EXIT:
; Restore System
lea CUSTOM,a6
move.w #$7FFF,DMACON(a6)
move.w #$7FFF,INTENA(a6)
move.w OldDmaCon,DMACON(a6)
move.w OldIntEna,INTENA(a6)
; Enable multitasking
move.l 4.w,a6
jsr -138(a6) ; Permit
moveq #0,d0 ; Return code 0
rts
; ... rest of the code stays the same