DATA;
Alloc _Ram_Size
Ascii_Fin:;DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1
_ClrScr:;
PUSH EBP
MOV EBP,ESP
INC EBP
Mov EAX,65536;Add EAX,2041
Mov #EAX,1
Mov #EAX,0
POP EBP
RET
_Print:;
PUSH EBP
MOV EBP,ESP
INC EBP
mov EDX,EBP;
add EDX,2; // Colour
mov ESI,#EDX;
mov EDX,EBP;
add EDX,3; // Y
mov EBX,#EDX;
mov EDX,EBP;
add EDX,4; // X
mov ECX,#EDX;
mov EDX,EBP;
add EDX,5; // String
mov EDI,#EDX;
Mov EAX,65536
Mul ECX,2
Mul EBX,60
Add EAX,EBX;Add EAX,ECX
Print_:
Cmp #EDI,0
Je _PRET
Mov #EAX,#EDI
Inc EAX
Mov #EAX,ESI
Inc EAX
Inc EDI
Jmp Print_
_PRET:
POP EBP
RET
_End:;
PUSH EBP
MOV EBP,ESP
INC EBP
_End_:
Jmp _End_
POP EBP
RET
_Ram_sz:;
PUSH EBP
MOV EBP,ESP
INC EBP
mov EDX,EBP;
add EDX,2; // Memory
mov ECX,#EDX;
Push EAX
Push ESI
Mov ESI,65536;Add ESI,ECX
//** First Byte
Mov #_Ram_size,0
_Ram_CHK:
Mov #ESI,1234567
Cmp #ESI,1234567
Jne Continue
Mov #ESI,0
Add ESI,8;Add #_Ram_Size,8
Jmp _Ram_CHK
Continue:
Pop ESI
Pop EAX
POP EBP
RET
Alloc _JP
Alloc _JY
Alloc _JR
_Opcode_Details:;
PUSH EBP
MOV EBP,ESP
INC EBP
Cmp #Opcode,0;Ce _Opcode_0
Cmp #Opcode,1;Ce _Opcode_1
Cmp #Opcode,2;Ce _Opcode_2
Cmp #Opcode,3;Ce _Opcode_3
POP EBP
RET
Alloc _Temp
Alloc Opcode
NO:
inc #Opcode
Ret
PO:
Dec #Opcode
Ret
_CheckAngle:;
PUSH EBP
MOV EBP,ESP
INC EBP
Cmp #Opcode,3
Jge Check_2
Cmp #_JR,40
CG NO
Check_2:
Cmp #Opcode,0
Jle Check_End
Cmp #_JR,-40
CL PO
Check_End:
POP EBP
RET
_GetAngle:;
PUSH EBP
MOV EBP,ESP
INC EBP
in #_JP,0
in #_JY,1
in #_JR,2
POP EBP
RET
_SaveAngle:;
PUSH EBP
MOV EBP,ESP
INC EBP
mov EDX,EBP;
add EDX,2; // Memory
mov ESI,#EDX;
Mov EAX,65536;Add EAX,2048
Mov #EAX, #_JP
inc EAX
Mov #EAX, #_JY
Inc EAX
Mov #EAX, #_JR
POP EBP
RET
_PITOA:;
PUSH EBP
MOV EBP,ESP
INC EBP
mov EDX,EBP;
add EDX,2; // Colour
mov ESI,#EDX;
mov EDX,EBP;
add EDX,3; // Y
mov EBX,#EDX;
mov EDX,EBP;
add EDX,4; // X
mov ECX,#EDX;
Mul ECX,2
Mul EBX,60
Mov EAX,65536;Add EAX,ECX;Add EAX,EBX
Mov EDI,Ascii_Fin
Print_I:
Cmp #EDI,-1
Je _IPRET
Mov #EAX,#EDI
Inc EAX
Mov #EAX,ESI
Inc EAX
Inc EDI
Jmp Print_I
_IPRET:
POP EBP
RET
_ITOA:;
PUSH EBP
MOV EBP,ESP
INC EBP
mov EDX,EBP;
add EDX,2; // Interger
mov ESI,#EDX;
AsciiNize:
mov EAX,Ascii_Fin
mov EDX,10000000 // if you want less digits, remove zeros from this number
mov EBX,ESI
mov ECX,0
fint EBX
div EBX,EDX
div EDX,10
fint EBX
mov ECX,EBX
mul ECX,EDX
add EBX,48
mov #EAX,EBX
inc EAX
jmp Int_loop
Int_loop:
mov EBX,ESI
div EBX,EDX
fint EBX
push EBX
sub EBX,ECX
pop ECX
mul ECX,10
add EBX,48
mov #EAX,EBX // Write to DB
inc EAX
div EDX,10
cmp EDX,0.1
je Int_Fin
jmp Int_loop
Int_Fin:
POP EBP
RET
_ITOA2:;
PUSH EBP
MOV EBP,ESP
INC EBP
mov EDX,EBP;
add EDX,2; // Interger
mov EAX,#EDX;
Mov ESI,#EAX
AsciiNize2:
FINT ESI
cmp ESI,0;cl _NEG
mov EAX,Ascii_Fin
mov EDX,10000000 // if you want less digits, remove zeros from this number
mov EBX,ESI
mov ECX,0
fint EBX
div EBX,EDX
div EDX,10
fint EBX
mov ECX,EBX
mul ECX,EDX
add EBX,48
mov #EAX,EBX
inc EAX
jmp Int_loop
Int_loop2:
mov EBX,ESI
div EBX,EDX
fint EBX
push EBX
sub EBX,ECX
pop ECX
mul ECX,10
add EBX,48
mov #EAX,EBX // Write to DB
inc EAX
div EDX,10
cmp EDX,0.1
je Int_Fin
jmp Int_loop2
_NEG:
NEG ESI
Ret
POP EBP
RET
_Freq:;
PUSH EBP
MOV EBP,ESP
INC EBP
mov EDX,EBP;
add EDX,2; // Number
mov EAX,#EDX;
Out 0,EAX // 0 = Frequency Port
POP EBP
RET
CODE;
_Initialize:;
PUSH EBP
MOV EBP,ESP
INC EBP
MOV EAX,1000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_13
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
Mov ES,65536
MOV EAX,20000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
MOV EAX,_13
ADD EAX,21
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,1
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_13
ADD EAX,48
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,2
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,2048
PUSH EAX
MOV ECX,1
CALL _Ram_sz
ADD ESP,1
MOV EAX,_Ram_Size
PUSH EAX
MOV ECX,1
CALL _ITOA2
ADD ESP,1
MOV EAX,_13
ADD EAX,63
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,3
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
XOR EAX,EAX
PUSH EAX
MOV EAX,4
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,3
CALL _PITOA
ADD ESP,3
MOV EAX,1000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
Cmp #_Ram_Size,0;Je _NMRam
//Cmp #_Ram_Size,12288;Jl _LRRam
Pop EBP
Jmp _Check_Loop
POP EBP
RET
_13:; DB 73,110,105,116,105,97,108,105,122,105
DB 110,103,32,75,77,65,67,112,117,46
DB 0,83,101,116,116,105,110,103,32,117
DB 112,32,67,95,83,116,121,108,101,32
DB 67,97,108,108,105,110,103,0,67,104
DB 101,99,107,105,110,103,32,82,97,109
DB 46,46,0,82,97,109,32,83,105,122
DB 101,58,0
Alloc Key
_Check_Loop:;
PUSH EBP
MOV EBP,ESP
INC EBP
XOR ECX,ECX
CALL _GetAngle
XOR ECX,ECX
CALL _SaveAngle
XOR ECX,ECX
CALL _CheckAngle
MOV EAX,20000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
XOR ECX,ECX
CALL _Opcode_Details
MOV EAX,1000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
In #Key,3
Cmp #Key,1
Ce _DecodeOpcode
MOV EAX,1000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
POP EBP
Jmp _Check_Loop
POP EBP
RET
_LRMode:;
PUSH EBP
MOV EBP,ESP
INC EBP
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_15
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_15
ADD EAX,26
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,1
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
XOR ECX,ECX
CALL _End
POP EBP
RET
_15:; DB 71,111,105,110,103,32,105,110,116,111
DB 32,83,109,97,108,108,32,82,97,109
DB 32,77,111,100,101,0,85,115,105,110
DB 103,32,69,120,116,114,97,32,73,110
DB 116,101,114,110,97,108,32,82,97,109
DB 0
_NMRam:;
PUSH EBP
MOV EBP,ESP
INC EBP
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_16
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_16
ADD EAX,15
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,1
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
XOR EAX,EAX
PUSH EAX
MOV EAX,2
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,3
CALL _PITOA
ADD ESP,3
MOV EAX,_16
ADD EAX,25
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,3
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_16
ADD EAX,35
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,4
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
XOR ECX,ECX
CALL _End
POP EBP
RET
_16:; DB 78,101,101,100,32,77,111,114,101,32
DB 82,97,109,33,0,89,111,117,114,32
DB 82,97,109,58,0,82,101,113,117,105
DB 114,101,100,58,0,48,48,48,49,50
DB 50,56,56,0
_DecodeOpcode:;
PUSH EBP
MOV EBP,ESP
INC EBP
Cmp #Opcode,0;Ce _Help
Cmp #Opcode,1;Ce _Credits
Cmp #Opcode,2;Ce _Info
Cmp #Opcode,3;Ce _Joystick_Debug
POP EBP
RET
_Help:;
PUSH EBP
MOV EBP,ESP
INC EBP
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_18
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_18
ADD EAX,30
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,2
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_18
ADD EAX,81
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,4
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
POP EBP
RET
_18:; DB 85,115,101,32,74,111,121,115,116,105
DB 99,107,32,116,111,32,99,104,111,111
DB 115,101,32,97,32,80,97,103,101,0
DB 73,116,32,115,104,111,119,115,32,119
DB 104,97,116,32,105,115,32,111,110,32
DB 116,104,101,32,80,97,103,101,32,119
DB 104,101,110,32,121,111,117,32,115,101
DB 108,101,99,116,32,116,104,101,109,33
DB 0,65,110,121,32,66,117,103,47,80
DB 114,111,98,108,101,109,115,32,84,101
DB 108,108,32,82,101,100,83,107,117,115
DB 107,121,47,82,104,50,54,33,0
_Credits:;
PUSH EBP
MOV EBP,ESP
INC EBP
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_19
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,14
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,1
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,32
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,2
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,49
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,3
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,71
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,4
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,80
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,5
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,97
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,6
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,114
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,7
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,131
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,8
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,158
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,9
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_19
ADD EAX,179
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,10
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
POP EBP
RET
_19:; DB 83,101,114,118,101,114,32,72,111,115
DB 116,115,58,0,67,101,100,58,32,83
DB 99,104,119,101,101,116,66,117,105,108
DB 100,0,75,77,65,58,32,77,79,65
DB 82,32,83,101,114,118,101,114,0,79
DB 118,101,114,118,58,32,78,65,32,84
DB 101,115,116,32,83,101,114,118,101,114
DB 0,84,104,105,115,32,79,83,58,0
DB 67,32,76,73,66,58,32,82,101,100
DB 83,107,117,115,107,121,0,67,111,100
DB 101,100,58,32,82,101,100,83,107,117
DB 115,107,121,0,66,117,105,108,116,58
DB 32,82,101,100,83,107,117,115,107,121
DB 0,67,80,85,32,67,114,101,97,116
DB 111,114,58,32,66,108,97,99,107,32
DB 80,104,111,101,110,105,120,0,73,100
DB 101,97,115,58,32,66,108,97,99,107
DB 32,80,104,111,101,110,105,120,0,70
DB 117,110,71,117,121,58,32,124,71,67
DB 87,68,124,32,74,111,110,110,121,0
_Info:;
PUSH EBP
MOV EBP,ESP
INC EBP
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_20
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_20
ADD EAX,14
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,1
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_20
ADD EAX,26
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,2
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_20
ADD EAX,39
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,3
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_Ram_Size
PUSH EAX
MOV ECX,1
CALL _ITOA2
ADD ESP,1
MOV EAX,5
PUSH EAX
MOV EAX,3
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,3
CALL _PITOA
ADD ESP,3
POP EBP
RET
_20:; DB 67,32,76,105,98,32,86,101,114,58
DB 32,86,49,0,67,111,110,115,111,108
DB 101,58,32,86,49,0,74,111,121,83
DB 116,105,99,107,58,32,86,49,0,82
DB 97,109,58,0
_Joystick_Debug:;
PUSH EBP
MOV EBP,ESP
INC EBP
In #Key,3
Cmp #Key,1
Je Joy_Ret
MOV EAX,20000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
XOR ECX,ECX
CALL _GetAngle
XOR ECX,ECX
CALL _SaveAngle
XOR ECX,ECX
CALL _CheckAngle
MOV EAX,_21
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,5
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,20000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
MOV EAX,_JP
PUSH EAX
MOV ECX,1
CALL _ITOA2
ADD ESP,1
XOR EAX,EAX
PUSH EAX
MOV EAX,6
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,3
CALL _PITOA
ADD ESP,3
MOV EAX,_JY
PUSH EAX
MOV ECX,1
CALL _ITOA2
ADD ESP,1
XOR EAX,EAX
PUSH EAX
MOV EAX,7
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,3
CALL _PITOA
ADD ESP,3
MOV EAX,_JR
PUSH EAX
MOV ECX,1
CALL _ITOA2
ADD ESP,1
XOR EAX,EAX
PUSH EAX
MOV EAX,8
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,3
CALL _PITOA
ADD ESP,3
Jmp _Joystick_Debug
Joy_Ret:
MOV EAX,1000
PUSH EAX
MOV ECX,1
CALL _Freq
ADD ESP,1
POP EBP
RET
_21:; DB 74,111,121,115,116,105,99,107,32,65
DB 110,103,108,101,115,0
_Opcode_0:;
PUSH EBP
MOV EBP,ESP
INC EBP
Cmp #Opcode,#_Temp
Je Check_End
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_22
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,9
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_22
ADD EAX,12
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,17
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
Mov #_Temp,0
POP EBP
RET
_22:; DB 72,101,108,112,32,80,97,103,101,46
DB 46,0,67,114,101,100,105,116,32,80
DB 97,103,101,0
_Opcode_1:;
PUSH EBP
MOV EBP,ESP
INC EBP
Cmp #Opcode,#_Temp
Je Check_End
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_23
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_23
ADD EAX,12
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,9
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_23
ADD EAX,26
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,17
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
Mov #_Temp,1
POP EBP
RET
_23:; DB 73,110,102,111,32,80,97,103,101,46
DB 46,0,67,114,101,100,105,116,32,80
DB 97,103,101,46,46,0,72,101,108,112
DB 32,80,97,103,101,0
_Opcode_2:;
PUSH EBP
MOV EBP,ESP
INC EBP
Cmp #Opcode,#_Temp
Je Check_End
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_24
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_24
ADD EAX,12
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,9
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_24
ADD EAX,24
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,17
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
Mov #_Temp,2
POP EBP
RET
_24:; DB 67,114,101,100,105,116,32,80,97,103
DB 101,0,73,110,102,111,32,80,97,103
DB 101,46,46,0,74,111,121,115,116,105
DB 99,107,32,68,101,98,117,103,0
_Opcode_3:;
PUSH EBP
MOV EBP,ESP
INC EBP
Cmp #Opcode,#_Temp
Je Check_End
XOR ECX,ECX
CALL _ClrScr
MOV EAX,_25
//opt. add eax,0
PUSH EAX
XOR EAX,EAX
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
MOV EAX,_25
ADD EAX,10
PUSH EAX
XOR EAX,EAX
PUSH EAX
MOV EAX,9
PUSH EAX
MOV EAX,999
PUSH EAX
MOV ECX,4
CALL _Print
ADD ESP,4
Mov #_Temp,3
POP EBP
RET
_25:; DB 73,110,102,111,32,80,97,103,101,0
DB 74,111,121,115,116,105,99,107,32,68
DB 101,98,117,103,32,40,66,117,103,103
DB 121,41,0