📄 graphics.h
字号:
endm
LDrawNumS macro x,y,num
ifma 3
lda #x
sta <ox
lda #y
sta <oy
ldx #num
elseif
ifma 1
ldx #x
endif
endif
jsr Ljsr
dw updatesc_bank ; Banck No.
dw DrawNumS_bug-1
endm
LClrNum macro x,y,num
ifma 3
lda #x
sta <Lcd_ox
lda #y
sta <Lcd_oy
ldx #num
elseif
ifma 1
ldx #x
endif
endif
jsr Ljsr
dw graphics_bank ; Banck No.
dw ClrNum-1
endm
LClrNumS macro x,y,num
ifma 3
lda #x
sta <Lcd_ox
lda #y
sta <Lcd_oy
ldx #num
elseif
ifma 1
ldx #x
endif
endif
jsr Ljsr
dw graphics_bank ; Banck No.
dw ClrNumS-1
endm
; ***************************************************************************
lupdate_all_icon macro
if updatesc_bank=BankNo
jsr update_all_icon_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw update_all_icon_bug-1
endif
endm
; ***************************************************************************
lupdate_all_icon_in_test macro
if graphics_bank=BankNo
jsr update_all_icon_in_test
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw update_all_icon_in_test-1
endif
endm
;[M]-----------------------------------------------[M]
; Screen Update for text mode.
;
; Function : 更新文字画面(更新文字画面被异动的部)
; Description :
; Input argument :
; Output argument :
;
;[M]-----------------------------------------------[M]
LUpdateScreen macro immediate_data
; if graphics_bank=BankNo
; jsr UpdateScreen
if updatesc_bank=BankNo
jsr UpdateScreen_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw UpdateScreen_bug-1
endif
endm
Lupdatescreen_no1 macro immediate_data
if graphics_bank=BankNo
jsr screenupdate_no1_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw screenupdate_no1_bug-1
endif
endm
Lupdatescreen_no2 macro immediate_data
if graphics_bank=BankNo
jsr screenupdate_no2_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw screenupdate_no2_bug-1
endif
endm
Lupdatescreen_no3 macro immediate_data
if graphics_bank=BankNo
jsr screenupdate_no3_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw screenupdate_no3_bug-1
endif
endm
Lupdatescreen_no4 macro immediate_data
if graphics_bank=BankNo
jsr screenupdate_no4_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw screenupdate_no4_bug-1
endif
endm
Lupdatescreen_no5 macro immediate_data
if graphics_bank=BankNo
jsr screenupdate_no5_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw screenupdate_no5_bug-1
endif
endm
Lupdatescreen_no2345 macro immediate_data
if graphics_bank=BankNo
jsr screenupdate_no2345_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw screenupdate_no2345_bug-1
endif
endm
;除掉最前面的两个字符,其余部分均刷新(基本上同:Lupdatescreen)
Lupdatescreen_except2 macro immediate_data
if graphics_bank=BankNo
jsr Lupdatescreen_except2_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw Lupdatescreen_except2_bug-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw text string to graphic screen.
; [ 15 x 16 or 8 x 16 字型]
; Function : 画出(中文/英文/数字)字串到图形画面.
; Description : 1. 将 x,y 所指定的字串画到图形画面.
; 2. 字串以0当结尾.
; 3. 字串所在的位置请放置在ROM data区段(8000h~ffffh).
; Input argument : x,y : 字串所在address.
; x : high byte of string address.
; Output argument :
;
;[M]-----------------------------------------------[M]
LDrawText macro _drawtextaddress
ifma 1
ldx #>_drawtextaddress
ldy #<_drawtextaddress
endif
if updatesc_bank=BankNo
jsr DrawText_WX
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw DrawText_WX-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw text string to graphic screen.
; [ 8 x 8 字型]
; Function : 画出(英文/数字)字串到图形画面.
; Description : 1. 将 x,y 所指定的字串画到图形画面.
; 2. 字串以0当结尾.
; 3. 字串所在的位置请放置在ROM data区段(8000h~ffffh).
; Input argument : x,y : 字串所在address.
; x : high byte of string address.
; Output argument :
;[M]-----------------------------------------------[M]
LDrawText8 macro _drawtextaddress
ifma 1
ldx #>_drawtextaddress
ldy #<_drawtextaddress
endif
if graphics_bank=BankNo
dw DrawText8
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw DrawText8-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw phonetic symbol string to graphic screen.
; [ 8 x 8 字型]
; Function : 画出(英文/数字)字串到图形画面.
; Description : 1. 将 x,y 所指定的字串画到图形画面.
; 2. 字串以0当结尾.
; 3. 字串所在的位置请放置在ROM data区段(8000h~ffffh).
; Input argument : x,y : 字串所在address.
; x : high byte of string address.
; Output argument :
;[M]-----------------------------------------------[M]
LDrawPhoneticText macro _drawtextaddress
ifma 1
ldx #>_drawtextaddress
ldy #<_drawtextaddress
endif
if graphics_bank=BankNo
jsr DrawPhoneticText
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw DrawPhoneticText-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw one character to graphin screen.
; [ 15 x 16 or 8 x 16 字型]
; Function : 画出一个字元(中文/英文/数字)到图形画面.
; Description : 将 x ,(y) 字形画到图形画面.
; * 如果 x < 80h 则代表是一个英文或数字,
; 则仅将 x 输出.
; * 如果 x >= 80h 则代表是一个中文,
; 则连代将 y 一起输出.
; Input argument : x , (y) : 字元码.
; Output argument :
;[M]-----------------------------------------------[M]
LDrawChar_to_textbuffor macro _drawcharH,_drawcharL
ifma 1
ldx #_drawcharH
endif
ifma 2
ldy #_drawcharL
endif
if graphics_bank=BankNo
jsr DrawChar_to_textbuffor
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw DrawChar_to_textbuffor-1
endif
endm
; ***************************************************************************
LDrawChar macro _drawcharH,_drawcharL
ifma 1
ldx #_drawcharH
endif
ifma 2
ldy #_drawcharL
endif
if updatesc_bank=BankNo
jsr DrawChar_WX
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw DrawChar_WX-1
endif
endm
; ***************************************************************************
;[M]-----------------------------------------------[M]
; Draw character 8.
; [ 8 x 8 字型]
; Function : 画出一个字元(英文/数字)到图形画面.
; Description : 将 x 字形画到图形画面.
; Input argument : x : 字元码.
; Output argument :
;[M]-----------------------------------------------[M]
LDrawChar8 macro _drawchar
ifma 1
ldx #_drawchar
endif
if graphics_bank=BankNo
jsr DrawChar8
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw DrawChar8-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw character 12.
; [ 12 x 12 字型]
; Function : 画出一个字元(英文/数字)到图形画面.
; Description : 将 x 字形画到图形画面.
; Input argument : x : 字元码.
; Output argument :
;[M]-----------------------------------------------[M]
lDraw8x16Phonetic macro
if updatesc_bank=BankNo
jsr Draw8x16Phonetic_bug
else
jsr LJSR
dw updatesc_bank
dw Draw8x16Phonetic_bug-1
endif
endm
LDrawChar12_to_ram macro _drawchar
ifma 1
ldx #_drawchar
endif
if graphics_bank=BankNo
jsr DrawChar12_to_ram
else
jsr LJSR
dw graphics_bank
dw DrawChar12_to_ram-1
endif
endm
LDrawChar12 macro _drawchar
ifma 1
ldx #_drawchar
endif
if updatesc_bank=BankNo
jsr DrawChar12_bug
else
jsr LJSR
dw updatesc_bank ; #Bank No.
dw DrawChar12_bug-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw phonetic symbol character to graphic screen.
; [ 音标字型]
; Function : 画出一个音标字元到图形画面.
; Description : 将 x 字形画到图形画面.
; Input argument : x : 字元码.
; Output argument :
;[M]-----------------------------------------------[M]
LDrawPhoneticChar macro _drawchar
ifma 1
ldx #_drawchar
endif
if graphics_bank=BankNo
jsr DrawPhoneticChar
else
jsr LJSR
dw graphics_bank ; #Bank No.
;dw DrawPhoneticChar8-1
dw DrawPhoneticChar-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw 8 x 16 dots block.
;
; Function : Draw 8(宽) x 16(高) dots block.
; Description : 画出一个 8(宽) x 16(高)点的图形方块.
; Input argument : x , y : 图形方块的 address.
; OX:方块左上角X座标。
; OY:方块左上角Y座标(除8)。
; DrawMode 绘图方式
; 注意!图形方块请放置在ROM data区段(8000h~ffffh).
; 图形方块结构请叁阅Graphic.asm中的 "Draw"
; subroutine.
;
; Output argument : OX+=8, OY+=2
;[M]-----------------------------------------------[M]
LDraw816 macro _draw816address
ifma 1
ldx #>_draw816address
ldy #<_draw816address
endif
if graphics_bank=BankNo
jsr Draw816
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw Draw816-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw 13 x 16 dots block.
;
; Function : Draw 13(宽) x 16(高) dots block.
; Description : 画出一个 13(宽) x 16(高)点的图形方块.
; Input argument : x , y : 图形方块的 address.
; OX:方块左上角X座标。
; OY:方块左上角Y座标(除8)。
; DrawMode 绘图方式
; 注意!图形方块请放置在ROM data区段(8000h~ffffh).
; 图形方块结构请叁阅Graphic.asm中的 "Draw"
; subroutine.
;
; Output argument : OX+=13, OY+=2
;[M]-----------------------------------------------[M]
LDraw1316 macro
if graphics_bank=BankNo
jsr Draw1316
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw Draw1316-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw 23 x 32 dots block.
;
; Function : Draw 23(宽) x 32(高) dots block.
; Description : 画出一个 23(宽) x 32(高)点的图形方块.
; Input argument : x , y : 图形方块的 address.
; OX:方块左上角X座标。
; OY:方块左上角Y座标(除8)。
; DrawMode 绘图方式
; 注意!图形方块请放置在ROM data区段(8000h~ffffh).
; 图形方块结构请叁阅Graphic.asm中的 "Draw"
; subroutine.
;
; Output argument : OX+=23, OY+=32
;[M]-----------------------------------------------[M]
LDraw2332 macro
if graphics_bank=BankNo
jsr Draw2332
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw Draw2332-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw a graphic block.
;
; Function : Draw a graphic block.
; Description : 画出一个图形方块.
; Input argument : x , y : 图形方块的 address.
; OX:方块左上角X座标。
; OY:方块左上角Y座标(除8)。
; DrawMode 绘图方式
; 注意!图形方块请放置在ROM data区段(8000h~ffffh).
; 图形方块结构请叁阅Graphic.asm中的 "Draw"
; subroutine.
;
; Output argument : OX+=方块图案宽度, OY+=方块图案高度.
;[M]-----------------------------------------------[M]
LDraw macro _drawaddress
ifma 1
ldx #>_drawaddress
ldy #<_drawaddress
endif
if graphics_bank=BankNo
jsr Draw
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw Draw-1
endif
endm
;[M]-----------------------------------------------[M]
; Draw a dots block.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -