www.pudn.com > netbox-ii_ks0108_192x64.rar > OS_CPU_C.ASM


	.286 
	ifndef	??version 
?debug	macro 
	endm 
publicdll macro	name 
	public	name 
	endm 
	endif 
	?debug	V 300h 
	?debug	S "OS_CPU_C.C" 
	?debug	C E90D7ABB300A4F535F4350555F432E43 
	?debug	C E9FD72BA300A494E434C554445532E48 
	?debug	C E94019CA1815433A5C42435C494E434C5544455C535444494F2E48 
	?debug	C E94019CA1815433A5C42435C494E434C5544455C5F444546532E48 
	?debug	C E94019CA1816433A5C42435C494E434C5544455C5F4E46494C452E+ 
	?debug	C 48 
	?debug	C E94019CA1815433A5C42435C494E434C5544455C5F4E554C4C2E48 
	?debug	C E94019CA1816433A5C42435C494E434C5544455C535452494E472E+ 
	?debug	C 48 
	?debug	C E94019CA1815433A5C42435C494E434C5544455C43545950452E48 
	?debug	C E94019CA1816433A5C42435C494E434C5544455C5354444C49422E+ 
	?debug	C 48 
	?debug	C E94019CA1815433A5C42435C494E434C5544455C434F4E494F2E48 
	?debug	C E94019CA1813433A5C42435C494E434C5544455C444F532E48 
	?debug	C E94019CA1816433A5C42435C494E434C5544455C5345544A4D502E+ 
	?debug	C 48 
	?debug	C E9015A3A2C084F535F4350552E48 
OS_CPU_C_TEXT	segment byte public 'CODE' 
OS_CPU_C_TEXT	ends 
DGROUP	group	_DATA,_BSS 
	assume	cs:OS_CPU_C_TEXT,ds:DGROUP 
_DATA	segment word public 'DATA' 
d@	label	byte 
d@w	label	word 
_DATA	ends 
_BSS	segment word public 'BSS' 
b@	label	byte 
b@w	label	word 
_OSTickDOSCtr	label	byte 
	db	1 dup (?) 
	?debug	C E94E66C92A084F535F4346472E48 
	?debug	C E906AD392C0955434F535F49492E48 
	?debug	C E992AA392C0450432E48 
_BSS	ends 
OS_CPU_C_TEXT	segment byte public 'CODE' 
	?debug	C E8010A4F535F4350555F432E430D7ABB30 
   ;	 
   ;	  OSInitHookBegin (void) 
   ;	 
	?debug	L 36 
	assume	cs:OS_CPU_C_TEXT 
@OSInitHookBegin$qv	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	B 
   ;	 
   ;	{ 
   ;	} 
   ;	 
	?debug	L 38 
	pop	bp 
	ret	 
	?debug	E 
	?debug	E 
@OSInitHookBegin$qv	endp 
   ;	 
   ;	void  OSInitHookEnd (void) 
   ;	 
	?debug	L 54 
	assume	cs:OS_CPU_C_TEXT 
@OSInitHookEnd$qv	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	B 
   ;	 
   ;	{ 
   ;	} 
   ;	 
	?debug	L 56 
	pop	bp 
	ret	 
	?debug	E 
	?debug	E 
@OSInitHookEnd$qv	endp 
   ;	 
   ;	void  OSTaskCreateHook (OS_TCB *ptcb) 
   ;	 
	?debug	L 72 
	assume	cs:OS_CPU_C_TEXT 
@OSTaskCreateHook$qn6os_tcb	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	C E319066F735F74636233001E01 
	?debug	C E31A000400160A00 
	?debug	C E31B000400160100 
	?debug	C E31D084F535F4556454E540A001E16 
	?debug	C E31E0002001A08 
	?debug	C E31C000400161D00 
	?debug	C E3200C4F535F464C41475F4E4F444513001E1C 
	?debug	C E31F000400162000 
	?debug	C E318000400161900 
	?debug	C E60470746362180A060000 
	?debug	B 
   ;	 
   ;	{ 
   ;	    ptcb = ptcb;                       /* Prevent compiler warning                                     */ 
   ;	 
	?debug	L 74 
	mov	ax,word ptr [bp+8] 
	mov	dx,word ptr [bp+6] 
	mov	word ptr [bp+8],ax 
	mov	word ptr [bp+6],dx 
   ;	 
   ;	} 
   ;	 
	?debug	L 75 
	pop	bp 
	ret	 
	?debug	C E60470746362180A060000 
	?debug	E 
	?debug	E 
@OSTaskCreateHook$qn6os_tcb	endp 
   ;	 
   ;	void  OSTaskDelHook (OS_TCB *ptcb) 
   ;	 
	?debug	L 91 
	assume	cs:OS_CPU_C_TEXT 
@OSTaskDelHook$qn6os_tcb	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	C E60470746362180A060000 
	?debug	B 
   ;	 
   ;	{ 
   ;	    ptcb = ptcb;                       /* Prevent compiler warning                                     */ 
   ;	 
	?debug	L 93 
	mov	ax,word ptr [bp+8] 
	mov	dx,word ptr [bp+6] 
	mov	word ptr [bp+8],ax 
	mov	word ptr [bp+6],dx 
   ;	 
   ;	} 
   ;	 
	?debug	L 94 
	pop	bp 
	ret	 
	?debug	C E60470746362180A060000 
	?debug	E 
	?debug	E 
@OSTaskDelHook$qn6os_tcb	endp 
   ;	 
   ;	void  OSTaskIdleHook (void) 
   ;	 
	?debug	L 110 
	assume	cs:OS_CPU_C_TEXT 
@OSTaskIdleHook$qv	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	B 
   ;	 
   ;	{ 
   ;	} 
   ;	 
	?debug	L 112 
	pop	bp 
	ret	 
	?debug	E 
	?debug	E 
@OSTaskIdleHook$qv	endp 
   ;	 
   ;	void  OSTaskStatHook (void) 
   ;	 
	?debug	L 127 
	assume	cs:OS_CPU_C_TEXT 
@OSTaskStatHook$qv	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	B 
   ;	 
   ;	{ 
   ;	} 
   ;	 
	?debug	L 129 
	pop	bp 
	ret	 
	?debug	E 
	?debug	E 
@OSTaskStatHook$qv	endp 
   ;	 
   ;	OS_STK  *OSTaskStkInit (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt) 
   ;	 
	?debug	L 165 
	assume	cs:OS_CPU_C_TEXT 
@OSTaskStkInit$qnqnv$vnvnuiui	proc	far 
	?debug	B 
	enter	4,0 
	?debug	C E32200000023010400 
	?debug	C E321000400162200 
	?debug	C E6036F70740A0A1200000470746F731A0A0E0000+ 
	?debug	C 0570646174611B0A0A0000047461736B210A0600+ 
	?debug	C 00 
	mov	cx,word ptr [bp+18] 
	?debug	B 
   ;	 
   ;	{ 
   ;	    INT16U *stk; 
   ;	 
   ;	 
   ;	    opt    = opt;                           /* 'opt' is not used, prevent warning                      */ 
   ;	 
	?debug	L 170 
   ;	 
   ;	    stk    = (INT16U *)ptos;                /* Load stack pointer                                      */ 
   ;	 
	?debug	L 171 
	mov	ax,word ptr [bp+16] 
	mov	dx,word ptr [bp+14] 
	mov	word ptr [bp-2],ax 
	mov	word ptr [bp-4],dx 
   ;	 
   ;	    *stk-- = (INT16U)FP_SEG(pdata);         /* Simulate call to function with argument                 */ 
   ;	 
	?debug	L 172 
	les	bx,dword ptr [bp-4] 
	mov	ax,word ptr [bp+12] 
	mov	word ptr es:[bx],ax 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)FP_OFF(pdata);          
   ;	 
	?debug	L 173 
	les	bx,dword ptr [bp-4] 
	mov	ax,word ptr [bp+10] 
	mov	word ptr es:[bx],ax 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)FP_SEG(task); 
   ;	 
	?debug	L 174 
	les	bx,dword ptr [bp-4] 
	mov	ax,word ptr [bp+8] 
	mov	word ptr es:[bx],ax 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)FP_OFF(task); 
   ;	 
	?debug	L 175 
	les	bx,dword ptr [bp-4] 
	mov	ax,word ptr [bp+6] 
	mov	word ptr es:[bx],ax 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0x0202;                /* SW = Interrupts enabled                                 */ 
   ;	 
	?debug	L 176 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],514 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)FP_SEG(task);          /* Put pointer to task   on top of stack                   */ 
   ;	 
	?debug	L 177 
	les	bx,dword ptr [bp-4] 
	mov	ax,word ptr [bp+8] 
	mov	word ptr es:[bx],ax 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)FP_OFF(task); 
   ;	 
	?debug	L 178 
	les	bx,dword ptr [bp-4] 
	mov	ax,word ptr [bp+6] 
	mov	word ptr es:[bx],ax 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0xAAAA;                /* AX = 0xAAAA                                             */ 
   ;	 
	?debug	L 179 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],-21846 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0xCCCC;                /* CX = 0xCCCC                                             */ 
   ;	 
	?debug	L 180 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],-13108 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0xDDDD;                /* DX = 0xDDDD                                             */ 
   ;	 
	?debug	L 181 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],-8739 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0xBBBB;                /* BX = 0xBBBB                                             */ 
   ;	 
	?debug	L 182 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],-17477 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0x0000;                /* SP = 0x0000                                             */ 
   ;	 
	?debug	L 183 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],0 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0x1111;                /* BP = 0x1111                                             */ 
   ;	 
	?debug	L 184 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],4369 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0x2222;                /* SI = 0x2222                                             */ 
   ;	 
	?debug	L 185 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],8738 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0x3333;                /* DI = 0x3333                                             */ 
   ;	 
	?debug	L 186 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],13107 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk-- = (INT16U)0x4444;                /* ES = 0x4444                                             */ 
   ;	 
	?debug	L 187 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],17476 
	sub	word ptr [bp-4],2 
   ;	 
   ;	    *stk   = _DS;                           /* DS = Current value of DS                                */ 
   ;	 
	?debug	L 188 
	les	bx,dword ptr [bp-4] 
	mov	word ptr es:[bx],ds 
   ;	 
   ;	    return ((OS_STK *)stk); 
   ;	 
	?debug	L 189 
	mov	dx,word ptr [bp-2] 
	mov	ax,word ptr [bp-4] 
	jmp	short @7@58 
@7@58: 
   ;	 
   ;	} 
   ;	 
	?debug	L 190 
	leave	 
	ret	 
	?debug	C E60373746B1A02FCFF00047461736B210A060000+ 
	?debug	C 0570646174611B0A0A00000470746F731A0A0E00+ 
	?debug	C 00036F70740A0C0100 
	?debug	E 
	?debug	E 
@OSTaskStkInit$qnqnv$vnvnuiui	endp 
   ;	 
   ;	void  OSTaskStkInit_FPE_x86 (OS_STK **pptos, OS_STK **ppbos, INT32U *psize) 
   ;	 
	?debug	L 247 
	assume	cs:OS_CPU_C_TEXT 
@OSTaskStkInit_FPE_x86$qnnuit1nul	proc	far 
	?debug	B 
	enter	14,0 
	push	si 
	?debug	C E323000400161A00 
	?debug	C E324000400160C00 
	?debug	C E6057073697A65240A0E0000057070626F73230A+ 
	?debug	C 0A0000057070746F73230A060000 
	?debug	B 
   ;	 
   ;	{ 
   ;	    INT32U   lin_tos;                                 /* 'Linear' version of top-of-stack    address   */ 
   ;	    INT32U   lin_bos;                                 /* 'Linear' version of bottom-of-stack address   */ 
   ;	    INT16U   seg; 
   ;	    INT16U   off; 
   ;	    INT32U   bytes; 
   ;	 
   ;	 
   ;	    seg      = FP_SEG(*pptos);                        /* Decompose top-of-stack pointer into seg:off   */ 
   ;	 
	?debug	L 256 
	les	bx,dword ptr [bp+6] 
	mov	si,word ptr es:[bx+2] 
   ;	 
   ;	    off      = FP_OFF(*pptos); 
   ;	 
	?debug	L 257 
	les	bx,dword ptr [bp+6] 
	mov	ax,word ptr es:[bx] 
	mov	word ptr [bp-10],ax 
   ;	 
   ;	    lin_tos  = ((INT32U)seg << 4) + (INT32U)off;      /* Convert seg:off to linear address             */ 
   ;	 
	?debug	L 258 
	mov	ax,si 
	xor	dx,dx 
	mov	cl,4 
	call	far ptr F_LXLSH@ 
	add	ax,word ptr [bp-10] 
	adc	dx,0 
	mov	word ptr [bp-2],dx 
	mov	word ptr [bp-4],ax 
   ;	 
   ;	    bytes    = *psize * sizeof(OS_STK);               /* Determine how many bytes for the stack        */ 
   ;	 
	?debug	L 259 
	les	bx,dword ptr [bp+14] 
	mov	ax,word ptr es:[bx+2] 
	mov	dx,word ptr es:[bx] 
	shl	dx,1 
	rcl	ax,1 
	mov	word ptr [bp-12],ax 
	mov	word ptr [bp-14],dx 
   ;	 
   ;	    lin_bos  = (lin_tos - bytes + 15) & 0xFFFFFFF0L;  /* Ensure paragraph alignment for BOS            */ 
   ;	 
	?debug	L 260 
	mov	ax,word ptr [bp-2] 
	mov	dx,word ptr [bp-4] 
	sub	dx,word ptr [bp-14] 
	sbb	ax,word ptr [bp-12] 
	add	dx,15 
	adc	ax,0 
	and	dx,-16 
	and	ax,-1 
	mov	word ptr [bp-6],ax 
	mov	word ptr [bp-8],dx 
   ;	 
   ;	     
   ;	    seg      = (INT16U)(lin_bos >> 4);                /* Get new 'normalized' segment                  */ 
   ;	 
	?debug	L 262 
	mov	dx,word ptr [bp-6] 
	mov	ax,word ptr [bp-8] 
	mov	cl,4 
	call	far ptr F_LXURSH@ 
	mov	si,ax 
   ;	 
   ;	    *ppbos   = (OS_STK *)MK_FP(seg, 0x0000);          /* Create 'normalized' BOS pointer               */ 
   ;	 
	?debug	L 263 
	les	bx,dword ptr [bp+10] 
	mov	word ptr es:[bx+2],si 
	mov	word ptr es:[bx],0 
   ;	 
   ;	    memcpy(*ppbos, MK_FP(_SS, 0), 384);               /* Copy FP emulation memory to task's stack      */ 
   ;	 
	?debug	L 264 
	push	384 
	push	ss 
	push	0 
	les	bx,dword ptr [bp+10] 
	push	word ptr es:[bx+2] 
	push	word ptr es:[bx] 
	call	far ptr _memcpy 
	add	sp,10 
   ;	 
   ;	    bytes    = bytes - 16;                            /* Loose 16 bytes because of alignment           */ 
   ;	 
	?debug	L 265 
	mov	ax,word ptr [bp-12] 
	mov	dx,word ptr [bp-14] 
	sub	dx,16 
	sbb	ax,0 
	mov	word ptr [bp-12],ax 
	mov	word ptr [bp-14],dx 
   ;	 
   ;	    *pptos   = (OS_STK *)MK_FP(seg, (INT16U)bytes);   /* Determine new top-of-stack                    */ 
   ;	 
	?debug	L 266 
	mov	ax,word ptr [bp-14] 
	les	bx,dword ptr [bp+6] 
	mov	word ptr es:[bx+2],si 
	mov	word ptr es:[bx],ax 
   ;	 
   ;	    *ppbos   = (OS_STK *)MK_FP(seg, 384);             /* Determine new bottom-of-stack                 */ 
   ;	 
	?debug	L 267 
	les	bx,dword ptr [bp+10] 
	mov	word ptr es:[bx+2],si 
	mov	word ptr es:[bx],384 
   ;	 
   ;	    bytes    = bytes - 384; 
   ;	 
	?debug	L 268 
	mov	ax,word ptr [bp-12] 
	mov	dx,word ptr [bp-14] 
	sub	dx,384 
	sbb	ax,0 
	mov	word ptr [bp-12],ax 
	mov	word ptr [bp-14],dx 
   ;	 
   ;	    *psize   = bytes / sizeof(OS_STK);                /* Determine new stack size                      */ 
   ;	 
	?debug	L 269 
	mov	ax,word ptr [bp-12] 
	mov	dx,word ptr [bp-14] 
	shr	ax,1 
	rcr	dx,1 
	les	bx,dword ptr [bp+14] 
	mov	word ptr es:[bx+2],ax 
	mov	word ptr es:[bx],dx 
   ;	 
   ;	} 
   ;	 
	?debug	L 270 
	pop	si 
	leave	 
	ret	 
	?debug	C E60562797465730C02F2FF00036F66660A02F6FF+ 
	?debug	C 00037365670A040600076C696E5F626F730C02F8+ 
	?debug	C FF00076C696E5F746F730C02FCFF00057070746F+ 
	?debug	C 73230A060000057070626F73230A0A0000057073+ 
	?debug	C 697A65240A0E0000 
	?debug	E 
	?debug	E 
@OSTaskStkInit_FPE_x86$qnnuit1nul	endp 
   ;	 
   ;	void  OSTaskSwHook(void) 
   ;	 
	?debug	L 289 
	assume	cs:OS_CPU_C_TEXT 
@OSTaskSwHook$qv	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	B 
   ;	 
   ;	{ 
   ;	} 
   ;	 
	?debug	L 291 
	pop	bp 
	ret	 
	?debug	E 
	?debug	E 
@OSTaskSwHook$qv	endp 
   ;	 
   ;	void  OSTCBInitHook (OS_TCB *ptcb) 
   ;	 
	?debug	L 306 
	assume	cs:OS_CPU_C_TEXT 
@OSTCBInitHook$qn6os_tcb	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	C E60470746362180A060000 
	?debug	B 
   ;	 
   ;	{ 
   ;	    ptcb = ptcb;                                           /* Prevent Compiler warning                 */ 
   ;	 
	?debug	L 308 
	mov	ax,word ptr [bp+8] 
	mov	dx,word ptr [bp+6] 
	mov	word ptr [bp+8],ax 
	mov	word ptr [bp+6],dx 
   ;	 
   ;	} 
   ;	 
	?debug	L 309 
	pop	bp 
	ret	 
	?debug	C E60470746362180A060000 
	?debug	E 
	?debug	E 
@OSTCBInitHook$qn6os_tcb	endp 
   ;	 
   ;	void  OSTimeTickHook (void) 
   ;	 
	?debug	L 325 
	assume	cs:OS_CPU_C_TEXT 
@OSTimeTickHook$qv	proc	far 
	?debug	B 
	push	bp 
	mov	bp,sp 
	?debug	B 
   ;	 
   ;	{ 
   ;	} 
   ;	 
	?debug	L 327 
	pop	bp 
	ret	 
	?debug	E 
	?debug	E 
@OSTimeTickHook$qv	endp 
	?debug	C E9 
	?debug	C FA00000000 
OS_CPU_C_TEXT	ends 
_DATA	segment word public 'DATA' 
s@	label	byte 
_DATA	ends 
OS_CPU_C_TEXT	segment byte public 'CODE' 
OS_CPU_C_TEXT	ends 
	extrn	F_LXURSH@:far 
	extrn	F_LXLSH@:far 
	public	@OSTimeTickHook$qv 
	public	@OSTCBInitHook$qn6os_tcb 
	public	@OSTaskSwHook$qv 
	public	@OSTaskStkInit$qnqnv$vnvnuiui 
	public	@OSTaskStatHook$qv 
	public	@OSTaskIdleHook$qv 
	public	@OSTaskDelHook$qn6os_tcb 
	public	@OSTaskCreateHook$qn6os_tcb 
	public	@OSInitHookEnd$qv 
	public	@OSInitHookBegin$qv 
	public	@OSTaskStkInit_FPE_x86$qnnuit1nul 
	public	_OSTickDOSCtr 
_pokeb	equ	pokeb 
_poke	equ	poke 
_peekb	equ	peekb 
_peek	equ	peek 
_atoi	equ	atoi 
_abs	equ	abs 
	extrn	_memcpy:far 
_s@	equ	s@ 
	?debug	C EA050C 
	?debug	C E32500000023040500 
	?debug	C EB09465F4C5855525348402500 
	?debug	C EB08465F4C584C5348402500 
	?debug	C E32600000023010400 
	?debug	C EC12404F5354696D655469636B486F6F6B247176+ 
	?debug	C 261800 
	?debug	C E32700000023010400 
	?debug	C EC18404F53544342496E6974486F6F6B24716E36+ 
	?debug	C 6F735F746362271800 
	?debug	C E32800000023010400 
	?debug	C EC10404F535461736B5377486F6F6B2471762818+ 
	?debug	C 00 
	?debug	C E329000000231A0400 
	?debug	C EC1D404F535461736B53746B496E697424716E71+ 
	?debug	C 6E7624766E766E75697569291800 
	?debug	C E32A00000023010400 
	?debug	C EC12404F535461736B53746174486F6F6B247176+ 
	?debug	C 2A1800 
	?debug	C E32B00000023010400 
	?debug	C EC12404F535461736B49646C65486F6F6B247176+ 
	?debug	C 2B1800 
	?debug	C E32C00000023010400 
	?debug	C EC18404F535461736B44656C486F6F6B24716E36+ 
	?debug	C 6F735F7463622C1800 
	?debug	C E32D00000023010400 
	?debug	C EC1B404F535461736B437265617465486F6F6B24+ 
	?debug	C 716E366F735F7463622D1800 
	?debug	C E32E00000023010400 
	?debug	C EC11404F53496E6974486F6F6B456E642471762E+ 
	?debug	C 1800 
	?debug	C E32F00000023010400 
	?debug	C EC13404F53496E6974486F6F6B426567696E2471+ 
	?debug	C 762F1800 
	?debug	C E330046F735F7118001E23 
	?debug	C E331000400163000 
	?debug	C E332000400161B00 
	?debug	C E33300000023010400 
	?debug	C EC21404F535461736B53746B496E69745F465045+ 
	?debug	C 5F78383624716E6E756974316E756C331800 
	?debug	C EC0D5F4F535469636B444F53437472080000 
	?debug	C E334095F5F6A6D705F62756614001E2B 
	?debug	C E33500000023010400 
	?debug	C E33600000023010400 
	?debug	C E33700000023020400 
	?debug	C E33800000023040400 
	?debug	C E3390666696E645F742B001E36 
	?debug	C E33A0015001A02 
	?debug	C E33B000D001A02 
	?debug	C E33C056666626C6B2B001E3D 
	?debug	C E33D0015001A02 
	?debug	C E33E000D001A02 
	?debug	C E33F075245475041434B14001E44 
	?debug	C E34005535245475308001E4F 
	?debug	C E341045245475310001F54 
	?debug	C E34208574F52445245475310001E57 
	?debug	C E34308425954455245475308001E60 
	?debug	C E34409646F73646174655F7405001E69 
	?debug	C E345046461746504001E6E 
	?debug	C E34609646F7374696D655F7404001E72 
	?debug	C E3470474696D6504001E77 
	?debug	C E3480664657668647212001E7C 
	?debug	C E3490008001A02 
	?debug	C E34A07666174696E666F06001E8082 
	?debug	C E34B0A6469736B667265655F7408001E8087 
	?debug	C E34C05646672656508001E808C 
	?debug	C E34D08444F534552524F5205001E8091 
	?debug	C E34E07434F554E54525922001E8096 
	?debug	C E34F0005001A02 
	?debug	C E3500002001A02 
	?debug	C E3510002001A02 
	?debug	C E3520002001A02 
	?debug	C E3530002001A02 
	?debug	C E3540002001A02 
	?debug	C E355000A001A02 
	?debug	C E35604786663622C001E80A3 
	?debug	C E3570005001A02 
	?debug	C E3580366636225001E80A8 
	?debug	C E3590008001A02 
	?debug	C E35A0003001A02 
	?debug	C E35B000A001A02 
	?debug	C E35C09746578745F696E666F0B001E80B3 
	?debug	C E35D00000023010400 
	?debug	C E35E00000023040400 
	?debug	C E35F00000023040400 
	?debug	C E36000000023040400 
	?debug	C E361000000231B0400 
	?debug	C EB075F6D656D6370796100 
	?debug	C E6064F535F544342190600044F535F513006000C+ 
	?debug	C 4F535F464C41475F4E4F4445200600084F535F45+ 
	?debug	C 56454E541D0600084F535F464C4147530A060009+ 
	?debug	C 4F535F4350555F53520A0600064F535F53544B0A+ 
	?debug	C 060004465036340F060004465033320E06000649+ 
	?debug	C 4E5433325306060006494E543332550C06000649+ 
	?debug	C 4E5431365304060006494E543136550A06000549+ 
	?debug	C 4E54385302060005494E54385508060007424F4F+ 
	?debug	C 4C45414E0806000777636861725F740206000666+ 
	?debug	C 706F735F740606000673697A655F740A0600066F+ 
	?debug	C 735F746362190700046F735F71300700095F5F6A+ 
	?debug	C 6D705F6275663407000666696E645F7439070005+ 
	?debug	C 6666626C6B3C0700075245475041434B3F070005+ 
	?debug	C 5352454753400700045245475341070008425954+ 
	?debug	C 455245475343070008574F524452454753420700+ 
	?debug	C 09646F73646174655F7444070004646174654507+ 
	?debug	C 0009646F7374696D655F744607000474696D6547+ 
	?debug	C 07000664657668647248070007666174696E666F+ 
	?debug	C 4A07000A6469736B667265655F744B0700056466+ 
	?debug	C 7265654C070008444F534552524F524D07000743+ 
	?debug	C 4F554E5452594E07000478666362560700036663+ 
	?debug	C 6258070009746578745F696E666F5C0700 
	?debug	F pokeb 53 24 0 
	?debug	F poke 54 24 0 
	?debug	F peekb 55 24 0 
	?debug	F peek 56 24 0 
	?debug	F @randomize$qv 93 24 0 
	?debug	F @random$qi 94 24 0 
	?debug	F atoi 95 24 0 
	?debug	F abs 96 24 0 
	?debug	C E2000B4F5354434253746B5074721A000B4F5354+ 
	?debug	C 43424578745074721B000E4F5354434253746B42+ 
	?debug	C 6F74746F6D1A000C4F5354434253746B53697A65+ 
	?debug	C 0C00084F535443424F70740A00074F5354434249+ 
	?debug	C 640A00094F535443424E6578741800094F535443+ 
	?debug	C 425072657618000D4F535443424576656E745074+ 
	?debug	C 721C00084F535443424D73671B000D4F53544342+ 
	?debug	C 466C61674E6F64651F000D4F53544342466C6167+ 
	?debug	C 735264790A00084F53544342446C790A00094F53+ 
	?debug	C 544342537461740800094F535443425072696F08+ 
	?debug	C 00064F53544342580800064F5354434259080009+ 
	?debug	C 4F53544342426974580800094F53544342426974+ 
	?debug	C 5908000B4F5354434244656C52657108C0330000+ 
	?debug	C 00 
	?debug	C E2000B4F534576656E745479706508000A4F5345+ 
	?debug	C 76656E7447727008000A4F534576656E74436E74+ 
	?debug	C 0A000A4F534576656E745074721B000A4F534576+ 
	?debug	C 656E7454626C1EC00A000000 
	?debug	C E2000E4F53466C61674E6F64654E6578741B000E+ 
	?debug	C 4F53466C61674E6F6465507265761B000D4F5346+ 
	?debug	C 6C61674E6F64655443421B00114F53466C61674E+ 
	?debug	C 6F6465466C61674772701B000F4F53466C61674E+ 
	?debug	C 6F6465466C6167730A00124F53466C61674E6F64+ 
	?debug	C 65576169745479706508C013000000 
	?debug	C E200064F53515074723100084F53515374617274+ 
	?debug	C 3200064F5351456E643200054F5351496E320006+ 
	?debug	C 4F53514F75743200074F535153697A650A000A4F+ 
	?debug	C 5351456E74726965730AC018000000 
	?debug	C E200046A5F73700A00046A5F73730A00066A5F66+ 
	?debug	C 6C61670A00046A5F63730A00046A5F69700A0004+ 
	?debug	C 6A5F62700A00046A5F64690A00046A5F65730A00+ 
	?debug	C 046A5F73690A00046A5F64730AC014000000 
	?debug	C E2000872657365727665643A0006617474726962+ 
	?debug	C 02000777725F74696D650A000777725F64617465+ 
	?debug	C 0A000473697A650600046E616D653BC02B000000 
	?debug	C E2000B66665F72657365727665643D000966665F+ 
	?debug	C 61747472696202000866665F6674696D650A0008+ 
	?debug	C 66665F66646174650A000866665F6673697A6506+ 
	?debug	C 000766665F6E616D653EC02B000000 
	?debug	C E20004725F61780A0004725F62780A0004725F63+ 
	?debug	C 780A0004725F64780A0004725F62700A0004725F+ 
	?debug	C 73690A0004725F64690A0004725F64730A000472+ 
	?debug	C 5F65730A0007725F666C6167730AC014000000 
	?debug	C E2000265730A000263730A000273730A00026473+ 
	?debug	C 0AC008000000 
	?debug	C E20001784200016843C010000000 
	?debug	C E2000261780A000262780A000263780A00026478+ 
	?debug	C 0A000273690A000264690A000563666C61670A00+ 
	?debug	C 05666C6167730AC010000000 
	?debug	C E20002616C0800026168080002626C0800026268+ 
	?debug	C 080002636C0800026368080002646C0800026468+ 
	?debug	C 08C008000000 
	?debug	C E200036461790800056D6F6E7468080004796561+ 
	?debug	C 720A00096461796F667765656B08C005000000 
	?debug	C E2000764615F7965617204000664615F64617902+ 
	?debug	C 000664615F6D6F6E02C004000000 
	?debug	C E20004686F75720800066D696E75746508000673+ 
	?debug	C 65636F6E64080007687365636F6E6408C0040000+ 
	?debug	C 00 
	?debug	C E2000674695F6D696E08000774695F686F757208+ 
	?debug	C 000774695F68756E6408000674695F73656308C0+ 
	?debug	C 04000000 
	?debug	C E2000764685F6E65787406000764685F61747472+ 
	?debug	C 04000864685F73747261740A000864685F696E74+ 
	?debug	C 65720A000764685F6E616D6549C012000000 
	?debug	C E2000866695F73636C757302000866695F666174+ 
	?debug	C 696402000866695F6E636C75730A000866695F62+ 
	?debug	C 7973656304C006000000 
	?debug	C E2000E746F74616C5F636C7573746572730A000E+ 
	?debug	C 617661696C5F636C7573746572730A0013736563+ 
	?debug	C 746F72735F7065725F636C75737465720A001062+ 
	?debug	C 797465735F7065725F736563746F720AC0080000+ 
	?debug	C 00 
	?debug	C E2000864665F617661696C0A000864665F746F74+ 
	?debug	C 616C0A000764665F627365630A000864665F7363+ 
	?debug	C 6C75730AC008000000 
	?debug	C E2000B64655F6578746572726F7204000864655F+ 
	?debug	C 636C61737302000964655F616374696F6E020008+ 
	?debug	C 64655F6C6F63757302C005000000 
	?debug	C E20007636F5F64617465040007636F5F63757272+ 
	?debug	C 4F0008636F5F7468736570500008636F5F646573+ 
	?debug	C 6570510008636F5F6474736570520008636F5F74+ 
	?debug	C 6D73657053000C636F5F637572727374796C6502+ 
	?debug	C 0009636F5F646967697473020007636F5F74696D+ 
	?debug	C 65020007636F5F63617365060008636F5F646173+ 
	?debug	C 6570540007636F5F66696C6C55C022000000 
	?debug	C E20009786663625F666C6167020009786663625F+ 
	?debug	C 72657376570009786663625F6174747202000878+ 
	?debug	C 6663625F66636258C02C000000 
	?debug	C E200096663625F64726976650200086663625F6E+ 
	?debug	C 616D655900076663625F6578745A000A6663625F+ 
	?debug	C 637572626C6B04000B6663625F72656373697A65+ 
	?debug	C 04000B6663625F66696C73697A65060008666362+ 
	?debug	C 5F646174650400086663625F726573765B000A66+ 
	?debug	C 63625F63757272656302000A6663625F72616E64+ 
	?debug	C 6F6D06C025000000 
	?debug	C E2000777696E6C65667408000677696E746F7008+ 
	?debug	C 000877696E726967687408000977696E626F7474+ 
	?debug	C 6F6D0800096174747269627574650800086E6F72+ 
	?debug	C 6D61747472080008637572726D6F646508000C73+ 
	?debug	C 637265656E68656967687408000B73637265656E+ 
	?debug	C 7769647468080004637572780800046375727908+ 
	?debug	C C00B000000 
	end