NTSC/PAL update by Stefan Haubenthal.
git-svn-id: svn://svn.cc65.org/cc65/trunk@3831 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 2003-04-14
|
; Ullrich von Bassewitz, 2003-04-14
|
||||||
|
; Stefan Haubenthal, 2007-01-21
|
||||||
;
|
;
|
||||||
; Screen size function
|
; Screen size function
|
||||||
;
|
;
|
||||||
@@ -7,14 +8,17 @@
|
|||||||
.export screensize
|
.export screensize
|
||||||
|
|
||||||
.include "nes.inc"
|
.include "nes.inc"
|
||||||
|
.include "get_tv.inc"
|
||||||
|
|
||||||
|
|
||||||
.proc screensize
|
.proc screensize
|
||||||
|
|
||||||
|
jsr _get_tv
|
||||||
ldx #charsperline
|
ldx #charsperline
|
||||||
ldy #screenrows
|
ldy #screenrows
|
||||||
rts
|
cmp #TV::NTSC
|
||||||
|
beq nopal
|
||||||
|
dey
|
||||||
|
nopal: rts
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
.export _exit
|
.export _exit
|
||||||
.import initlib, donelib, callmain
|
.import initlib, donelib, callmain
|
||||||
.import push0, _main, zerobss
|
.import push0, _main, zerobss, copydata
|
||||||
.import ppubuf_flush
|
.import ppubuf_flush
|
||||||
|
|
||||||
; Linker generated symbols
|
; Linker generated symbols
|
||||||
@@ -19,7 +19,6 @@
|
|||||||
.import __STARTUP_LOAD__,__STARTUP_RUN__, __STARTUP_SIZE__
|
.import __STARTUP_LOAD__,__STARTUP_RUN__, __STARTUP_SIZE__
|
||||||
.import __CODE_LOAD__,__CODE_RUN__, __CODE_SIZE__
|
.import __CODE_LOAD__,__CODE_RUN__, __CODE_SIZE__
|
||||||
.import __RODATA_LOAD__,__RODATA_RUN__, __RODATA_SIZE__
|
.import __RODATA_LOAD__,__RODATA_RUN__, __RODATA_SIZE__
|
||||||
.import __DATA_LOAD__,__DATA_RUN__, __DATA_SIZE__
|
|
||||||
|
|
||||||
.include "zeropage.inc"
|
.include "zeropage.inc"
|
||||||
.include "nes.inc"
|
.include "nes.inc"
|
||||||
@@ -57,7 +56,7 @@
|
|||||||
; | ..-EOF | | CHR-ROM pages (in ascending order). |
|
; | ..-EOF | | CHR-ROM pages (in ascending order). |
|
||||||
; +--------+------+------------------------------------------+
|
; +--------+------+------------------------------------------+
|
||||||
|
|
||||||
.byte $4e,$45,$53,$1a ; "nes\n"
|
.byte $4e,$45,$53,$1a ; "NES"^Z
|
||||||
.byte 2 ; ines prg - Specifies the number of 16k prg banks.
|
.byte 2 ; ines prg - Specifies the number of 16k prg banks.
|
||||||
.byte 1 ; ines chr - Specifies the number of 8k chr banks.
|
.byte 1 ; ines chr - Specifies the number of 8k chr banks.
|
||||||
.byte %00000011 ; ines mir - Specifies VRAM mirroring of the banks.
|
.byte %00000011 ; ines mir - Specifies VRAM mirroring of the banks.
|
||||||
@@ -96,43 +95,8 @@ start:
|
|||||||
|
|
||||||
jsr zerobss
|
jsr zerobss
|
||||||
|
|
||||||
; Copy the .data segment to RAM
|
; initialize data
|
||||||
|
jsr copydata
|
||||||
lda #<(__DATA_LOAD__)
|
|
||||||
sta ptr1
|
|
||||||
lda #>(__DATA_LOAD__)
|
|
||||||
sta ptr1+1
|
|
||||||
lda #<(__DATA_RUN__)
|
|
||||||
sta ptr2
|
|
||||||
lda #>(__DATA_RUN__)
|
|
||||||
sta ptr2+1
|
|
||||||
|
|
||||||
ldx #>(__DATA_SIZE__)
|
|
||||||
|
|
||||||
@l2: beq @s1 ; no more full pages
|
|
||||||
|
|
||||||
; copy one page
|
|
||||||
ldy #0
|
|
||||||
@l1: lda (ptr1),y
|
|
||||||
sta (ptr2),y
|
|
||||||
iny
|
|
||||||
bne @l1
|
|
||||||
|
|
||||||
inc ptr1+1
|
|
||||||
inc ptr2+1
|
|
||||||
dex
|
|
||||||
bne @l2
|
|
||||||
|
|
||||||
; copy remaining bytes
|
|
||||||
@s1:
|
|
||||||
|
|
||||||
; copy one page
|
|
||||||
ldy #0
|
|
||||||
@l3: lda (ptr1),y
|
|
||||||
sta (ptr2),y
|
|
||||||
iny
|
|
||||||
cpy #<(__DATA_SIZE__)
|
|
||||||
bne @l3
|
|
||||||
|
|
||||||
; setup the stack
|
; setup the stack
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user