mirror of
https://github.com/cc65/cc65.git
synced 2025-01-03 01:31:55 +00:00
New code from Karri
git-svn-id: svn://svn.cc65.org/cc65/trunk@3316 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
18b154e6b1
commit
e506719f43
@ -12,5 +12,19 @@
|
|||||||
.global __iodir: zp
|
.global __iodir: zp
|
||||||
.global __viddma: zp
|
.global __viddma: zp
|
||||||
.global __sprsys: zp
|
.global __sprsys: zp
|
||||||
|
.global _abc_score_ptr0: zp
|
||||||
|
.global _abc_score_ptr1: zp
|
||||||
|
.global _abc_score_ptr2: zp
|
||||||
|
.global _abc_score_ptr3: zp
|
||||||
|
.global _FileEntry: zp
|
||||||
|
.global _FileStartBlock: zp
|
||||||
|
.global _FileBlockOffset: zp
|
||||||
|
.global _FileExecFlag: zp
|
||||||
|
.global _FileDestAddr: zp
|
||||||
|
.global _FileFileLen: zp
|
||||||
|
.global _FileCurrBlock: zp
|
||||||
|
.global _FileBlockByte: zp
|
||||||
|
.global _FileDestPtr: zp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,4 +16,23 @@ __iodir: .res 1
|
|||||||
__viddma: .res 1
|
__viddma: .res 1
|
||||||
__sprsys: .res 1
|
__sprsys: .res 1
|
||||||
|
|
||||||
|
; ------------------------------------------------------------------------
|
||||||
|
; sound effect pointers for multitimbral Lynx music hardware
|
||||||
|
_abc_score_ptr0: .res 2
|
||||||
|
_abc_score_ptr1: .res 2
|
||||||
|
_abc_score_ptr2: .res 2
|
||||||
|
_abc_score_ptr3: .res 2
|
||||||
|
|
||||||
|
; ------------------------------------------------------------------------
|
||||||
|
; Filesystem variables needed for reading stuff from the Lynx cart
|
||||||
|
_FileEntry: ; The file directory entry is 8 bytes
|
||||||
|
_FileStartBlock: .res 1
|
||||||
|
_FileBlockOffset: .res 2
|
||||||
|
_FileExecFlag: .res 1
|
||||||
|
_FileDestAddr: .res 2
|
||||||
|
_FileFileLen: .res 2
|
||||||
|
|
||||||
|
_FileCurrBlock: .res 1
|
||||||
|
_FileBlockByte: .res 2
|
||||||
|
_FileDestPtr: .res 2
|
||||||
|
|
||||||
|
@ -13,17 +13,16 @@
|
|||||||
;
|
;
|
||||||
|
|
||||||
.include "zeropage.inc"
|
.include "zeropage.inc"
|
||||||
|
.include "extzp.inc"
|
||||||
|
|
||||||
.include "tgi-kernel.inc"
|
.include "tgi-kernel.inc"
|
||||||
.include "tgi-mode.inc"
|
.include "tgi-mode.inc"
|
||||||
.include "tgi-error.inc"
|
.include "tgi-error.inc"
|
||||||
|
|
||||||
.include "lynx.inc"
|
.include "lynx.inc"
|
||||||
.include "extzp.inc"
|
|
||||||
|
|
||||||
.macpack generic
|
.macpack generic
|
||||||
|
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; Header. Includes jump table and constants.
|
; Header. Includes jump table and constants.
|
||||||
|
|
||||||
@ -42,14 +41,17 @@
|
|||||||
.byte 8 ; System font Y size
|
.byte 8 ; System font Y size
|
||||||
.res 4, $00 ; Reserved for future extensions
|
.res 4, $00 ; Reserved for future extensions
|
||||||
|
|
||||||
; Next comes the jump table. All entries must be valid and may point to an RTS
|
; Next comes the jump table. Currently all entries must be valid and may point
|
||||||
; for test versions (function not implemented).
|
; to an RTS for test versions (function not implemented). A future version may
|
||||||
|
; allow for emulation: In this case the vector will be zero. Emulation means
|
||||||
|
; that the graphics kernel will emulate the function by using lower level
|
||||||
|
; primitives - for example ploting a line by using calls to SETPIXEL.
|
||||||
|
|
||||||
.addr INSTALL
|
.addr INSTALL
|
||||||
.addr UNINSTALL
|
.addr UNINSTALL
|
||||||
.addr INIT
|
.addr INIT
|
||||||
.addr DONE
|
.addr DONE
|
||||||
.addr GETERROR
|
.addr GETERROR
|
||||||
.addr CONTROL
|
.addr CONTROL
|
||||||
.addr CLEAR
|
.addr CLEAR
|
||||||
.addr SETVIEWPAGE
|
.addr SETVIEWPAGE
|
||||||
@ -67,6 +69,7 @@
|
|||||||
.addr OUTTEXT
|
.addr OUTTEXT
|
||||||
.addr 0 ; IRQ entry is unused
|
.addr 0 ; IRQ entry is unused
|
||||||
|
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; Data.
|
; Data.
|
||||||
|
|
||||||
@ -323,6 +326,7 @@ CLEAR: lda #<cls_sprite
|
|||||||
; from the new buffer. This is usually noticed by the user.
|
; from the new buffer. This is usually noticed by the user.
|
||||||
|
|
||||||
SETVIEWPAGE:
|
SETVIEWPAGE:
|
||||||
|
cmp #1
|
||||||
beq @L1 ; page == maxpages-1
|
beq @L1 ; page == maxpages-1
|
||||||
ldy #<$de20 ; page 0
|
ldy #<$de20 ; page 0
|
||||||
ldx #>$de20
|
ldx #>$de20
|
||||||
@ -357,6 +361,7 @@ SETVIEWPAGE:
|
|||||||
;
|
;
|
||||||
|
|
||||||
SETDRAWPAGE:
|
SETDRAWPAGE:
|
||||||
|
cmp #1
|
||||||
beq @L1 ; page == maxpages-1
|
beq @L1 ; page == maxpages-1
|
||||||
lda #<$de20 ; page 0
|
lda #<$de20 ; page 0
|
||||||
ldx #>$de20
|
ldx #>$de20
|
||||||
@ -487,7 +492,13 @@ GETPIXEL:
|
|||||||
sta ptr1+1
|
sta ptr1+1
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
lda #15
|
||||||
|
sta MAPCTL
|
||||||
lda (ptr1),y
|
lda (ptr1),y
|
||||||
|
tay
|
||||||
|
lda #$0c
|
||||||
|
sta MAPCTL
|
||||||
|
tya
|
||||||
plp
|
plp
|
||||||
bcc @L1
|
bcc @L1
|
||||||
and #$f
|
and #$f
|
||||||
@ -506,8 +517,7 @@ GETPIXEL:
|
|||||||
; Must set an error code: NO
|
; Must set an error code: NO
|
||||||
;
|
;
|
||||||
|
|
||||||
.data
|
.data
|
||||||
|
|
||||||
line_sprite:
|
line_sprite:
|
||||||
.byte 0 ; Will be replaced by the code
|
.byte 0 ; Will be replaced by the code
|
||||||
.byte %00110000
|
.byte %00110000
|
||||||
@ -527,6 +537,7 @@ line_tilt:
|
|||||||
line_c:
|
line_c:
|
||||||
.byte $e
|
.byte $e
|
||||||
|
|
||||||
|
.code
|
||||||
LINE:
|
LINE:
|
||||||
lda DRAWINDEX
|
lda DRAWINDEX
|
||||||
sta line_c
|
sta line_c
|
||||||
@ -550,7 +561,7 @@ LINE:
|
|||||||
lda Y1
|
lda Y1
|
||||||
ldx Y2
|
ldx Y2
|
||||||
sta Y2
|
sta Y2
|
||||||
stx Y1
|
stx Y1
|
||||||
lda Y1+1
|
lda Y1+1
|
||||||
ldx Y2+1
|
ldx Y2+1
|
||||||
sta Y2+1
|
sta Y2+1
|
||||||
@ -574,7 +585,7 @@ LINE:
|
|||||||
lda #0
|
lda #0
|
||||||
sbc Y2+1
|
sbc Y2+1
|
||||||
sta Y2+1
|
sta Y2+1
|
||||||
lda #%00010000 ; Vertical flip
|
lda #%00010000 ; Vertical flip
|
||||||
sta line_sprite
|
sta line_sprite
|
||||||
@L2:
|
@L2:
|
||||||
lda X1
|
lda X1
|
||||||
@ -598,7 +609,7 @@ LINE:
|
|||||||
lda X2
|
lda X2
|
||||||
sbc X1
|
sbc X1
|
||||||
ina
|
ina
|
||||||
sta MATHF
|
sta MATHF
|
||||||
stz MATHE
|
stz MATHE
|
||||||
@L3:
|
@L3:
|
||||||
lda SPRSYS
|
lda SPRSYS
|
||||||
@ -658,7 +669,7 @@ BAR: lda X1
|
|||||||
lda X2
|
lda X2
|
||||||
sec
|
sec
|
||||||
sbc X1
|
sbc X1
|
||||||
ina
|
ina
|
||||||
sta bar_sx+1
|
sta bar_sx+1
|
||||||
lda Y2
|
lda Y2
|
||||||
sec
|
sec
|
||||||
@ -684,7 +695,7 @@ BAR: lda X1
|
|||||||
; To do a circle please add this to your C program
|
; To do a circle please add this to your C program
|
||||||
|
|
||||||
;int sintbl[9] = {
|
;int sintbl[9] = {
|
||||||
; 0, // 0 degrees
|
; 0, // 0 degrees
|
||||||
; 3196, // 11.25 degrees
|
; 3196, // 11.25 degrees
|
||||||
; 6270, // 22.5 degrees
|
; 6270, // 22.5 degrees
|
||||||
; 9102, // 33.75 degrees
|
; 9102, // 33.75 degrees
|
||||||
@ -780,7 +791,7 @@ OUTTEXT:
|
|||||||
lda Y1+1
|
lda Y1+1
|
||||||
sta text_y+1
|
sta text_y+1
|
||||||
|
|
||||||
ldy #-1 ; Calculate string length
|
ldy #-1 ; Calculate string length
|
||||||
@L2:
|
@L2:
|
||||||
iny
|
iny
|
||||||
lda (STRPTR),y
|
lda (STRPTR),y
|
||||||
@ -882,25 +893,25 @@ text_c:
|
|||||||
; The Font
|
; The Font
|
||||||
; 96 characters from ASCII 32 to 127
|
; 96 characters from ASCII 32 to 127
|
||||||
; 8 pixels wide, 8 pixels high
|
; 8 pixels wide, 8 pixels high
|
||||||
; bit value 0 = foreground, bit value 1 = background / transparent
|
; bit value 0 = foreground, bit value 1 = background / transparent
|
||||||
font:
|
font:
|
||||||
; VERSAIL
|
; VERSAIL
|
||||||
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ;32
|
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ;32
|
||||||
.byte $FF, $E7, $FF, $FF, $E7, $E7, $E7, $E7 ;33
|
.byte $FF, $E7, $FF, $FF, $E7, $E7, $E7, $E7 ;33
|
||||||
.byte $FF, $FF, $FF, $FF, $FF, $99, $99, $99 ;34
|
.byte $FF, $FF, $FF, $FF, $FF, $99, $99, $99 ;34
|
||||||
.byte $FF, $99, $99, $00, $99, $00, $99, $99 ;35
|
.byte $FF, $99, $99, $00, $99, $00, $99, $99 ;35
|
||||||
.byte $FF, $E7, $83, $F9, $C3, $9F, $C1, $E7 ;36
|
.byte $FF, $E7, $83, $F9, $C3, $9F, $C1, $E7 ;36
|
||||||
.byte $FF, $B9, $99, $CF, $E7, $F3, $99, $9D ;37
|
.byte $FF, $B9, $99, $CF, $E7, $F3, $99, $9D ;37
|
||||||
.byte $FF, $C0, $99, $98, $C7, $C3, $99, $C3 ;38
|
.byte $FF, $C0, $99, $98, $C7, $C3, $99, $C3 ;38
|
||||||
.byte $FF, $FF, $FF, $FF, $FF, $E7, $F3, $F9 ;39
|
.byte $FF, $FF, $FF, $FF, $FF, $E7, $F3, $F9 ;39
|
||||||
.byte $FF, $F3, $E7, $CF, $CF, $CF, $E7, $F3 ;40
|
.byte $FF, $F3, $E7, $CF, $CF, $CF, $E7, $F3 ;40
|
||||||
.byte $FF, $CF, $E7, $F3, $F3, $F3, $E7, $CF ;41
|
.byte $FF, $CF, $E7, $F3, $F3, $F3, $E7, $CF ;41
|
||||||
.byte $FF, $FF, $99, $C3, $00, $C3, $99, $FF ;42
|
.byte $FF, $FF, $99, $C3, $00, $C3, $99, $FF ;42
|
||||||
.byte $FF, $FF, $E7, $E7, $81, $E7, $E7, $FF ;43
|
.byte $FF, $FF, $E7, $E7, $81, $E7, $E7, $FF ;43
|
||||||
.byte $CF, $E7, $E7, $FF, $FF, $FF, $FF, $FF ;44
|
.byte $CF, $E7, $E7, $FF, $FF, $FF, $FF, $FF ;44
|
||||||
.byte $FF, $FF, $FF, $FF, $81, $FF, $FF, $FF ;45
|
.byte $FF, $FF, $FF, $FF, $81, $FF, $FF, $FF ;45
|
||||||
.byte $FF, $E7, $E7, $FF, $FF, $FF, $FF, $FF ;46
|
.byte $FF, $E7, $E7, $FF, $FF, $FF, $FF, $FF ;46
|
||||||
.byte $FF, $9F, $CF, $E7, $F3, $F9, $FC, $FF ;47
|
.byte $FF, $9F, $CF, $E7, $F3, $F9, $FC, $FF ;47
|
||||||
.byte $FF, $C3, $99, $99, $89, $91, $99, $C3 ;48
|
.byte $FF, $C3, $99, $99, $89, $91, $99, $C3 ;48
|
||||||
.byte $FF, $81, $E7, $E7, $E7, $C7, $E7, $E7 ;49
|
.byte $FF, $81, $E7, $E7, $E7, $C7, $E7, $E7 ;49
|
||||||
.byte $FF, $81, $9F, $CF, $F3, $F9, $99, $C3 ;50
|
.byte $FF, $81, $9F, $CF, $F3, $F9, $99, $C3 ;50
|
||||||
@ -924,7 +935,7 @@ font:
|
|||||||
.byte $FF, $83, $99, $99, $83, $99, $99, $83 ;2
|
.byte $FF, $83, $99, $99, $83, $99, $99, $83 ;2
|
||||||
.byte $FF, $C3, $99, $9F, $9F, $9F, $99, $C3 ;3
|
.byte $FF, $C3, $99, $9F, $9F, $9F, $99, $C3 ;3
|
||||||
.byte $FF, $87, $93, $99, $99, $99, $93, $87 ;4
|
.byte $FF, $87, $93, $99, $99, $99, $93, $87 ;4
|
||||||
.byte $FF, $81, $9F, $9F, $87, $9F, $9F, $81 ;5
|
.byte $FF, $81, $9F, $9F, $87, $9F, $9F, $81 ;5
|
||||||
.byte $FF, $9F, $9F, $9F, $87, $9F, $9F, $81 ;6
|
.byte $FF, $9F, $9F, $9F, $87, $9F, $9F, $81 ;6
|
||||||
.byte $FF, $C3, $99, $99, $91, $9F, $99, $C3 ;7
|
.byte $FF, $C3, $99, $99, $91, $9F, $99, $C3 ;7
|
||||||
.byte $FF, $99, $99, $99, $81, $99, $99, $99 ;8
|
.byte $FF, $99, $99, $99, $81, $99, $99, $99 ;8
|
||||||
|
Loading…
Reference in New Issue
Block a user