📄 ex.asm
字号:
;|---------------------------------------|
;|Program name : Ex.asm |
;|Use bady: |
;|Programer: Alton |
;|Simple version |
;|---------------------------------------|
; .area ex_data(data,rel)
Length EQU 07h
Length_Z EQU Length+Length
.area ex_code(code,rel)
;-------------------------------------------
; Ex
;-------------------------------------------
Ex::
call ClearBuffer
lda #>SignXn
sta .PXPP
lda #<SignXn
sta .PXDP
call .ClearData
lda #>SignT
sta .PXPP
lda #<SignT
sta .PXDP
call .ClearData
call .X_trans_Xn
lda #OperandX
sta Addr1
call CheckData
lda DpCount
sta SignTemp
adda #0
brz Input0
call .ClrY
lda SignX
adda #0
brnz 2$
lda #>(EX_UP_CHK)
sta TableC+1
lda #<(EX_UP_CHK)
sta TableC
;call .GetTable
lda #0
sta .M_Data_Offset
call .GetTabVal
call .Z_trans_Y
br 3$
2$:
lda #>(EX_DOWN_CHK)
sta TableC+1
lda #<(EX_DOWN_CHK)
sta TableC
;call .GetTable
lda #0
sta .M_Data_Offset
call .GetTabVal
call .Z_trans_Y
3$:
call Subtration
lda SignZ
adda #0
brnz 100$
lda SignXn
adda #0
brz .InputError
br ExInput0
100$:
call .Xn_trans_X
1$:
call ClearBuffer
lda #0
sta SignX
lda #10h
sta BufferZ
lda #Length_Z
deca
sta PointBz
ExLoop:
lda SignTemp
adda #0
brz EndEx
lda #BufferXn
adda #Length
deca
sta r_dp
lda i
anda #0fh
sta Xn
lda #BufferXn
sta Addr1
call ShiftToR
lda PointXn
deca
sta PointXn
lda SignTemp
deca
sta SignTemp
lda Xn
adda #0
brz ExLoop
; lda #^ExData
; sta TableC+2
lda #@ExData
sta TableC+1
lda #<ExData
sta TableC
lda PointXn
adda #04h
sta Temp1
lda Xn
deca
sta Xn
call GetData1
lda #0
sta Temp2
call .BZ_trans_X
call Multiplation
call .Z_trans_BZ
br ExLoop
EndEx:
lda SignXn
adda #0
brz 0$
call .ClrX
lda #OperandX
adda #Length
deca
sta r_dp
lda #10h
sta i
lda #01h
sta PointX
call .Z_trans_Y
call Division
0$:
.EXexit:
ret
;-------------------------------------------
Input0:
call .ClrZ
lda #01h
sta OperandZ+Length-1
ret
ExInput0:
call .ClrZ
ret
.InputError:
lda #01h
sta ErrorFlag
br .EXexit
;-------------------------------------------
GetData1:
lda Temp1
deca
sta Temp1
brz 1$
cmpe #0eh
brnc 0$
call .ClrY
lda #Length_Z-1 ;;0bh
sta PointY
lda #10h
sta OperandY
ret
0$:
lda TableC
adda #02h
sta TableC
lda TableC+1
addc #0
sta TableC+1
br GetData1
1$:
;lda #0
;sta r_tpp
lda TableC+1
sta r_tph
lda TableC
sta r_tpl
2$: ;;wait rom data read
;lda r_op1
;anda #80h
;brz 2$
ldv
sta TableC+1
3$:
ldv
sta TableC
;lda #^ExData
; sta TableC+2
;lda #0h
;sta .M_Data_Offset
.GetTab:
lda #0h
sta .Counter
;call .GetTable
lda #0
sta .M_Data_Offset
call .GetTabVal
call .Z_trans_R
;lda Temp2
;deca
;sta Xn
11$:
lda Xn
cmpe #0h ;;;;7/3 cmpe #0
brz GetAns
call .Z_trans_X
call .R_trans_Y
call Multiplation
lda Xn
deca
sta Xn
br 11$
GetAns:
call .Z_trans_Y
ret
;-------------------------------------------
ExData:
DW Edata
DW Edata1
DW Edata2
DW Edata3
DW Edata4
DW Edata5
DW Edata6
DW Edata7
DW Edata8
DW Edata9
DW Edata10
DW Edata11
DW Edata12
DW Edata13
Edata:
;; for 16 dot use
DB 00h,0e2h,26h,88h,11h,71h,41h,81h,61h,0ffh ;;,44h,84h
Edata1:
DB 00h,009h,22h,02h,64h,65h,79h,48h,06h,0ffh ;;,65h,16h
Edata2:
DB 00h,00dh,27h,18h,28h,18h,28h,45h,90h,0ffh ;;,23h,53h
Edata3:
DB 00h,0dh,11h,05h,17h,09h,18h,07h,56h,0ffh ;;,62h,48h
Edata4:
DB 00h,0dh,10h,10h,05h,01h,67h,08h,41h,0ffh ;;,05h,75h
Edata5:
DB 00h,0dh,10h,01h,00h,05h,00h,16h,67h,0ffh ;;,34h,16h
Edata6:
DB 00h,0dh,10h,00h,10h,00h,05h,00h,01h,0ffh ;;,67h,08h
Edata7:
DB 00h,0dh,10h,00h,01h,00h,00h,05h,00h,0ffh ;;,16h,66h
Edata8:
DB 00h,0dh,10h,00h,00h,10h,00h,00h,05h,0ffh ;;,00h,01h
Edata9:
DB 00h,0dh,10h,00h,00h,01h,00h,00h,00h,0ffh ;;,00h,00h
Edata10:
DB 00h,0dh,10h,00h,00h,00h,10h,00h,00h,0ffh ;;,05h,00h
Edata11:
DB 00h,0dh,10h,00h,00h,00h,01h,00h,00h,0ffh ;;,00h,05h
Edata12:
DB 00h,0dh,10h,00h,00h,00h,00h,10h,00h,0ffh ;;,00h,00h
Edata13:
DB 00h,0dh,10h,00h,00h,00h,00h,01h,00h,0ffh ;;,00h,00h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
EX_UP_CHK:
DB 00h,007h,00h,00h,23h,02h,58h,50h,93h,0ffh
EX_DOWN_CHK:
DB 00h,003h,00h,00h,00h,00h,22h,79h,60h,0ffh
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -