📄 fire.vms
字号:
LABEL31: ; End of While
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
LABEL35: ; While code
;<Epression>
; Flush stack: 16 1 < [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 80
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL37
PUSH 1
JMP LABEL38
LABEL37:
PUSH 0
LABEL38:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL36
; If code
;<Epression>
; Flush stack: 16 1 < [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 50
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL41
PUSH 1
JMP LABEL42
LABEL41:
PUSH 0
LABEL42:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL39
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 2
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL43
LD int r1,399
LABEL43:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 1
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 16 [2]
PUSH 400
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL44
LD int r1,399
LABEL44:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 2
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 16 [2]
PUSH 300
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL45
LD int r1,399
LABEL45:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
JMP LABEL40
LABEL39: ; Else
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL46
LD int r1,399
LABEL46:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 1
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 16 [2]
PUSH 400
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL47
LD int r1,399
LABEL47:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 2
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 16 [2]
PUSH 300
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,4
CAL int ADD r1,r0
CMP dword r1,400
JPC B LABEL48
LD int r1,399
LABEL48:
LD int r0,VINT_STAR
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
LABEL40: ; End of If
;<Epression>
; Flush stack: 16 1 + [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 1
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
JMP LABEL35
LABEL36: ; End of While
;<Epression>
; Flush stack: 1 [1]
PUSH 200
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
;<Epression>
; Flush stack: 1 [1]
PUSH 180
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
FINT_CLEARDATA_EXIT:
LD int r3,[rb]
LD int rs,rb
POP rb
RET
; END FUN FINT_CLEARDATA
;(FINT_ALLOC) Function
;parcount=0
FINT_ALLOC:
PUSH rb
LD int rb,rs
CAL int ADD rs,-8
; This is a comment line
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
LABEL49: ; While code
;<Epression>
; Flush stack: 16 1 < 16 1 16 1 ] & [9]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 31
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL51
PUSH 1
JMP LABEL52
LABEL51:
PUSH 0
LABEL52:
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 0
POP r3
POP r0
CAL int MUL r0,6
CAL int ADD r3,r0
CMP dword r3,1200
JPC B LABEL53
LD int r3,1199
LABEL53:
LD int r0,VINT_P
CAL int MUL r3,4
CAL int ADD r0,r3
PUSH [r0]
PUSH 0
POP r1
POP r0
CMP int r0,r1
JPC B LABEL54
PUSH 1
JMP LABEL55
LABEL54:
PUSH 0
LABEL55:
POP r1
POP r0
CAL int MUL r0,r1
PUSH r0
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL50
;<Epression>
; Flush stack: 16 1 + [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 1
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
JMP LABEL49
LABEL50: ; End of While
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,0
LD int [r0],r3
FINT_ALLOC_EXIT:
LD int r3,[rb]
LD int rs,rb
POP rb
RET
; END FUN FINT_ALLOC
;(FINT_DRAWFLY) Function
;parcount=3
FINT_DRAWFLY:
PUSH rb
LD int rb,rs
CAL int ADD rs,-8
; This is a comment line
; If code
;<Epression>
; Flush stack: 16 1 < [3]
LD int r0,rb
CAL int ADD r0,12
PUSH [r0]
PUSH 2
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL58
PUSH 1
JMP LABEL59
LABEL58:
PUSH 0
LABEL59:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL56
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_PICFLY]
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 = [3]
LD int r0,rb
CAL int ADD r0,12
PUSH [r0]
PUSH 1
POP r1
POP r0
CMP int r0,r1
JPC NZ LABEL62
PUSH 1
JMP LABEL63
LABEL62:
PUSH 0
LABEL63:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL60
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_PICENEMY]
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
LD int [r0],r3
JMP LABEL61
LABEL60: ; Else
LABEL61: ; End of If
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_LAYER]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 1 - [3]
LD int r0,rb
CAL int ADD r0,20
PUSH [r0]
PUSH 16
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 1 - [3]
LD int r0,rb
CAL int ADD r0,16
PUSH [r0]
PUSH 16
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 32
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 32
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 63519
POP r3
;</Epression>
PUSH r3
CALL FINT_BLITCANVAS
CAL int ADD rs,36
JMP LABEL57
LABEL56: ; Else
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_LAYER]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_PICFIRE]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 1 - 1 - [5]
LD int r0,rb
CAL int ADD r0,20
PUSH [r0]
PUSH 7
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
PUSH 4
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,16
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 8
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 8
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 63519
POP r3
;</Epression>
PUSH r3
CALL FINT_BLITCANVAS
CAL int ADD rs,36
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_LAYER]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_PICFIRE]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 1 + 1 - [5]
LD int r0,rb
CAL int ADD r0,20
PUSH [r0]
PUSH 7
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
PUSH 4
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 [1]
LD int r0,rb
CAL int ADD r0,16
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 8
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 8
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 63519
POP r3
;</Epression>
PUSH r3
CALL FINT_BLITCANVAS
CAL int ADD rs,36
LABEL57: ; End of If
FINT_DRAWFLY_EXIT:
LD int r3,[rb]
LD int rs,rb
POP rb
RET
; END FUN FINT_DRAWFLY
;(FINT_PLANE) Function
;parcount=0
FINT_PLANE:
PUSH rb
LD int rb,rs
CAL int ADD rs,-8
; This is a comment line
; If code
;<Epression>
; Flush stack: 16 16 [2]
PUSH [VINT_KEY_UP]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL64
;<Epression>
; Flush stack: 16 1 - [3]
PUSH [VINT_FLYY]
PUSH 6
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 ^ < [4]
PUSH [VINT_FLYY]
PUSH 10
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL68
PUSH 1
JMP LABEL69
LABEL68:
PUSH 0
LABEL69:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL66
;<Epression>
; Flush stack: 1 ^ [2]
PUSH 10
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
JMP LABEL67
LABEL66: ; Else
LABEL67: ; End of If
JMP LABEL65
LABEL64: ; Else
LABEL65: ; End of If
; If code
;<Epression>
; Flush stack: 16 16 [2]
PUSH [VINT_KEY_DOWN]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL70
;<Epression>
; Flush stack: 16 1 + [3]
PUSH [VINT_FLYY]
PUSH 4
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 > [3]
PUSH [VINT_FLYY]
PUSH 300
POP r1
POP r0
CMP int r0,r1
JPC BE LABEL74
PUSH 1
JMP LABEL75
LABEL74:
PUSH 0
LABEL75:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL72
;<Epression>
; Flush stack: 1 [1]
PUSH 300
POP r3
;</Epression>
LD int r0,VINT_FLYY
LD int [r0],r3
JMP LABEL73
LABEL72: ; Else
LABEL73: ; End of If
JMP LABEL71
LABEL70: ; Else
LABEL71: ; End of If
; If code
;<Epression>
; Flush stack: 16 16 [2]
PUSH [VINT_KEY_LEFT]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL76
;<Epression>
; Flush stack: 16 1 - [3]
PUSH [VINT_FLYX]
PUSH 5
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 ^ < [4]
PUSH [VINT_FLYX]
PUSH 10
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL80
PUSH 1
JMP LABEL81
LABEL80:
PUSH 0
LABEL81:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL78
;<Epression>
; Flush stack: 1 ^ [2]
PUSH 10
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
JMP LABEL79
LABEL78: ; Else
LABEL79: ; End of If
JMP LABEL77
LABEL76: ; Else
LABEL77: ; End of If
; If code
;<Epression>
; Flush stack: 16 16 [2]
PUSH [VINT_KEY_RIGHT]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL82
;<Epression>
; Flush stack: 16 1 + [3]
PUSH [VINT_FLYX]
PUSH 5
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 > [3]
PUSH [VINT_FLYX]
PUSH 410
POP r1
POP r0
CMP int r0,r1
JPC BE LABEL86
PUSH 1
JMP LABEL87
LABEL86:
PUSH 0
LABEL87:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL84
;<Epression>
; Flush stack: 1 [1]
PUSH 410
POP r3
;</Epression>
LD int r0,VINT_FLYX
LD int [r0],r3
JMP LABEL85
LABEL84: ; Else
LABEL85: ; End of If
JMP LABEL83
LABEL82: ; Else
LABEL83: ; End of If
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_FLYX]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16 [1]
PUSH [VINT_FLYY]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
PUSH r3
CALL FINT_DRAWFLY
CAL int ADD rs,12
; If code
;<Epression>
; Flush stack: 16 16 1 = [4]
PUSH [VINT_KEY_SPACE]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
PUSH 0
POP r1
POP r0
CMP int r0,r1
JPC NZ LABEL90
PUSH 1
JMP LABEL91
LABEL90:
PUSH 0
LABEL91:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL88
;<Epression>
; Flush stack: 1 [1]
PUSH 0
POP r3
;</Epression>
LD int r0,VINT_SPACESTATUS
LD int [r0],r3
JMP LABEL89
LABEL88: ; Else
LABEL89: ; End of If
; If code
;<Epression>
; Flush stack: 16 1 = 16 16 & [6]
PUSH [VINT_SPACESTATUS]
PUSH 0
POP r1
POP r0
CMP int r0,r1
JPC NZ LABEL94
PUSH 1
JMP LABEL95
LABEL94:
PUSH 0
LABEL95:
PUSH [VINT_KEY_SPACE]
CALL FINT_KEYPRESS
CAL int ADD rs,4
PUSH r3
POP r1
POP r0
CAL int MUL r0,r1
PUSH r0
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL92
;<Epression>
; Flush stack: 1 [1]
PUSH 1
POP r3
;</Epression>
LD int r0,VINT_SPACESTATUS
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 < [3]
PUSH [VINT_FIRECOUNT]
PUSH 2
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL98
PUSH 1
JMP LABEL99
LABEL98:
PUSH 0
LABEL99:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL96
;<Epression>
; Flush stack: 16 1 + [3]
PUSH [VINT_FIRECOUNT]
PUSH 1
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -