📄 graphics.h
字号:
; Output argument : OY+=y , OX+=x.
;[M]-----------------------------------------------[M]
LEraseBlock macro _patw,_path
ifma 2
ldx #_patw
ldy #_path
endif
if graphics_bank=BankNo
jsr EraseBlock
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw EraseBlock-1
endif
endm
;[M]-----------------------------------------------[M]
; Go to next text line
;
; Function : Go to next text line
; Description : Text cursor 移到下一行开头.
; Input argument :
; Output argument : CurY+=1 , CurX=0.
;[M]-----------------------------------------------[M]
LCRLF macro
if graphics_bank=BankNo
jsr CRLF
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw CRLF-1
endif
endm
;[M]-----------------------------------------------[M]
; Go to next text line
;
; Function : Go to next text line
; Description : 如果CurX != 0 ,
; then text cursor 移到下一行开头.
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LCheckCRLF macro
if graphics_bank=BankNo
jsr CheckCRLF
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw CheckCRLF-1
endif
endm
;[M]-----------------------------------------------[M]
; ReStart character input mode.
;
; Function : 重新起始字元输入mode.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LInitScanF macro
if graphics_bank=BankNo
jsr myInitScanF
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw myInitScanF-1
endif
endm
;[M]-----------------------------------------------[M]
; Start character input mode.
;
; Function : 设定为字元输入mode.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LScanF macro _ScanVal
if graphics_bank=BankNo
ifma 1
lda #_ScanVal
jsr myScanFU
else
jsr myScanF
endif
else
ifma 1
lda #_ScanVal
jsr LJSR
dw graphics_bank ; #Bank No.
dw myScanFU-1
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw myScanF-1
endif
endif
endm
;[M]-----------------------------------------------[M]
; Start character input mode.
;
; Function : 设定为字元输入mode(不改变初始状态).
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LScanFU macro
if graphics_bank=BankNo
jsr myScanFU
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw myScanFU-1
endif
endm
;[M]-----------------------------------------------[M]
; Exit character input mode.
;
; Function : 跳出字元输入mode.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LExitScanF macro
; if graphics_bank=BankNo
; jsr ExitScanF
; else
; jsr LJSR
; dw graphics_bank ; #Bank No.
; dw ExitScanF-1
; endif
if graphics_bank=BankNo
jsr myExitScanF
else
stz <ScanFF ; Clear ScanF falg.
rmb5 <SysF ; Set cursor off.
endif
endm
;[M]-----------------------------------------------[M]
; Clear row #1 of text mode.
;
; Function : 清除文字列(row)#0.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LClrRow0 macro
if graphics_bank=BankNo
jsr ClrRow0
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow0-1
endif
endm
;[M]-----------------------------------------------[M]
; Clear row #1 of text mode.
;
; Function : 清除文字列(row)#1.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LClrRow1 macro
if graphics_bank=BankNo
jsr ClrRow1
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow1-1
endif
endm
;[M]-----------------------------------------------[M]
; Clear row #2 of text mode.
;
; Function : 清除文字列(row)#2.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LClrRow2 macro
if graphics_bank=BankNo
jsr ClrRow2
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow2-1
endif
endm
;[M]-----------------------------------------------[M]
; Clear row #3 of text mode.
;
; Function : 清除文字列(row)#3.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LClrRow3 macro
if graphics_bank=BankNo
jsr ClrRow3
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow3-1
endif
endm
;[M]-----------------------------------------------[M]
; Clear row #4 of text mode.
;
; Function : 清除文字列(row)#4.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LClrRow4 macro
if graphics_bank=BankNo
jsr ClrRow4
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow4-1
endif
endm
;[M]-----------------------------------------------[M]
; Clear row #5 of text mode.
;
; Function : 清除文字列(row)#5.
; Description :
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LClrRow5 macro
if graphics_bank=BankNo
jsr ClrRow5
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow5-1
endif
endm
LClrRow6 macro
if graphics_bank=BankNo
jsr ClrRow6
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow6-1
endif
endm
LClrRow7 macro
if graphics_bank=BankNo
jsr ClrRow7
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow7-1
endif
endm
LClrRow8 macro
if graphics_bank=BankNo
jsr ClrRow8
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow8-1
endif
endm
LClrRow9 macro
if graphics_bank=BankNo
jsr ClrRow9
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow9-1
endif
endm
;[M]-----------------------------------------------[M]
; Clear row #n of text mode.
;
; Function : 清除文字列(row)#x.
; Description : x : row number.
; Input argument :
; Output argument :
;[M]-----------------------------------------------[M]
LClrRow macro _rowno
ifma 1
ldx #_rowno*16
endif
if graphics_bank=BankNo
jsr ClrRow
else
jsr LJSR
dw graphics_bank ; #Bank No.
dw ClrRow-1
endif
endm
;;;[M]-----------------------------------------------[M]
;;; Dot invert
;;;
;;; Function : Graphic block invert.
;;; Description : 将一块图形区块反向(以点为单位:黑变白,白变黑)
;;; Input argument : OX : 图形区块开始X座标.
;;; OY : 图形区块开始Y座标.
;;; x : 图形区块宽度.
;;; y : 图形区块高度.
;;; Output argument : OY+=y , OX+=x.
;;;[M]-----------------------------------------------[M]
;;LDotInvert macro _dotx,_doty
;; ifma 1
;; ldx #_dotx
;; endif
;;
;; ifma 2
;; ldy #_doty
;; endif
;;
;; if graphics_bank=BankNo
;; jsr DotInvert
;; else
;; jsr LJSR
;; dw graphics_bank ; #Bank No.
;; dw DotInvert-1
;; endif
;; endm
;;
;;;[M]-----------------------------------------------[M]
;;; Draw dot.
;;;
;;; Function : Draw a dot.
;;; Description : 点亮一个LCD点.
;;; Input argument : OX:LCD点X座标。
;;; OY:LCD点Y座标。
;;; Output argument :
;;;[M]-----------------------------------------------[M]
;;LDrawDot macro
;; if graphics_bank=BankNo
;; jsr DrawDot
;; else
;; jsr LJSR
;; dw graphics_bank ; #Bank No.
;; dw DrawDot-1
;; endif
;; endm
;;
;;;[M]-----------------------------------------------[M]
;;; Erase dot.
;;;
;;; Function : Erase a dot.
;;; Description : 关掉一个LCD点.
;;; Input argument : OX:LCD点X座标。
;;; OY:LCD点Y座标。
;;; Output argument :
;;;[M]-----------------------------------------------[M]
;;LEraseDot macro
;; if graphics_bank=BankNo
;; jsr EraseDot
;; else
;; jsr LJSR
;; dw graphics_bank ; #Bank No.
;; dw EraseDot-1
;; endif
;; endm
;;
ClearAllIcon macro
lda #0
sta ICON_1
endm
lset_lcd_contrast_to_default MACRO
if graphics_bank=BankNo
jsr set_lcd_contrast_to_default
else
jsr ljsr
dw graphics_bank
dw set_lcd_contrast_to_default-1
endif
ENDM
lset_lcd_contrast MACRO
if graphics_bank=BankNo
jsr set_lcd_contrast
else
jsr ljsr
dw graphics_bank
dw set_lcd_contrast-1
endif
ENDM
lclear_device MACRO
if graphics_bank=BankNo
jsr clear_device
else
jsr ljsr
dw graphics_bank
dw clear_device-1
endif
ENDM
lTranBinDec macro
if BankNo=SciBank
jsr TranBinDec
else
jsr LJSR
dw SciBank ; Banck No.
dw TranBinDec-1
endif
endm
lfive_to_inc_1_1 macro
if BankNo=ChangeBank
jsr five_to_inc_1_1
else
jsr LJSR
dw ChangeBank ; Banck No.
dw five_to_inc_1_1-1
endif
endm
lCutTail1 macro
if BankNo=ChangeBank
jsr CutTail1
else
jsr LJSR
dw ChangeBank ; Banck No.
dw CutTail1-1
endif
endm
ladd_little_dot1 macro
if BankNo=ChangeBank
jsr add_little_dot1
else
jsr LJSR
dw ChangeBank ; Banck No.
dw add_little_dot1-1
endif
endm
lRandomOff macro
rmb4 <SysF
endm
;[M]-----------------------------------------------[M]
LRandomOn macro
smb4 <SysF
endm
;;==============================================================
;;==============================================================
;;==============================================================
LTestNum 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 TestNum-1
endm
LDrawNum 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -