mirror of
https://github.com/cc65/cc65.git
synced 2024-12-25 17:29:50 +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 __viddma: 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
|
||||
__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 "extzp.inc"
|
||||
|
||||
.include "tgi-kernel.inc"
|
||||
.include "tgi-mode.inc"
|
||||
.include "tgi-error.inc"
|
||||
|
||||
.include "lynx.inc"
|
||||
.include "extzp.inc"
|
||||
|
||||
.macpack generic
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; Header. Includes jump table and constants.
|
||||
|
||||
@ -42,14 +41,17 @@
|
||||
.byte 8 ; System font Y size
|
||||
.res 4, $00 ; Reserved for future extensions
|
||||
|
||||
; Next comes the jump table. All entries must be valid and may point to an RTS
|
||||
; for test versions (function not implemented).
|
||||
; Next comes the jump table. Currently all entries must be valid and may point
|
||||
; 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 UNINSTALL
|
||||
.addr INIT
|
||||
.addr DONE
|
||||
.addr GETERROR
|
||||
.addr GETERROR
|
||||
.addr CONTROL
|
||||
.addr CLEAR
|
||||
.addr SETVIEWPAGE
|
||||
@ -67,6 +69,7 @@
|
||||
.addr OUTTEXT
|
||||
.addr 0 ; IRQ entry is unused
|
||||
|
||||
|
||||
; ------------------------------------------------------------------------
|
||||
; Data.
|
||||
|
||||
@ -323,6 +326,7 @@ CLEAR: lda #<cls_sprite
|
||||
; from the new buffer. This is usually noticed by the user.
|
||||
|
||||
SETVIEWPAGE:
|
||||
cmp #1
|
||||
beq @L1 ; page == maxpages-1
|
||||
ldy #<$de20 ; page 0
|
||||
ldx #>$de20
|
||||
@ -357,6 +361,7 @@ SETVIEWPAGE:
|
||||
;
|
||||
|
||||
SETDRAWPAGE:
|
||||
cmp #1
|
||||
beq @L1 ; page == maxpages-1
|
||||
lda #<$de20 ; page 0
|
||||
ldx #>$de20
|
||||
@ -487,7 +492,13 @@ GETPIXEL:
|
||||
sta ptr1+1
|
||||
|
||||
ldx #0
|
||||
lda #15
|
||||
sta MAPCTL
|
||||
lda (ptr1),y
|
||||
tay
|
||||
lda #$0c
|
||||
sta MAPCTL
|
||||
tya
|
||||
plp
|
||||
bcc @L1
|
||||
and #$f
|
||||
@ -506,8 +517,7 @@ GETPIXEL:
|
||||
; Must set an error code: NO
|
||||
;
|
||||
|
||||
.data
|
||||
|
||||
.data
|
||||
line_sprite:
|
||||
.byte 0 ; Will be replaced by the code
|
||||
.byte %00110000
|
||||
@ -527,6 +537,7 @@ line_tilt:
|
||||
line_c:
|
||||
.byte $e
|
||||
|
||||
.code
|
||||
LINE:
|
||||
lda DRAWINDEX
|
||||
sta line_c
|
||||
@ -550,7 +561,7 @@ LINE:
|
||||
lda Y1
|
||||
ldx Y2
|
||||
sta Y2
|
||||
stx Y1
|
||||
stx Y1
|
||||
lda Y1+1
|
||||
ldx Y2+1
|
||||
sta Y2+1
|
||||
@ -574,7 +585,7 @@ LINE:
|
||||
lda #0
|
||||
sbc Y2+1
|
||||
sta Y2+1
|
||||
lda #%00010000 ; Vertical flip
|
||||
lda #%00010000 ; Vertical flip
|
||||
sta line_sprite
|
||||
@L2:
|
||||
lda X1
|
||||
@ -598,7 +609,7 @@ LINE:
|
||||
lda X2
|
||||
sbc X1
|
||||
ina
|
||||
sta MATHF
|
||||
sta MATHF
|
||||
stz MATHE
|
||||
@L3:
|
||||
lda SPRSYS
|
||||
@ -658,7 +669,7 @@ BAR: lda X1
|
||||
lda X2
|
||||
sec
|
||||
sbc X1
|
||||
ina
|
||||
ina
|
||||
sta bar_sx+1
|
||||
lda Y2
|
||||
sec
|
||||
@ -684,7 +695,7 @@ BAR: lda X1
|
||||
; To do a circle please add this to your C program
|
||||
|
||||
;int sintbl[9] = {
|
||||
; 0, // 0 degrees
|
||||
; 0, // 0 degrees
|
||||
; 3196, // 11.25 degrees
|
||||
; 6270, // 22.5 degrees
|
||||
; 9102, // 33.75 degrees
|
||||
@ -780,7 +791,7 @@ OUTTEXT:
|
||||
lda Y1+1
|
||||
sta text_y+1
|
||||
|
||||
ldy #-1 ; Calculate string length
|
||||
ldy #-1 ; Calculate string length
|
||||
@L2:
|
||||
iny
|
||||
lda (STRPTR),y
|
||||
@ -882,25 +893,25 @@ text_c:
|
||||
; The Font
|
||||
; 96 characters from ASCII 32 to 127
|
||||
; 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:
|
||||
; VERSAIL
|
||||
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ;32
|
||||
.byte $FF, $E7, $FF, $FF, $E7, $E7, $E7, $E7 ;33
|
||||
.byte $FF, $FF, $FF, $FF, $FF, $99, $99, $99 ;34
|
||||
.byte $FF, $99, $99, $00, $99, $00, $99, $99 ;35
|
||||
.byte $FF, $E7, $83, $F9, $C3, $9F, $C1, $E7 ;36
|
||||
.byte $FF, $B9, $99, $CF, $E7, $F3, $99, $9D ;37
|
||||
.byte $FF, $C0, $99, $98, $C7, $C3, $99, $C3 ;38
|
||||
.byte $FF, $FF, $FF, $FF, $FF, $E7, $F3, $F9 ;39
|
||||
.byte $FF, $F3, $E7, $CF, $CF, $CF, $E7, $F3 ;40
|
||||
.byte $FF, $CF, $E7, $F3, $F3, $F3, $E7, $CF ;41
|
||||
.byte $FF, $FF, $99, $C3, $00, $C3, $99, $FF ;42
|
||||
.byte $FF, $FF, $E7, $E7, $81, $E7, $E7, $FF ;43
|
||||
.byte $CF, $E7, $E7, $FF, $FF, $FF, $FF, $FF ;44
|
||||
.byte $FF, $FF, $FF, $FF, $81, $FF, $FF, $FF ;45
|
||||
.byte $FF, $E7, $E7, $FF, $FF, $FF, $FF, $FF ;46
|
||||
.byte $FF, $9F, $CF, $E7, $F3, $F9, $FC, $FF ;47
|
||||
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ;32
|
||||
.byte $FF, $E7, $FF, $FF, $E7, $E7, $E7, $E7 ;33
|
||||
.byte $FF, $FF, $FF, $FF, $FF, $99, $99, $99 ;34
|
||||
.byte $FF, $99, $99, $00, $99, $00, $99, $99 ;35
|
||||
.byte $FF, $E7, $83, $F9, $C3, $9F, $C1, $E7 ;36
|
||||
.byte $FF, $B9, $99, $CF, $E7, $F3, $99, $9D ;37
|
||||
.byte $FF, $C0, $99, $98, $C7, $C3, $99, $C3 ;38
|
||||
.byte $FF, $FF, $FF, $FF, $FF, $E7, $F3, $F9 ;39
|
||||
.byte $FF, $F3, $E7, $CF, $CF, $CF, $E7, $F3 ;40
|
||||
.byte $FF, $CF, $E7, $F3, $F3, $F3, $E7, $CF ;41
|
||||
.byte $FF, $FF, $99, $C3, $00, $C3, $99, $FF ;42
|
||||
.byte $FF, $FF, $E7, $E7, $81, $E7, $E7, $FF ;43
|
||||
.byte $CF, $E7, $E7, $FF, $FF, $FF, $FF, $FF ;44
|
||||
.byte $FF, $FF, $FF, $FF, $81, $FF, $FF, $FF ;45
|
||||
.byte $FF, $E7, $E7, $FF, $FF, $FF, $FF, $FF ;46
|
||||
.byte $FF, $9F, $CF, $E7, $F3, $F9, $FC, $FF ;47
|
||||
.byte $FF, $C3, $99, $99, $89, $91, $99, $C3 ;48
|
||||
.byte $FF, $81, $E7, $E7, $E7, $C7, $E7, $E7 ;49
|
||||
.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, $C3, $99, $9F, $9F, $9F, $99, $C3 ;3
|
||||
.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, $C3, $99, $99, $91, $9F, $99, $C3 ;7
|
||||
.byte $FF, $99, $99, $99, $81, $99, $99, $99 ;8
|
||||
|
Loading…
Reference in New Issue
Block a user