📄 10.s
字号:
.area text
; f_abs -> 30,SP
; exp_char -> 34,SP
; ftoa_status -> 35,SP
; exponent -> 37,SP
; first_result_digit_position -> 39,SP
; is_minus -> 41,SP
; first_non_z_position_found -> 43,SP
; last_digit_position_found -> 45,SP
; end_of_string -> 47,SP
; test_number -> 49,SP
; rpad_char -> 53,SP
; number_width -> 54,SP
; num_sig_figs_before_dp -> 56,SP
; lpad_char -> 58,SP
; last_non_z_position_after_dp -> 59,SP
; sign_char -> 61,SP
; dp_position_assumed -> 62,SP
; want_eform -> 64,SP
; first_non_z_position_before_dp -> 66,SP
; my_ascii_float -> 68,SP
; k -> 70,SP
; dp_position_found -> 72,SP
; this_char -> 74,SP
; j -> 75,SP
; i -> 77,SP
; prec -> 93,SP
; field_width -> 91,SP
; flag -> 89,SP
; f -> 85,SP
; format -> 83,SP
; my_buffer -> 79,SP
__FormatFP_1::
pshd
leas -79,S
leay 45,S
movw #65535,0,y
leay 72,S
movw #65535,0,y
leay 62,S
movw #65535,0,y
leay 66,S
movw #65535,0,y
leay 43,S
movw #65535,0,y
leay 59,S
movw #65535,0,y
leay 56,S
movw #0,0,y
leay 37,S
movw #255,0,y
leay 41,S
movw #0,0,y
leay 64,S
movw #0,0,y
leay 58,S
movb #32,0,y
leay 53,S
movb #32,0,y
leay 34,S
movb #101,0,y
ldy 91,S
cpy #20
ble L2
leax 91,S
movw #20,0,x
L2:
ldy 93,S
cpy #20
ble L4
leax 93,S
movw #20,0,x
L4:
ldy 83,S
cpy #0
lbeq L7
ldy 83,S
cpy #1
beq L10
ldy 83,S
cpy #2
beq L9
ldy 83,S
cpy #3
beq L12
ldy 83,S
cpy #4
beq L11
lbra L6
L9:
leax 34,S
movb #69,0,x
L10:
leax 64,S
movw #1,0,x
lbra L7
L11:
leax 34,S
movb #69,0,x
L12:
ldd 87,S
pshd
ldd 87,S
pshd
puld
std 32,S
puld
std 32,S
ldd 87,S
pshd
ldd 87,S
pshd
movw #0,2,-S
movw #0,2,-S
jsr cmpf4
bge L13
movw #0,2,-S
movw #49024,2,-S
ldd 91,S
pshd
ldd 91,S
pshd
jsr mulf4
puld
std 32,S
puld
std 32,S
L13:
leax 49,S
movw #0,0,x
movw #16256,2,x
leax 77,S
movw #0,0,x
bra L18
L15:
movw #0,2,-S
movw #16672,2,-S
ldd 55,S
pshd
ldd 55,S
pshd
jsr mulf4
puld
std 51,S
puld
std 51,S
L16:
ldy 77,S
iny
sty 77,S
L18:
ldy 77,S
cpy 93,S
blt L15
ldd 32,S
pshd
ldd 32,S
pshd
movw #46871,2,-S
movw #14545,2,-S
jsr cmpf4
blt L21
ldd 32,S
pshd
ldd 32,S
pshd
ldd 55,S
pshd
ldd 55,S
pshd
jsr cmpf4
ble L7
L21:
leax 64,S
movw #1,0,x
L6:
L7:
ldd 89,S
anda #0
andb #16
cpd #0
beq L22
leax 58,S
movb #48,0,x
L22:
leax 58,S
leay 61,S
movb 0,x,0,y
ldd 89,S
anda #0
andb #8
cpd #0
beq L24
leax 61,S
movb #43,0,x
L24:
ldy 64,S
cpy #0
beq L26
leay 35,S
sty 4,S
ldd 87,S
pshd
ldd 87,S
pshd
movw 2,S+,2,S
movw 2,S+,2,S
jsr _ftoa
std 68,S
lbra L27
L26:
leax 49,S
movw #0,0,x
movw #16128,2,x
leax 77,S
movw #0,0,x
bra L31
L28:
ldd 51,S
pshd
ldd 51,S
pshd
movw #0,2,-S
movw #16672,2,-S
jsr divf4
puld
std 51,S
puld
std 51,S
L29:
ldy 77,S
iny
sty 77,S
L31:
ldy 77,S
cpy 93,S
blt L28
ldd 87,S
pshd
ldd 87,S
pshd
movw #0,2,-S
movw #0,2,-S
jsr cmpf4
bge L32
leay 35,S
sty 4,S
ldd 87,S
pshd
ldd 87,S
pshd
ldd 55,S
pshd
ldd 55,S
pshd
jsr subf4
movw 2,S+,2,S
movw 2,S+,2,S
jsr _ftoa
std 68,S
bra L33
L32:
leay 35,S
sty 4,S
ldd 87,S
pshd
ldd 87,S
pshd
ldd 55,S
pshd
ldd 55,S
pshd
jsr addf4
movw 2,S+,2,S
movw 2,S+,2,S
jsr _ftoa
std 68,S
L33:
L27:
ldy 35,S
cpy #65534
beq L37
ldy 35,S
cpy #65535
beq L39
ldy 35,S
cpy #0
beq L35
bra L34
L37:
ldd #L38
leas 81,S
rts
lbra L1
L39:
ldd #L40
leas 81,S
rts
lbra L1
L34:
ldd #L41
leas 81,S
rts
lbra L1
L35:
leax 77,S
movw #0,0,x
L42:
ldy 64,S
cpy #0
bne L46
ldy 72,S
cpy #0
blt L46
ldd 77,S
subd 72,S
cpd 93,S
ble L46
lbra L44
L46:
ldd 77,S
addd 68,S
tfr D,Y
leay 74,S
movb 0,Y,0,y
ldab 74,S
clra
cpd #48
lblt L48
ldab 74,S
clra
cpd #57
lbgt L48
leay 77,S
leax 45,S
movw 0,y,0,x
ldab 74,S
clra
cpd #48
ble L50
ldy 43,S
cpy #0
bge L52
leax 77,S
leay 43,S
movw 0,x,0,y
L52:
L50:
ldy 72,S
cpy #0
bge L54
ldy 66,S
cpy #0
bge L56
ldab 74,S
clra
cpd #48
ble L56
leax 77,S
leay 66,S
movw 0,x,0,y
L56:
ldy 66,S
cpy #0
blt L58
ldy 56,S
iny
sty 56,S
L58:
L54:
ldy 72,S
cpy #0
blt L60
ldab 74,S
clra
cpd #48
ble L62
leax 77,S
leay 59,S
movw 0,x,0,y
L62:
L60:
L48:
ldab 74,S
clra
cpd #46
bne L64
leax 77,S
leay 72,S
movw 0,x,0,y
L64:
ldab 74,S
clra
cpd #45
bne L66
leax 41,S
movw #1,0,x
leax 61,S
movb #45,0,x
L66:
ldab 74,S
clra
cpd #0
bne L68
bra L44
L68:
L43:
ldy 77,S
iny
sty 77,S
cpy #20
lblt L42
L44:
ldy 72,S
cpy #0
bge L70
ldy 45,S
iny
sty 62,S
iny
sty 47,S
bra L71
L70:
leay 72,S
leax 62,S
movw 0,y,0,x
ldy 59,S
cpy #0
bge L72
ldy 62,S
iny
sty 47,S
bra L73
L72:
ldy 59,S
iny
sty 47,S
L73:
L71:
ldy 66,S
cpy #0
bge L74
ldy 62,S
dey
sty 66,S
L74:
ldy 64,S
cpy #0
lbeq L76
leay 77,S
movw #0,0,y
ldab 61,S
cmpb 58,S
beq L78
leay 77,S
leax 28,S
movw 0,y,0,x
ldy 28,S
iny
sty 77,S
ldab 61,S
tfr B,Y
ldd 28,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
L78:
leay 77,S
leax 26,S
movw 0,y,0,x
ldy 26,S
iny
sty 77,S
ldd 43,S
addd 68,S
tfr D,Y
ldab 0,Y
tfr B,Y
ldd 26,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
ldd 77,S
addd 79,S
tfr D,X
ldd #46
stab 0,X
ldy 93,S
cpy #0
ble L80
ldy 77,S
iny
sty 77,S
L80:
ldy 43,S
iny
sty 75,S
leax 70,S
movw #0,0,x
lbra L83
L82:
ldy 75,S
cpy 62,S
lbeq L85
ldy 75,S
cpy 47,S
bge L87
ldd 75,S
leay 77,S
leax 24,S
movw 0,y,0,x
ldy 24,S
iny
sty 77,S
addd 68,S
tfr D,Y
ldab 0,Y
tfr B,Y
ldd 24,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
bra L88
L87:
ldd 89,S
anda #0
andb #1
cpd #0
bne L91
ldy 70,S
cpy #0
bne L84
L91:
leay 77,S
leax 22,S
movw 0,y,0,x
ldy 22,S
iny
sty 77,S
ldy #48
ldd 22,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
L90:
L88:
ldy 70,S
iny
sty 70,S
L85:
ldy 75,S
iny
sty 75,S
L83:
ldy 70,S
cpy 93,S
bge L92
ldy 77,S
cpy #14
lblt L82
L92:
L84:
ldy 77,S
dey
sty 70,S
ldy 93,S
cpy #0
bne L93
leax 77,S
leay 70,S
movw 0,x,0,y
L93:
ldd 62,S
subd 43,S
tfr D,Y
dey
sty 37,S
ldy 75,S
cpy 47,S
bge L95
ldd 75,S
addd 68,S
tfr D,Y
ldab 0,Y
clra
cpd #46
bne L95
ldy 75,S
iny
sty 75,S
L95:
ldy 75,S
cpy 47,S
lbge L97
ldd 75,S
addd 68,S
tfr D,Y
ldab 0,Y
clra
std 20,S
cpd #53
lblt L97
ldy 20,S
cpy #57
lbgt L97
lbra L100
L99:
ldd 70,S
addd 79,S
tfr D,Y
ldab 0,Y
clra
std 18,S
cpd #48
blt L102
ldy 18,S
cpy #56
bgt L102
ldd 70,S
addd 79,S
tfr D,A
ldx 16,S
sty 16,S
tfr B,Y
iny
tfr Y,D
stab 0,X
lbra L101
L102:
ldd 70,S
addd 79,S
tfr D,Y
ldab 0,Y
clra
cpd #46
bne L104
ldy 70,S
dey
sty 70,S
tfr Y,D
addd 79,S
tfr D,Y
ldab 0,Y
clra
std 14,S
cpd #48
blt L106
ldy 14,S
cpy #56
bgt L106
ldd 70,S
addd 79,S
tfr D,A
ldx 12,S
sty 12,S
tfr B,Y
iny
tfr Y,D
stab 0,X
bra L101
L106:
ldd 70,S
addd 79,S
tfr D,Y
ldab 0,Y
clra
cpd #57
bne L108
ldd 70,S
addd 79,S
tfr D,X
ldd #49
stab 0,X
ldy 37,S
iny
sty 37,S
bra L101
L108:
L104:
ldd 70,S
addd 79,S
tfr D,Y
ldab 0,Y
clra
cpd #57
bne L110
ldd 70,S
addd 79,S
tfr D,X
ldd #48
stab 0,X
L110:
ldy 70,S
dey
sty 70,S
L100:
ldy 70,S
cpy #0
lbge L99
L101:
L97:
leay 77,S
movw 0,y,10,S
ldy 10,S
iny
sty 77,S
ldab 34,S
tfr B,Y
ldd 10,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
ldy 37,S
cpy #0
bge L112
ldd 8,S
leay 77,S
movw 0,y,8,S
ldy 8,S
iny
sty 77,S
ldy #45
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
ldd 37,S
coma
comb
std 37,S
L112:
ldy #10
sty 2,S
ldy 37,S
sty 0,S
ldd 77,S
addd 79,S
jsr _itoa
leax 77,S
movw #0,0,x
L114:
ldd 77,S
addd 79,S
tfr D,Y
ldab 0,Y
clra
cpd #0
bne L118
leax 77,S
leay 54,S
movw 0,x,0,y
bra L116
L118:
L115:
ldy 77,S
iny
sty 77,S
cpy #20
blt L114
L116:
ldd 89,S
anda #0
andb #4
cpd #0
beq L120
ldy 54,S
cpy 91,S
lbge L77
leax 54,S
leay 75,S
movw 0,x,0,y
bra L127
L124:
ldab 53,S
tfr B,Y
ldd 75,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
L125:
ldy 75,S
iny
sty 75,S
L127:
ldy 75,S
cpy 91,S
blt L124
ldy #0
ldx 91,S
dex
tfr X,D
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
lbra L77
L120:
ldy 54,S
cpy 91,S
lbge L77
leax 54,S
leay 75,S
movw 0,x,0,y
bra L133
L130:
ldd 75,S
addd 79,S
tfr D,Y
ldab 0,Y
tfr B,Y
ldd 75,S
addd 91,S
subd 54,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
L131:
ldy 75,S
dey
sty 75,S
L133:
ldy 75,S
cpy #0
bge L130
ldd 91,S
subd 54,S
tfr D,Y
dey
sty 75,S
bra L137
L134:
ldab 58,S
tfr B,Y
ldd 75,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
L135:
ldy 75,S
dey
sty 75,S
L137:
ldy 75,S
cpy #0
bge L134
ldd 89,S
anda #0
andb #16
cpd #0
lbeq L77
ldab 61,S
cmpb 58,S
lbeq L77
ldab 61,S
tfr B,Y
ldx 79,S
tfr Y,D
stab 0,X
ldab 58,S
tfr B,Y
ldd 91,S
subd 54,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
lbra L77
L76:
ldd 89,S
anda #0
andb #1
cpd #0
beq L140
ldd 62,S
addd 93,S
cpd 47,S
bgt L141
ldd 62,S
addd 93,S
tfr D,Y
iny
sty 47,S
bra L141
L140:
ldy 62,S
iny
sty 6,S
ldx 47,S
cpx 6,S
bne L144
leax 62,S
leay 47,S
movw 0,x,0,y
L144:
L141:
ldy 47,S
cpy #20
ble L146
leax 47,S
movw #20,0,x
L146:
ldd 47,S
subd 66,S
std 54,S
ldab 61,S
cmpb 58,S
beq L148
ldy 54,S
iny
sty 54,S
L148:
ldy 91,S
cpy 54,S
bge L150
leax 54,S
leay 91,S
movw 0,x,0,y
L150:
ldy 91,S
cpy #20
ble L152
leax 91,S
movw #20,0,x
L152:
ldy 54,S
cpy #20
ble L154
leax 54,S
movw #20,0,x
L154:
ldd 89,S
anda #0
andb #4
cpd #0
bne L158
ldy 91,S
cpy 54,S
bne L156
L158:
leay 39,S
movw #0,0,y
ldab 61,S
cmpb 58,S
lbeq L157
ldab 61,S
tfr B,Y
ldx 79,S
tfr X,D
leax 39,S
movw #1,0,x
tfr D,X
tfr Y,D
stab 0,X
lbra L157
L156:
ldd 91,S
subd 54,S
std 39,S
leax 75,S
movw #0,0,x
bra L164
L161:
ldab 58,S
tfr B,Y
ldd 75,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
L162:
ldy 75,S
iny
sty 75,S
L164:
ldy 75,S
cpy 39,S
ble L161
ldab 61,S
cmpb 58,S
beq L165
ldd 89,S
anda #0
andb #16
cpd #0
beq L167
ldab 61,S
tfr B,Y
ldx 79,S
tfr Y,D
stab 0,X
bra L168
L167:
ldab 61,S
tfr B,Y
ldd 39,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
L168:
ldy 39,S
iny
sty 39,S
L165:
L157:
leay 39,S
leax 75,S
movw 0,y,0,x
ldy 56,S
cpy #0
bne L169
ldd 75,S
addd 79,S
tfr D,X
ldd #48
stab 0,X
ldy 75,S
iny
sty 75,S
L169:
leax 77,S
movw #0,0,x
bra L174
L171:
ldd 77,S
addd 68,S
std 6,S
ldd 66,S
addd 6,S
tfr D,Y
ldab 0,Y
tfr B,Y
ldd 75,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
ldy 75,S
iny
sty 75,S
L172:
ldy 77,S
iny
sty 77,S
L174:
ldy 77,S
cpy 56,S
blt L171
ldy 47,S
cpy 62,S
ble L175
ldd 75,S
addd 79,S
tfr D,X
ldd #46
stab 0,X
ldy 75,S
iny
sty 75,S
L175:
leax 77,S
movw #0,0,x
bra L180
L177:
ldd 59,S
subd 72,S
std 6,S
ldx 77,S
cpx 6,S
bge L181
ldd 77,S
addd 68,S
tfr D,Y
ldd 72,S
sty 6,S
addd 6,S
tfr D,Y
iny
ldab 0,Y
tfr B,Y
ldd 75,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
bra L182
L181:
ldd 89,S
anda #0
andb #1
cpd #0
beq L187
ldd 75,S
addd 79,S
tfr D,X
ldd #48
stab 0,X
L184:
L182:
ldy 75,S
iny
sty 75,S
L178:
ldy 77,S
iny
sty 77,S
L180:
ldy 77,S
cpy 93,S
bge L185
ldy 75,S
cpy #20
lblt L177
L185:
bra L187
L186:
ldab 53,S
tfr B,Y
ldd 75,S
addd 79,S
tfr D,X
tfr Y,D
stab 0,X
ldy 75,S
iny
sty 75,S
L187:
ldy 75,S
cpy 91,S
blt L186
ldd 75,S
addd 79,S
tfr D,X
ldd #0
stab 0,X
L77:
ldd 79,S
leas 81,S
rts
L1:
leas 81,S
rts
L41:
.byte 'f,'t,'o,'a,40,41,32,'E,'r,'r,'o,'r,0
L40:
.byte 'N,'u,'m,'b,'e,'r,32,'i,'s,32,'t,'o,'o,32,'s,'m
.byte 'a,'l,'l,0
L38:
.byte 'N,'u,'m,'b,'e,'r,32,'i,'s,32,'t,'o,'o,32,'b,'i
.byte 'g,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -