📄 memtools.asm
字号:
;/slow clock : 32768khz
;/programer : Alton
;
;
.area Memtools_data(data,abs)
;.org 0x167
;.CntBytes EQU 0x07
.org 0x16c
.CntBytes EQU 0x08
.P1RAM EQU 0x6f
.P3RAM EQU 0xb9
SDBuf::
LRBuf::
QRBuf::
SignCnt::
SignYCnt::
SignXCnt::
SignC:: .ds 1
PointYCnt::
PointXCnt::
PointC:: .ds 1
YCnt::
XCnt::
OperandC:: .ds .CntBytes
SignXSum::
Sign_B:: .ds 1
PointXSum::
Point_B:: .ds 1
XSum::
Operand_B:: .ds .CntBytes
SignXSquSum::
SignA:: .ds 1
PointXSquSum::
PointA:: .ds 1
SDBufEnd::
XSquSum::
OperandA:: .ds .CntBytes
SignYSum::
SignE:: .ds 1
PointYSum::
PointE:: .ds 1
YSum::
OperandE:: .ds .CntBytes
SignYSquSum::
SignD:: .ds 1
PointYSquSum::
PointD:: .ds 1
YSquSum::
OperandD:: .ds .CntBytes
SignXYSum::
SignF:: .ds 1
PointXYSum::
PointF:: .ds 1
LRBufEnd::
XYSum::
OperandF:: .ds .CntBytes
DaltaXcnt:: .ds 1
.SetFlag:: .ds 1
.ForLDP:: .ds 1
.Count:: .ds 1
.SRFlag:: .ds 1
.CalcFlag:: .ds 1
;;SetFlag 7 6 5 4 3 2 1 0
;; D R G RND
.area Memtools_code(code,rel)
;------------(A_COPY_X,Y,Z)-----------
.A_TO_X::
lda #<SignA
sta0 .PXDP
lda #<SignX
sta0 .PYDP
lda #>SignA
sta0 .PXPP
lda #>SignX
sta0 .PYPP
call .CopyData
ret
.A_TO_Y::
lda #<SignA
sta0 .PXDP
lda #<SignY
sta0 .PYDP
lda #>SignA
sta0 .PXPP
lda #>SignY
sta0 .PYPP
call .CopyData
ret
.A_TO_Z::
lda #<SignA
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>SignA
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
;------------(B_COPY_X,Y,Z)-----------
.B_TO_X::
lda #<Sign_B
sta0 .PXDP
lda #<SignX
sta0 .PYDP
lda #>Sign_B
sta0 .PXPP
lda #>SignX
sta0 .PYPP
call .CopyData
ret
.B_TO_Y::
lda #<Sign_B
sta0 .PXDP
lda #<SignY
sta0 .PYDP
lda #>Sign_B
sta0 .PXPP
lda #>SignY
sta0 .PYPP
call .CopyData
ret
.B_TO_Z::
lda #<Sign_B
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>Sign_B
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
;------------(C_COPY_X,Y,Z)-----------
.C_TO_X::
lda #<SignC
sta0 .PXDP
lda #<SignX
sta0 .PYDP
lda #>SignC
sta0 .PXPP
lda #>SignX
sta0 .PYPP
call .CopyData
ret
.C_TO_Y::
lda #<SignC
sta0 .PXDP
lda #<SignY
sta0 .PYDP
lda #>SignC
sta0 .PXPP
lda #>SignY
sta0 .PYPP
call .CopyData
ret
.C_TO_Z::
lda #<SignC
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>SignC
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
;------------(D_COPY_X,Y,Z)-----------
.D_TO_X::
lda #<SignD
sta0 .PXDP
lda #<SignX
sta0 .PYDP
lda #>SignD
sta0 .PXPP
lda #>SignX
sta0 .PYPP
call .CopyData
ret
.D_TO_Y::
lda #<SignD
sta0 .PXDP
lda #<SignY
sta0 .PYDP
lda #>SignD
sta0 .PXPP
lda #>SignY
sta0 .PYPP
call .CopyData
ret
.D_TO_Z::
lda #<SignD
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>SignD
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
;------------(E_COPY_X,Y,Z)-----------
.E_TO_Z::
lda #<SignE
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>SignE
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
.E_TO_Y::
lda #<SignE
sta0 .PXDP
lda #<SignY
sta0 .PYDP
lda #>SignE
sta0 .PXPP
lda #>SignY
sta0 .PYPP
call .CopyData
ret
;------------(F_COPY_X,Y,Z)-----------
.F_TO_Z::
lda #<SignF
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>SignF
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
;------------(X_COPY_X,Y,Z)-----------
.X_TO_Z::
lda #<Sign_X
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>Sign_X
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
;------------(Y_COPY_X,Y,Z)-----------
.Y_TO_Z::
lda #<Sign_Y
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>Sign_Y
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
;------------(M_COPY_X,Y,Z)-----------
.M_TO_Z::
lda #<SignM
sta0 .PXDP
lda #<SignZ
sta0 .PYDP
lda #>SignM
sta0 .PXPP
lda #>SignZ
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.X_TO_A::
lda #<SignX
sta0 .PXDP
lda #<SignA
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>SignA
sta0 .PYPP
call .CopyData
ret
.Z_TO_A::
lda #<SignZ
sta0 .PXDP
lda #<SignA
sta0 .PYDP
lda #>SignZ
sta0 .PXPP
lda #>SignA
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.X_TO_B::
lda #<SignX
sta0 .PXDP
lda #<Sign_B
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>Sign_B
sta0 .PYPP
call .CopyData
ret
.Z_TO_B::
lda #<SignZ
sta0 .PXDP
lda #<Sign_B
sta0 .PYDP
lda #>SignZ
sta0 .PXPP
lda #>Sign_B
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.X_TO_C::
lda #<SignX
sta0 .PXDP
lda #<SignC
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>SignC
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.X_TO_D::
lda #<SignX
sta0 .PXDP
lda #<SignD
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>SignD
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.X_TO_E::
lda #<SignX
sta0 .PXDP
lda #<SignE
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>SignE
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.X_TO_F::
lda #<SignX
sta0 .PXDP
lda #<SignF
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>SignF
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.X_TO_X::
lda #<SignX
sta0 .PXDP
lda #<Sign_X
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>Sign_X
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.X_TO_Y::
lda #<SignX
sta0 .PXDP
lda #<Sign_Y
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>Sign_Y
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.M_TO_X::
lda #<SignM
sta0 .PXDP
lda #<SignX
sta0 .PYDP
lda #>SignM
sta0 .PXPP
lda #>SignX
sta0 .PYPP
call .CopyData
ret
.X_TO_M::
lda #<SignX
sta0 .PXDP
lda #<SignM
sta0 .PYDP
lda #>SignX
sta0 .PXPP
lda #>SignM
sta0 .PYPP
call .CopyData
ret
;-------------------------------------------
.MCL::
lda #01h
sta PP
lda #.P1RAM
sta DP
.ClrMcl:
lda #0h
sta i
lda DP
cmpe #0aah
brz .MCL2
incdp
br .ClrMcl
;-------------------------------------------
.MCL2::
lda #03h
sta PP
lda #.P3RAM
sta DP
.ClrMcl2:
lda #0h
sta i
lda DP
cmpe #0ffh
brz .EndMCL
incdp
br .ClrMcl2
.EndMCL:
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -