⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fire.vms

📁 VmBasic是一款基于虚拟机的结构化的编程语言
💻 VMS
📖 第 1 页 / 共 4 页
字号:
LD int r0,VINT_FIRECOUNT
LD int [r0],r3
;<Epression>
; Flush stack: 16  [1]
CALL FINT_ALLOC
CAL int ADD rs,0
PUSH r3
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-4
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 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,6
CAL int ADD r1,r0
CMP dword r1,1200
JPC B LABEL100
LD int r1,1199
LABEL100:
LD int r0,VINT_P
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: 16  [1]
PUSH [VINT_FLYX]
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,6
CAL int ADD r1,r0
CMP dword r1,1200
JPC B LABEL101
LD int r1,1199
LABEL101:
LD int r0,VINT_P
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: 16 1 -  [3]
PUSH [VINT_FLYY]
PUSH 8
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,6
CAL int ADD r1,r0
CMP dword r1,1200
JPC B LABEL102
LD int r1,1199
LABEL102:
LD int r0,VINT_P
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
JMP LABEL97
LABEL96:	; Else
LABEL97:	; End of If
JMP LABEL93
LABEL92:	; Else
LABEL93:	; End of If
FINT_PLANE_EXIT:
LD int r3,[rb]
LD int rs,rb
POP rb
RET
; END FUN FINT_PLANE

;(FINT_CHECKHIT) Function
;parcount=5
FINT_CHECKHIT:
PUSH rb
LD int rb,rs
CAL int ADD rs,-4
; This is a comment line
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,0
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 16 - 16 16 < 16 16 - 16 16 < &  [13]
LD int r0,rb
CAL int ADD r0,28
PUSH [r0]
LD int r0,rb
CAL int ADD r0,20
PUSH [r0]
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
CALL FINT_ABS
CAL int ADD rs,4
PUSH r3
LD int r0,rb
CAL int ADD r0,12
PUSH [r0]
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL105
PUSH 1
JMP LABEL106
LABEL105:
PUSH 0
LABEL106:
LD int r0,rb
CAL int ADD r0,24
PUSH [r0]
LD int r0,rb
CAL int ADD r0,16
PUSH [r0]
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
CALL FINT_ABS
CAL int ADD rs,4
PUSH r3
LD int r0,rb
CAL int ADD r0,12
PUSH [r0]
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL107
PUSH 1
JMP LABEL108
LABEL107:
PUSH 0
LABEL108:
POP r1
POP r0
CAL int MUL r0,r1
PUSH r0
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL103
;<Epression>
; Flush stack: 1  [1]
PUSH 1
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,0
LD int [r0],r3
JMP LABEL104
LABEL103:	; Else
LABEL104:	; End of If
FINT_CHECKHIT_EXIT:
LD int r3,[rb]
LD int rs,rb
POP rb
RET
; END FUN FINT_CHECKHIT

;(FINT_GAMEDRIVER) Function
;parcount=0
FINT_GAMEDRIVER:
PUSH rb
LD int rb,rs
CAL int ADD rs,-20
; 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
LABEL119:	; While code
;<Epression>
; Flush stack: 16 1 <  [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 31
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL121
PUSH 1
JMP LABEL122
LABEL121:
PUSH 0
LABEL122:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL120
; If code
;<Epression>
; Flush stack: 16 1 16 1 ]  [5]
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 LABEL125
LD int r3,1199
LABEL125:
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 LABEL126
PUSH 1
JMP LABEL127
LABEL126:
PUSH 0
LABEL127:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL123
;<Epression>
; Flush stack: 16 1 16  [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 1
POP r3
POP r0
CAL int MUL r0,6
CAL int ADD r3,r0
CMP dword r3,1200
JPC B LABEL128
LD int r3,1199
LABEL128:
LD int r0,VINT_P
CAL int MUL r3,4
CAL int ADD r0,r3
PUSH [r0]
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-8
LD int [r0],r3
;<Epression>
; Flush stack: 16 1 16  [3]
LD int r0,rb
CAL int ADD r0,-4
PUSH [r0]
PUSH 2
POP r3
POP r0
CAL int MUL r0,6
CAL int ADD r3,r0
CMP dword r3,1200
JPC B LABEL129
LD int r3,1199
LABEL129:
LD int r0,VINT_P
CAL int MUL r3,4
CAL int ADD r0,r3
PUSH [r0]
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-12
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 16 1 =  [5]
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 LABEL132
LD int r3,1199
LABEL132:
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 NZ LABEL133
PUSH 1
JMP LABEL134
LABEL133:
PUSH 0
LABEL134:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL130
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-8
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 2
POP r3
;</Epression>
PUSH r3
CALL FINT_DRAWFLY
CAL int ADD rs,12
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-16
LD int [r0],r3
LABEL135:	; While code
;<Epression>
; Flush stack: 16 1 <  [3]
LD int r0,rb
CAL int ADD r0,-16
PUSH [r0]
PUSH 31
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL137
PUSH 1
JMP LABEL138
LABEL137:
PUSH 0
LABEL138:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL136
; If code
;<Epression>
; Flush stack: 16 1 16 1 =  [5]
LD int r0,rb
CAL int ADD r0,-16
PUSH [r0]
PUSH 0
POP r3
POP r0
CAL int MUL r0,6
CAL int ADD r3,r0
CMP dword r3,1200
JPC B LABEL141
LD int r3,1199
LABEL141:
LD int r0,VINT_P
CAL int MUL r3,4
CAL int ADD r0,r3
PUSH [r0]
PUSH 1
POP r1
POP r0
CMP int r0,r1
JPC NZ LABEL142
PUSH 1
JMP LABEL143
LABEL142:
PUSH 0
LABEL143:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL139
; If code
;<Epression>
; Flush stack: 16 16 16 1 16 16 1 16 1 16  [10]
LD int r0,rb
CAL int ADD r0,-8
PUSH [r0]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
LD int r0,rb
CAL int ADD r0,-16
PUSH [r0]
PUSH 1
POP r3
POP r0
CAL int MUL r0,6
CAL int ADD r3,r0
CMP dword r3,1200
JPC B LABEL146
LD int r3,1199
LABEL146:
LD int r0,VINT_P
CAL int MUL r3,4
CAL int ADD r0,r3
PUSH [r0]
LD int r0,rb
CAL int ADD r0,-16
PUSH [r0]
PUSH 2
POP r3
POP r0
CAL int MUL r0,6
CAL int ADD r3,r0
CMP dword r3,1200
JPC B LABEL147
LD int r3,1199
LABEL147:
LD int r0,VINT_P
CAL int MUL r3,4
CAL int ADD r0,r3
PUSH [r0]
PUSH 24
CALL FINT_CHECKHIT
CAL int ADD rs,20
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL144
;<Epression>
; Flush stack: 16 1 -  [3]
PUSH [VINT_FIRECOUNT]
PUSH 1
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FIRECOUNT
LD int [r0],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 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 2
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,6
CAL int ADD r1,r0
CMP dword r1,1200
JPC B LABEL148
LD int r1,1199
LABEL148:
LD int r0,VINT_P
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,-16
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 3
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 0
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,6
CAL int ADD r1,r0
CMP dword r1,1200
JPC B LABEL149
LD int r1,1199
LABEL149:
LD int r0,VINT_P
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 0
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1 ^  [2]
PUSH 1
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,6
CAL int ADD r1,r0
CMP dword r1,1200
JPC B LABEL150
LD int r1,1199
LABEL150:
LD int r0,VINT_P
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 1  [1]
PUSH 200
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-16
LD int [r0],r3
JMP LABEL145
LABEL144:	; Else
LABEL145:	; End of If
JMP LABEL140
LABEL139:	; Else
LABEL140:	; End of If
;<Epression>
; Flush stack: 16 1 +  [3]
LD int r0,rb
CAL int ADD r0,-16
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,-16
LD int [r0],r3
JMP LABEL135
LABEL136:	; End of While
;<Epression>
; Flush stack: 16 1 -  [3]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
PUSH 10
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-12
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 16 1 ^ <  [4]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
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 LABEL153
PUSH 1
JMP LABEL154
LABEL153:
PUSH 0
LABEL154:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL151
;<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 ^  [2]
PUSH 1
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,6
CAL int ADD r1,r0
CMP dword r1,1200
JPC B LABEL155
LD int r1,1199
LABEL155:
LD int r0,VINT_P
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
;<Epression>
; Flush stack: 16 1 -  [3]
PUSH [VINT_FIRECOUNT]
PUSH 1
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_FIRECOUNT
LD int [r0],r3
JMP LABEL152
LABEL151:	; Else
LABEL152:	; End of If
JMP LABEL131
LABEL130:	; Else
LABEL131:	; End of If
; If code
;<Epression>
; Flush stack: 16 1 16 1 =  [5]
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 LABEL158
LD int r3,1199
LABEL158:
LD int r0,VINT_P
CAL int MUL r3,4
CAL int ADD r0,r3
PUSH [r0]
PUSH 1
POP r1
POP r0
CMP int r0,r1
JPC NZ LABEL159
PUSH 1
JMP LABEL160
LABEL159:
PUSH 0
LABEL160:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL156
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-8
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 16  [1]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
POP r3
;</Epression>
PUSH r3
;<Epression>
; Flush stack: 1  [1]
PUSH 1
POP r3
;</Epression>
PUSH r3
CALL FINT_DRAWFLY
CAL int ADD rs,12
; If code
;<Epression>
; Flush stack: 16 16 16 16 1 16  [6]
LD int r0,rb
CAL int ADD r0,-8
PUSH [r0]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
PUSH [VINT_FLYX]
PUSH [VINT_FLYY]
PUSH 28
CALL FINT_CHECKHIT
CAL int ADD rs,20
PUSH r3
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL161
;<Epression>
; Flush stack: 1 ^  [2]
PUSH 1
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,VINT_PLAY
LD int [r0],r3
JMP LABEL162
LABEL161:	; Else
LABEL162:	; End of If
;<Epression>
; Flush stack: 16 1 +  [3]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
PUSH 4
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-12
LD int [r0],r3
; If code
;<Epression>
; Flush stack: 1 16 !  [3]
PUSH 2
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r1
CMP int r1,0
JPC NZ LABEL165
PUSH 1
JMP LABEL166
LABEL165:
PUSH 0
LABEL166:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL163
;<Epression>
; Flush stack: 16 1 +  [3]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
PUSH 3
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-12
LD int [r0],r3
JMP LABEL164
LABEL163:	; Else
LABEL164:	; End of If
; If code
;<Epression>
; Flush stack: 1 16 !  [3]
PUSH 1
CALL FINT_RANDOM
CAL int ADD rs,4
PUSH r3
POP r1
CMP int r1,0
JPC NZ LABEL169
PUSH 1
JMP LABEL170
LABEL169:
PUSH 0
LABEL170:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL167
; If code
;<Epression>
; Flush stack: 16 16 <  [3]
LD int r0,rb
CAL int ADD r0,-8
PUSH [r0]
PUSH [VINT_FLYX]
POP r1
POP r0
CMP int r0,r1
JPC AE LABEL173
PUSH 1
JMP LABEL174
LABEL173:
PUSH 0
LABEL174:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL171
;<Epression>
; Flush stack: 16 1 +  [3]
LD int r0,rb
CAL int ADD r0,-8
PUSH [r0]
PUSH 3
POP r1
POP r0
CAL int ADD r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-8
LD int [r0],r3
JMP LABEL172
LABEL171:	; Else
LABEL172:	; End of If
; If code
;<Epression>
; Flush stack: 16 16 >  [3]
LD int r0,rb
CAL int ADD r0,-8
PUSH [r0]
PUSH [VINT_FLYX]
POP r1
POP r0
CMP int r0,r1
JPC BE LABEL177
PUSH 1
JMP LABEL178
LABEL177:
PUSH 0
LABEL178:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL175
;<Epression>
; Flush stack: 16 1 -  [3]
LD int r0,rb
CAL int ADD r0,-8
PUSH [r0]
PUSH 3
POP r1
POP r0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
LD int r0,rb
CAL int ADD r0,-8
LD int [r0],r3
JMP LABEL176
LABEL175:	; Else
LABEL176:	; End of If
JMP LABEL168
LABEL167:	; Else
LABEL168:	; End of If
; If code
;<Epression>
; Flush stack: 16 1 >  [3]
LD int r0,rb
CAL int ADD r0,-12
PUSH [r0]
PUSH 300
POP r1
POP r0
CMP int r0,r1
JPC BE LABEL181
PUSH 1
JMP LABEL182
LABEL181:
PUSH 0
LABEL182:
POP r3
;</Epression>
CMP int r3,0
JPC Z LABEL179
;<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 ^  [2]
PUSH 1
POP r1
LD int r0,0
CAL int SUB r0,r1
PUSH r0
POP r3
;</Epression>
POP r1
POP r0
CAL int MUL r0,6
CAL int ADD r1,r0
CMP dword r1,1200
JPC B LABEL183
LD int r1,1199
LABEL183:
LD int r0,VINT_P
CAL int MUL r1,4
CAL int ADD r0,r1
LD int [r0],r3
JMP LABEL180

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -