From: sparky4 Date: Mon, 3 Apr 2017 21:32:38 +0000 (-0500) Subject: unable to compile because LINK.EXE is unknown. thus i cannot test original codes... X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;h=d3f4f24ebe6a4058ddcb270b775faddbedb7be8f;p=plz.git unable to compile because LINK.EXE is unknown. thus i cannot test original codes damn it! --- diff --git a/asmyt.o b/asmyt.o index a398f3e..4c32f35 100755 Binary files a/asmyt.o and b/asmyt.o differ diff --git a/copper.ass b/copper.ass index 0d0de2a..f5a5c87 100755 --- a/copper.ass +++ b/copper.ass @@ -6,8 +6,8 @@ PUBLIC _cop_start PUBLIC _cop_scrl PUBLIC _cop_plz - PUBLIC _close_copper - PUBLIC _init_copper + PUBLIC close_copper_ + PUBLIC init_copper_ PUBLIC _pompota PUBLIC _moveplz PUBLIC _fadepal @@ -49,7 +49,7 @@ _cop_scrl: add byte ptr [bx+si],al _cop_plz: add word ptr [bx+si],ax -_close_copper: +close_copper_: mov bx,7 mov ax,0 mov cx,0 @@ -66,21 +66,21 @@ _close_copper: mov dx,0 int 0fcH retf -_init_copper: +init_copper_: mov bx,7 mov ax,1 - mov cx,offset copper1 - mov dx,COPPER_TEXT +; mov cx,offset copper1 +; mov dx,COPPER_TEXT int 0fcH mov bx,7 mov ax,2 - mov cx,offset copper2 - mov dx,COPPER_TEXT +; mov cx,offset copper2 +; mov dx,COPPER_TEXT int 0fcH mov bx,7 mov ax,0 - mov cx,offset copper3 - mov dx,COPPER_TEXT +; mov cx,offset copper3 +; mov dx,COPPER_TEXT int 0fcH retf copper1: diff --git a/copper.o b/copper.o index 25131b6..9e7444b 100755 Binary files a/copper.o and b/copper.o differ diff --git a/dis/DIS.ASM b/dis/DIS.ASM new file mode 100755 index 0000000..8073d2f --- /dev/null +++ b/dis/DIS.ASM @@ -0,0 +1,26 @@ +code SEGMENT para public 'CODE' + ASSUME cs:code + +rtext: db 13,10 + db 'Demo Int Server (DIS) V1.0 Copyright (C) 1993 The Future Crew',13,10 + include disdate.inc + db 13,10,'Installed (int fc).',13,10 + db "NOTE: This DIS server doesn't support copper or music syncronization!",13,10 + db '$',26 + +rstart: mov ax,cs + mov ds,ax + mov dx,OFFSET rtext + mov ah,9 + int 21h + call dis_setint + mov ax,3100h + mov dx,(rend-rstart+600)/16 + int 21h + +include disint.asm + +rend LABEL BYTE +code ENDS + END rstart + \ No newline at end of file diff --git a/dis/DIS.EXE b/dis/DIS.EXE new file mode 100755 index 0000000..60e88d4 Binary files /dev/null and b/dis/DIS.EXE differ diff --git a/dis/DIS.H b/dis/DIS.H new file mode 100755 index 0000000..646e560 --- /dev/null +++ b/dis/DIS.H @@ -0,0 +1,59 @@ +/* Demo Int Server (DIS) V1.0 - Header & documentation file */ + +extern int dis_version(void); +/* Initialize dis. IMPORTANT. This routine must be called at start of each +** demo part, it will clear the exitkey flag and do other stuff as well... +** returns version number +** 0x100=V1.0 +** 0=dis not installed! +*/ + +extern int dis_indemo(void); +/* Returns status if the actual demo is running. +** 0=part run from dos +** 1=part run from demo (no mode switches etc) +*/ + +extern int dis_waitb(void); +/* waits for border, retuns number of frames since last call. +** (currently returns always 1) +*/ + +extern int dis_exit(void); +/* returns 1 if part should exit, 0 if not. +** Currently any key press sets dis_exit return status to 1. +*/ + +extern void dis_partstart(void); +/* initializes dis (calls dis_version), if dis is not detected +** exits to dos with an error msg. +*/ + +extern void * dis_msgarea(int areanumber); +/* returns a pointer to a 64 byte interpart communications area. +** areanumber is 0..3 +*/ + +extern int dis_muscode(int); +/* returns a music syncronization code. As a parameter, give the +** code you are waiting, so a skip can be easily done by DIS. +*/ + +extern int dis_musplus(void); +/* returns a music syncronization code. As a parameter, give the +** code you are waiting, so a skip can be easily done by DIS. +*/ + +extern int dis_musrow(int); +/* returns a music syncronization code. As a parameter, give the +** code you are waiting, so a skip can be easily done by DIS. +*/ + +extern void dis_setcopper(int routine_number,void (*routine)(void)); +/* routine=1(top of screen)/2(bottom of screen)/3(retrace) +** routine=pointer to routine +*/ + +void _dis_setmframe(int frame); +int _dis_getmframe(void); +int _dis_sync(void); diff --git a/dis/DIS.MAP b/dis/DIS.MAP new file mode 100755 index 0000000..eb40b65 --- /dev/null +++ b/dis/DIS.MAP @@ -0,0 +1,8 @@ + + Start Stop Length Name Class + + 00000H 00070H 00071H CODE CODE + +Program entry point at 0000:005A +Warning: No stack + diff --git a/dis/DIS.OBJ b/dis/DIS.OBJ new file mode 100755 index 0000000..23ea144 Binary files /dev/null and b/dis/DIS.OBJ differ diff --git a/dis/DISC.ASM b/dis/DISC.ASM new file mode 100755 index 0000000..8d6361e --- /dev/null +++ b/dis/DISC.ASM @@ -0,0 +1,173 @@ +;DIS - C interface, Large memory model + +CBEG MACRO ;C/Assembler procedure begin + push bp + mov bp,sp + push si + push di + push ds + ENDM + +CEND MACRO ;C/Assembler procedure end + pop ds + pop di + pop si + pop bp + ret + ENDM + +movpar MACRO reg,par ;loads parameter [par(0..)] to register [reg] + mov reg,[bp+par*2+6] + ENDM + +text_disc SEGMENT para public 'CODE' + ASSUME cs:text_disc + LOCALS + +public _dis_version ;int _dis_version(void) +_dis_version PROC FAR + xor ax,ax + mov es,ax + mov bx,es:[0fch*4+0] + mov es,es:[0fch*4+2] + cmp es:[bx-2],0fc0h + jne @@1 + cmp es:[bx-4],0fc0h + jne @@1 + xor bx,bx + int 0fch +@@1: ret +_dis_version ENDP + +public _dis_waitb ;int _dis_waitb(void) +_dis_waitb PROC FAR + mov bx,1 + int 0fch + ret +_dis_waitb ENDP + +error_nodis db 'ERROR: DIS not loaded.$' + +public _dis_partstart ;void _dis_partstart(void) +_dis_partstart PROC FAR + call _dis_version + cmp ax,0 + jne @@1 + mov ax,cs + mov ds,ax + mov dx,OFFSET error_nodis + mov ah,9 + int 21h + mov ax,4c03h + int 21h +@@1: ret +_dis_partstart ENDP + +public _dis_exit ;int _dis_exit(void) +_dis_exit PROC FAR + mov bx,2 + int 0fch + ret +_dis_exit ENDP + +public _dis_indemo ;int _dis_indemo(void) +_dis_indemo PROC FAR + mov bx,3 + int 0fch + ret +_dis_indemo ENDP + +public _dis_msgarea ;void *_dis_msgarea(void) +_dis_msgarea PROC FAR + push bp + mov bp,sp + mov ax,[bp+6] + mov bx,5 + int 0fch + pop bp + ret +_dis_msgarea ENDP + +public _dis_muscode ;int _dis_muscode(void) +_dis_muscode PROC FAR + push bp + mov bp,sp + mov ax,[bp+6] + mov bx,6 + int 0fch + pop bp + ret +_dis_muscode ENDP + +public _dis_musplus ;int _dis_musplus(void) +_dis_musplus PROC FAR + push bp + mov bp,sp + mov ax,[bp+6] + mov bx,6 + int 0fch + mov ax,dx + pop bp + ret +_dis_musplus ENDP + +public _dis_musrow ;int _dis_musrow(void) +_dis_musrow PROC FAR + push bp + mov bp,sp + mov bx,6 + int 0fch + mov ax,bx + pop bp + ret +_dis_musrow ENDP + +public _dis_setcopper ;void _dis_copper(int routine_number,void *routine) +_dis_setcopper PROC FAR + push bp + mov bp,sp + mov ax,[bp+6] + mov cx,[bp+8] + mov dx,[bp+10] + mov bx,7 + int 0fch + pop bp + ret +_dis_setcopper ENDP + +public _dis_setmframe ;void _dis_setmframe(int frame) +_dis_setmframe PROC FAR + push bp + mov bp,sp + mov dx,[bp+6] + mov ax,1 + mov bx,9 + int 0fch + pop bp + ret +_dis_setmframe ENDP + +public _dis_getmframe ;void _dis_getmframe(void) +_dis_getmframe PROC FAR + push bp + mov bp,sp + xor ax,ax + mov bx,9 + int 0fch + pop bp + ret +_dis_getmframe ENDP + +public _dis_sync ;void _dis_sync(void) +_dis_sync PROC FAR + push bp + mov bp,sp + mov bx,10 + int 0fch + pop bp + ret +_dis_sync ENDP + +text_disc ENDS + END + \ No newline at end of file diff --git a/dis/DISC.OBJ b/dis/DISC.OBJ new file mode 100755 index 0000000..9a0bf56 Binary files /dev/null and b/dis/DISC.OBJ differ diff --git a/dis/DISDATE.INC b/dis/DISDATE.INC new file mode 100755 index 0000000..00a3107 --- /dev/null +++ b/dis/DISDATE.INC @@ -0,0 +1 @@ +db 'BETA VERSION - Compiled: 07/26/93 03:15:53 ' \ No newline at end of file diff --git a/dis/DISINT.ASM b/dis/DISINT.ASM new file mode 100755 index 0000000..60b80cb --- /dev/null +++ b/dis/DISINT.ASM @@ -0,0 +1,463 @@ +;Actual DIS server routines +;========================== +;note: lines with TEMP! are temporary to be replaced by smarter +;techniques in the future... + +LOCALS +.386 +ALIGN 16 + +;±±±±±±±±±±±±±±±±±±±± Variables ±±±±±±±±±±±±±±±±±± +exitflag dw 0 ;1=exit key pressed +indemoflag dw 0 ;1=inside the great big ultra cool demo +passmuscode dw 0 + +ALIGN 4 +msgarea0 db 64 dup(0) +msgarea1 db 64 dup(0) +msgarea2 db 64 dup(0) +msgarea3 db 64 dup(0) + +;±±±±±±±±±±±±±± List of service routines ±±±±±±±±±±±± +service0 LABEL WORD + dw OFFSET version_0 + dw OFFSET waitb_1 + dw OFFSET exit_2 + dw OFFSET indemo_3 + dw OFFSET loader_4 + dw OFFSET msgarea_5 + dw OFFSET muscode_6 + dw OFFSET setcopper_7 + dw OFFSET fastvmode_8 + dw OFFSET musframe_9 + dw OFFSET sync_10 +service9 LABEL WORD + +;±±±±±±±±±±±±±±±±±±±± General stuff ±±±±±±±±±±±±±±±±±± + +dis_oldint dd ? + +dis_setint PROC NEAR + push ds + xor ax,ax + mov ds,ax + mov ax,word ptr ds:[0fch*4+0] + mov bx,word ptr ds:[0fch*4+2] + mov word ptr cs:dis_oldint[0],ax + mov word ptr cs:dis_oldint[2],bx + mov word ptr ds:[0fch*4+0],OFFSET dis_int + mov word ptr ds:[0fch*4+2],cs + pop ds + ret +dis_setint ENDP + +dis_resetint PROC NEAR + xor ax,ax + mov ds,ax + mov ax,word ptr cs:dis_oldint[0] + mov bx,word ptr cs:dis_oldint[2] + mov word ptr ds:[0fch*4+0],ax + mov word ptr ds:[0fch*4+2],bx + ret +dis_resetint ENDP + + dw 0fc0h ;signature for dis + dw 0fc0h ;installation check +dis_int PROC FAR ;interrupt 0fch server, BX=function number + sti + shl bx,1 + cmp bx,(service9-service0) + jae @@1 + call cs:service0[bx] +@@1: iret +dis_int ENDP + +;±±±±±±±±±±±±±±±±±±±± Service Routines ±±±±±±±±±±±±±±±±±± + +;entry: - +; exit: AX=version +;descr: - +version_0 PROC NEAR + ;indemo? + IFDEF INDEMO + mov ax,1 + ELSE + mov ax,0 + ENDIF + mov cs:indemoflag,ax + ;initialize + mov cs:passmuscode,0 + mov cs:exitflag,0 + ;return version + mov ax,0100h + ret +version_0 ENDP + +ff PROC FAR + IFDEF INDEMO + push es + mov es,cs:stmikseg + mov bx,es:_np_ord + inc bx + xor ax,ax + push ax + push bx + call _zgotosong + add sp,4 + pop es + ENDIF + ret +ff ENDP + +checkkeys PROC NEAR + IFDEF INDEMO + cmp cs:forcebreak,0 + jne @@3 + ENDIF + call ctrldown + jc @@6 + mov ah,1 ;TEMP! + int 16h + jz @@3 + mov ah,0 + int 16h + cmp al,'0' + jne @@9 + pusha + push ds + push es + mov ax,0fcfch + mov bx,1 + int 33h + pop es + pop ds + popa + ret +@@9: cmp al,'9' + jne @@8 + pusha + push ds + push es + mov ax,0fcfch + mov bx,2 + int 33h + pop es + pop ds + popa + ret +@@8: cmp al,'1' + jne @@5 + call ff +@@5: cmp al,27 + jne @@4 +@@6: mov cs:exitflag,1 +@@4: mov cs:passmuscode,1 +@@3: ret +checkkeys ENDP + +;entry: - +; exit: - +;descr: Waits for border start +waitb_1 PROC NEAR + call checkkeys + IFDEF INDEMO + sti + mov ax,cs:copperframecount +@@v: cmp cs:copperframecount,ax + je @@v +@@q: mov ax,cs:copperframecount + mov cs:copperframecount,0 + ELSE + mov dx,3dah +@@1: in al,dx + test al,8 + jnz @@1 +@@2: in al,dx + test al,8 + jz @@2 + mov ax,1 ;number of frames taken ;TEMP! + ENDIF + ret +waitb_1 ENDP + +;entry: - +; exit: AX=return +;descr: returns 1 if part should exit. +exit_2 PROC NEAR + call checkkeys + mov ax,cs:exitflag + ret +exit_2 ENDP + +;entry: - +; exit: AX=return +;descr: returns 1 if inside demo (and not testing from dos) +indemo_3 PROC NEAR + mov ax,cs:indemoflag + ret +indemo_3 ENDP + +;entry: AX=area desired (0..3) +; exit: DX:AX=pointer to msgarea +;descr: returns a pointer to interpart communications area. +; There is ONLY 64 bytes of space in the area, DON'T OVERFLOW IT :-) +msgarea_5 PROC NEAR + cmp ax,1 + je @@1 + cmp ax,2 + je @@2 + cmp ax,3 + je @@3 +@@0: mov dx,cs + mov ax,OFFSET msgarea0 + ret +@@1: mov dx,cs + mov ax,OFFSET msgarea1 + ret +@@2: mov dx,cs + mov ax,OFFSET msgarea2 + ret +@@3: mov dx,cs + mov ax,OFFSET msgarea3 + ret +msgarea_5 ENDP + +;Loader functions (not for parts) +;entry: AX=0/1 +; exit: - +;descr: AX=0: restores dos process id +; AX=1: sets dos process id to the loader +; AX=100h: call _zloadinstrument(dx) +; AX=101h: call _zinitmodule(dx:0) +; This is used to load the music in name of the loader! +loader_4 PROC NEAR + IFDEF INDEMO + call loaderservices + ENDIF + ret +loader_4 ENDP + +;entry: AX=code you want (are waiting for) +; exit: AX=current code,BX=row +muscode_6 PROC NEAR + push ax + call checkkeys + pop ax + IFDEF INDEMO + push es + mov es,cs:stmikseg + mov ax,es:_np_zinfo + mov bx,es:_np_row + mov cx,es:_np_ord + mov dx,-32 + cmp es:_np_zplus,0 + je @@1a + cmp es:_np_zplus,1 + je @@1b + cmp es:_np_zplus,2 + je @@1e +@@1eb: cmp bx,32 + ja @@1b +@@1e: mov dx,bx + cmp dx,32 + jb @@1a + mov dx,-32 + jmp @@1a +@@1b: ;plus coming + mov dx,bx + sub dx,64 + cmp dx,-32 + jge @@1a + mov dx,-32 +@@1a: mov bx,es:_np_row + pop es + ELSE + cmp cs:passmuscode,0 + jne @@1 + xor ax,ax + ENDIF + ret +@@1: mov cs:passmuscode,0 + ret +muscode_6 ENDP + +;entry: AX=number of copper interrupt to capture: +; 0=after display start (about scan line 25) +; 1=just before retrace (AVOID USING THIS IF POSSIBLE) +; 2=in the retrace +; DX:CX=far pointer to routine (0:0=remove routine) +; The routine pointed to must end in a RETF. It must save any +; 386 registers it uses (including FS/GS) +; exit: - +;descr: sets the specified copper interrupt to call the specified routine. +; IMPORTANT: The part must reset the copper int before it exits! +setcopper_7 PROC NEAR + IFDEF INDEMO + or dx,dx + jnz @@1 + or cx,cx + jnz @@1 + mov dx,cs + mov cx,OFFSET copper_intretf +@@1: cmp ax,0 + jne @@2 + mov word ptr cs:copper_int0[0],cx + mov word ptr cs:copper_int0[2],dx +@@2: cmp ax,1 + jne @@3 + mov word ptr cs:copper_int1[0],cx + mov word ptr cs:copper_int1[2],dx +@@3: cmp ax,2 + jne @@4 + mov word ptr cs:copper_int2[0],cx + mov word ptr cs:copper_int2[2],dx +@@4: ENDIF + ret +setcopper_7 ENDP + +;entry: AX=area (0..3) containing the saved VGA state. +; exit: - +;descr: Quicksets the desired vga mode (takes one frame) +fastvmode_8 PROC NEAR ;DOESN'T WORK!-( + IFDEF INDEMO + push si + push ds + call msgarea_5 ;dx:ax=ds:ax + mov si,ax + mov ax,cs + mov ds,ax + ;data now at ds:si + push si + call waitb_1 + pop si + mov dx,3dah + in al,dx + ;Syncronous reset + mov dx,3c4h + mov ax,0200h + out dx,ax + ;Clear CRTC protection flag + mov dx,3d4h + mov al,011h + out dx,al + inc dx + in al,dx + and al,not 128 + out dx,al + ;Set misc register + mov al,ds:[si] + inc si + mov dx,3c2h + out dx,al + ;Set Sequencer (3C4) + mov dx,3c4h + xor al,al + REPT 04h+1 + mov ah,ds:[si] + inc si + out dx,ax + inc al + ENDM + ;Set CRTC (3D4) + mov dx,3d4h + xor al,al + REPT 018h+1 + mov ah,ds:[si] + inc si + out dx,ax + inc al + ENDM + ;Set GFX controller (3CE) + mov dx,3ceh + xor al,al + REPT 08h+1 + mov ah,ds:[si] + inc si + out dx,ax + inc al + ENDM + ;Set Attribute controller (3C0) + mov dx,3dah + in al,dx + mov dx,3c0h + zzz=0 + REPT 014h+1 + mov al,zzz + out dx,al + mov al,ds:[si] + out dx,al + inc si + zzz=zzz+1 + ENDM + ;Enable display, enable PEL mask + mov dx,3c0h + mov al,20h + out dx,al + mov dx,3c6h + mov al,0ffh + out dx,al + pop ds + pop si + ELSE + mov ax,13h + int 10h + ENDIF + ret +fastvmode_8 ENDP + +;entry: AX=1 : set frame to DX +; AX=0 : read frame to AX +; exit: AX=frame) +;descr: controls/returns music frame numbers +musframe_9 PROC NEAR + IFDEF INDEMO + push es + mov es,cs:stmikseg + cmp ax,0 + je @@1 + mov es:_np_zframe,dx +@@1: mov ax,es:_np_zframe + pop es + ELSE + xor ax,ax + ENDIF + ret +musframe_9 ENDP + +IFDEF INDEMO +ordersync1 LABEL BYTE ;startpart +dw 0000h,0 +dw 0200h,1 +dw 0300h,2 +dw 032fh,3 +dw 042fh,4 +dw 052fh,5 +dw 062fh,6 +dw 072fh,7 +dw 082fh,8 +dw 0900h,9 +dw 0d00h,10 +;dw 0800h,8 +;dw 0c00h,9 +;dw 0f00h,10 +dw 3d00h,1 +dw 3f00h,2 +dw 4100h,3 +dw 4200h,4 +ENDIF + +sync_10 PROC NEAR + IFDEF INDEMO + mov es,cs:stmikseg + mov dh,byte ptr es:_np_ord + mov dl,byte ptr es:_np_row + mov bx,OFFSET ordersync1 + mov cx,16 +@@2: cmp dx,cs:[bx] + jbe @@1 + add bx,4 + loop @@2 +@@1: mov ax,cs:[bx-2] + ENDIF + ret +sync_10 ENDP diff --git a/dis/DISTEST.C b/dis/DISTEST.C new file mode 100755 index 0000000..24c8ee0 --- /dev/null +++ b/dis/DISTEST.C @@ -0,0 +1,26 @@ +#include +#include "dis.h" + +main() +{ + int a; + a=dis_version(); + if(!a) + { + printf("\nDIS not installed!\n"); + return(1); + } + else + { + printf("\nDIS version %04X installed.\n",a); + } + printf("\nPress any key to exit.\n"); + a=0; + while(!dis_exit()) + { + a+=dis_waitb(); + printf("%i frames waited.\r",a); + } + printf("\n\n"); + return(0); +} diff --git a/dis/DISTEST.EXE b/dis/DISTEST.EXE new file mode 100755 index 0000000..2eb436c Binary files /dev/null and b/dis/DISTEST.EXE differ diff --git a/dis/DISTEST.OBJ b/dis/DISTEST.OBJ new file mode 100755 index 0000000..a819804 Binary files /dev/null and b/dis/DISTEST.OBJ differ diff --git a/dis/DODATE.EXE b/dis/DODATE.EXE new file mode 100755 index 0000000..b93efca Binary files /dev/null and b/dis/DODATE.EXE differ diff --git a/dis/MAKEFILE b/dis/MAKEFILE new file mode 100755 index 0000000..8ceff06 --- /dev/null +++ b/dis/MAKEFILE @@ -0,0 +1,22 @@ +all : dis.exe distest.exe + +objs= + +asm_f = /ML /m2 /s /JJUMPS +c_f = /AL /c /W3 + +.asm.obj : + tasm $(asm_f) $< + +.c.obj : + cl /qc $(c_f) $< + +dis.obj : dis.asm disint.asm + ..\util\dodate "db 'BETA VERSION - Compiled:" "'" > disdate.inc + tasm $(asm_f) dis.asm + +dis.exe : dis.obj + link dis.obj,dis.exe; + +distest.exe : distest.obj disc.obj + link /E distest.obj+disc.obj,distest.exe; diff --git a/dis/NOTES b/dis/NOTES new file mode 100755 index 0000000..e9c9be4 --- /dev/null +++ b/dis/NOTES @@ -0,0 +1,10 @@ +0 version +1 waitborder, returns number frames +2 keybhit 0 ei, 1=quit +3 indemo + +. set framecounter +. get framecounter +. insert copper routine +. remove copper routine +. get equpointer diff --git a/dis/README b/dis/README new file mode 100755 index 0000000..34b31f0 --- /dev/null +++ b/dis/README @@ -0,0 +1,19 @@ +Demo Interrupt Server - For Internal FC distribution +==================================================== + +Version is 1.0á, this is still in development, and will be untill +< Unreal 2 | [ Rectum ] [Impact] | Potato | ? > is finished. + +Read dis.h for function descriptions. + +makefile guess (microsoft nmake) +dis.h C header file for routines in disc.asm +disc.asm C interface routines for DIS (also usable from asm) +dis.asm Resident DIS server main program +disint.asm Actual DIS interrupt server +distest.c C test program for DIS +notes Notes... Nothing special + +The disc.asm(obj) is the easiest way to call dis from C. If you want +to call it from asm, see the disc.asm and copy routines from there +or include it to your asm. \ No newline at end of file diff --git a/makefile b/makefile index 7d04724..976717b 100755 --- a/makefile +++ b/makefile @@ -95,8 +95,8 @@ asmyt.$(OBJ): asmyt.h asmyt.c #wasm $(AFLAGS) -zcm=tasm -c asmyt.asm wcl $(FLAGS) -c asmyt.c copper.$(OBJ): copper.h copper.asm#copper.c - wasm $(AFLAGS) -zcm=tasm -c copper.asm -# wasm $(AFLAGS) -c copper.ass +# wasm $(AFLAGS) -zcm=tasm -c copper.asm + wasm $(AFLAGS) -c copper.ass # wcl $(FLAGS) -c copper.c #tasm compiled... diff --git a/plz.o b/plz.o index 5554554..c0c09c8 100755 Binary files a/plz.o and b/plz.o differ diff --git a/plzpart.c b/plzpart.c index 0f79e63..f01529f 100755 --- a/plzpart.c +++ b/plzpart.c @@ -1,11 +1,13 @@ //#include "..\dis\dis.h" #include "plzpart.h" +#include //extern vect(); void main() { // dis_partstart(); init_copper(); + printf("copper ok\n"); // initvect(); plz(); // vect(); diff --git a/plzpart.exe b/plzpart.exe index 7073913..82b1a21 100755 Binary files a/plzpart.exe and b/plzpart.exe differ diff --git a/plzpart.map b/plzpart.map index 9011565..dc573ef 100755 --- a/plzpart.map +++ b/plzpart.map @@ -1,7 +1,7 @@ -Open Watcom Linker Version 2.0 beta Feb 1 2016 01:01:49 (32-bit) +Open Watcom Linker Version 2.0 beta Nov 19 2016 01:49:19 (64-bit) Copyright (c) 2002-2016 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 16/08/08 09:22:34 +Created on: 17/04/03 15:34:13 Executable Image: plzpart.exe creating a DOS executable @@ -13,7 +13,7 @@ creating a DOS executable Group Address Size ===== ======= ==== -DGROUP 01b0:0000 0000aa50 +DGROUP 04c8:0000 0000ad90 @@ -24,28 +24,28 @@ DGROUP 01b0:0000 0000aa50 Segment Class Group Address Size ======= ===== ===== ======= ==== -plzpart_TEXT CODE AUTO 0000:0000 00000020 -tweak_TEXT CODE AUTO 0000:0020 0000006d -plz_TEXT CODE AUTO 0000:0090 00000a26 -asmyt_TEXT CODE AUTO 0000:0ac0 000001ef -copper_TEXT CODE AUTO 0000:0cb0 0000099b -_TEXT CODE AUTO 0000:164c 000004ae -FAR_DATA FAR_DATA AUTO 01af:000a 00000000 -_NULL BEGDATA DGROUP 01b0:0000 00000020 -_AFTERNULL BEGDATA DGROUP 01b2:0000 00000002 -CONST DATA DGROUP 01b2:0002 00000000 -CONST2 DATA DGROUP 01b2:0002 00000000 -_DATA DATA DGROUP 01b3:0000 000002c4 -XIB DATA DGROUP 01df:0004 00000000 -XI DATA DGROUP 01df:0004 00000006 -XIE DATA DGROUP 01df:000a 00000000 -YIB DATA DGROUP 01df:000a 00000000 -YI DATA DGROUP 01df:000a 00000000 -YIE DATA DGROUP 01df:000a 00000000 -STRINGS DATA DGROUP 01df:000a 00000000 -DATA DATA DGROUP 01df:000a 00000000 -_BSS BSS DGROUP 01df:000a 0000274e -STACK STACK DGROUP 0455:0000 00008000 +plzpart_TEXT CODE AUTO 0000:0000 00000039 +tweak_TEXT CODE AUTO 0000:0040 0000006d +plz_TEXT CODE AUTO 0000:00b0 00000a26 +asmyt_TEXT CODE AUTO 0000:0ae0 000001ef +copper_TEXT CODE AUTO 0000:0cd0 00000987 +_TEXT CODE AUTO 0000:1660 0000361e +FAR_DATA FAR_DATA AUTO 04c7:000e 00000000 +_NULL BEGDATA DGROUP 04c8:0000 00000020 +_AFTERNULL BEGDATA DGROUP 04ca:0000 00000002 +CONST DATA DGROUP 04ca:0002 00000050 +CONST2 DATA DGROUP 04cf:0002 00000000 +_DATA DATA DGROUP 04d0:0000 00000488 +XIB DATA DGROUP 0518:0008 00000000 +XI DATA DGROUP 0518:0008 00000018 +XIE DATA DGROUP 051a:0000 00000000 +YIB DATA DGROUP 051a:0000 00000000 +YI DATA DGROUP 051a:0000 00000006 +YIE DATA DGROUP 051a:0006 00000000 +STRINGS DATA DGROUP 051a:0006 00000000 +DATA DATA DGROUP 051a:0006 00000000 +_BSS BSS DGROUP 051a:0006 00002862 +STACK STACK DGROUP 07a1:0000 00008000 +----------------+ @@ -59,129 +59,262 @@ Address Symbol ======= ====== Module: plzpart.o(/dos/z/plz/plzpart.c) -0000:0000 main_ +0000:000c main_ Module: tweak.o(/dos/z/plz/tweak.c) -0000:0020 tw_opengraph2_ -0000:0068 tw_setrgbpalette_ +0000:0040 tw_opengraph2_ +0000:0088 tw_setrgbpalette_ Module: plz.o(/dos/z/plz/plz.c) -0000:0090 plz_ -0000:0352+ init_plz_ -01b0:0030* _vmem -01b0:0034+ _ptau -01b0:0134+ _curpal -01b0:0136* _timetable -01b0:014a+ _ttptr -01b0:014c _l1 -01b0:014e _l2 -01b0:0150 _l3 -01b0:0152 _l4 -01b0:0154 _k1 -01b0:0156 _k2 -01b0:0158 _k3 -01b0:015a _k4 -01b0:015c _il1 -01b0:015e _il2 -01b0:0160 _il3 -01b0:0162 _il4 -01b0:0164 _ik1 -01b0:0166 _ik2 -01b0:0168 _ik3 -01b0:016a _ik4 -01b0:016c+ _inittable -01b0:02fa+ _pals +0000:00b0 plz_ +0000:0372+ init_plz_ +04c8:0080* _vmem +04c8:0084+ _ptau +04c8:0184+ _curpal +04c8:0186* _timetable +04c8:019a+ _ttptr +04c8:019c _l1 +04c8:019e _l2 +04c8:01a0 _l3 +04c8:01a2 _l4 +04c8:01a4 _k1 +04c8:01a6 _k2 +04c8:01a8 _k3 +04c8:01aa _k4 +04c8:01ac _il1 +04c8:01ae _il2 +04c8:01b0 _il3 +04c8:01b2 _il4 +04c8:01b4 _ik1 +04c8:01b6 _ik2 +04c8:01b8 _ik3 +04c8:01ba _ik4 +04c8:01bc+ _inittable +04c8:0526+ _pals Module: asmyt.o(/dos/z/plz/asmyt.c) -0000:0ac0 plzline_ -0000:0b3a setplzparas_ -0000:0c6e set_plzstart_ -Module: copper.o(/dos/z/plz/copper.asm) -0000:0cb0 _frame_count -0000:0ceb init_copper_ -0000:0cc0 close_copper_ -0000:0cb2 _cop_drop -0000:0cb4* _cop_pal -0000:0cb8* _do_pal -0000:0cbc* _cop_scrl -0000:0cba _cop_start -0000:0cbe _cop_plz -0000:0d8b* pompota -0000:0db9* moveplz -0000:0e97 _fadepal -0000:1497 _cop_fadepal +0000:0ae0 plzline_ +0000:0b5a setplzparas_ +0000:0c8e set_plzstart_ +Module: copper.o(/dos/z/plz/copper.ass) +0000:0cd0 _frame_count +0000:0cd2 _cop_drop +0000:0cd4* _cop_pal +0000:0cd8* _do_pal +0000:0cda _cop_start +0000:0cdc* _cop_scrl +0000:0cde _cop_plz +0000:0ce0 close_copper_ +0000:0d0b init_copper_ +0000:0d99* _pompota +0000:0dc7* _moveplz +0000:0ea3 _fadepal +0000:14a3 _cop_fadepal Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(stk086.asm) -0000:1651 __STK -0000:1671* __STKOVERFLOW_ +0000:1665 __STK +0000:1685* __STKOVERFLOW_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(printf.c) +0000:16a2 printf_ Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(cstart) -01b0:0000* __nullarea -01b0:02b6* __ovlflag -01b0:02b7* __intno -01b0:02b8* __ovlvec -0000:168e _cstart_ -0000:1761* _Not_Enough_Memory_ -0000:1893 __exit_ -0000:18b0 __do_exit_with_msg__ -0000:1909 __GETDS +04c8:0000* __nullarea +04c8:0306* __ovlflag +04c8:0307* __intno +04c8:0308* __ovlvec +0000:16d2 _cstart_ +0000:17a5* _Not_Enough_Memory_ +0000:18d7 __exit_ +0000:18f4 __do_exit_with_msg__ +0000:194d __GETDS Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(cmodel.asm) -0000:1914 _big_code_ -0000:1914* CodeModelMismatch +0000:1958 _big_code_ +0000:1958* CodeModelMismatch Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(i4m.asm) -0000:1914 __I4M -0000:1914* __U4M +0000:1958 __I4M +0000:1958 __U4M Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(pia.asm) -0000:1933 __PIA -0000:192c* __PIS +0000:1977 __PIA +0000:1970* __PIS Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(kbhit.c) -0000:194a kbhit_ +0000:198e kbhit_ Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(xmsg.c) -0000:1961* __exit_with_msg_ -0000:1966 __fatal_runtime_error_ +0000:19a5* __exit_with_msg_ +0000:19aa __fatal_runtime_error_ Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(crwdata) -01b0:02bc __curbrk -01b0:02c4 __STACKLOW -01b0:02c6 __STACKTOP -01b0:02c8 __cbyte -01b0:02ca __child -01b0:02cc __no87 -01b0:02d9 ___FPE_handler -01b0:02be __psp -01b0:02cd __get_ovl_stack -01b0:02d1 __restore_ovl_stack -01b0:02d5 __close_ovl_file -01b0:02dd __LpCmdLine -01b0:02e1 __LpPgmName -01b0:02c0 __osmajor -01b0:02c1 __osminor -01b0:02c2 __osmode -01b0:02c3 __HShift +04c8:030c __curbrk +04c8:0314 __STACKLOW +04c8:0316 __STACKTOP +04c8:0318 __cbyte +04c8:031a __child +04c8:031c __no87 +04c8:0329 ___FPE_handler +04c8:030e __psp +04c8:031d __get_ovl_stack +04c8:0321 __restore_ovl_stack +04c8:0325 __close_ovl_file +04c8:032d __LpCmdLine +04c8:0331 __LpPgmName +04c8:0310 __osmajor +04c8:0311 __osminor +04c8:0312 __osmode +04c8:0313 __HShift +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(iob.c) +04c8:0336 ___iob +04c8:2c6e ___ClosedStreams +04c8:2c72 ___OpenStreams +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fprtf.c) +0000:19e0 __fprtf_ Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(cmain086.c) -0000:1980 __CMain +0000:1b33 __CMain Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(initrtns.c) -0000:19e1 __InitRtns -0000:19e1* __FInitRtns -0000:1a3c __FiniRtns -0000:1a3c* __FFiniRtns +0000:1b94 __InitRtns +0000:1b94* __FInitRtns +0000:1bef __FiniRtns +0000:1bef* __FFiniRtns Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(uselfn.c) -01b0:02e6 ___uselfn +04c8:049e ___uselfn Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(dosseg) -0000:1aa0 __DOSseg__ +0000:1c54 __DOSseg__ Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(enterdb.c) -0000:1aa1 __EnterWVIDEO_ -01b0:02e8+ ___WD_Present +0000:1c55 __EnterWVIDEO_ +04c8:04a0+ ___WD_Present +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(initfile.c) +0000:1c79 __InitFiles_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(ioexit.c) +0000:1eba* fcloseall_ +0000:1ec1 __full_io_exit_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fputc.c) +0000:1ecb fputc_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(ioalloc.c) +0000:20a0 __ioalloc_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(prtf.c) +0000:222e __prtf_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(flush.c) +0000:3382 __flush_ Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(___argc.c) -01b0:2a42 ____Argv -01b0:2a46 ____Argc +04c8:2c76 ____Argv +04c8:2c7a ____Argc Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(amblksiz.c) -01b0:02ea __amblksiz +04c8:04a2 __amblksiz Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(exit.c) -0000:1ac5+ __null_int23_exit_ -0000:1ac6 exit_ -0000:1ade* _exit_ -01b0:02ec+ ___int23_exit -01b0:02f0+ ___FPE_handler_exit +0000:35cb+ __null_int23_exit_ +0000:35cc exit_ +0000:35e4* _exit_ +04c8:04a4+ ___int23_exit +04c8:04a8+ ___FPE_handler_exit Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(sgdef086) -01b0:02f4 __Start_XI -01b0:02fa __End_XI -01b0:02fa __Start_YI -01b0:02fa __End_YI +04c8:0508 __Start_XI +04c8:0520 __End_XI +04c8:0520 __Start_YI +04c8:0526 __End_YI +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(nmalloc.c) +0000:3600 _nmalloc_ +04c8:04ac ___nheapbeg +04c8:04ae ___MiniHeapRover +04c8:04b0 ___LargestSizeB4MiniHeapRover +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fmalloc.c) +0000:36d7* _fmalloc_ +0000:36d7 malloc_ +04c8:04b2+ ___fheap +04c8:04b4 ___fheapRover +04c8:04b6 ___LargestSizeB4Rover +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(ptc.asm) +0000:384c __PTC +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fclose.c) +0000:387f+ __doclose_ +0000:39eb __shutdown_stream_ +0000:3a05* fclose_ +04c8:2c7c+ ___RmTmpFileFn +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(freefp.c) +0000:3a70 __freefp_ +0000:3af9 __purgefp_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(errno.c) +0000:3b38* __get_errno_ptr_ +04c8:2c80 _errno +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(chktty.c) +0000:3b3f __chktty_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(wctomb.c) +0000:3b9e wctomb_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(itoa.c) +0000:3be9+ utoa_ +0000:3c91 itoa_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(strupr.c) +0000:3cdb strupr_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(noefgfmt.c) +04c8:04b8 ___EFG_printf +04c8:04bc* ___EFG_scanf +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(mbisdbcs.c) +04c8:04c0 ___IsDBCS +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(mbislead.c) +0000:3d20* _ismbblead_ +04c8:2c82 ___MBCSIsTable +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(lltoa.c) +0000:3d3c ulltoa_ +0000:3e87* lltoa_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(ltoa.c) +0000:3ef8 ultoa_ +0000:3fc0* ltoa_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(qwrit.c) +0000:400e __qwrite_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(__lseek.c) +0000:406e __lseek_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fsync.c) +0000:40a8 fsync_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(mem.c) +0000:40b0 __MemAllocator +0000:417a __MemFree +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(nmemneed.c) +0000:42e6 __nmemneed_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(grownear.c) +0000:436e __LastFree_ +0000:43e8 __ExpandDGROUP_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(growseg.c) +0000:44f9 __GrowSeg_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(allocseg.c) +0000:466f __AllocSeg_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fmemneed.c) +0000:475e __fmemneed_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(heapgrow.c) +0000:4761* _heapgrow_ +0000:4761* _fheapgrow_ +0000:4762 _nheapgrow_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(_clse.c) +0000:47d7 __close_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(ffree.c) +0000:480d* _ffree_ +0000:480d free_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(isatt.c) +0000:487a isatty_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(alphabet.c) +0000:4896 ___Alphabet +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(mbinit.c) +0000:48f9 __mbinit_ +04c8:04c2+ ___MBCodePage +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(iomode.c) +0000:49d4 __GetIOMode_ +0000:4a09 __SetIOMode_nogrow_ +04c8:04c4+ ___NFiles +04c8:04c6+ ___init_mode +04c8:04ee+ ___io_mode +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(dosret.c) +0000:4a3e* __dosretax +0000:4a43* __dosret0 +0000:4a4a __set_errno_dos_ +0000:4ab2* __set_errno_dos_reterr_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(filedos.c) +0000:4abd* _dos_close_ +0000:4acb _dos_commit_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(heapen.c) +0000:4ada* _heapenable_ +04c8:0506 ___heap_enabled +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(sbrk.c) +0000:4aeb __brk_ +0000:4b52* sbrk_ +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(nfree.c) +0000:4b62 _nfree_ +04c8:2d84+ ___MiniHeapFreeRover +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(doserrno.c) +0000:4c5d* __get_doserrno_ptr_ +04c8:2d86 __doserrno +Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(error086.asm) +0000:4c64 __doserror_ +0000:4c72* __doserror1_ +--------------------+ @@ -196,6 +329,6 @@ Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(sgdef086) +-----------------------+ Stack size: 8000 (32768.) -Memory size: c550 (50512.) -Entry point address: 0000:168e -Link time: 00:00.00 +Memory size: fa10 (64016.) +Entry point address: 0000:16d2 +Link time: 00:00.62 diff --git a/plzpart.o b/plzpart.o index 45117d0..f81f41a 100755 Binary files a/plzpart.o and b/plzpart.o differ diff --git a/plzpart/Makefile b/plzpart/Makefile deleted file mode 100755 index e70bb5b..0000000 --- a/plzpart/Makefile +++ /dev/null @@ -1,133 +0,0 @@ -# -# Higanbana Project makefile -# -# -# Possible optimizations for 8088 class processors -# -# -oa Relax alias checking -# -ob Try to generate straight line code -# -oe - expand user functions inline (-oe=20 is default, adds lots of code) -# -oh Enable repeated optimizations -# -oi generate certain lib funcs inline -# -oi+ Set max inline depth (C++ only, use -oi for C) -# -ok Flowing of register save into function flow graph -# -ol loop optimizations -# -ol+ loop optimizations plus unrolling -# -or Reorder for pipelined (486+ procs); not sure if good to use -# -os Favor space over time -# -ot Favor time over space -# -ei Allocate an "int" for all enum types -# -zp2 Allow compiler to add padding to structs -# -zpw Use with above; make sure you are warning free! -# -0 8088/8086 class code generation -# -s disable stack overflow checking - -# -zk0u translate kanji to unicode... wwww -# -zk0 kanji support~ -# -zkl current codepage - -#%.C -#192x144 -#wwww will add these -!ifdef __LINUX__ -REMOVECOMMAND=rm -f -COPYCOMMAND=cp -f -DIRSEP=/ -OBJ=o -!else -REMOVECOMMAND=del -COPYCOMMAND=copy /y -DIRSEP=\ -OBJ=obj -!endif -#!ifndef INCLUDE -#IN=..$(DIRSEP)..$(DIRSEP)fdos$(DIRSEP)watcom2$(DIRSEP)h -#IFLAGS=-i=$(IN) -#!endif - -TARGET_OS = dos - -#EXMMTESTDIR=16$(DIRSEP)exmmtest$(DIRSEP) -SRC=src$(DIRSEP) -SRCLIB=$(SRC)lib$(DIRSEP) - -AFLAGS=-mh -0 -d1 -e=65536 -PLZFLAGS=-fh=plzpart.hed -SFLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k32768 -DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 $(SFLAGS) -ZFLAGS=-zk0 -zq -zc -zp8# -zm -CFLAGS=$(AFLAGS) $(IFLAGS)-lr -l=dos -wo##wwww -OFLAGS=-obmiler -out -oh -ei -zp8 -fpi87 -onac -ol+ -ok####x -FLAGS=$(CFLAGS) $(OFLAGS) $(DFLAGS) $(ZFLAGS) - - -EXEC = plzpart.exe -OBJS = copper.$(OBJ) tweak.$(OBJ) plz.$(OBJ) asmyt.$(OBJ) - -all: $(EXEC) - -# -#game and bakapi executables -# -plzpart.exe: plzpart.$(OBJ) $(OBJS) - wcl $(FLAGS) $(PLZFLAGS) plzpart.$(OBJ) $(OBJS) -fm=plzpart.map - - -# -#executable's objects -# -plzpart.$(OBJ): plzpart.h plzpart.c - wcl $(FLAGS) -c plzpart.c - -# -#non executable objects libraries -# -plz.$(OBJ): plz.h plz.c - wcl $(FLAGS) -c plz.c -tweak.$(OBJ): tweak.h tweak.c - wcl $(FLAGS) -c tweak.c -asmyt.$(OBJ): asmyt.h asmyt.c - wcl $(FLAGS) -c asmyt.c -copper.$(OBJ): copper.h copper.c - wcl $(FLAGS) -c copper.c - - -# -#other~ -# -clean: .symbolic - @$(REMOVECOMMAND) $(EXEC) -# @$(REMOVECOMMAND) *.$(OBJ) - @$(REMOVECOMMAND) *.o - -# -# PLZPART_OBJS = plz.o copper.o asmyt.o tweak.o vect.o vga.o opengl.o \ -# plza.o plzfill.o sinit.o spline.o main.o -# -# PLZPART_PATH = plzpart -# -# PLZPART_PATH_OBJS = $(addprefix $(PLZPART_PATH)/,$(PLZPART_OBJS)) -# -# PLZPART_BIN = plzpart -# -# OBJS += $(PLZPART_PATH_OBJS) -# -# default-plzpart: -# $(MAKE) -C .. plzpart-all -# -# plzpart-all: $(PLZPART_PATH)/$(PLZPART_BIN) -# -# $(PLZPART_PATH)/$(PLZPART_BIN): $(PLZPART_PATH_OBJS) -# $(LD) -o $@ $(LDFLAGS) $(PLZPART_PATH_OBJS) $(LIBS) -# -# plz.c: tweak.h ptau.pre -asmyt.c -copper.c -main.c -plza.c -plz.c -plzfill.c -sinit.c -spline.c -tweak.c -vect.c diff --git a/plzpart/asmyt.h b/plzpart/asmyt.h index 2f6065a..cdaaf49 100755 --- a/plzpart/asmyt.h +++ b/plzpart/asmyt.h @@ -6,6 +6,7 @@ void anSelfModifyOffsets_WriteWord(word nOffset, word nValue); int plzline(int y, int vseg); int setplzparas(int c1, int c2, int c3, int c4); word set_plzstart(word start); +#ifdef __WATCOMC__ inline word lsini16_GetOffset() { return 16384 + (8192 * 2); @@ -16,3 +17,4 @@ inline word lsini4_GetOffset() return 16384; } #endif +#endif diff --git a/plzpart/common.h b/plzpart/common.h index 1ddb500..cca01ad 100755 --- a/plzpart/common.h +++ b/plzpart/common.h @@ -1,7 +1,9 @@ #ifndef _C_H_ #define _C_H_ #include +#ifdef __WATCOMC__ #include +#endif #include #include #include diff --git a/plzpart/include.asm b/plzpart/include.asm new file mode 100755 index 0000000..c31276e --- /dev/null +++ b/plzpart/include.asm @@ -0,0 +1,40 @@ + IDEAL + MODEL large + P386 + +SEGMENT kakka2 para use16 private 'FAR_DATA' +PUBLIC C kuva1 +LABEL kuva1 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka6 para use16 private 'FAR_DATA' +PUBLIC C dist1 +LABEL dist1 BYTE + dw 16384 DUP (?) +ENDS + + + +SEGMENT kakka3 para use16 private 'FAR_DATA' +PUBLIC C kuva2 +LABEL kuva2 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka4 para use16 private 'FAR_DATA' +PUBLIC C kuva3 +LABEL kuva3 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka5 para use16 private 'FAR_DATA' + +PUBLIC C sinit, C kosinit +LABEL sinit WORD +INCLUDE 'sinit.inc' +kosinit=sinit+512 + +ENDS + +END \ No newline at end of file diff --git a/plzpart/plz.c b/plzpart/plz.c index e6a2b9c..4536dde 100755 --- a/plzpart/plz.c +++ b/plzpart/plz.c @@ -6,7 +6,7 @@ //#include "tweak.h" //#define DO_TABLES -//#define DPII (3.1415926535*2.0) +#define DPII (3.1415926535*2.0) #define LINELEN 41 #define MAXY 280 @@ -18,7 +18,7 @@ // extern int init_copper(); // extern int close_copper(); //extern int far frame_count; -int far frame_count; +extern int frame_count; extern int far cop_drop; extern int far cop_plz; extern int far cop_start; @@ -36,12 +36,12 @@ extern int far lsini16[8192]; //int (* vmem)[LINELEN]=MK_FP(0x0a000,0); //char psini[16384]= -//#include "psini.pre" +//#include "psini.inc" //char lsini[16384]= -//#include "lsini.pre" +//#include "lsini.inc" char ptau[256]= -#include "ptau.pre" +#include "ptau.inc" int pals[6][768]; int curpal=0; @@ -95,8 +95,7 @@ void plz(){ // } if(curpal==5 && cop_drop>64) break; - __asm - { + __asm { mov dx, 3c4h mov ax, 0a02h out dx, ax @@ -110,8 +109,7 @@ void plz(){ plzline(y,0x0a000+y*6+YADD*6); - __asm - { + __asm { mov dx, 3c4h mov ax, 0502h out dx, ax @@ -183,7 +181,7 @@ void init_plz() tw_opengraph2(); cop_start=96*(682-400); set_plzstart(60); - init_copper(); +//++++ init_copper(); for(a=0;a<256;a++) tw_setrgbpalette(a,63,63,63); // RGB diff --git a/plzpart/plzfill.c b/plzpart/plzfill.c index 78fdf39..9ab7bf8 100755 --- a/plzpart/plzfill.c +++ b/plzpart/plzfill.c @@ -1,16 +1,20 @@ +#include +#include +#include +#include #include "tweak.h" -extern far void do_line(char far *to, int dx, int dy, int cnt, char far *from, long txx1, long txy1, long txx2, long txy2, int dseg); -extern far void do_block(int ycnt); -extern far void do_clear(char far *vmem, int far *otau, int far *ntau); +extern far do_line(char far *to, int dx, int dy, int cnt, char far *from, long txx1, long txy1, long txx2, long txy2, int dseg); +extern far do_block(int ycnt); +extern far do_clear(char far *vmem, int far *otau, int far *ntau); extern int acstau[256]; int sini[2000]; char (* far vmem)[160]=MK_FP(0x0a000,0); -/*extern*/ char far kuva1[128][256]; -/*extern*/ char far kuva2[128][256]; -/*extern*/ char far kuva3[128][256]; -/*extern*/ char far dist1[128][256]; +extern char far kuva1[128][256]; +extern char far kuva2[128][256]; +extern char far kuva3[128][256]; +extern char far dist1[128][256]; char far buu[1000]; char sinx[128], siny[128]; char pal[768]; @@ -19,7 +23,7 @@ int clrtau[8][256][2]; int clrptr=0; void initvect() { - int a/*,b*/,x,y,s/*,d=0,p=0,ch*/; + int a,b,x,y,s,d=0,p=0,ch; for(a=0;a<1524;a++) { @@ -72,13 +76,13 @@ extern far long ay1,ay2,ax1,ax2,xx1,yy1,xx2,yy2; extern far long txx1,txy1,tay1,tax1; extern far long txx2,txy2,tay2,tax2; -char* kuvataus[]={&kuva1[0][0],&kuva2[0][0],&kuva3[0][0],&kuva1[0][0]}; -char* disttaus[]={&dist1[0][0],&dist1[0][0],&dist1[0][0],&dist1[0][9]}; +int kuvataus[]={FP_SEG(kuva1),FP_SEG(kuva2),FP_SEG(kuva3),FP_SEG(kuva1)}; +int disttaus[]={FP_SEG(dist1),FP_SEG(dist1),FP_SEG(dist1),FP_SEG(dist1)}; -void do_poly(x1,y1,x2,y2,x3,y3,x4,y4,color, dd) +do_poly(x1,y1,x2,y2,x3,y3,x4,y4,color, dd) int x1,y1,x2,y2,x3,y3,x4,y4,color, dd; { - int a,/*b,c,d,*/n=0,m,s1,s2,d1,d2,dx1,dy1,dx2,dy2; + int a,b,c,d,n=0,m,s1,s2,d1,d2,dx1,dy1,dx2,dy2; struct points { int x,y; } pnts[4],txt[4]={{64,4},{190,4},{190,60},{64,60}}; @@ -171,7 +175,7 @@ int x1,y1,x2,y2,x3,y3,x4,y4,color, dd; } } -void clear() +clear() { int *otau=clrtau[(clrptr-3)&7], *ntau=clrtau[clrptr]; diff --git a/plzpart/plzpart.dsk b/plzpart/plzpart.dsk new file mode 100755 index 0000000..37f30f7 Binary files /dev/null and b/plzpart/plzpart.dsk differ diff --git a/plzpart/plzpart.exe b/plzpart/plzpart.exe deleted file mode 100755 index 153da22..0000000 Binary files a/plzpart/plzpart.exe and /dev/null differ diff --git a/plzpart/plzpart.map b/plzpart/plzpart.map index 721ed1b..23d9094 100755 --- a/plzpart/plzpart.map +++ b/plzpart/plzpart.map @@ -1,295 +1,886 @@ -Open Watcom Linker Version 2.0 beta Jan 20 2016 10:21:07 (32-bit) -Copyright (c) 2002-2016 The Open Watcom Contributors. All Rights Reserved. -Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 16/08/03 11:10:46 -Executable Image: plzpart.exe -creating a DOS executable - - - +------------+ - | Groups | - +------------+ - -Group Address Size -===== ======= ==== - -DGROUP 03ad:0000 0000b210 - - - - +--------------+ - | Segments | - +--------------+ - -Segment Class Group Address Size -======= ===== ===== ======= ==== - -plzpart_TEXT CODE AUTO 0000:0000 00000020 -copper_TEXT CODE AUTO 0000:0020 000000d2 -tweak_TEXT CODE AUTO 0000:0100 0000006d -plz_TEXT CODE AUTO 0000:0170 00000a30 -asmyt_TEXT CODE AUTO 0000:0ba0 000001ef -_TEXT CODE AUTO 0000:0d90 00002d11 -copper13_DATA FAR_DATA AUTO 03ab:0000 00000006 -plz13_DATA FAR_DATA AUTO 03ab:0010 00000002 -FAR_DATA FAR_DATA AUTO 03ac:0002 00000000 -_NULL BEGDATA DGROUP 03ad:0000 00000020 -_AFTERNULL BEGDATA DGROUP 03af:0000 00000002 -CONST DATA DGROUP 03af:0002 00000022 -CONST2 DATA DGROUP 03b1:0004 00000132 -_DATA DATA DGROUP 03c4:0006 0000039e -XIB DATA DGROUP 03fe:0004 00000000 -XI DATA DGROUP 03fe:0004 00000018 -XIE DATA DGROUP 03ff:000c 00000000 -YIB DATA DGROUP 03ff:000c 00000000 -YI DATA DGROUP 03ff:000c 00000000 -YIE DATA DGROUP 03ff:000c 00000000 -STRINGS DATA DGROUP 03ff:000c 00000000 -DATA DATA DGROUP 03ff:000c 00000000 -_emu_init_start EMU DGROUP 03ff:000c 00000000 -_emu_init_end EMU DGROUP 03ff:000c 00000000 -_BSS BSS DGROUP 0400:0000 00002ce0 -STACK STACK DGROUP 06ce:0000 00008000 - - - +----------------+ - | Memory Map | - +----------------+ - -* = unreferenced symbol -+ = symbol only referenced locally - -Address Symbol -======= ====== - -Module: plzpart.o(/dos/z/plz/plzpart/plzpart.c) -0000:0000 main_ -Module: copper.o(/dos/z/plz/plzpart/copper.c) -0000:0020 init_copper_ -0000:00aa close_copper_ -03ad:0530 _fadepal -03ad:0830 _cop_fadepal -03ad:0834+ _dtau -03ad:08b8* _cop_pal -03ab:0000 _cop_plz -03ab:0002 _cop_drop -03ab:0004 _cop_start -Module: tweak.o(/dos/z/plz/plzpart/tweak.c) -0000:0100 tw_opengraph2_ -0000:0148 tw_setrgbpalette_ -Module: plz.o(/dos/z/plz/plzpart/plz.c) -0000:0170 plz_ -0000:0438+ init_plz_ -03ad:0176+ _ptau -03ad:0276+ _curpal -03ad:0278* _timetable -03ad:028c+ _ttptr -03ad:028e+ _l1 -03ad:0290+ _l2 -03ad:0292+ _l3 -03ad:0294+ _l4 -03ad:0296+ _k1 -03ad:0298+ _k2 -03ad:029a+ _k3 -03ad:029c+ _k4 -03ad:029e+ _il1 -03ad:02a0+ _il2 -03ad:02a2+ _il3 -03ad:02a4+ _il4 -03ad:02a6+ _ik1 -03ad:02a8+ _ik2 -03ad:02aa+ _ik3 -03ad:02ac+ _ik4 -03ad:02ae+ _inittable -03ad:08bc+ _pals -03ab:0010+ _frame_count -Module: asmyt.o(/dos/z/plz/plzpart/asmyt.c) -0000:0ba0 plzline_ -0000:0c1a setplzparas_ -0000:0d4e set_plzstart_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(stk086.asm) -0000:0d95 __STK -0000:0db5* __STKOVERFLOW_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(cstart) -03ad:0000* __nullarea -03ad:03f8* __ovlflag -03ad:03f9* __intno -03ad:03fa* __ovlvec -0000:0dd2 _cstart_ -0000:0ea5* _Not_Enough_Memory_ -0000:0fd7 __exit_ -0000:0ff4 __do_exit_with_msg__ -0000:104d __GETDS -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(cmodel.asm) -0000:1058 _big_code_ -0000:1058* CodeModelMismatch -Module: /dos/fdos/watcom2/lib286/math87h.lib(floor.c) -0000:1060 floor_ -Module: /dos/fdos/watcom2/lib286/math87h.lib(fchop87.asm) -0000:10b2 __CHP -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(pia.asm) -0000:10e1 __PIA -0000:10da* __PIS -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fltused.c) -03ad:03fe _fltused_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(_8087086.asm) -03ad:0400 __8087 -03ad:0401 __real87 -03ad:0402 __dos87emucall -03ad:0404 __dos87real -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(i4m.asm) -0000:10f8 __I4M -0000:10f8* __U4M -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(kbhit.c) -0000:1110 kbhit_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(xmsg.c) -0000:1127* __exit_with_msg_ -0000:112c __fatal_runtime_error_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(crwdata) -03ad:0406 __curbrk -03ad:040e __STACKLOW -03ad:0410 __STACKTOP -03ad:0412 __cbyte -03ad:0414 __child -03ad:0416 __no87 -03ad:0423 ___FPE_handler -03ad:0408 __psp -03ad:0417 __get_ovl_stack -03ad:041b __restore_ovl_stack -03ad:041f __close_ovl_file -03ad:0427 __LpCmdLine -03ad:042b __LpPgmName -03ad:040a __osmajor -03ad:040b __osminor -03ad:040c __osmode -03ad:040d __HShift -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(cmain086.c) -0000:1146 __CMain -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(initrtns.c) -0000:11a7 __InitRtns -0000:11a7* __FInitRtns -0000:1202 __FiniRtns -0000:1202* __FFiniRtns -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(uselfn.c) -03ad:0430 ___uselfn -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(dosseg) -0000:1266 __DOSseg__ -Module: /dos/fdos/watcom2/lib286/math87h.lib(modf87.asm) -0000:1268 modf_ -Module: /dos/fdos/watcom2/lib286/noemu87.lib(emustub.asm) -0000:0000* FJSRQQ -0000:0000* FISRQQ -0000:0000* FIERQQ -0000:0000 FIDRQQ -0000:0000 FIWRQQ -0000:0000 FJCRQQ -0000:0000* FJARQQ -0000:0000 FICRQQ -0000:0000* FIARQQ -0000:128a* __init_87_emulator -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(setefg.c) -0000:128a __setEFGfmt_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(chk8087.c) -0000:12c2* _fpreset_ -0000:12ed __init_8087_ -0000:136c __chk8087_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(enterdb.c) -0000:13dc __EnterWVIDEO_ -03ad:0450+ ___WD_Present -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(___argc.c) -03ad:3004 ____Argv -03ad:3008 ____Argc -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(amblksiz.c) -03ad:0452 __amblksiz -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(exit.c) -0000:1400+ __null_int23_exit_ -0000:1401 exit_ -0000:1419* _exit_ -03ad:0454+ ___int23_exit -03ad:0458 ___FPE_handler_exit -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(sgdef086) -03ad:0514 __Start_XI -03ad:052c __End_XI -03ad:052c __Start_YI -03ad:052c __End_YI -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(noefgfmt.c) -03ad:045c ___EFG_printf -03ad:0460 ___EFG_scanf -Module: /dos/fdos/watcom2/lib286/math87h.lib(efgfmt.c) -0000:1444 _EFG_Format_ -Module: /dos/fdos/watcom2/lib286/math87h.lib(cnvs2d.c) -0000:1616 __cnvs2d_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(8087cw.c) -03ad:0464 __8087cw -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(save8087.c) -03ad:0466 ___Save8087 -03ad:046a ___Rest8087 -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(grabfp87.c) -0000:1636 __GrabFP87_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(ini87086.asm) -0000:1668* __init_8087_emu -0000:166e __x87id -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(rtcntrl.c) -0000:16cb* _SetLD64bit_ -0000:16d6* _SetLD80bit_ -0000:16e1 _LDisDouble_ -Module: /dos/fdos/watcom2/lib286/math87h.lib(ldcvt.c) -0000:1846 _LDScale10x_ -0000:211e+ __cvtld_ -0000:28fa __LDcvt_ -Module: /dos/fdos/watcom2/lib286/math87h.lib(strtod.c) -0000:313c+ __Strtold_ -0000:337b strtod_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fpe87.asm) -0000:3522 __Init_FPE_handler_ -0000:355b __Fini_FPE_handler_ -0000:3592* __FPEHandler -Module: /dos/fdos/watcom2/lib286/math87h.lib(ldclass.c) -0000:3824 __LDClass_ -0000:38aa* _FLClass_ -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(i4d.asm) -0000:38be __I4D -0000:390d* __U4D -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(istable.c) -03ad:0044 __IsTable -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(tolower.c) -0000:3991 tolower_ -Module: /dos/fdos/watcom2/lib286/math87h.lib(bufld086.asm) -0000:39a0 __ZBuf2LD -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(seterrno.c) -0000:3a68* __set_EDOM_ -0000:3a74 __set_ERANGE_ -0000:3a80* __set_EINVAL_ -Module: /dos/fdos/watcom2/lib286/math87h.lib(inf_nan.c) -03ad:0146* ___f_infinity -03ad:014a* ___f_posqnan -03ad:014e ___d_infinity -03ad:0156 ___d_posqnan -03ad:015e* ___ld_infinity -03ad:0166* ___ld_posqnan -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(hugeval.c) -03ad:016e __HugeValue -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(fpeint.c) -03ad:0512 ___FPE_int -Module: /dos/fdos/watcom2/lib286/dos/clibh.lib(errno.c) -0000:3a9a* __get_errno_ptr_ -03ad:320e _errno - - - +--------------------+ - | Libraries Used | - +--------------------+ - -/dos/fdos/watcom2/lib286/noemu87.lib -/dos/fdos/watcom2/lib286/math87h.lib -/dos/fdos/watcom2/lib286/dos/clibh.lib - - - +-----------------------+ - | Linker Statistics | - +-----------------------+ - -Stack size: 8000 (32768.) -Memory size: ece0 (60640.) -Entry point address: 0000:0dd2 -Link time: 00:00.00 + + Start Stop Length Name Class + + 00000H 030A6H 030A7H _TEXT CODE + 030A8H 030A8H 00000H ASMYT_TEXT CODE + 030B0H 1055BH 0D4ACH PORO CODE + 1055CH 10EE5H 0098AH COPPER_TEXT CODE + 10EE6H 10EE6H 00000H INCLUDE_TEXT CODE + 10EE6H 10EE6H 00000H PLZA_TEXT CODE + 10EF0H 135ADH 026BEH LERSSICODE CODE + 135AEH 13786H 001D9H TWEAK_TEXT CODE + 13787H 13F6CH 007E6H PLZ_TEXT CODE + 13F6DH 14C1EH 00CB2H PLZFILL_TEXT CODE + 14C1FH 155B7H 00999H VECT_TEXT CODE + 155B8H 155CBH 00014H PLZPART_TEXT CODE + 155CCH 16845H 0127AH SPLINE_TEXT CODE + 16850H 18FC6H 02777H EMU_PROG CODE + 18FD0H 19597H 005C8H E87_PROG CODE + 195A0H 195A0H 00000H _FARDATA FAR_DATA + 195A0H 1D59FH 04000H KAKKA2 FAR_DATA + 1D5A0H 2559FH 08000H KAKKA6 FAR_DATA + 255A0H 2959FH 04000H KAKKA3 FAR_DATA + 295A0H 2D59FH 04000H KAKKA4 FAR_DATA + 2D5A0H 2DFAEH 00A0FH KAKKA5 FAR_DATA + 2DFB0H 2E39BH 003ECH PLZFILL5_DATA FAR_DATA + 2E3A0H 2E69FH 00300H VECT5_DATA FAR_DATA + 2E6A0H 2E6A0H 00000H _FARBSS FAR_BSS + 2E6A0H 2E6A0H 00000H _OVERLAY_ OVRINFO + 2E6A0H 2E6A0H 00000H _1STUB_ STUBSEG + 2E6A0H 317A1H 03102H _DATA DATA + 317A2H 317A5H 00004H _CVTSEG DATA + 317A6H 317B1H 0000CH _SCNSEG DATA + 317B2H 317B2H 00000H _CONST CONST + 317B2H 317C3H 00012H _INIT_ INITDATA + 317C4H 317C4H 00000H _INITEND_ INITDATA + 317C4H 317C9H 00006H _EXIT_ EXITDATA + 317CAH 317CAH 00000H _EXITEND_ EXITDATA + 317CAH 37401H 05C38H _BSS BSS + 37402H 37402H 00000H _BSSEND BSSEND + 37410H 3751FH 00110H _STACK STACK + + +Detailed map of segments + + 0000:0000 0295 C=CODE S=_TEXT G=(none) M=c0.ASM ACBP=28 + 0000:0295 0258 C=CODE S=_TEXT G=(none) M=FPINIT ACBP=28 + 0000:04ED 0000 C=CODE S=_TEXT G=(none) M=E87TRAP ACBP=28 + 0000:04ED 0000 C=CODE S=_TEXT G=(none) M=PROTFLAG ACBP=28 + 0000:04ED 0000 C=CODE S=_TEXT G=(none) M=DEFLT87 ACBP=28 + 0000:04ED 0000 C=CODE S=_TEXT G=(none) M=HUGEVAL ACBP=28 + 0000:04ED 009A C=CODE S=_TEXT G=(none) M=LDTRUNC ACBP=28 + 0000:0587 0000 C=CODE S=_TEXT G=(none) M=MATHWHY ACBP=28 + 0000:0587 01BD C=CODE S=_TEXT G=(none) M=REALCVT ACBP=28 + 0000:0744 0395 C=CODE S=_TEXT G=(none) M=SCANTOD ACBP=28 + 0000:0AD9 020C C=CODE S=_TEXT G=(none) M=XCVT ACBP=28 + 0000:0CE5 00B1 C=CODE S=_TEXT G=(none) M=FPERR ACBP=28 + 0000:0D96 00C9 C=CODE S=_TEXT G=(none) M=_POW10 ACBP=28 + 0000:0E5F 000B C=CODE S=_TEXT G=(none) M=POW10D ACBP=28 + 0000:0E6A 002A C=CODE S=_TEXT G=(none) M=MATHERR ACBP=28 + 0000:0E94 0052 C=CODE S=_TEXT G=(none) M=SIN ACBP=28 + 0000:0EE6 00A9 C=CODE S=_TEXT G=(none) M=_MATHERR ACBP=28 + 0000:0F8F 002C C=CODE S=_TEXT G=(none) M=FFTOL ACBP=28 + 0000:0FBB 002D C=CODE S=_TEXT G=(none) M=ATEXIT ACBP=28 + 0000:0FE8 0000 C=CODE S=_TEXT G=(none) M=CTYPE ACBP=28 + 0000:0FE8 0093 C=CODE S=_TEXT G=(none) M=EXIT ACBP=28 + 0000:107B 0000 C=CODE S=_TEXT G=(none) M=FILES ACBP=28 + 0000:107B 0000 C=CODE S=_TEXT G=(none) M=FILES2 ACBP=28 + 0000:107B 0000 C=CODE S=_TEXT G=(none) M=FPSTKLEN ACBP=28 + 0000:107B 001C C=CODE S=_TEXT G=(none) M=F_SCOPY ACBP=28 + 0000:1097 0021 C=CODE S=_TEXT G=(none) M=H_LLSH ACBP=28 + 0000:10B8 0060 C=CODE S=_TEXT G=(none) M=H_PADD ACBP=28 + 0000:1118 004B C=CODE S=_TEXT G=(none) M=IOERROR ACBP=28 + 0000:1163 0011 C=CODE S=_TEXT G=(none) M=ISATTY ACBP=28 + 0000:1174 00A2 C=CODE S=_TEXT G=(none) M=LONGTOA ACBP=28 + 0000:1216 0029 C=CODE S=_TEXT G=(none) M=LSEEK ACBP=28 + 0000:123F 0021 C=CODE S=_TEXT G=(none) M=N_PCMP ACBP=28 + 0000:1260 00BA C=CODE S=_TEXT G=(none) M=SETUPIO ACBP=28 + 0000:131A 0000 C=CODE S=_TEXT G=(none) M=SIGDATA ACBP=28 + 0000:131A 0000 C=CODE S=_TEXT G=(none) M=STKLEN ACBP=28 + 0000:131A 04DB C=CODE S=_TEXT G=(none) M=VPRINTER ACBP=28 + 0000:17F5 009F C=CODE S=_TEXT G=(none) M=VRAM ACBP=28 + 0000:1894 0000 C=CODE S=_TEXT G=(none) M=WSCROLL ACBP=28 + 0000:1894 014E C=CODE S=_TEXT G=(none) M=CPRINTF ACBP=28 + 0000:19E2 01A5 C=CODE S=_TEXT G=(none) M=CRTINIT ACBP=28 + 0000:1B87 001F C=CODE S=_TEXT G=(none) M=CVTFAK ACBP=28 + 0000:1BA6 0432 C=CODE S=_TEXT G=(none) M=FARHEAP ACBP=28 + 0000:1FD8 0140 C=CODE S=_TEXT G=(none) M=FBRK ACBP=28 + 0000:2118 005E C=CODE S=_TEXT G=(none) M=GETCH ACBP=28 + 0000:2176 00AC C=CODE S=_TEXT G=(none) M=GPTEXT ACBP=28 + 0000:2222 0012 C=CODE S=_TEXT G=(none) M=KBHIT ACBP=28 + 0000:2234 009D C=CODE S=_TEXT G=(none) M=MOVETEXT ACBP=28 + 0000:22D1 0017 C=CODE S=_TEXT G=(none) M=PUTCH ACBP=28 + 0000:22E8 0004 C=CODE S=_TEXT G=(none) M=REALCVT ACBP=28 + 0000:22EC 01C7 C=CODE S=_TEXT G=(none) M=SCREEN ACBP=28 + 0000:24B3 018E C=CODE S=_TEXT G=(none) M=SCROLL ACBP=28 + 0000:2641 001C C=CODE S=_TEXT G=(none) M=SETBLOCK ACBP=28 + 0000:265D 002C C=CODE S=_TEXT G=(none) M=WHEREXY ACBP=28 + 0000:2689 00CD C=CODE S=_TEXT G=(none) M=FFLUSH ACBP=28 + 0000:2756 0042 C=CODE S=_TEXT G=(none) M=FLUSHALL ACBP=28 + 0000:2798 001C C=CODE S=_TEXT G=(none) M=FPRINTF ACBP=28 + 0000:27B4 01E2 C=CODE S=_TEXT G=(none) M=FSEEK ACBP=28 + 0000:2996 0024 C=CODE S=_TEXT G=(none) M=MEMCPY ACBP=28 + 0000:29BA 0043 C=CODE S=_TEXT G=(none) M=MEMSET ACBP=28 + 0000:29FD 03C8 C=CODE S=_TEXT G=(none) M=PUTC ACBP=28 + 0000:2DC5 011D C=CODE S=_TEXT G=(none) M=SETVBUF ACBP=28 + 0000:2EE2 0151 C=CODE S=_TEXT G=(none) M=WRITE ACBP=28 + 0000:3033 003C C=CODE S=_TEXT G=(none) M=WRITEA ACBP=28 + 0000:306F 0038 C=CODE S=_TEXT G=(none) M=XFFLUSH ACBP=28 + 030A:0008 0000 C=CODE S=ASMYT_TEXT G=(none) M=ASMYT.ASM ACBP=48 + 030B:0000 D4AC C=CODE S=PORO G=(none) M=ASMYT.ASM ACBP=60 + 1055:000C 098A C=CODE S=COPPER_TEXT G=(none) M=COPPER.ASM ACBP=48 + 10EE:0006 0000 C=CODE S=INCLUDE_TEXT G=(none) M=INCLUDE.ASM ACBP=48 + 10EE:0006 0000 C=CODE S=PLZA_TEXT G=(none) M=PLZA.ASM ACBP=48 + 10EF:0000 26BE C=CODE S=LERSSICODE G=(none) M=PLZA.ASM ACBP=68 + 135A:000E 01D9 C=CODE S=TWEAK_TEXT G=(none) M=TWEAK.ASM ACBP=48 + 1378:0007 07E6 C=CODE S=PLZ_TEXT G=(none) M=PLZ.C ACBP=28 + 13F6:000D 0CB2 C=CODE S=PLZFILL_TEXT G=(none) M=PLZFILL.C ACBP=28 + 14C1:000F 0999 C=CODE S=VECT_TEXT G=(none) M=VECT.C ACBP=28 + 155B:0008 0014 C=CODE S=PLZPART_TEXT G=(none) M=PLZPART.C ACBP=28 + 155C:000C 127A C=CODE S=SPLINE_TEXT G=(none) M=SPLINE.ASM ACBP=48 + 1685:0000 0000 C=CODE S=EMU_PROG G=(none) M=FPINIT ACBP=68 + 1685:0000 2777 C=CODE S=EMU_PROG G=(none) M=EMU086 ACBP=68 + 18FD:0000 0000 C=CODE S=E87_PROG G=(none) M=FPINIT ACBP=68 + 18FD:0000 03E3 C=CODE S=E87_PROG G=(none) M=EMU087 ACBP=68 + 18FD:03F0 01D8 C=CODE S=E87_PROG G=(none) M=E87TRAP ACBP=68 + 195A:0000 0000 C=FAR_DATA S=_FARDATA G=(none) M=c0.ASM ACBP=68 + 195A:0000 4000 C=FAR_DATA S=KAKKA2 G=(none) M=INCLUDE.ASM ACBP=60 + 1D5A:0000 8000 C=FAR_DATA S=KAKKA6 G=(none) M=INCLUDE.ASM ACBP=60 + 255A:0000 4000 C=FAR_DATA S=KAKKA3 G=(none) M=INCLUDE.ASM ACBP=60 + 295A:0000 4000 C=FAR_DATA S=KAKKA4 G=(none) M=INCLUDE.ASM ACBP=60 + 2D5A:0000 0A0F C=FAR_DATA S=KAKKA5 G=(none) M=INCLUDE.ASM ACBP=60 + 2DFB:0000 03EC C=FAR_DATA S=PLZFILL5_DATA G=(none) M=PLZFILL.C ACBP=68 + 2E3A:0000 0300 C=FAR_DATA S=VECT5_DATA G=(none) M=VECT.C ACBP=68 + 2E6A:0000 0000 C=FAR_BSS S=_FARBSS G=(none) M=c0.ASM ACBP=68 + 2E6A:0000 0000 C=OVRINFO S=_OVERLAY_ G=(none) M=c0.ASM ACBP=68 + 2E6A:0000 0000 C=STUBSEG S=_1STUB_ G=(none) M=c0.ASM ACBP=68 + 2E6A:0000 0093 C=DATA S=_DATA G=DGROUP M=c0.ASM ACBP=68 + 2E6A:0094 0000 C=DATA S=_DATA G=DGROUP M=ASMYT.ASM ACBP=48 + 2E6A:0094 0000 C=DATA S=_DATA G=DGROUP M=COPPER.ASM ACBP=48 + 2E6A:0094 0000 C=DATA S=_DATA G=DGROUP M=INCLUDE.ASM ACBP=48 + 2E6A:0094 0000 C=DATA S=_DATA G=DGROUP M=PLZA.ASM ACBP=48 + 2E6A:0094 0000 C=DATA S=_DATA G=DGROUP M=TWEAK.ASM ACBP=48 + 2E6A:0094 01D8 C=DATA S=_DATA G=DGROUP M=PLZ.C ACBP=48 + 2E6A:026C 0036 C=DATA S=_DATA G=DGROUP M=PLZFILL.C ACBP=48 + 2E6A:02A2 28A0 C=DATA S=_DATA G=DGROUP M=VECT.C ACBP=48 + 2E6A:2B42 0000 C=DATA S=_DATA G=DGROUP M=PLZPART.C ACBP=48 + 2E6A:2B42 0000 C=DATA S=_DATA G=DGROUP M=SPLINE.ASM ACBP=48 + 2E6A:2B50 0002 C=DATA S=_DATA G=DGROUP M=FPINIT ACBP=68 + 2E6A:2B60 0000 C=DATA S=_DATA G=DGROUP M=E87TRAP ACBP=68 + 2E6A:2B60 0003 C=DATA S=_DATA G=DGROUP M=PROTFLAG ACBP=48 + 2E6A:2B64 0002 C=DATA S=_DATA G=DGROUP M=DEFLT87 ACBP=48 + 2E6A:2B66 0024 C=DATA S=_DATA G=DGROUP M=HUGEVAL ACBP=48 + 2E6A:2B8A 0000 C=DATA S=_DATA G=DGROUP M=LDTRUNC ACBP=48 + 2E6A:2B8A 0043 C=DATA S=_DATA G=DGROUP M=MATHWHY ACBP=48 + 2E6A:2BCE 0000 C=DATA S=_DATA G=DGROUP M=REALCVT ACBP=48 + 2E6A:2BCE 0018 C=DATA S=_DATA G=DGROUP M=SCANTOD ACBP=48 + 2E6A:2BE6 0000 C=DATA S=_DATA G=DGROUP M=XCVT ACBP=48 + 2E6A:2BE6 009A C=DATA S=_DATA G=DGROUP M=FPERR ACBP=48 + 2E6A:2C80 0080 C=DATA S=_DATA G=DGROUP M=_POW10 ACBP=48 + 2E6A:2D00 0000 C=DATA S=_DATA G=DGROUP M=POW10D ACBP=48 + 2E6A:2D00 0000 C=DATA S=_DATA G=DGROUP M=MATHERR ACBP=48 + 2E6A:2D00 000C C=DATA S=_DATA G=DGROUP M=SIN ACBP=48 + 2E6A:2D0C 000E C=DATA S=_DATA G=DGROUP M=_MATHERR ACBP=48 + 2E6A:2D1A 0000 C=DATA S=_DATA G=DGROUP M=FFTOL ACBP=48 + 2E6A:2D1A 0002 C=DATA S=_DATA G=DGROUP M=ATEXIT ACBP=48 + 2E6A:2D1C 0101 C=DATA S=_DATA G=DGROUP M=CTYPE ACBP=48 + 2E6A:2E1E 000C C=DATA S=_DATA G=DGROUP M=EXIT ACBP=48 + 2E6A:2E2A 0190 C=DATA S=_DATA G=DGROUP M=FILES ACBP=48 + 2E6A:2FBA 002A C=DATA S=_DATA G=DGROUP M=FILES2 ACBP=48 + 2E6A:2FE4 0002 C=DATA S=_DATA G=DGROUP M=FPSTKLEN ACBP=48 + 2E6A:2FE6 0000 C=DATA S=_DATA G=DGROUP M=F_SCOPY ACBP=48 + 2E6A:2FE6 0000 C=DATA S=_DATA G=DGROUP M=H_LLSH ACBP=48 + 2E6A:2FE6 0000 C=DATA S=_DATA G=DGROUP M=H_PADD ACBP=48 + 2E6A:2FE6 005B C=DATA S=_DATA G=DGROUP M=IOERROR ACBP=48 + 2E6A:3042 0000 C=DATA S=_DATA G=DGROUP M=ISATTY ACBP=48 + 2E6A:3042 0000 C=DATA S=_DATA G=DGROUP M=LONGTOA ACBP=48 + 2E6A:3042 0000 C=DATA S=_DATA G=DGROUP M=LSEEK ACBP=48 + 2E6A:3042 0000 C=DATA S=_DATA G=DGROUP M=N_PCMP ACBP=48 + 2E6A:3042 0000 C=DATA S=_DATA G=DGROUP M=SETUPIO ACBP=48 + 2E6A:3042 0000 C=DATA S=_DATA G=DGROUP M=SIGDATA ACBP=48 + 2E6A:3042 0002 C=DATA S=_DATA G=DGROUP M=STKLEN ACBP=48 + 2E6A:3044 0067 C=DATA S=_DATA G=DGROUP M=VPRINTER ACBP=48 + 2E6A:30AC 0000 C=DATA S=_DATA G=DGROUP M=VRAM ACBP=48 + 2E6A:30AC 0002 C=DATA S=_DATA G=DGROUP M=WSCROLL ACBP=48 + 2E6A:30AE 0000 C=DATA S=_DATA G=DGROUP M=CPRINTF ACBP=48 + 2E6A:30AE 0018 C=DATA S=_DATA G=DGROUP M=CRTINIT ACBP=48 + 2E6A:30C6 0031 C=DATA S=_DATA G=DGROUP M=CVTFAK ACBP=48 + 2E6A:30F8 0000 C=DATA S=_DATA G=DGROUP M=FARHEAP ACBP=48 + 2E6A:30F8 0002 C=DATA S=_DATA G=DGROUP M=FBRK ACBP=48 + 2E6A:30FA 0000 C=DATA S=_DATA G=DGROUP M=GETCH ACBP=48 + 2E6A:30FA 0000 C=DATA S=_DATA G=DGROUP M=GPTEXT ACBP=48 + 2E6A:30FA 0002 C=DATA S=_DATA G=DGROUP M=KBHIT ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=MOVETEXT ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=PUTCH ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=REALCVT ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=SCREEN ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=SCROLL ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=SETBLOCK ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=WHEREXY ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=FFLUSH ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=FLUSHALL ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=FPRINTF ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=FSEEK ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=MEMCPY ACBP=48 + 2E6A:30FC 0000 C=DATA S=_DATA G=DGROUP M=MEMSET ACBP=48 + 2E6A:30FC 0001 C=DATA S=_DATA G=DGROUP M=PUTC ACBP=48 + 2E6A:30FE 0004 C=DATA S=_DATA G=DGROUP M=SETVBUF ACBP=48 + 2E6A:3102 0000 C=DATA S=_DATA G=DGROUP M=WRITE ACBP=48 + 2E6A:3102 0000 C=DATA S=_DATA G=DGROUP M=WRITEA ACBP=48 + 2E6A:3102 0000 C=DATA S=_DATA G=DGROUP M=XFFLUSH ACBP=48 + 2E6A:3102 0000 C=DATA S=_CVTSEG G=DGROUP M=c0.ASM ACBP=48 + 2E6A:3102 0002 C=DATA S=_CVTSEG G=DGROUP M=REALCVT ACBP=48 + 2E6A:3104 0002 C=DATA S=_CVTSEG G=DGROUP M=CVTFAK ACBP=48 + 2E6A:3106 0000 C=DATA S=_CVTSEG G=DGROUP M=REALCVT ACBP=48 + 2E6A:3106 0000 C=DATA S=_SCNSEG G=DGROUP M=c0.ASM ACBP=48 + 2E6A:3106 0006 C=DATA S=_SCNSEG G=DGROUP M=SCANTOD ACBP=48 + 2E6A:310C 0006 C=DATA S=_SCNSEG G=DGROUP M=CVTFAK ACBP=48 + 2E6A:3112 0000 C=CONST S=_CONST G=DGROUP M=c0.ASM ACBP=48 + 2E6A:3112 0000 C=INITDATA S=_INIT_ G=DGROUP M=c0.ASM ACBP=48 + 2E6A:3112 0006 C=INITDATA S=_INIT_ G=DGROUP M=FPINIT ACBP=48 + 2E6A:3118 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETUPIO ACBP=48 + 2E6A:311E 0006 C=INITDATA S=_INIT_ G=DGROUP M=CRTINIT ACBP=48 + 2E6A:3124 0000 C=INITDATA S=_INITEND_ G=DGROUP M=c0.ASM ACBP=28 + 2E6A:3124 0000 C=EXITDATA S=_EXIT_ G=DGROUP M=c0.ASM ACBP=48 + 2E6A:3124 0006 C=EXITDATA S=_EXIT_ G=DGROUP M=FPINIT ACBP=48 + 2E6A:312A 0000 C=EXITDATA S=_EXITEND_ G=DGROUP M=c0.ASM ACBP=28 + 2E6A:312A 0000 C=BSS S=_BSS G=DGROUP M=c0.ASM ACBP=48 + 2E6A:312A 2400 C=BSS S=_BSS G=DGROUP M=PLZ.C ACBP=48 + 2E6A:552A 33A0 C=BSS S=_BSS G=DGROUP M=PLZFILL.C ACBP=48 + 2E6A:88CA 0412 C=BSS S=_BSS G=DGROUP M=VECT.C ACBP=48 + 2E6A:8CDC 0000 C=BSS S=_BSS G=DGROUP M=PLZPART.C ACBP=48 + 2E6A:8CDC 0000 C=BSS S=_BSS G=DGROUP M=LDTRUNC ACBP=48 + 2E6A:8CDC 0000 C=BSS S=_BSS G=DGROUP M=REALCVT ACBP=48 + 2E6A:8CDC 0000 C=BSS S=_BSS G=DGROUP M=SCANTOD ACBP=48 + 2E6A:8CDC 0000 C=BSS S=_BSS G=DGROUP M=XCVT ACBP=48 + 2E6A:8CDC 0000 C=BSS S=_BSS G=DGROUP M=_POW10 ACBP=48 + 2E6A:8CDC 0000 C=BSS S=_BSS G=DGROUP M=SIN ACBP=48 + 2E6A:8CDC 0080 C=BSS S=_BSS G=DGROUP M=ATEXIT ACBP=48 + 2E6A:8D5C 0000 C=BSS S=_BSS G=DGROUP M=IOERROR ACBP=48 + 2E6A:8D5C 0000 C=BSS S=_BSS G=DGROUP M=ISATTY ACBP=48 + 2E6A:8D5C 0000 C=BSS S=_BSS G=DGROUP M=LONGTOA ACBP=48 + 2E6A:8D5C 0000 C=BSS S=_BSS G=DGROUP M=LSEEK ACBP=48 + 2E6A:8D5C 0000 C=BSS S=_BSS G=DGROUP M=SETUPIO ACBP=48 + 2E6A:8D5C 0004 C=BSS S=_BSS G=DGROUP M=SIGDATA ACBP=48 + 2E6A:8D60 0000 C=BSS S=_BSS G=DGROUP M=VPRINTER ACBP=48 + 2E6A:8D60 0000 C=BSS S=_BSS G=DGROUP M=VRAM ACBP=48 + 2E6A:8D60 0000 C=BSS S=_BSS G=DGROUP M=CRTINIT ACBP=48 + 2E6A:8D60 0000 C=BSS S=_BSS G=DGROUP M=GETCH ACBP=48 + 2E6A:8D60 0000 C=BSS S=_BSS G=DGROUP M=KBHIT ACBP=48 + 2E6A:8D60 0000 C=BSS S=_BSS G=DGROUP M=SETBLOCK ACBP=48 + 2E6A:8D60 0000 C=BSS S=_BSS G=DGROUP M=MEMCPY ACBP=48 + 2E6A:8D60 0000 C=BSS S=_BSS G=DGROUP M=MEMSET ACBP=48 + 2E6A:8D60 0001 C=BSS S=_BSS G=DGROUP M=PUTC ACBP=48 + 2E6A:8D62 0000 C=BSS S=_BSS G=DGROUP M=WRITEA ACBP=48 + 2E6A:8D62 0000 C=BSSEND S=_BSSEND G=DGROUP M=c0.ASM ACBP=28 + 3741:0000 0110 C=STACK S=_STACK G=(none) M=c0.ASM ACBP=74 + 3741:0000 0080 C=STACK S=_STACK G=(none) M=EMUVARS ACBP=78 + + Address Publics by Name + + 2E6A:0000 idle DATASEG@ + 0000:0291 idle DGROUP@ + 1685:2152 e086_Entry + 1685:26E0 e086_Shortcut + 18FD:0306 e087_Entry + 18FD:03C6 e087_Shortcut + 18FD:0430 e087_Trap + 0000:FE32 idle FIARQQ + 0000:0E32 idle FICRQQ + 0000:5C32 Abs FIDRQQ + 0000:1632 Abs FIERQQ + 0000:0632 idle FISRQQ + 0000:A23D Abs FIWRQQ + 0000:4000 idle FJARQQ + 0000:C000 idle FJCRQQ + 0000:8000 idle FJSRQQ + 0000:0F8F idle FTOL@ + 0000:0F8F F_FTOL@ + 0000:109A idle F_LXLSH@ + 0000:10BB idle F_PADD@ + 0000:10EA idle F_PSUB@ + 0000:107B F_SCOPY@ + 0000:109A idle LXLSH@ + 0000:1097 N_LXLSH@ + 0000:10B8 N_PADD@ + 0000:123F N_PCMP@ + 0000:10E7 idle N_PSUB@ + 0000:10BB idle PADD@ + 0000:10EA idle PSUB@ + 0000:107B idle SCOPY@ + 0000:027A _abort + 0000:0FBB idle _atexit + 10EF:07E8 _ax1 + 10EF:07F0 _ax2 + 10EF:07E4 idle _ay1 + 10EF:07EC idle _ay2 + 2DFB:0004 idle _buu + 14C1:00A0 idle _calculate + 13F6:0C68 _clear + 1055:001C _close_copper + 2E6A:026C idle _clrptr + 2E6A:552A idle _clrtau + 1055:000E _cop_drop + 1055:07E8 _cop_fadepal + 1055:0010 _cop_pal + 1055:001A _cop_plz + 1055:0018 _cop_scrl + 1055:0016 _cop_start + 14C1:0163 idle _count_const + 0000:19C6 idle _cprintf + 10EF:081E _ctau + 2E6A:0194 idle _curpal + 2E6A:88DA idle _cxx + 2E6A:88D8 idle _cxy + 2E6A:88D6 idle _cxz + 2E6A:88D4 idle _cyx + 2E6A:88D2 idle _cyy + 2E6A:88D0 idle _cyz + 2E6A:88CE idle _czx + 2E6A:88CC idle _czy + 2E6A:88CA idle _czz + 2E6A:30BD _directvideo + 2E6A:2B2C _dis + 1D5A:0000 _dist1 + 2E6A:0276 idle _disttaus + 10EF:0824 _do_block + 10EF:2612 _do_clear + 1055:0014 _do_pal + 13F6:02E3 _do_poly + 14C1:074E idle _draw + 10EF:081C _dseg + 2E6A:007F _errno + 0000:1040 _exit + 1055:01E8 _fadepal + 0000:1CE6 idle _farfree + 0000:1DFA idle _farmalloc + 0000:1F5E idle _farrealloc + 0000:2689 _fflush + 0000:2756 _flushall + 2E3A:0000 idle _fpal + 0000:2798 _fprintf + 0000:2A19 idle _fputc + 0000:2BAE idle _fputchar + 2E6A:2B40 idle _frames + 1055:000C _frame_count + 0000:1CE6 _free + 10EF:0818 _from + 0000:2836 _fseek + 0000:28B6 idle _ftell + 0000:2118 _getch + 0000:2134 idle _getche + 155C:108C _getspl + 0000:2176 _gettext + 2E6A:01C4 _ik1 + 2E6A:01C6 _ik2 + 2E6A:01C8 _ik3 + 2E6A:01CA _ik4 + 2E6A:01BC _il1 + 2E6A:01BE _il2 + 2E6A:01C0 _il3 + 2E6A:01C2 _il4 + 2E6A:01CC idle _inittable + 13F6:000D idle _initvect + 1055:0047 _init_copper + 1378:0272 idle _init_plz + 0000:1163 _isatty + 10EF:0000 idle _jmp_tau + 2E6A:01B4 _k1 + 2E6A:01B6 _k2 + 2E6A:01B8 _k3 + 2E6A:01BA _k4 + 0000:2222 _kbhit + 2D5A:0200 _kosinit + 195A:0000 _kuva1 + 255A:0000 _kuva2 + 295A:0000 _kuva3 + 2E6A:026E idle _kuvataus + 2E6A:2B26 _kx + 2E6A:2B28 _ky + 2E6A:2B2A _kz + 2E6A:01AC _l1 + 2E6A:01AE _l2 + 2E6A:01B0 _l3 + 2E6A:01B2 _l4 + 2E6A:2B0E idle _light_src + 2E6A:2B1A idle _lls + 0000:1216 _lseek + 030B:8000 idle _lsini16 + 030B:4000 idle _lsini4 + 2E6A:2B32 _ls_kx + 2E6A:2B34 _ls_ky + 2E6A:2B36 _ls_kz + 2E6A:2B38 idle _ls_x + 2E6A:2B3A idle _ls_y + 2E6A:2B3C idle _ls_z + 155B:0008 _main + 0000:1DF0 _malloc + 0000:0E6A _matherr + 0000:2996 _memcpy + 0000:29DE _memset + 1055:0107 idle _moveplz + 0000:2234 _movetext + 2E6A:02A2 idle _object + 2E6A:2B3E idle _page + 2E6A:752A _pal + 2E6A:312A idle _pals + 1378:0007 _plz + 030B:C000 _plzline + 2E6A:2B0C idle _polys + 1055:00D9 idle _pompota + 0000:0E5F _pow10 + 030B:0000 idle _psini + 2E6A:0094 idle _ptau + 2E6A:88DC idle _ptodraw + 0000:22D1 _putch + 0000:21CC _puttext + 0000:1F57 idle _realloc + 14C1:03F4 idle _rotate + 135A:0012 idle _scr_seg + 0000:2641 _setblock + 0000:29BA idle _setmem + 030B:C618 _setplzparas + 0000:2DC5 _setvbuf + 030B:D48E _set_plzstart + 10EF:2584 _shadepal + 0000:0E94 _sin + 2E6A:792A idle _sini + 2D5A:0000 _sinit + 2E6A:78AA idle _sinx + 2E6A:782A idle _siny + 14C1:050E idle _sort_faces + 14C1:0874 idle _swappage + 10EF:0804 _tax1 + 10EF:080C _tax2 + 10EF:0808 _tay1 + 10EF:0810 _tay2 + 2E6A:0196 idle _timetable + 10EF:0814 _to + 2E6A:01AA idle _ttptr + 135A:007C idle _tw_closegraph + 135A:0062 idle _tw_clrscr + 135A:00BB idle _tw_getpixel + 135A:0014 _tw_opengraph + 135A:0035 _tw_opengraph2 + 135A:0141 idle _tw_pictovmem + 135A:0082 idle _tw_putpixel + 135A:010B idle _tw_setpalarea + 135A:00F2 idle _tw_setpalette + 135A:01CD _tw_setrgbpalette + 135A:012C idle _tw_setstart + 135A:01BF idle _tw_waitvr + 2E6A:2B2E _tx + 10EF:07F4 _txx1 + 10EF:07FC _txx2 + 10EF:07F8 _txy1 + 10EF:0800 _txy2 + 2E6A:2B30 _ty + 0000:2158 idle _ungetch + 14C1:000F idle _vect + 2DFB:0000 _vmem + 0000:2667 idle _wherex + 0000:2676 idle _wherey + 10EF:07D0 idle _xx + 10EF:07D8 _xx1 + 10EF:07E0 _xx2 + 10EF:07D2 _yy + 10EF:07D4 idle _yy1 + 10EF:07DC idle _yy2 + 2E6A:2B50 __8087 + 0000:1000 idle __AHINCR + 0000:000C idle __AHSHIFT + 2E6A:2D1A __atexitcnt + 2E6A:8CDC __atexittbl + 0000:204E __brk + 2E6A:008B __brklvl + 2E6A:006B idle __C0argc + 2E6A:006D idle __C0argv + 0000:1AA8 idle __c0crtinit + 2E6A:0071 idle __C0environ + 2E6A:30FB __cChar + 0000:1061 idle __cexit + 2E6A:30FA __cFlag + 0000:016A __checknull + 0000:0157 __cleanup + 0000:1894 __CPUTN + 0000:1AC5 idle __crtinit + 2E6A:2D1C __ctype + 0000:0000 Abs __cvtfak + 0000:106F idle __c_exit + 2E6A:2B64 __default87 + 2E6A:2FE6 idle __doserrno + 0000:1151 idle __DOSERROR + 2E6A:2FE8 idle __dosErrorToSV + 3741:0000 __emu + 2E6A:0075 idle __envLng + 2E6A:0077 idle __envseg + 2E6A:0079 idle __envSize + 0000:104F __exit + 2E6A:2E1E __exitbuf + 2E6A:2E22 idle __exitfopen + 2E6A:2E26 idle __exitopen + 0000:8087 idle __floatconvert + 0000:0CE5 __fperror + 2E6A:2FE4 __fpstklen + 0000:04E9 __fpuint + 0000:29FD idle __fputc + 0000:2BC2 __FPUTN + 2E6A:0087 __heapbase + 2E6A:008F __heaptop + 2E6A:2B6A __huge_dble + 2E6A:2B66 idle __huge_flt + 2E6A:2B72 idle __huge_ldble + 2E6A:2B7C idle __indefinite + 2E6A:005B idle __Int0Vector + 2E6A:005F idle __Int4Vector + 2E6A:0063 idle __Int5Vector + 2E6A:0067 idle __Int6Vector + 0000:1118 __IOERROR + 2E6A:2B61 __LDT + 0000:04ED __LDTRUNC + 0000:1174 __LONGTOA + 0000:0EE6 __matherr + 2E6A:2B8A __mathwhy + 0000:0293 idle __MMODEL + 2E6A:2FBA __nfile + 0000:2131 idle __Ngetche + 0000:2155 idle __Nungetch + 2E6A:2FBC __openfd + 2E6A:007D idle __osmajor + 2E6A:007E idle __osminor + 2E6A:007D idle __osversion + 0000:0D96 __POW10 + 2E6A:2B60 __protected + 2E6A:007B __psp + 0000:22E8 __REALCVT + 2E6A:3102 __RealCvtVector + 0000:01C0 __restorezero + 0000:208D __sbrk + 2E6A:3106 idle __ScanTodVector + 0000:2422 __SCREENIO + 0000:24D5 __SCROLL + 0000:1260 __setupio + 2E6A:0081 idle __StartTime + 2E6A:3042 __stklen + 2E6A:2E2A __streams + 0000:016B __terminate + 2E6A:2B80 idle __tiny_ldble + 0000:0000 idle __turboCrt + 0000:0000 Abs __turboCvt + 0000:8087 Abs __turboFloat + 0000:11F6 idle __UTOA + 0000:245E __VALIDATEXY + 2E6A:007D __version + 2E6A:30AE __video + 0000:1A1D __VideoInt + 0000:1332 __VPRINTER + 0000:17F5 __VPTR + 0000:181A __VRAM + 0000:265D __wherexy + 0000:3033 __write + 2E6A:30AC __wscroll + 0000:0AD9 __XCVT + 0000:306F __xfflush + 2E6A:0085 idle ___brklvl + 0000:1BA6 idle ___first + 0000:0402 idle ___fpreset + 0000:1BA8 idle ___last + 0000:1BAA idle ___rover + 2E6A:8D5C ___SignalPtr + 0000:2EE2 ___write + + Address Publics by Value + + 0000:0000 Abs __turboCvt + 0000:0000 idle __turboCrt + 0000:0000 Abs __cvtfak + 0000:000C idle __AHSHIFT + 0000:0157 __cleanup + 0000:016A __checknull + 0000:016B __terminate + 0000:01C0 __restorezero + 0000:027A _abort + 0000:0291 idle DGROUP@ + 0000:0293 idle __MMODEL + 0000:0402 idle ___fpreset + 0000:04E9 __fpuint + 0000:04ED __LDTRUNC + 0000:0632 idle FISRQQ + 0000:0AD9 __XCVT + 0000:0CE5 __fperror + 0000:0D96 __POW10 + 0000:0E32 idle FICRQQ + 0000:0E5F _pow10 + 0000:0E6A _matherr + 0000:0E94 _sin + 0000:0EE6 __matherr + 0000:0F8F F_FTOL@ + 0000:0F8F idle FTOL@ + 0000:0FBB idle _atexit + 0000:1000 idle __AHINCR + 0000:1040 _exit + 0000:104F __exit + 0000:1061 idle __cexit + 0000:106F idle __c_exit + 0000:107B F_SCOPY@ + 0000:107B idle SCOPY@ + 0000:1097 N_LXLSH@ + 0000:109A idle LXLSH@ + 0000:109A idle F_LXLSH@ + 0000:10B8 N_PADD@ + 0000:10BB idle F_PADD@ + 0000:10BB idle PADD@ + 0000:10E7 idle N_PSUB@ + 0000:10EA idle F_PSUB@ + 0000:10EA idle PSUB@ + 0000:1118 __IOERROR + 0000:1151 idle __DOSERROR + 0000:1163 _isatty + 0000:1174 __LONGTOA + 0000:11F6 idle __UTOA + 0000:1216 _lseek + 0000:123F N_PCMP@ + 0000:1260 __setupio + 0000:1332 __VPRINTER + 0000:1632 Abs FIERQQ + 0000:17F5 __VPTR + 0000:181A __VRAM + 0000:1894 __CPUTN + 0000:19C6 idle _cprintf + 0000:1A1D __VideoInt + 0000:1AA8 idle __c0crtinit + 0000:1AC5 idle __crtinit + 0000:1BA6 idle ___first + 0000:1BA8 idle ___last + 0000:1BAA idle ___rover + 0000:1CE6 _free + 0000:1CE6 idle _farfree + 0000:1DF0 _malloc + 0000:1DFA idle _farmalloc + 0000:1F57 idle _realloc + 0000:1F5E idle _farrealloc + 0000:204E __brk + 0000:208D __sbrk + 0000:2118 _getch + 0000:2131 idle __Ngetche + 0000:2134 idle _getche + 0000:2155 idle __Nungetch + 0000:2158 idle _ungetch + 0000:2176 _gettext + 0000:21CC _puttext + 0000:2222 _kbhit + 0000:2234 _movetext + 0000:22D1 _putch + 0000:22E8 __REALCVT + 0000:2422 __SCREENIO + 0000:245E __VALIDATEXY + 0000:24D5 __SCROLL + 0000:2641 _setblock + 0000:265D __wherexy + 0000:2667 idle _wherex + 0000:2676 idle _wherey + 0000:2689 _fflush + 0000:2756 _flushall + 0000:2798 _fprintf + 0000:2836 _fseek + 0000:28B6 idle _ftell + 0000:2996 _memcpy + 0000:29BA idle _setmem + 0000:29DE _memset + 0000:29FD idle __fputc + 0000:2A19 idle _fputc + 0000:2BAE idle _fputchar + 0000:2BC2 __FPUTN + 0000:2DC5 _setvbuf + 0000:2EE2 ___write + 0000:3033 __write + 0000:306F __xfflush + 0000:4000 idle FJARQQ + 0000:5C32 Abs FIDRQQ + 0000:8000 idle FJSRQQ + 0000:8087 Abs __turboFloat + 0000:8087 idle __floatconvert + 0000:A23D Abs FIWRQQ + 0000:C000 idle FJCRQQ + 0000:FE32 idle FIARQQ + 030B:0000 idle _psini + 030B:4000 idle _lsini4 + 030B:8000 idle _lsini16 + 030B:C000 _plzline + 030B:C618 _setplzparas + 030B:D48E _set_plzstart + 1055:000C _frame_count + 1055:000E _cop_drop + 1055:0010 _cop_pal + 1055:0014 _do_pal + 1055:0016 _cop_start + 1055:0018 _cop_scrl + 1055:001A _cop_plz + 1055:001C _close_copper + 1055:0047 _init_copper + 1055:00D9 idle _pompota + 1055:0107 idle _moveplz + 1055:01E8 _fadepal + 1055:07E8 _cop_fadepal + 10EF:0000 idle _jmp_tau + 10EF:07D0 idle _xx + 10EF:07D2 _yy + 10EF:07D4 idle _yy1 + 10EF:07D8 _xx1 + 10EF:07DC idle _yy2 + 10EF:07E0 _xx2 + 10EF:07E4 idle _ay1 + 10EF:07E8 _ax1 + 10EF:07EC idle _ay2 + 10EF:07F0 _ax2 + 10EF:07F4 _txx1 + 10EF:07F8 _txy1 + 10EF:07FC _txx2 + 10EF:0800 _txy2 + 10EF:0804 _tax1 + 10EF:0808 _tay1 + 10EF:080C _tax2 + 10EF:0810 _tay2 + 10EF:0814 _to + 10EF:0818 _from + 10EF:081C _dseg + 10EF:081E _ctau + 10EF:0824 _do_block + 10EF:2584 _shadepal + 10EF:2612 _do_clear + 135A:0012 idle _scr_seg + 135A:0014 _tw_opengraph + 135A:0035 _tw_opengraph2 + 135A:0062 idle _tw_clrscr + 135A:007C idle _tw_closegraph + 135A:0082 idle _tw_putpixel + 135A:00BB idle _tw_getpixel + 135A:00F2 idle _tw_setpalette + 135A:010B idle _tw_setpalarea + 135A:012C idle _tw_setstart + 135A:0141 idle _tw_pictovmem + 135A:01BF idle _tw_waitvr + 135A:01CD _tw_setrgbpalette + 1378:0007 _plz + 1378:0272 idle _init_plz + 13F6:000D idle _initvect + 13F6:02E3 _do_poly + 13F6:0C68 _clear + 14C1:000F idle _vect + 14C1:00A0 idle _calculate + 14C1:0163 idle _count_const + 14C1:03F4 idle _rotate + 14C1:050E idle _sort_faces + 14C1:074E idle _draw + 14C1:0874 idle _swappage + 155B:0008 _main + 155C:108C _getspl + 1685:2152 e086_Entry + 1685:26E0 e086_Shortcut + 18FD:0306 e087_Entry + 18FD:03C6 e087_Shortcut + 18FD:0430 e087_Trap + 195A:0000 _kuva1 + 1D5A:0000 _dist1 + 255A:0000 _kuva2 + 295A:0000 _kuva3 + 2D5A:0000 _sinit + 2D5A:0200 _kosinit + 2DFB:0000 _vmem + 2DFB:0004 idle _buu + 2E3A:0000 idle _fpal + 2E6A:0000 idle DATASEG@ + 2E6A:005B idle __Int0Vector + 2E6A:005F idle __Int4Vector + 2E6A:0063 idle __Int5Vector + 2E6A:0067 idle __Int6Vector + 2E6A:006B idle __C0argc + 2E6A:006D idle __C0argv + 2E6A:0071 idle __C0environ + 2E6A:0075 idle __envLng + 2E6A:0077 idle __envseg + 2E6A:0079 idle __envSize + 2E6A:007B __psp + 2E6A:007D idle __osversion + 2E6A:007D idle __osmajor + 2E6A:007D __version + 2E6A:007E idle __osminor + 2E6A:007F _errno + 2E6A:0081 idle __StartTime + 2E6A:0085 idle ___brklvl + 2E6A:0087 __heapbase + 2E6A:008B __brklvl + 2E6A:008F __heaptop + 2E6A:0094 idle _ptau + 2E6A:0194 idle _curpal + 2E6A:0196 idle _timetable + 2E6A:01AA idle _ttptr + 2E6A:01AC _l1 + 2E6A:01AE _l2 + 2E6A:01B0 _l3 + 2E6A:01B2 _l4 + 2E6A:01B4 _k1 + 2E6A:01B6 _k2 + 2E6A:01B8 _k3 + 2E6A:01BA _k4 + 2E6A:01BC _il1 + 2E6A:01BE _il2 + 2E6A:01C0 _il3 + 2E6A:01C2 _il4 + 2E6A:01C4 _ik1 + 2E6A:01C6 _ik2 + 2E6A:01C8 _ik3 + 2E6A:01CA _ik4 + 2E6A:01CC idle _inittable + 2E6A:026C idle _clrptr + 2E6A:026E idle _kuvataus + 2E6A:0276 idle _disttaus + 2E6A:02A2 idle _object + 2E6A:2B0C idle _polys + 2E6A:2B0E idle _light_src + 2E6A:2B1A idle _lls + 2E6A:2B26 _kx + 2E6A:2B28 _ky + 2E6A:2B2A _kz + 2E6A:2B2C _dis + 2E6A:2B2E _tx + 2E6A:2B30 _ty + 2E6A:2B32 _ls_kx + 2E6A:2B34 _ls_ky + 2E6A:2B36 _ls_kz + 2E6A:2B38 idle _ls_x + 2E6A:2B3A idle _ls_y + 2E6A:2B3C idle _ls_z + 2E6A:2B3E idle _page + 2E6A:2B40 idle _frames + 2E6A:2B50 __8087 + 2E6A:2B60 __protected + 2E6A:2B61 __LDT + 2E6A:2B64 __default87 + 2E6A:2B66 idle __huge_flt + 2E6A:2B6A __huge_dble + 2E6A:2B72 idle __huge_ldble + 2E6A:2B7C idle __indefinite + 2E6A:2B80 idle __tiny_ldble + 2E6A:2B8A __mathwhy + 2E6A:2D1A __atexitcnt + 2E6A:2D1C __ctype + 2E6A:2E1E __exitbuf + 2E6A:2E22 idle __exitfopen + 2E6A:2E26 idle __exitopen + 2E6A:2E2A __streams + 2E6A:2FBA __nfile + 2E6A:2FBC __openfd + 2E6A:2FE4 __fpstklen + 2E6A:2FE6 idle __doserrno + 2E6A:2FE8 idle __dosErrorToSV + 2E6A:3042 __stklen + 2E6A:30AC __wscroll + 2E6A:30AE __video + 2E6A:30BD _directvideo + 2E6A:30FA __cFlag + 2E6A:30FB __cChar + 2E6A:3102 __RealCvtVector + 2E6A:3106 idle __ScanTodVector + 2E6A:312A idle _pals + 2E6A:552A idle _clrtau + 2E6A:752A _pal + 2E6A:782A idle _siny + 2E6A:78AA idle _sinx + 2E6A:792A idle _sini + 2E6A:88CA idle _czz + 2E6A:88CC idle _czy + 2E6A:88CE idle _czx + 2E6A:88D0 idle _cyz + 2E6A:88D2 idle _cyy + 2E6A:88D4 idle _cyx + 2E6A:88D6 idle _cxz + 2E6A:88D8 idle _cxy + 2E6A:88DA idle _cxx + 2E6A:88DC idle _ptodraw + 2E6A:8CDC __atexittbl + 2E6A:8D5C ___SignalPtr + 3741:0000 __emu + +Program entry point at 0000:0000 + diff --git a/plzpart/plzpart.prj b/plzpart/plzpart.prj new file mode 100755 index 0000000..a5319a6 Binary files /dev/null and b/plzpart/plzpart.prj differ diff --git a/plzpart/types.h b/plzpart/types.h index bb09ff1..51d4024 100755 --- a/plzpart/types.h +++ b/plzpart/types.h @@ -39,4 +39,9 @@ typedef signed int siword; typedef enum {false,true} boolean; +#ifdef __BORLANDC__ +typedef word uint16_t; +typedef byte uint8_t; +#endif + #endif/*_TYPE_H_*/ diff --git a/plzpart/vect.c b/plzpart/vect.c index 690605d..0c27784 100755 --- a/plzpart/vect.c +++ b/plzpart/vect.c @@ -118,9 +118,9 @@ void vect() //while(dis_musplus()<13 && !dis_exit()); frame_count=0; - while(!dis_exit()) + while(!getch())//!dis_exit()) { - a=dis_musplus(); + //a=dis_musplus(); if(a>=-4 && a<0) break; swappage(); while(frame_count<1); frames+=frame_count; frame_count=0; diff --git a/tweak.o b/tweak.o index cc84575..872bf52 100755 Binary files a/tweak.o and b/tweak.o differ diff --git a/u2/ASMYT.ASM b/u2/ASMYT.ASM new file mode 100755 index 0000000..692bf19 --- /dev/null +++ b/u2/ASMYT.ASM @@ -0,0 +1,119 @@ + IDEAL + MODEL large + P386 + +EXTRN C l1:word, C l2:word, C l3:word, C l4:word, C k1:word, C k2:word, C k3:word, C k4:word +EXTRN C m1:word, C m2:word, C m3:word, C m4:word, C n1:word, C n2:word, C n3:word, C n4:word + +SEGMENT poro para private 'CODE' + +ASSUME cs:poro + +PUBLIC C plzline, C setplzparas, C psini, C lsini4, C lsini16 + +LABEL psini BYTE +INCLUDE 'psini.inc' +; db 16384 dup(?) + +LABEL lsini4 WORD +INCLUDE 'lsini4.inc' +; db 16384 dup(?) + +LABEL lsini16 WORD +INCLUDE 'lsini16.inc' +; db 16384 dup(?) + +PROC C plzline + + ARG y1:word, vseg:word + + push ds es si di + + push [vseg] + pop es + push cs + pop ds + mov si, [y1] +; and si, 0fffeh + shl si, 1d + mov di, si + + IRP ccc, <3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12,19,18,17,16,23,22,21,20,27,26,25,24,31,30,29,28,35,34,33,32,39,38,37,36,43,42,41,40,47,46,45,44,51,50,49,48,55,54,53,52,59,58,57,56,63,62,61,60,67,66,65,64,71,70,69,68,75,74,73,72,79,78,77,76,83,82,81,80> + +IF (ccc AND 1) EQ 1 + +lc2_&ccc=$+2 + mov bx, [ds:si+0c200h] +lc1_&ccc=$+2 + mov ah, [ds:ccc*32 + bx + 0c100h] +lc4_&ccc=$+2 + mov bx, [ds:ccc*64 + di + 0c400h] +lc3_&ccc=$+2 + add ah, [ds:bx + di + 0c300h] +ELSE +lc2_&ccc=$+2 + mov bx, [ds:si+0c200h] +lc1_&ccc=$+2 + mov al, [ds:ccc*32 + bx + 0c100h] +lc4_&ccc=$+2 + mov bx, [ds:ccc*64 + di + 0c400h] +lc3_&ccc=$+2 + add al, [ds:bx + di + 0c300h] +ENDIF +IF (ccc AND 3) EQ 2 + shl eax, 16d +ENDIF +IF (ccc AND 3) EQ 0 + mov [es:ccc], eax +ENDIF + ENDM + pop di si es ds + ret +ENDP + +PROC C setplzparas + + ARG c1:word, c2:word, c3:word, c4:word + + IRP ccc, <0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83> + mov ax, [c1] + add ax, OFFSET psini+ccc*8 + mov [word (cs:lc1_&ccc)], ax + mov ax, [c2] + shl ax, 1d + add ax, OFFSET lsini16-ccc*8+80*8 + mov [word (cs:lc2_&ccc)], ax + mov ax, [c3] + add ax, OFFSET psini-ccc*4+80*4 + mov [word (cs:lc3_&ccc)], ax + mov ax, [c4] + shl ax, 1d + add ax, OFFSET lsini4+ccc*32 + mov [word (cs:lc4_&ccc)], ax + ENDM + ret +ENDP + +PUBLIC C set_plzstart + +PROC C set_plzstart + + ARG start:word + + mov dx, 3d4h + mov al, 18h ; linecompare + mov ah, [Byte start] + out dx, ax + mov al, 07h + mov ah, [Byte start+1] + shl ah, 4d + and ah, 10h + or ah, 0fh + out dx, ax ; 8th bit + ret + +ENDP + + +ENDS +END diff --git a/u2/ASMYT.OBJ b/u2/ASMYT.OBJ new file mode 100755 index 0000000..cccfe42 Binary files /dev/null and b/u2/ASMYT.OBJ differ diff --git a/u2/COPPER.ASM b/u2/COPPER.ASM new file mode 100755 index 0000000..c7a6209 --- /dev/null +++ b/u2/COPPER.ASM @@ -0,0 +1,300 @@ + IDEAL + MODEL large + P386 + +EXTRN C l1:word, C l2:word, C l3:word, C l4:word, C k1:word, C k2:word, C k3:word, C k4:word +EXTRN C il1:word, C il2:word, C il3:word, C il4:word, C ik1:word, C ik2:word, C ik3:word, C ik4:word + +CODESEG + +PUBLIC C frame_count, C init_copper, C close_copper, C cop_drop, C cop_pal, C do_pal +PUBLIC C cop_scrl, C cop_start, C cop_plz + +frame_count dw 0 +cop_drop dw 0 +cop_pal dd 0 +do_pal dw 0 +cop_start dw 0 +cop_scrl dw 0 +cop_plz dw 1 + +PROC close_copper + + mov bx, 7 + mov ax, 0 + mov cx, 0 + mov dx, 0 + int 0fch + + mov bx, 7 + mov ax, 1 + mov cx, 0 + mov dx, 0 + int 0fch + + mov bx, 7 + mov ax, 2 + mov cx, 0 + mov dx, 0 + int 0fch + + ret +ENDP + +PROC init_copper + + mov bx, 7 + mov ax, 1 + mov cx, OFFSET copper1 + mov dx, SEG copper1 + int 0fch + + mov bx, 7 + mov ax, 2 + mov cx, OFFSET copper2 + mov dx, SEG copper2 + int 0fch + + mov bx, 7 + mov ax, 0 + mov cx, OFFSET copper3 + mov dx, SEG copper3 + int 0fch + + ret +ENDP + +PROC copper1 + + mov dx, 03d4h + mov al, 0dh + mov ah, [Byte cs:cop_start] + out dx, ax + mov al, 0ch + mov ah, [Byte cs:cop_start+1] + out dx, ax + + mov dx, 3c0h + mov al, 33h + out dx, al + mov ax, [cs:cop_scrl] + out dx, al + + retf +ENDP + +PROC copper2 + + pusha + push ds + + inc [cs:frame_count] + + cmp [cs:do_pal], 0d + je @@no_pal + lds si, [cs:cop_pal] + mov cx, 768d + mov dx, 3c8h + mov al, 0d + out dx, al + inc dx + rep outsb + mov [cs:do_pal], 0d +@@no_pal: + cmp [cs:cop_plz], 0d + je @@l3 + call pompota + call moveplz +@@l3: + cmp [cs:cop_drop], 0d + je @@l1 + call do_drop +@@l1: + pop ds + popa + retf +ENDP + +PROC copper3 + retf +ENDP + +pompi db 0 + +PUBLIC C pompota + +PROC pompota + + mov [cs:cop_scrl], 4d + mov dx, 3d4h + mov ax, 3c18h + out dx, ax + mov ax, 0f07h + out dx, ax ; 8th bit + mov ax, 3c18h + inc [cs:pompi] + test [cs:pompi], 1d + jz @@l1 + mov [cs:cop_scrl], 0d + mov ax, 3d18h +@@l1: + out dx, ax + ret +ENDP + +PUBLIC C moveplz + +PROC moveplz + + push ds + push SEG k1 + pop ds + + add [ds:k1], -3d + and [ds:k1], 4095d + add [ds:k2], -2d + and [ds:k2], 4095d + add [ds:k3], 1d + and [ds:k3], 4095d + add [ds:k4], 2d + and [ds:k4], 4095d + + add [ds:l1], -1d + and [ds:l1], 4095d + add [ds:l2], -2d + and [ds:l2], 4095d + add [ds:l3], 2d + and [ds:l3], 4095d + add [ds:l4], 3d + and [ds:l4], 4095d + + pop ds + ret +ENDP + +LABEL dtau Word +ccc=0 +cccc=0 +REPT 65 ; 43=dy*512/dtý + dw ccc*ccc/4*43/128+60 +ccc=ccc+1 +ENDM + +PUBLIC C fadepal +fadepal db 768*2 dup(?) + +PUBLIC C cop_fadepal +cop_fadepal dd 0 + +PROC do_drop + + inc [cs:cop_drop] + cmp [cs:cop_drop], 64d + ja @@over + + push bx + mov bx, [cs:cop_drop] + shl bx, 1d + add bx, OFFSET dtau + + mov bx, [cs:bx] + mov dx, 3d4h + mov al, 18h ; linecompare + mov ah, bl + out dx, ax + mov al, 07h + mov ah, bh + shl ah, 4d + and ah, 10h + or ah, 0fh + out dx, ax ; 8th bit + + pop bx + ret + +@@over: + cmp [cs:cop_drop], 256d + jae @@end + cmp [cs:cop_drop], 128 + jae @@lll + cmp [cs:cop_drop], 64+32d + ja @@end + +@@lll: mov [Word cs:cop_pal], OFFSET fadepal + mov [Word cs:cop_pal+2], SEG fadepal + mov [do_pal], 1d + + cmp [cs:cop_drop], 65 + je @@l5 + + mov dx, 3d4h + mov ax, 3c18h + out dx, ax + mov ax, 0f07h + out dx, ax ; 8th bit + + push ds si di cx + + lds si, [cs:cop_fadepal] + mov di, OFFSET fadepal + mov cx, 768/16d +@@l4: + ccc=0 + REPT 16 + mov ax, [ds:si+ccc*2] + add [cs:di+ccc+768], al + adc [cs:di+ccc], ah + ccc=ccc+1 + ENDM + add di, 16d + add si, 32d + dec cx + jnz @@l4 + + pop cx di si ds + ret +@@l5: + mov dx, 3d4h + mov ax, 9018h + out dx, ax + mov ax, 1f07h + out dx, ax ; 8th bit + + call initpparas + ret +@@end: + mov [cs:cop_drop], 0d + ret +ENDP + +PROC initpparas + push ax + push ds + push SEG k1 + pop ds + + mov ax, [ds:il1] + mov [ds:l1], ax + mov ax, [ds:il2] + mov [ds:l2], ax + mov ax, [ds:il3] + mov [ds:l3], ax + mov ax, [ds:il4] + mov [ds:l4], ax + + mov ax, [ds:ik1] + mov [ds:k1], ax + mov ax, [ds:ik2] + mov [ds:k2], ax + mov ax, [ds:ik3] + mov [ds:k3], ax + mov ax, [ds:ik4] + mov [ds:k4], ax + + pop ds + pop ax + ret +ENDP + +END + diff --git a/u2/COPPER.OBJ b/u2/COPPER.OBJ new file mode 100755 index 0000000..211743a Binary files /dev/null and b/u2/COPPER.OBJ differ diff --git a/u2/INCLUDE.ASM b/u2/INCLUDE.ASM new file mode 100755 index 0000000..c31276e --- /dev/null +++ b/u2/INCLUDE.ASM @@ -0,0 +1,40 @@ + IDEAL + MODEL large + P386 + +SEGMENT kakka2 para use16 private 'FAR_DATA' +PUBLIC C kuva1 +LABEL kuva1 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka6 para use16 private 'FAR_DATA' +PUBLIC C dist1 +LABEL dist1 BYTE + dw 16384 DUP (?) +ENDS + + + +SEGMENT kakka3 para use16 private 'FAR_DATA' +PUBLIC C kuva2 +LABEL kuva2 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka4 para use16 private 'FAR_DATA' +PUBLIC C kuva3 +LABEL kuva3 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka5 para use16 private 'FAR_DATA' + +PUBLIC C sinit, C kosinit +LABEL sinit WORD +INCLUDE 'sinit.inc' +kosinit=sinit+512 + +ENDS + +END \ No newline at end of file diff --git a/u2/INCLUDE.OBJ b/u2/INCLUDE.OBJ new file mode 100755 index 0000000..399b9e2 Binary files /dev/null and b/u2/INCLUDE.OBJ differ diff --git a/u2/LSINI.PRE b/u2/LSINI.PRE new file mode 100755 index 0000000..f524987 --- /dev/null +++ b/u2/LSINI.PRE @@ -0,0 +1,513 @@ +{ +64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66 +, 66, 66, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 68, 68, 69 +, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71 +, 71, 71, 71, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73 +, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75 +, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77 +, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 78 +, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79 +, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80 +, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81 +, 81, 81, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89 +, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91 +, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92 +, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94 +, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 96, 96, 96 +, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98 +, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99,100,100,100,100,100 +,100,100,100,101,101,101,101,101,101,101,102,102,102,102,102,102 +,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104 +,104,104,105,105,105,105,105,105,105,105,106,106,106,106,106,106 +,106,106,106,107,107,107,107,107,107,107,107,107,107,108,108,108 +,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109 +,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,110 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112 +,112,112,112,112,112,112,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,112,112,112 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,111 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110 +,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,109 +,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109 +,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108 +,108,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,108,108,108,108,108 +,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,109 +,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109 +,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112 +,112,112,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,112,112,112,112,112,112,112 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,111 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110 +,110,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109 +,109,109,109,109,109,109,109,109,108,108,108,108,108,108,108,108 +,108,108,107,107,107,107,107,107,107,107,107,107,106,106,106,106 +,106,106,106,106,106,105,105,105,105,105,105,105,105,104,104,104 +,104,104,104,104,104,103,103,103,103,103,103,103,103,102,102,102 +,102,102,102,102,102,101,101,101,101,101,101,101,100,100,100,100 +,100,100,100,100, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98 +, 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 96, 96, 96, 96, 96, 96 +, 96, 96, 95, 95, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 94, 94 +, 94, 94, 94, 93, 93, 93, 93, 93, 93, 93, 93, 93, 92, 92, 92, 92 +, 92, 92, 92, 92, 92, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91 +, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89 +, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81 +, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80 +, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 79, 79, 79 +, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 78, 78 +, 78, 78, 78, 78, 78, 78, 78, 78, 77, 77, 77, 77, 77, 77, 77, 77 +, 77, 77, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 75, 75, 75, 75 +, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 73 +, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71 +, 71, 71, 71, 70, 70, 70, 70, 70, 70, 70, 69, 69, 69, 69, 69, 69 +, 68, 68, 68, 68, 68, 68, 68, 67, 67, 67, 67, 67, 67, 66, 66, 66 +, 66, 66, 66, 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, 64, 64, 64 +, 63, 63, 63, 63, 63, 63, 62, 62, 62, 62, 62, 62, 61, 61, 61, 61 +, 61, 61, 60, 60, 60, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 58 +, 58, 58, 58, 58, 58, 57, 57, 57, 57, 57, 57, 57, 56, 56, 56, 56 +, 56, 56, 56, 55, 55, 55, 55, 55, 55, 55, 54, 54, 54, 54, 54, 54 +, 54, 54, 53, 53, 53, 53, 53, 53, 53, 53, 52, 52, 52, 52, 52, 52 +, 52, 52, 52, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 50, 50, 50 +, 50, 50, 50, 50, 50, 50, 50, 49, 49, 49, 49, 49, 49, 49, 49, 49 +, 49, 49, 49, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 +, 48, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47 +, 47, 47, 47, 47, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46 +, 46, 46, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38 +, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36 +, 36, 36, 36, 36, 36, 36, 36, 36, 36, 35, 35, 35, 35, 35, 35, 35 +, 35, 35, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 33, 33, 33, 33 +, 33, 33, 33, 33, 33, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31 +, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 29, 29, 29, 29 +, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27 +, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25 +, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 23, 23, 23 +, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21 +, 21, 21, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19 +, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 18, 18, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 +, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19 +, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19 +, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21 +, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23 +, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25 +, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27 +, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29 +, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31 +, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33 +, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35 +, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36 +, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38 +, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46 +, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47 +, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48 +, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49 +, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50 +, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52 +, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54 +, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56 +, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58 +, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 61, 61, 61 +, 61, 61, 61, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63 +, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66 +, 66, 66, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 68, 68, 69 +, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71 +, 71, 71, 71, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73 +, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75 +, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77 +, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 78 +, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79 +, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80 +, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81 +, 81, 81, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89 +, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91 +, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92 +, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94 +, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 96, 96, 96 +, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98 +, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99,100,100,100,100,100 +,100,100,100,101,101,101,101,101,101,101,102,102,102,102,102,102 +,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104 +,104,104,105,105,105,105,105,105,105,105,106,106,106,106,106,106 +,106,106,106,107,107,107,107,107,107,107,107,107,107,108,108,108 +,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109 +,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,110 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112 +,112,112,112,112,112,112,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,112,112,112 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,111 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110 +,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,109 +,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109 +,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108 +,108,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,108,108,108,108,108 +,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,109 +,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109 +,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112 +,112,112,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,112,112,112,112,112,112,112 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,111 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110 +,110,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109 +,109,109,109,109,109,109,109,109,108,108,108,108,108,108,108,108 +,108,108,107,107,107,107,107,107,107,107,107,107,106,106,106,106 +,106,106,106,106,106,105,105,105,105,105,105,105,105,104,104,104 +,104,104,104,104,104,103,103,103,103,103,103,103,103,102,102,102 +,102,102,102,102,102,101,101,101,101,101,101,101,100,100,100,100 +,100,100,100,100, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98 +, 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 96, 96, 96, 96, 96, 96 +, 96, 96, 95, 95, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 94, 94 +, 94, 94, 94, 93, 93, 93, 93, 93, 93, 93, 93, 93, 92, 92, 92, 92 +, 92, 92, 92, 92, 92, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91 +, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89 +, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81 +, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80 +, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 79, 79, 79 +, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 78, 78 +, 78, 78, 78, 78, 78, 78, 78, 78, 77, 77, 77, 77, 77, 77, 77, 77 +, 77, 77, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 75, 75, 75, 75 +, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 73 +, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71 +, 71, 71, 71, 70, 70, 70, 70, 70, 70, 70, 69, 69, 69, 69, 69, 69 +, 68, 68, 68, 68, 68, 68, 68, 67, 67, 67, 67, 67, 67, 66, 66, 66 +, 66, 66, 66, 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, 64, 64, 64 +, 63, 63, 63, 63, 63, 63, 62, 62, 62, 62, 62, 62, 61, 61, 61, 61 +, 61, 61, 60, 60, 60, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 58 +, 58, 58, 58, 58, 58, 57, 57, 57, 57, 57, 57, 57, 56, 56, 56, 56 +, 56, 56, 56, 55, 55, 55, 55, 55, 55, 55, 54, 54, 54, 54, 54, 54 +, 54, 54, 53, 53, 53, 53, 53, 53, 53, 53, 52, 52, 52, 52, 52, 52 +, 52, 52, 52, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 50, 50, 50 +, 50, 50, 50, 50, 50, 50, 50, 49, 49, 49, 49, 49, 49, 49, 49, 49 +, 49, 49, 49, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 +, 48, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47 +, 47, 47, 47, 47, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46 +, 46, 46, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38 +, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36 +, 36, 36, 36, 36, 36, 36, 36, 36, 36, 35, 35, 35, 35, 35, 35, 35 +, 35, 35, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 33, 33, 33, 33 +, 33, 33, 33, 33, 33, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31 +, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 29, 29, 29, 29 +, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27 +, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25 +, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 23, 23, 23 +, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21 +, 21, 21, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19 +, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 18, 18, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 +, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19 +, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19 +, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21 +, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23 +, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25 +, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27 +, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29 +, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31 +, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33 +, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35 +, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36 +, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38 +, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46 +, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47 +, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48 +, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49 +, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50 +, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52 +, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54 +, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56 +, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58 +, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 61, 61, 61 +, 61, 61, 61, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63}; \ No newline at end of file diff --git a/u2/LSINI16.INC b/u2/LSINI16.INC new file mode 100755 index 0000000..fcada5c --- /dev/null +++ b/u2/LSINI16.INC @@ -0,0 +1,513 @@ + +dw 1024,1027,1030,1033,1036,1039,1042,1045,1048,1051,1054,1057,1060,1063,1066,1069 +dw 1072,1075,1078,1081,1084,1087,1090,1093,1096,1099,1101,1104,1107,1110,1112,1115 +dw 1118,1121,1123,1126,1128,1131,1133,1136,1138,1141,1143,1146,1148,1150,1153,1155 +dw 1157,1159,1161,1164,1166,1168,1170,1172,1174,1176,1177,1179,1181,1183,1185,1186 +dw 1188,1190,1191,1193,1195,1196,1198,1199,1200,1202,1203,1205,1206,1207,1208,1210 +dw 1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1223,1224,1225 +dw 1226,1226,1227,1228,1228,1229,1230,1230,1231,1232,1232,1233,1233,1234,1234,1235 +dw 1235,1236,1236,1237,1237,1238,1238,1238,1239,1239,1240,1240,1241,1241,1242,1242 +dw 1242,1243,1243,1244,1244,1245,1245,1246,1246,1247,1247,1248,1248,1249,1249,1250 +dw 1251,1251,1252,1252,1253,1254,1254,1255,1256,1257,1257,1258,1259,1260,1261,1262 +dw 1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1275,1276,1277,1278,1280 +dw 1281,1283,1284,1285,1287,1288,1290,1291,1293,1295,1296,1298,1300,1302,1303,1305 +dw 1307,1309,1311,1313,1315,1316,1318,1320,1323,1325,1327,1329,1331,1333,1335,1338 +dw 1340,1342,1344,1347,1349,1351,1354,1356,1358,1361,1363,1366,1368,1370,1373,1375 +dw 1378,1380,1383,1385,1388,1391,1393,1396,1398,1401,1403,1406,1408,1411,1414,1416 +dw 1419,1421,1424,1426,1429,1431,1434,1436,1439,1441,1444,1446,1449,1451,1454,1456 +dw 1459,1461,1463,1466,1468,1470,1473,1475,1477,1480,1482,1484,1486,1488,1490,1492 +dw 1494,1497,1499,1501,1502,1504,1506,1508,1510,1512,1514,1515,1517,1519,1520,1522 +dw 1523,1525,1526,1528,1529,1531,1532,1533,1535,1536,1537,1538,1539,1541,1542,1543 +dw 1544,1545,1545,1546,1547,1548,1549,1549,1550,1551,1551,1552,1553,1553,1554,1554 +dw 1555,1555,1555,1556,1556,1556,1556,1557,1557,1557,1557,1557,1557,1557,1557,1557 +dw 1557,1557,1557,1557,1557,1557,1557,1556,1556,1556,1556,1556,1555,1555,1555,1554 +dw 1554,1554,1553,1553,1553,1552,1552,1552,1551,1551,1550,1550,1550,1549,1549,1548 +dw 1548,1548,1547,1547,1546,1546,1546,1545,1545,1544,1544,1544,1543,1543,1543,1543 +dw 1542,1542,1542,1542,1541,1541,1541,1541,1541,1541,1541,1540,1540,1540,1540,1540 +dw 1540,1540,1541,1541,1541,1541,1541,1541,1542,1542,1542,1543,1543,1543,1544,1544 +dw 1545,1545,1546,1546,1547,1548,1548,1549,1550,1550,1551,1552,1553,1554,1554,1555 +dw 1556,1557,1558,1559,1560,1562,1563,1564,1565,1566,1567,1569,1570,1571,1573,1574 +dw 1575,1577,1578,1580,1581,1582,1584,1585,1587,1589,1590,1592,1593,1595,1597,1598 +dw 1600,1602,1603,1605,1607,1608,1610,1612,1614,1615,1617,1619,1621,1622,1624,1626 +dw 1628,1629,1631,1633,1635,1637,1638,1640,1642,1644,1645,1647,1649,1650,1652,1654 +dw 1655,1657,1659,1660,1662,1664,1665,1667,1668,1670,1671,1673,1674,1676,1677,1678 +dw 1680,1681,1682,1684,1685,1686,1687,1689,1690,1691,1692,1693,1694,1695,1696,1697 +dw 1698,1699,1700,1700,1701,1702,1703,1703,1704,1705,1705,1706,1706,1707,1707,1707 +dw 1708,1708,1709,1709,1709,1709,1709,1710,1710,1710,1710,1710,1710,1710,1710,1710 +dw 1709,1709,1709,1709,1709,1708,1708,1708,1707,1707,1707,1706,1706,1705,1705,1704 +dw 1704,1703,1702,1702,1701,1701,1700,1699,1698,1698,1697,1696,1695,1695,1694,1693 +dw 1692,1692,1691,1690,1689,1688,1687,1687,1686,1685,1684,1683,1682,1681,1681,1680 +dw 1679,1678,1677,1676,1676,1675,1674,1673,1672,1672,1671,1670,1669,1669,1668,1667 +dw 1667,1666,1665,1665,1664,1663,1663,1662,1662,1661,1661,1661,1660,1660,1659,1659 +dw 1659,1658,1658,1658,1658,1658,1657,1657,1657,1657,1657,1657,1657,1657,1658,1658 +dw 1658,1658,1658,1659,1659,1659,1660,1660,1660,1661,1661,1662,1663,1663,1664,1665 +dw 1665,1666,1667,1668,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1680 +dw 1681,1682,1683,1685,1686,1687,1688,1690,1691,1693,1694,1696,1697,1698,1700,1702 +dw 1703,1705,1706,1708,1709,1711,1713,1714,1716,1718,1719,1721,1723,1724,1726,1728 +dw 1729,1731,1733,1735,1736,1738,1740,1741,1743,1745,1747,1748,1750,1752,1753,1755 +dw 1757,1758,1760,1762,1763,1765,1766,1768,1770,1771,1773,1774,1776,1777,1779,1780 +dw 1781,1783,1784,1786,1787,1788,1790,1791,1792,1793,1794,1796,1797,1798,1799,1800 +dw 1801,1802,1803,1804,1805,1805,1806,1807,1808,1809,1809,1810,1811,1811,1812,1812 +dw 1813,1813,1814,1814,1815,1815,1815,1816,1816,1816,1816,1817,1817,1817,1817,1817 +dw 1817,1817,1817,1817,1817,1817,1817,1816,1816,1816,1816,1816,1815,1815,1815,1814 +dw 1814,1813,1813,1813,1812,1812,1811,1811,1810,1810,1809,1809,1808,1807,1807,1806 +dw 1806,1805,1804,1804,1803,1802,1802,1801,1800,1800,1799,1798,1798,1797,1797,1796 +dw 1795,1795,1794,1793,1793,1792,1791,1791,1790,1790,1789,1788,1788,1787,1787,1786 +dw 1786,1785,1785,1785,1784,1784,1783,1783,1783,1782,1782,1782,1782,1781,1781,1781 +dw 1781,1781,1781,1781,1781,1781,1781,1781,1781,1781,1781,1782,1782,1782,1782,1783 +dw 1783,1783,1784,1784,1785,1785,1786,1786,1787,1788,1788,1789,1790,1790,1791,1792 +dw 1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1805,1806,1807,1808,1810 +dw 1811,1812,1814,1815,1817,1818,1820,1821,1823,1824,1826,1827,1829,1831,1832,1834 +dw 1836,1837,1839,1841,1842,1844,1846,1848,1849,1851,1853,1855,1857,1858,1860,1862 +dw 1864,1866,1868,1869,1871,1873,1875,1877,1879,1880,1882,1884,1886,1888,1889,1891 +dw 1893,1895,1896,1898,1900,1902,1903,1905,1907,1908,1910,1911,1913,1915,1916,1918 +dw 1919,1921,1922,1923,1925,1926,1927,1929,1930,1931,1933,1934,1935,1936,1937,1938 +dw 1939,1940,1941,1942,1943,1944,1945,1946,1946,1947,1948,1949,1949,1950,1950,1951 +dw 1951,1952,1952,1953,1953,1954,1954,1954,1954,1955,1955,1955,1955,1955,1955,1955 +dw 1955,1955,1955,1955,1954,1954,1954,1954,1954,1953,1953,1953,1952,1952,1951,1951 +dw 1950,1950,1949,1949,1948,1947,1947,1946,1945,1945,1944,1943,1943,1942,1941,1940 +dw 1939,1939,1938,1937,1936,1935,1934,1933,1932,1932,1931,1930,1929,1928,1927,1926 +dw 1925,1924,1923,1922,1921,1921,1920,1919,1918,1917,1916,1915,1914,1913,1913,1912 +dw 1911,1910,1909,1909,1908,1907,1906,1906,1905,1904,1903,1903,1902,1902,1901,1900 +dw 1900,1899,1899,1898,1898,1897,1897,1897,1896,1896,1896,1895,1895,1895,1895,1895 +dw 1894,1894,1894,1894,1894,1894,1894,1894,1894,1894,1895,1895,1895,1895,1895,1896 +dw 1896,1896,1897,1897,1898,1898,1899,1899,1900,1900,1901,1901,1902,1903,1903,1904 +dw 1905,1905,1906,1907,1908,1909,1910,1910,1911,1912,1913,1914,1915,1916,1917,1918 +dw 1919,1920,1921,1922,1923,1924,1925,1926,1927,1929,1930,1931,1932,1933,1934,1935 +dw 1936,1937,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952 +dw 1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1963,1964,1965,1966,1966 +dw 1967,1968,1968,1969,1969,1970,1970,1971,1971,1972,1972,1973,1973,1973,1973,1974 +dw 1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1973,1973,1973,1973 +dw 1972,1972,1971,1971,1970,1970,1969,1968,1968,1967,1966,1965,1965,1964,1963,1962 +dw 1961,1960,1959,1958,1957,1955,1954,1953,1952,1951,1949,1948,1946,1945,1944,1942 +dw 1941,1939,1938,1936,1934,1933,1931,1930,1928,1926,1924,1923,1921,1919,1917,1915 +dw 1914,1912,1910,1908,1906,1904,1902,1900,1898,1896,1894,1893,1891,1889,1887,1885 +dw 1883,1881,1879,1877,1875,1873,1871,1869,1867,1865,1863,1861,1859,1857,1855,1853 +dw 1851,1849,1847,1845,1843,1841,1840,1838,1836,1834,1832,1830,1829,1827,1825,1824 +dw 1822,1820,1819,1817,1815,1814,1812,1811,1809,1808,1806,1805,1804,1802,1801,1800 +dw 1798,1797,1796,1795,1793,1792,1791,1790,1789,1788,1787,1786,1785,1784,1783,1782 +dw 1782,1781,1780,1779,1778,1778,1777,1776,1776,1775,1775,1774,1774,1773,1773,1772 +dw 1772,1771,1771,1771,1770,1770,1770,1770,1769,1769,1769,1769,1769,1768,1768,1768 +dw 1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768 +dw 1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768 +dw 1768,1768,1768,1768,1767,1767,1767,1767,1767,1767,1766,1766,1766,1766,1765,1765 +dw 1765,1764,1764,1764,1763,1763,1762,1762,1761,1761,1760,1759,1759,1758,1757,1757 +dw 1756,1755,1754,1753,1753,1752,1751,1750,1749,1748,1746,1745,1744,1743,1742,1740 +dw 1739,1738,1736,1735,1734,1732,1731,1729,1727,1726,1724,1722,1721,1719,1717,1715 +dw 1713,1712,1710,1708,1706,1704,1702,1700,1698,1695,1693,1691,1689,1687,1684,1682 +dw 1680,1677,1675,1673,1670,1668,1665,1663,1660,1658,1655,1653,1650,1648,1645,1642 +dw 1640,1637,1634,1632,1629,1626,1624,1621,1618,1616,1613,1610,1607,1605,1602,1599 +dw 1597,1594,1591,1588,1586,1583,1580,1577,1575,1572,1569,1567,1564,1561,1559,1556 +dw 1553,1551,1548,1546,1543,1541,1538,1536,1533,1531,1528,1526,1523,1521,1519,1516 +dw 1514,1512,1510,1507,1505,1503,1501,1499,1497,1495,1492,1490,1489,1487,1485,1483 +dw 1481,1479,1477,1476,1474,1472,1471,1469,1467,1466,1464,1463,1461,1460,1458,1457 +dw 1456,1454,1453,1452,1451,1450,1449,1447,1446,1445,1444,1443,1442,1441,1441,1440 +dw 1439,1438,1437,1437,1436,1435,1435,1434,1433,1433,1432,1432,1431,1431,1430,1430 +dw 1429,1429,1428,1428,1428,1427,1427,1427,1426,1426,1426,1425,1425,1425,1425,1424 +dw 1424,1424,1424,1424,1423,1423,1423,1423,1423,1422,1422,1422,1422,1422,1421,1421 +dw 1421,1421,1421,1420,1420,1420,1420,1419,1419,1419,1418,1418,1418,1417,1417,1417 +dw 1416,1416,1415,1415,1414,1414,1413,1413,1412,1412,1411,1410,1410,1409,1408,1408 +dw 1407,1406,1405,1404,1403,1402,1402,1401,1400,1399,1397,1396,1395,1394,1393,1392 +dw 1390,1389,1388,1387,1385,1384,1382,1381,1379,1378,1376,1375,1373,1372,1370,1368 +dw 1366,1365,1363,1361,1359,1357,1356,1354,1352,1350,1348,1346,1344,1342,1340,1337 +dw 1335,1333,1331,1329,1327,1324,1322,1320,1317,1315,1313,1311,1308,1306,1303,1301 +dw 1299,1296,1294,1291,1289,1287,1284,1282,1279,1277,1274,1272,1269,1267,1264,1262 +dw 1259,1257,1254,1252,1250,1247,1245,1242,1240,1237,1235,1233,1230,1228,1226,1223 +dw 1221,1219,1216,1214,1212,1210,1207,1205,1203,1201,1199,1197,1195,1193,1191,1189 +dw 1187,1185,1183,1181,1179,1177,1175,1174,1172,1170,1169,1167,1165,1164,1162,1161 +dw 1159,1158,1156,1155,1154,1152,1151,1150,1148,1147,1146,1145,1144,1143,1142,1141 +dw 1140,1139,1138,1137,1137,1136,1135,1134,1134,1133,1133,1132,1131,1131,1130,1130 +dw 1130,1129,1129,1129,1128,1128,1128,1128,1127,1127,1127,1127,1127,1127,1127,1127 +dw 1127,1127,1127,1127,1127,1127,1127,1127,1128,1128,1128,1128,1128,1129,1129,1129 +dw 1129,1130,1130,1130,1130,1131,1131,1131,1131,1132,1132,1132,1133,1133,1133,1133 +dw 1134,1134,1134,1134,1135,1135,1135,1135,1136,1136,1136,1136,1136,1136,1137,1137 +dw 1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1136,1136,1136,1136,1136 +dw 1135,1135,1135,1134,1134,1133,1133,1133,1132,1132,1131,1130,1130,1129,1128,1128 +dw 1127,1126,1125,1124,1124,1123,1122,1121,1120,1119,1118,1117,1115,1114,1113,1112 +dw 1111,1109,1108,1107,1105,1104,1102,1101,1099,1098,1096,1095,1093,1092,1090,1088 +dw 1087,1085,1083,1081,1080,1078,1076,1074,1072,1070,1068,1067,1065,1063,1061,1059 +dw 1057,1055,1053,1051,1049,1047,1044,1042,1040,1038,1036,1034,1032,1030,1028,1026 +dw 1024,1021,1019,1017,1015,1013,1011,1009,1007,1005,1003,1000, 998, 996, 994, 992 +dw 990, 988, 986, 984, 982, 980, 979, 977, 975, 973, 971, 969, 967, 966, 964, 962 +dw 960, 959, 957, 955, 954, 952, 951, 949, 948, 946, 945, 943, 942, 940, 939, 938 +dw 936, 935, 934, 933, 932, 930, 929, 928, 927, 926, 925, 924, 923, 923, 922, 921 +dw 920, 919, 919, 918, 917, 917, 916, 915, 915, 914, 914, 914, 913, 913, 912, 912 +dw 912, 911, 911, 911, 911, 911, 910, 910, 910, 910, 910, 910, 910, 910, 910, 910 +dw 910, 910, 910, 911, 911, 911, 911, 911, 911, 912, 912, 912, 912, 913, 913, 913 +dw 913, 914, 914, 914, 914, 915, 915, 915, 916, 916, 916, 916, 917, 917, 917, 917 +dw 918, 918, 918, 918, 919, 919, 919, 919, 919, 920, 920, 920, 920, 920, 920, 920 +dw 920, 920, 920, 920, 920, 920, 920, 920, 920, 919, 919, 919, 919, 918, 918, 918 +dw 917, 917, 917, 916, 916, 915, 914, 914, 913, 913, 912, 911, 910, 910, 909, 908 +dw 907, 906, 905, 904, 903, 902, 901, 900, 899, 897, 896, 895, 893, 892, 891, 889 +dw 888, 886, 885, 883, 882, 880, 878, 877, 875, 873, 872, 870, 868, 866, 864, 862 +dw 860, 858, 856, 854, 852, 850, 848, 846, 844, 842, 840, 837, 835, 833, 831, 828 +dw 826, 824, 821, 819, 817, 814, 812, 810, 807, 805, 802, 800, 797, 795, 793, 790 +dw 788, 785, 783, 780, 778, 775, 773, 770, 768, 765, 763, 760, 758, 756, 753, 751 +dw 748, 746, 744, 741, 739, 736, 734, 732, 730, 727, 725, 723, 720, 718, 716, 714 +dw 712, 710, 707, 705, 703, 701, 699, 697, 695, 693, 691, 690, 688, 686, 684, 682 +dw 681, 679, 677, 675, 674, 672, 671, 669, 668, 666, 665, 663, 662, 660, 659, 658 +dw 657, 655, 654, 653, 652, 651, 650, 648, 647, 646, 645, 645, 644, 643, 642, 641 +dw 640, 639, 639, 638, 637, 637, 636, 635, 635, 634, 634, 633, 633, 632, 632, 631 +dw 631, 630, 630, 630, 629, 629, 629, 628, 628, 628, 627, 627, 627, 627, 626, 626 +dw 626, 626, 626, 625, 625, 625, 625, 625, 624, 624, 624, 624, 624, 623, 623, 623 +dw 623, 623, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 619, 619, 619, 618 +dw 618, 617, 617, 616, 616, 615, 615, 614, 614, 613, 612, 612, 611, 610, 610, 609 +dw 608, 607, 606, 606, 605, 604, 603, 602, 601, 600, 598, 597, 596, 595, 594, 593 +dw 591, 590, 589, 587, 586, 584, 583, 581, 580, 578, 576, 575, 573, 571, 570, 568 +dw 566, 564, 562, 560, 558, 557, 555, 552, 550, 548, 546, 544, 542, 540, 537, 535 +dw 533, 531, 528, 526, 524, 521, 519, 516, 514, 511, 509, 506, 504, 501, 499, 496 +dw 494, 491, 488, 486, 483, 480, 478, 475, 472, 470, 467, 464, 461, 459, 456, 453 +dw 450, 448, 445, 442, 440, 437, 434, 431, 429, 426, 423, 421, 418, 415, 413, 410 +dw 407, 405, 402, 399, 397, 394, 392, 389, 387, 384, 382, 379, 377, 374, 372, 370 +dw 367, 365, 363, 360, 358, 356, 354, 352, 349, 347, 345, 343, 341, 339, 337, 335 +dw 334, 332, 330, 328, 326, 325, 323, 321, 320, 318, 316, 315, 313, 312, 311, 309 +dw 308, 307, 305, 304, 303, 302, 301, 299, 298, 297, 296, 295, 294, 294, 293, 292 +dw 291, 290, 290, 289, 288, 288, 287, 286, 286, 285, 285, 284, 284, 283, 283, 283 +dw 282, 282, 282, 281, 281, 281, 281, 280, 280, 280, 280, 280, 280, 279, 279, 279 +dw 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279 +dw 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279 +dw 279, 279, 279, 279, 278, 278, 278, 278, 278, 277, 277, 277, 277, 276, 276, 276 +dw 275, 275, 274, 274, 273, 273, 272, 272, 271, 271, 270, 269, 269, 268, 267, 266 +dw 265, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 252, 251, 250 +dw 249, 247, 246, 245, 243, 242, 241, 239, 238, 236, 235, 233, 232, 230, 228, 227 +dw 225, 223, 222, 220, 218, 217, 215, 213, 211, 209, 207, 206, 204, 202, 200, 198 +dw 196, 194, 192, 190, 188, 186, 184, 182, 180, 178, 176, 174, 172, 170, 168, 166 +dw 164, 162, 160, 158, 156, 154, 153, 151, 149, 147, 145, 143, 141, 139, 137, 135 +dw 133, 132, 130, 128, 126, 124, 123, 121, 119, 117, 116, 114, 113, 111, 109, 108 +dw 106, 105, 103, 102, 101, 99, 98, 96, 95, 94, 93, 92, 90, 89, 88, 87 +dw 86, 85, 84, 83, 82, 82, 81, 80, 79, 79, 78, 77, 77, 76, 76, 75 +dw 75, 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73 +dw 73, 73, 74, 74, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79 +dw 80, 81, 81, 82, 83, 84, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93 +dw 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 110 +dw 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127 +dw 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 137, 138, 139, 140, 141, 142 +dw 142, 143, 144, 144, 145, 146, 146, 147, 147, 148, 148, 149, 149, 150, 150, 151 +dw 151, 151, 152, 152, 152, 152, 152, 153, 153, 153, 153, 153, 153, 153, 153, 153 +dw 153, 152, 152, 152, 152, 152, 151, 151, 151, 150, 150, 150, 149, 149, 148, 148 +dw 147, 147, 146, 145, 145, 144, 144, 143, 142, 141, 141, 140, 139, 138, 138, 137 +dw 136, 135, 134, 134, 133, 132, 131, 130, 129, 128, 127, 126, 126, 125, 124, 123 +dw 122, 121, 120, 119, 118, 117, 116, 115, 115, 114, 113, 112, 111, 110, 109, 108 +dw 108, 107, 106, 105, 104, 104, 103, 102, 102, 101, 100, 100, 99, 98, 98, 97 +dw 97, 96, 96, 95, 95, 94, 94, 94, 93, 93, 93, 93, 93, 92, 92, 92 +dw 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 94, 94, 95, 95 +dw 95, 96, 97, 97, 98, 98, 99, 100, 101, 101, 102, 103, 104, 105, 106, 107 +dw 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 120, 121, 122, 124, 125, 126 +dw 128, 129, 131, 132, 134, 136, 137, 139, 140, 142, 144, 145, 147, 149, 151, 152 +dw 154, 156, 158, 159, 161, 163, 165, 167, 168, 170, 172, 174, 176, 178, 179, 181 +dw 183, 185, 187, 189, 190, 192, 194, 196, 198, 199, 201, 203, 205, 206, 208, 210 +dw 211, 213, 215, 216, 218, 220, 221, 223, 224, 226, 227, 229, 230, 232, 233, 235 +dw 236, 237, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253 +dw 254, 255, 256, 257, 257, 258, 259, 259, 260, 261, 261, 262, 262, 263, 263, 264 +dw 264, 264, 265, 265, 265, 265, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266 +dw 266, 266, 266, 266, 265, 265, 265, 265, 264, 264, 264, 263, 263, 262, 262, 262 +dw 261, 261, 260, 260, 259, 259, 258, 257, 257, 256, 256, 255, 254, 254, 253, 252 +dw 252, 251, 250, 250, 249, 249, 248, 247, 247, 246, 245, 245, 244, 243, 243, 242 +dw 241, 241, 240, 240, 239, 238, 238, 237, 237, 236, 236, 235, 235, 234, 234, 234 +dw 233, 233, 232, 232, 232, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230 +dw 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 232, 232, 232, 233, 233, 234 +dw 234, 235, 235, 236, 236, 237, 238, 238, 239, 240, 241, 242, 242, 243, 244, 245 +dw 246, 247, 248, 249, 250, 251, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264 +dw 266, 267, 268, 270, 271, 273, 274, 276, 277, 279, 281, 282, 284, 285, 287, 289 +dw 290, 292, 294, 295, 297, 299, 300, 302, 304, 306, 307, 309, 311, 312, 314, 316 +dw 318, 319, 321, 323, 324, 326, 328, 329, 331, 333, 334, 336, 338, 339, 341, 342 +dw 344, 345, 347, 349, 350, 351, 353, 354, 356, 357, 359, 360, 361, 362, 364, 365 +dw 366, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 379, 380, 381 +dw 382, 382, 383, 384, 384, 385, 386, 386, 387, 387, 387, 388, 388, 388, 389, 389 +dw 389, 389, 389, 390, 390, 390, 390, 390, 390, 390, 390, 389, 389, 389, 389, 389 +dw 388, 388, 388, 387, 387, 386, 386, 386, 385, 385, 384, 384, 383, 382, 382, 381 +dw 380, 380, 379, 378, 378, 377, 376, 375, 375, 374, 373, 372, 371, 371, 370, 369 +dw 368, 367, 366, 366, 365, 364, 363, 362, 361, 360, 360, 359, 358, 357, 356, 355 +dw 355, 354, 353, 352, 352, 351, 350, 349, 349, 348, 347, 346, 346, 345, 345, 344 +dw 343, 343, 342, 342, 341, 341, 340, 340, 340, 339, 339, 339, 338, 338, 338, 338 +dw 338, 337, 337, 337, 337, 337, 337, 337, 337, 337, 338, 338, 338, 338, 338, 339 +dw 339, 340, 340, 340, 341, 341, 342, 342, 343, 344, 344, 345, 346, 347, 347, 348 +dw 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 360, 361, 362, 363, 365, 366 +dw 367, 369, 370, 371, 373, 374, 376, 377, 379, 380, 382, 383, 385, 387, 388, 390 +dw 392, 393, 395, 397, 398, 400, 402, 403, 405, 407, 409, 410, 412, 414, 416, 418 +dw 419, 421, 423, 425, 426, 428, 430, 432, 433, 435, 437, 439, 440, 442, 444, 445 +dw 447, 449, 450, 452, 454, 455, 457, 458, 460, 462, 463, 465, 466, 467, 469, 470 +dw 472, 473, 474, 476, 477, 478, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490 +dw 491, 492, 493, 493, 494, 495, 496, 497, 497, 498, 499, 499, 500, 501, 501, 502 +dw 502, 503, 503, 504, 504, 504, 505, 505, 505, 506, 506, 506, 506, 506, 506, 507 +dw 507, 507, 507, 507, 507, 507, 506, 506, 506, 506, 506, 506, 506, 505, 505, 505 +dw 505, 504, 504, 504, 504, 503, 503, 503, 502, 502, 501, 501, 501, 500, 500, 499 +dw 499, 499, 498, 498, 497, 497, 497, 496, 496, 495, 495, 495, 494, 494, 494, 493 +dw 493, 493, 492, 492, 492, 491, 491, 491, 491, 491, 490, 490, 490, 490, 490, 490 +dw 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 491, 491, 491, 491, 492, 492 +dw 492, 493, 493, 494, 494, 495, 496, 496, 497, 498, 498, 499, 500, 501, 502, 502 +dw 503, 504, 505, 506, 508, 509, 510, 511, 512, 514, 515, 516, 518, 519, 521, 522 +dw 524, 525, 527, 528, 530, 532, 533, 535, 537, 539, 541, 543, 545, 546, 548, 550 +dw 553, 555, 557, 559, 561, 563, 565, 567, 570, 572, 574, 577, 579, 581, 584, 586 +dw 588, 591, 593, 596, 598, 601, 603, 606, 608, 611, 613, 616, 618, 621, 623, 626 +dw 628, 631, 633, 636, 639, 641, 644, 646, 649, 651, 654, 656, 659, 662, 664, 667 +dw 669, 672, 674, 677, 679, 681, 684, 686, 689, 691, 693, 696, 698, 700, 703, 705 +dw 707, 709, 712, 714, 716, 718, 720, 722, 724, 727, 729, 731, 732, 734, 736, 738 +dw 740, 742, 744, 745, 747, 749, 751, 752, 754, 756, 757, 759, 760, 762, 763, 764 +dw 766, 767, 769, 770, 771, 772, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783 +dw 784, 785, 786, 787, 788, 789, 790, 790, 791, 792, 793, 793, 794, 795, 795, 796 +dw 796, 797, 798, 798, 799, 799, 800, 800, 801, 801, 802, 802, 803, 803, 804, 804 +dw 805, 805, 805, 806, 806, 807, 807, 808, 808, 809, 809, 809, 810, 810, 811, 811 +dw 812, 812, 813, 813, 814, 814, 815, 815, 816, 817, 817, 818, 819, 819, 820, 821 +dw 821, 822, 823, 824, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835 +dw 836, 837, 839, 840, 841, 842, 844, 845, 847, 848, 849, 851, 852, 854, 856, 857 +dw 859, 861, 862, 864, 866, 868, 870, 871, 873, 875, 877, 879, 881, 883, 886, 888 +dw 890, 892, 894, 897, 899, 901, 904, 906, 909, 911, 914, 916, 919, 921, 924, 926 +dw 929, 932, 935, 937, 940, 943, 946, 948, 951, 954, 957, 960, 963, 966, 969, 972 +dw 975, 978, 981, 984, 987, 990, 993, 996, 999,1002,1005,1008,1011,1014,1017,1020 +dw 1023,1027,1030,1033,1036,1039,1042,1045,1048,1051,1054,1057,1060,1063,1066,1069 +dw 1072,1075,1078,1081,1084,1087,1090,1093,1096,1099,1101,1104,1107,1110,1112,1115 +dw 1118,1121,1123,1126,1128,1131,1133,1136,1138,1141,1143,1146,1148,1150,1153,1155 +dw 1157,1159,1161,1164,1166,1168,1170,1172,1174,1176,1177,1179,1181,1183,1185,1186 +dw 1188,1190,1191,1193,1195,1196,1198,1199,1200,1202,1203,1205,1206,1207,1208,1210 +dw 1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1223,1224,1225 +dw 1226,1226,1227,1228,1228,1229,1230,1230,1231,1232,1232,1233,1233,1234,1234,1235 +dw 1235,1236,1236,1237,1237,1238,1238,1238,1239,1239,1240,1240,1241,1241,1242,1242 +dw 1242,1243,1243,1244,1244,1245,1245,1246,1246,1247,1247,1248,1248,1249,1249,1250 +dw 1251,1251,1252,1252,1253,1254,1254,1255,1256,1257,1257,1258,1259,1260,1261,1262 +dw 1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1275,1276,1277,1278,1280 +dw 1281,1283,1284,1285,1287,1288,1290,1291,1293,1295,1296,1298,1300,1302,1303,1305 +dw 1307,1309,1311,1313,1315,1316,1318,1320,1323,1325,1327,1329,1331,1333,1335,1338 +dw 1340,1342,1344,1347,1349,1351,1354,1356,1358,1361,1363,1366,1368,1370,1373,1375 +dw 1378,1380,1383,1385,1388,1391,1393,1396,1398,1401,1403,1406,1408,1411,1414,1416 +dw 1419,1421,1424,1426,1429,1431,1434,1436,1439,1441,1444,1446,1449,1451,1454,1456 +dw 1459,1461,1463,1466,1468,1470,1473,1475,1477,1480,1482,1484,1486,1488,1490,1492 +dw 1494,1497,1499,1501,1502,1504,1506,1508,1510,1512,1514,1515,1517,1519,1520,1522 +dw 1523,1525,1526,1528,1529,1531,1532,1533,1535,1536,1537,1538,1539,1541,1542,1543 +dw 1544,1545,1545,1546,1547,1548,1549,1549,1550,1551,1551,1552,1553,1553,1554,1554 +dw 1555,1555,1555,1556,1556,1556,1556,1557,1557,1557,1557,1557,1557,1557,1557,1557 +dw 1557,1557,1557,1557,1557,1557,1557,1556,1556,1556,1556,1556,1555,1555,1555,1554 +dw 1554,1554,1553,1553,1553,1552,1552,1552,1551,1551,1550,1550,1550,1549,1549,1548 +dw 1548,1548,1547,1547,1546,1546,1546,1545,1545,1544,1544,1544,1543,1543,1543,1543 +dw 1542,1542,1542,1542,1541,1541,1541,1541,1541,1541,1541,1540,1540,1540,1540,1540 +dw 1540,1540,1541,1541,1541,1541,1541,1541,1542,1542,1542,1543,1543,1543,1544,1544 +dw 1545,1545,1546,1546,1547,1548,1548,1549,1550,1550,1551,1552,1553,1554,1554,1555 +dw 1556,1557,1558,1559,1560,1562,1563,1564,1565,1566,1567,1569,1570,1571,1573,1574 +dw 1575,1577,1578,1580,1581,1582,1584,1585,1587,1589,1590,1592,1593,1595,1597,1598 +dw 1600,1602,1603,1605,1607,1608,1610,1612,1614,1615,1617,1619,1621,1622,1624,1626 +dw 1628,1629,1631,1633,1635,1637,1638,1640,1642,1644,1645,1647,1649,1650,1652,1654 +dw 1655,1657,1659,1660,1662,1664,1665,1667,1668,1670,1671,1673,1674,1676,1677,1678 +dw 1680,1681,1682,1684,1685,1686,1687,1689,1690,1691,1692,1693,1694,1695,1696,1697 +dw 1698,1699,1700,1700,1701,1702,1703,1703,1704,1705,1705,1706,1706,1707,1707,1707 +dw 1708,1708,1709,1709,1709,1709,1709,1710,1710,1710,1710,1710,1710,1710,1710,1710 +dw 1709,1709,1709,1709,1709,1708,1708,1708,1707,1707,1707,1706,1706,1705,1705,1704 +dw 1704,1703,1702,1702,1701,1701,1700,1699,1698,1698,1697,1696,1695,1695,1694,1693 +dw 1692,1692,1691,1690,1689,1688,1687,1687,1686,1685,1684,1683,1682,1681,1681,1680 +dw 1679,1678,1677,1676,1676,1675,1674,1673,1672,1672,1671,1670,1669,1669,1668,1667 +dw 1667,1666,1665,1665,1664,1663,1663,1662,1662,1661,1661,1661,1660,1660,1659,1659 +dw 1659,1658,1658,1658,1658,1658,1657,1657,1657,1657,1657,1657,1657,1657,1658,1658 +dw 1658,1658,1658,1659,1659,1659,1660,1660,1660,1661,1661,1662,1663,1663,1664,1665 +dw 1665,1666,1667,1668,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1680 +dw 1681,1682,1683,1685,1686,1687,1688,1690,1691,1693,1694,1696,1697,1698,1700,1702 +dw 1703,1705,1706,1708,1709,1711,1713,1714,1716,1718,1719,1721,1723,1724,1726,1728 +dw 1729,1731,1733,1735,1736,1738,1740,1741,1743,1745,1747,1748,1750,1752,1753,1755 +dw 1757,1758,1760,1762,1763,1765,1766,1768,1770,1771,1773,1774,1776,1777,1779,1780 +dw 1781,1783,1784,1786,1787,1788,1790,1791,1792,1793,1794,1796,1797,1798,1799,1800 +dw 1801,1802,1803,1804,1805,1805,1806,1807,1808,1809,1809,1810,1811,1811,1812,1812 +dw 1813,1813,1814,1814,1815,1815,1815,1816,1816,1816,1816,1817,1817,1817,1817,1817 +dw 1817,1817,1817,1817,1817,1817,1817,1816,1816,1816,1816,1816,1815,1815,1815,1814 +dw 1814,1813,1813,1813,1812,1812,1811,1811,1810,1810,1809,1809,1808,1807,1807,1806 +dw 1806,1805,1804,1804,1803,1802,1802,1801,1800,1800,1799,1798,1798,1797,1797,1796 +dw 1795,1795,1794,1793,1793,1792,1791,1791,1790,1790,1789,1788,1788,1787,1787,1786 +dw 1786,1785,1785,1785,1784,1784,1783,1783,1783,1782,1782,1782,1782,1781,1781,1781 +dw 1781,1781,1781,1781,1781,1781,1781,1781,1781,1781,1781,1782,1782,1782,1782,1783 +dw 1783,1783,1784,1784,1785,1785,1786,1786,1787,1788,1788,1789,1790,1790,1791,1792 +dw 1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1805,1806,1807,1808,1810 +dw 1811,1812,1814,1815,1817,1818,1820,1821,1823,1824,1826,1827,1829,1831,1832,1834 +dw 1836,1837,1839,1841,1842,1844,1846,1848,1849,1851,1853,1855,1857,1858,1860,1862 +dw 1864,1866,1868,1869,1871,1873,1875,1877,1879,1880,1882,1884,1886,1888,1889,1891 +dw 1893,1895,1896,1898,1900,1902,1903,1905,1907,1908,1910,1911,1913,1915,1916,1918 +dw 1919,1921,1922,1923,1925,1926,1927,1929,1930,1931,1933,1934,1935,1936,1937,1938 +dw 1939,1940,1941,1942,1943,1944,1945,1946,1946,1947,1948,1949,1949,1950,1950,1951 +dw 1951,1952,1952,1953,1953,1954,1954,1954,1954,1955,1955,1955,1955,1955,1955,1955 +dw 1955,1955,1955,1955,1954,1954,1954,1954,1954,1953,1953,1953,1952,1952,1951,1951 +dw 1950,1950,1949,1949,1948,1947,1947,1946,1945,1945,1944,1943,1943,1942,1941,1940 +dw 1939,1939,1938,1937,1936,1935,1934,1933,1932,1932,1931,1930,1929,1928,1927,1926 +dw 1925,1924,1923,1922,1921,1921,1920,1919,1918,1917,1916,1915,1914,1913,1913,1912 +dw 1911,1910,1909,1909,1908,1907,1906,1906,1905,1904,1903,1903,1902,1902,1901,1900 +dw 1900,1899,1899,1898,1898,1897,1897,1897,1896,1896,1896,1895,1895,1895,1895,1895 +dw 1894,1894,1894,1894,1894,1894,1894,1894,1894,1894,1895,1895,1895,1895,1895,1896 +dw 1896,1896,1897,1897,1898,1898,1899,1899,1900,1900,1901,1901,1902,1903,1903,1904 +dw 1905,1905,1906,1907,1908,1909,1910,1910,1911,1912,1913,1914,1915,1916,1917,1918 +dw 1919,1920,1921,1922,1923,1924,1925,1926,1927,1929,1930,1931,1932,1933,1934,1935 +dw 1936,1937,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952 +dw 1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1963,1964,1965,1966,1966 +dw 1967,1968,1968,1969,1969,1970,1970,1971,1971,1972,1972,1973,1973,1973,1973,1974 +dw 1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1973,1973,1973,1973 +dw 1972,1972,1971,1971,1970,1970,1969,1968,1968,1967,1966,1965,1965,1964,1963,1962 +dw 1961,1960,1959,1958,1957,1955,1954,1953,1952,1951,1949,1948,1946,1945,1944,1942 +dw 1941,1939,1938,1936,1934,1933,1931,1930,1928,1926,1924,1923,1921,1919,1917,1915 +dw 1914,1912,1910,1908,1906,1904,1902,1900,1898,1896,1894,1893,1891,1889,1887,1885 +dw 1883,1881,1879,1877,1875,1873,1871,1869,1867,1865,1863,1861,1859,1857,1855,1853 +dw 1851,1849,1847,1845,1843,1841,1840,1838,1836,1834,1832,1830,1829,1827,1825,1824 +dw 1822,1820,1819,1817,1815,1814,1812,1811,1809,1808,1806,1805,1804,1802,1801,1800 +dw 1798,1797,1796,1795,1793,1792,1791,1790,1789,1788,1787,1786,1785,1784,1783,1782 +dw 1782,1781,1780,1779,1778,1778,1777,1776,1776,1775,1775,1774,1774,1773,1773,1772 +dw 1772,1771,1771,1771,1770,1770,1770,1770,1769,1769,1769,1769,1769,1768,1768,1768 +dw 1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768 +dw 1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768 +dw 1768,1768,1768,1768,1767,1767,1767,1767,1767,1767,1766,1766,1766,1766,1765,1765 +dw 1765,1764,1764,1764,1763,1763,1762,1762,1761,1761,1760,1759,1759,1758,1757,1757 +dw 1756,1755,1754,1753,1753,1752,1751,1750,1749,1748,1746,1745,1744,1743,1742,1740 +dw 1739,1738,1736,1735,1734,1732,1731,1729,1727,1726,1724,1722,1721,1719,1717,1715 +dw 1713,1712,1710,1708,1706,1704,1702,1700,1698,1695,1693,1691,1689,1687,1684,1682 +dw 1680,1677,1675,1673,1670,1668,1665,1663,1660,1658,1655,1653,1650,1648,1645,1642 +dw 1640,1637,1634,1632,1629,1626,1624,1621,1618,1616,1613,1610,1607,1605,1602,1599 +dw 1597,1594,1591,1588,1586,1583,1580,1577,1575,1572,1569,1567,1564,1561,1559,1556 +dw 1553,1551,1548,1546,1543,1541,1538,1536,1533,1531,1528,1526,1523,1521,1519,1516 +dw 1514,1512,1510,1507,1505,1503,1501,1499,1497,1495,1492,1490,1489,1487,1485,1483 +dw 1481,1479,1477,1476,1474,1472,1471,1469,1467,1466,1464,1463,1461,1460,1458,1457 +dw 1456,1454,1453,1452,1451,1450,1449,1447,1446,1445,1444,1443,1442,1441,1441,1440 +dw 1439,1438,1437,1437,1436,1435,1435,1434,1433,1433,1432,1432,1431,1431,1430,1430 +dw 1429,1429,1428,1428,1428,1427,1427,1427,1426,1426,1426,1425,1425,1425,1425,1424 +dw 1424,1424,1424,1424,1423,1423,1423,1423,1423,1422,1422,1422,1422,1422,1421,1421 +dw 1421,1421,1421,1420,1420,1420,1420,1419,1419,1419,1418,1418,1418,1417,1417,1417 +dw 1416,1416,1415,1415,1414,1414,1413,1413,1412,1412,1411,1410,1410,1409,1408,1408 +dw 1407,1406,1405,1404,1403,1402,1402,1401,1400,1399,1397,1396,1395,1394,1393,1392 +dw 1390,1389,1388,1387,1385,1384,1382,1381,1379,1378,1376,1375,1373,1372,1370,1368 +dw 1366,1365,1363,1361,1359,1357,1356,1354,1352,1350,1348,1346,1344,1342,1340,1337 +dw 1335,1333,1331,1329,1327,1324,1322,1320,1317,1315,1313,1311,1308,1306,1303,1301 +dw 1299,1296,1294,1291,1289,1287,1284,1282,1279,1277,1274,1272,1269,1267,1264,1262 +dw 1259,1257,1254,1252,1250,1247,1245,1242,1240,1237,1235,1233,1230,1228,1226,1223 +dw 1221,1219,1216,1214,1212,1210,1207,1205,1203,1201,1199,1197,1195,1193,1191,1189 +dw 1187,1185,1183,1181,1179,1177,1175,1174,1172,1170,1169,1167,1165,1164,1162,1161 +dw 1159,1158,1156,1155,1154,1152,1151,1150,1148,1147,1146,1145,1144,1143,1142,1141 +dw 1140,1139,1138,1137,1137,1136,1135,1134,1134,1133,1133,1132,1131,1131,1130,1130 +dw 1130,1129,1129,1129,1128,1128,1128,1128,1127,1127,1127,1127,1127,1127,1127,1127 +dw 1127,1127,1127,1127,1127,1127,1127,1127,1128,1128,1128,1128,1128,1129,1129,1129 +dw 1129,1130,1130,1130,1130,1131,1131,1131,1131,1132,1132,1132,1133,1133,1133,1133 +dw 1134,1134,1134,1134,1135,1135,1135,1135,1136,1136,1136,1136,1136,1136,1137,1137 +dw 1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1136,1136,1136,1136,1136 +dw 1135,1135,1135,1134,1134,1133,1133,1133,1132,1132,1131,1130,1130,1129,1128,1128 +dw 1127,1126,1125,1124,1124,1123,1122,1121,1120,1119,1118,1117,1115,1114,1113,1112 +dw 1111,1109,1108,1107,1105,1104,1102,1101,1099,1098,1096,1095,1093,1092,1090,1088 +dw 1087,1085,1083,1081,1080,1078,1076,1074,1072,1070,1068,1067,1065,1063,1061,1059 +dw 1057,1055,1053,1051,1049,1047,1044,1042,1040,1038,1036,1034,1032,1030,1028,1026 +dw 1024,1021,1019,1017,1015,1013,1011,1009,1007,1005,1003,1000, 998, 996, 994, 992 +dw 990, 988, 986, 984, 982, 980, 979, 977, 975, 973, 971, 969, 967, 966, 964, 962 +dw 960, 959, 957, 955, 954, 952, 951, 949, 948, 946, 945, 943, 942, 940, 939, 938 +dw 936, 935, 934, 933, 932, 930, 929, 928, 927, 926, 925, 924, 923, 923, 922, 921 +dw 920, 919, 919, 918, 917, 917, 916, 915, 915, 914, 914, 914, 913, 913, 912, 912 +dw 912, 911, 911, 911, 911, 911, 910, 910, 910, 910, 910, 910, 910, 910, 910, 910 +dw 910, 910, 910, 911, 911, 911, 911, 911, 911, 912, 912, 912, 912, 913, 913, 913 +dw 913, 914, 914, 914, 914, 915, 915, 915, 916, 916, 916, 916, 917, 917, 917, 917 +dw 918, 918, 918, 918, 919, 919, 919, 919, 919, 920, 920, 920, 920, 920, 920, 920 +dw 920, 920, 920, 920, 920, 920, 920, 920, 920, 919, 919, 919, 919, 918, 918, 918 +dw 917, 917, 917, 916, 916, 915, 914, 914, 913, 913, 912, 911, 910, 910, 909, 908 +dw 907, 906, 905, 904, 903, 902, 901, 900, 899, 897, 896, 895, 893, 892, 891, 889 +dw 888, 886, 885, 883, 882, 880, 878, 877, 875, 873, 872, 870, 868, 866, 864, 862 +dw 860, 858, 856, 854, 852, 850, 848, 846, 844, 842, 840, 837, 835, 833, 831, 828 +dw 826, 824, 821, 819, 817, 814, 812, 810, 807, 805, 802, 800, 797, 795, 793, 790 +dw 788, 785, 783, 780, 778, 775, 773, 770, 768, 765, 763, 760, 758, 756, 753, 751 +dw 748, 746, 744, 741, 739, 736, 734, 732, 730, 727, 725, 723, 720, 718, 716, 714 +dw 712, 710, 707, 705, 703, 701, 699, 697, 695, 693, 691, 690, 688, 686, 684, 682 +dw 681, 679, 677, 675, 674, 672, 671, 669, 668, 666, 665, 663, 662, 660, 659, 658 +dw 657, 655, 654, 653, 652, 651, 650, 648, 647, 646, 645, 645, 644, 643, 642, 641 +dw 640, 639, 639, 638, 637, 637, 636, 635, 635, 634, 634, 633, 633, 632, 632, 631 +dw 631, 630, 630, 630, 629, 629, 629, 628, 628, 628, 627, 627, 627, 627, 626, 626 +dw 626, 626, 626, 625, 625, 625, 625, 625, 624, 624, 624, 624, 624, 623, 623, 623 +dw 623, 623, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 619, 619, 619, 618 +dw 618, 617, 617, 616, 616, 615, 615, 614, 614, 613, 612, 612, 611, 610, 610, 609 +dw 608, 607, 606, 606, 605, 604, 603, 602, 601, 600, 598, 597, 596, 595, 594, 593 +dw 591, 590, 589, 587, 586, 584, 583, 581, 580, 578, 576, 575, 573, 571, 570, 568 +dw 566, 564, 562, 560, 558, 557, 555, 552, 550, 548, 546, 544, 542, 540, 537, 535 +dw 533, 531, 528, 526, 524, 521, 519, 516, 514, 511, 509, 506, 504, 501, 499, 496 +dw 494, 491, 488, 486, 483, 480, 478, 475, 472, 470, 467, 464, 461, 459, 456, 453 +dw 450, 448, 445, 442, 440, 437, 434, 431, 429, 426, 423, 421, 418, 415, 413, 410 +dw 407, 405, 402, 399, 397, 394, 392, 389, 387, 384, 382, 379, 377, 374, 372, 370 +dw 367, 365, 363, 360, 358, 356, 354, 352, 349, 347, 345, 343, 341, 339, 337, 335 +dw 334, 332, 330, 328, 326, 325, 323, 321, 320, 318, 316, 315, 313, 312, 311, 309 +dw 308, 307, 305, 304, 303, 302, 301, 299, 298, 297, 296, 295, 294, 294, 293, 292 +dw 291, 290, 290, 289, 288, 288, 287, 286, 286, 285, 285, 284, 284, 283, 283, 283 +dw 282, 282, 282, 281, 281, 281, 281, 280, 280, 280, 280, 280, 280, 279, 279, 279 +dw 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279 +dw 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279 +dw 279, 279, 279, 279, 278, 278, 278, 278, 278, 277, 277, 277, 277, 276, 276, 276 +dw 275, 275, 274, 274, 273, 273, 272, 272, 271, 271, 270, 269, 269, 268, 267, 266 +dw 265, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 252, 251, 250 +dw 249, 247, 246, 245, 243, 242, 241, 239, 238, 236, 235, 233, 232, 230, 228, 227 +dw 225, 223, 222, 220, 218, 217, 215, 213, 211, 209, 207, 206, 204, 202, 200, 198 +dw 196, 194, 192, 190, 188, 186, 184, 182, 180, 178, 176, 174, 172, 170, 168, 166 +dw 164, 162, 160, 158, 156, 154, 153, 151, 149, 147, 145, 143, 141, 139, 137, 135 +dw 133, 132, 130, 128, 126, 124, 123, 121, 119, 117, 116, 114, 113, 111, 109, 108 +dw 106, 105, 103, 102, 101, 99, 98, 96, 95, 94, 93, 92, 90, 89, 88, 87 +dw 86, 85, 84, 83, 82, 82, 81, 80, 79, 79, 78, 77, 77, 76, 76, 75 +dw 75, 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73 +dw 73, 73, 74, 74, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79 +dw 80, 81, 81, 82, 83, 84, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93 +dw 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 110 +dw 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127 +dw 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 137, 138, 139, 140, 141, 142 +dw 142, 143, 144, 144, 145, 146, 146, 147, 147, 148, 148, 149, 149, 150, 150, 151 +dw 151, 151, 152, 152, 152, 152, 152, 153, 153, 153, 153, 153, 153, 153, 153, 153 +dw 153, 152, 152, 152, 152, 152, 151, 151, 151, 150, 150, 150, 149, 149, 148, 148 +dw 147, 147, 146, 145, 145, 144, 144, 143, 142, 141, 141, 140, 139, 138, 138, 137 +dw 136, 135, 134, 134, 133, 132, 131, 130, 129, 128, 127, 126, 126, 125, 124, 123 +dw 122, 121, 120, 119, 118, 117, 116, 115, 115, 114, 113, 112, 111, 110, 109, 108 +dw 108, 107, 106, 105, 104, 104, 103, 102, 102, 101, 100, 100, 99, 98, 98, 97 +dw 97, 96, 96, 95, 95, 94, 94, 94, 93, 93, 93, 93, 93, 92, 92, 92 +dw 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 94, 94, 95, 95 +dw 95, 96, 97, 97, 98, 98, 99, 100, 101, 101, 102, 103, 104, 105, 106, 107 +dw 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 120, 121, 122, 124, 125, 126 +dw 128, 129, 131, 132, 134, 136, 137, 139, 140, 142, 144, 145, 147, 149, 151, 152 +dw 154, 156, 158, 159, 161, 163, 165, 167, 168, 170, 172, 174, 176, 178, 179, 181 +dw 183, 185, 187, 189, 190, 192, 194, 196, 198, 199, 201, 203, 205, 206, 208, 210 +dw 211, 213, 215, 216, 218, 220, 221, 223, 224, 226, 227, 229, 230, 232, 233, 235 +dw 236, 237, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253 +dw 254, 255, 256, 257, 257, 258, 259, 259, 260, 261, 261, 262, 262, 263, 263, 264 +dw 264, 264, 265, 265, 265, 265, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266 +dw 266, 266, 266, 266, 265, 265, 265, 265, 264, 264, 264, 263, 263, 262, 262, 262 +dw 261, 261, 260, 260, 259, 259, 258, 257, 257, 256, 256, 255, 254, 254, 253, 252 +dw 252, 251, 250, 250, 249, 249, 248, 247, 247, 246, 245, 245, 244, 243, 243, 242 +dw 241, 241, 240, 240, 239, 238, 238, 237, 237, 236, 236, 235, 235, 234, 234, 234 +dw 233, 233, 232, 232, 232, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230 +dw 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 232, 232, 232, 233, 233, 234 +dw 234, 235, 235, 236, 236, 237, 238, 238, 239, 240, 241, 242, 242, 243, 244, 245 +dw 246, 247, 248, 249, 250, 251, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264 +dw 266, 267, 268, 270, 271, 273, 274, 276, 277, 279, 281, 282, 284, 285, 287, 289 +dw 290, 292, 294, 295, 297, 299, 300, 302, 304, 306, 307, 309, 311, 312, 314, 316 +dw 318, 319, 321, 323, 324, 326, 328, 329, 331, 333, 334, 336, 338, 339, 341, 342 +dw 344, 345, 347, 349, 350, 351, 353, 354, 356, 357, 359, 360, 361, 362, 364, 365 +dw 366, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 379, 380, 381 +dw 382, 382, 383, 384, 384, 385, 386, 386, 387, 387, 387, 388, 388, 388, 389, 389 +dw 389, 389, 389, 390, 390, 390, 390, 390, 390, 390, 390, 389, 389, 389, 389, 389 +dw 388, 388, 388, 387, 387, 386, 386, 386, 385, 385, 384, 384, 383, 382, 382, 381 +dw 380, 380, 379, 378, 378, 377, 376, 375, 375, 374, 373, 372, 371, 371, 370, 369 +dw 368, 367, 366, 366, 365, 364, 363, 362, 361, 360, 360, 359, 358, 357, 356, 355 +dw 355, 354, 353, 352, 352, 351, 350, 349, 349, 348, 347, 346, 346, 345, 345, 344 +dw 343, 343, 342, 342, 341, 341, 340, 340, 340, 339, 339, 339, 338, 338, 338, 338 +dw 338, 337, 337, 337, 337, 337, 337, 337, 337, 337, 338, 338, 338, 338, 338, 339 +dw 339, 340, 340, 340, 341, 341, 342, 342, 343, 344, 344, 345, 346, 347, 347, 348 +dw 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 360, 361, 362, 363, 365, 366 +dw 367, 369, 370, 371, 373, 374, 376, 377, 379, 380, 382, 383, 385, 387, 388, 390 +dw 392, 393, 395, 397, 398, 400, 402, 403, 405, 407, 409, 410, 412, 414, 416, 418 +dw 419, 421, 423, 425, 426, 428, 430, 432, 433, 435, 437, 439, 440, 442, 444, 445 +dw 447, 449, 450, 452, 454, 455, 457, 458, 460, 462, 463, 465, 466, 467, 469, 470 +dw 472, 473, 474, 476, 477, 478, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490 +dw 491, 492, 493, 493, 494, 495, 496, 497, 497, 498, 499, 499, 500, 501, 501, 502 +dw 502, 503, 503, 504, 504, 504, 505, 505, 505, 506, 506, 506, 506, 506, 506, 507 +dw 507, 507, 507, 507, 507, 507, 506, 506, 506, 506, 506, 506, 506, 505, 505, 505 +dw 505, 504, 504, 504, 504, 503, 503, 503, 502, 502, 501, 501, 501, 500, 500, 499 +dw 499, 499, 498, 498, 497, 497, 497, 496, 496, 495, 495, 495, 494, 494, 494, 493 +dw 493, 493, 492, 492, 492, 491, 491, 491, 491, 491, 490, 490, 490, 490, 490, 490 +dw 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 491, 491, 491, 491, 492, 492 +dw 492, 493, 493, 494, 494, 495, 496, 496, 497, 498, 498, 499, 500, 501, 502, 502 +dw 503, 504, 505, 506, 508, 509, 510, 511, 512, 514, 515, 516, 518, 519, 521, 522 +dw 524, 525, 527, 528, 530, 532, 533, 535, 537, 539, 541, 543, 545, 546, 548, 550 +dw 553, 555, 557, 559, 561, 563, 565, 567, 570, 572, 574, 577, 579, 581, 584, 586 +dw 588, 591, 593, 596, 598, 601, 603, 606, 608, 611, 613, 616, 618, 621, 623, 626 +dw 628, 631, 633, 636, 639, 641, 644, 646, 649, 651, 654, 656, 659, 662, 664, 667 +dw 669, 672, 674, 677, 679, 681, 684, 686, 689, 691, 693, 696, 698, 700, 703, 705 +dw 707, 709, 712, 714, 716, 718, 720, 722, 724, 727, 729, 731, 732, 734, 736, 738 +dw 740, 742, 744, 745, 747, 749, 751, 752, 754, 756, 757, 759, 760, 762, 763, 764 +dw 766, 767, 769, 770, 771, 772, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783 +dw 784, 785, 786, 787, 788, 789, 790, 790, 791, 792, 793, 793, 794, 795, 795, 796 +dw 796, 797, 798, 798, 799, 799, 800, 800, 801, 801, 802, 802, 803, 803, 804, 804 +dw 805, 805, 805, 806, 806, 807, 807, 808, 808, 809, 809, 809, 810, 810, 811, 811 +dw 812, 812, 813, 813, 814, 814, 815, 815, 816, 817, 817, 818, 819, 819, 820, 821 +dw 821, 822, 823, 824, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835 +dw 836, 837, 839, 840, 841, 842, 844, 845, 847, 848, 849, 851, 852, 854, 856, 857 +dw 859, 861, 862, 864, 866, 868, 870, 871, 873, 875, 877, 879, 881, 883, 886, 888 +dw 890, 892, 894, 897, 899, 901, 904, 906, 909, 911, 914, 916, 919, 921, 924, 926 +dw 929, 932, 935, 937, 940, 943, 946, 948, 951, 954, 957, 960, 963, 966, 969, 972 +dw 975, 978, 981, 984, 987, 990, 993, 996, 999,1002,1005,1008,1011,1014,1017,1020 \ No newline at end of file diff --git a/u2/LSINI4.INC b/u2/LSINI4.INC new file mode 100755 index 0000000..4fb739a --- /dev/null +++ b/u2/LSINI4.INC @@ -0,0 +1,513 @@ + +dw 512, 513, 515, 516, 518, 519, 521, 522, 524, 525, 527, 528, 530, 531, 533, 534 +dw 536, 537, 539, 540, 542, 543, 545, 546, 548, 549, 551, 552, 554, 555, 557, 558 +dw 559, 561, 562, 564, 565, 566, 568, 569, 571, 572, 573, 575, 576, 577, 579, 580 +dw 581, 582, 584, 585, 586, 588, 589, 590, 591, 592, 594, 595, 596, 597, 598, 600 +dw 601, 602, 603, 604, 605, 606, 607, 608, 610, 611, 612, 613, 614, 615, 616, 617 +dw 618, 619, 620, 621, 621, 622, 623, 624, 625, 626, 627, 628, 629, 629, 630, 631 +dw 632, 633, 633, 634, 635, 636, 637, 637, 638, 639, 640, 640, 641, 642, 642, 643 +dw 644, 644, 645, 646, 646, 647, 648, 648, 649, 650, 650, 651, 651, 652, 653, 653 +dw 654, 654, 655, 655, 656, 656, 657, 658, 658, 659, 659, 660, 660, 661, 661, 662 +dw 662, 663, 663, 664, 664, 665, 665, 666, 666, 667, 667, 668, 668, 669, 669, 670 +dw 670, 671, 671, 672, 672, 673, 673, 674, 675, 675, 676, 676, 677, 677, 678, 678 +dw 679, 679, 680, 680, 681, 681, 682, 682, 683, 684, 684, 685, 685, 686, 686, 687 +dw 688, 688, 689, 689, 690, 691, 691, 692, 692, 693, 694, 694, 695, 696, 696, 697 +dw 698, 698, 699, 700, 700, 701, 702, 702, 703, 704, 704, 705, 706, 706, 707, 708 +dw 709, 709, 710, 711, 711, 712, 713, 714, 714, 715, 716, 717, 717, 718, 719, 720 +dw 721, 721, 722, 723, 724, 724, 725, 726, 727, 727, 728, 729, 730, 731, 731, 732 +dw 733, 734, 734, 735, 736, 737, 738, 738, 739, 740, 741, 741, 742, 743, 744, 744 +dw 745, 746, 747, 747, 748, 749, 749, 750, 751, 752, 752, 753, 754, 754, 755, 756 +dw 756, 757, 758, 758, 759, 760, 760, 761, 762, 762, 763, 763, 764, 764, 765, 766 +dw 766, 767, 767, 768, 768, 769, 769, 770, 770, 771, 771, 772, 772, 772, 773, 773 +dw 774, 774, 774, 775, 775, 775, 776, 776, 776, 777, 777, 777, 778, 778, 778, 778 +dw 778, 779, 779, 779, 779, 779, 780, 780, 780, 780, 780, 780, 780, 780, 780, 781 +dw 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 780, 780, 780, 780, 780 +dw 780, 780, 780, 780, 780, 779, 779, 779, 779, 779, 779, 778, 778, 778, 778, 778 +dw 777, 777, 777, 777, 776, 776, 776, 776, 775, 775, 775, 775, 774, 774, 774, 773 +dw 773, 773, 772, 772, 772, 772, 771, 771, 771, 770, 770, 770, 769, 769, 769, 768 +dw 768, 768, 767, 767, 767, 767, 766, 766, 766, 765, 765, 765, 764, 764, 764, 764 +dw 763, 763, 763, 763, 762, 762, 762, 762, 761, 761, 761, 761, 760, 760, 760, 760 +dw 760, 760, 759, 759, 759, 759, 759, 759, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 759, 759, 759, 759, 759, 759, 760, 760, 760, 760, 760, 761 +dw 761, 761, 761, 762, 762, 762, 763, 763, 763, 764, 764, 764, 765, 765, 765, 766 +dw 766, 766, 767, 767, 768, 768, 769, 769, 769, 770, 770, 771, 771, 772, 772, 773 +dw 773, 774, 774, 775, 775, 776, 776, 777, 777, 778, 778, 779, 780, 780, 781, 781 +dw 782, 782, 783, 784, 784, 785, 785, 786, 786, 787, 788, 788, 789, 789, 790, 791 +dw 791, 792, 792, 793, 794, 794, 795, 795, 796, 796, 797, 798, 798, 799, 799, 800 +dw 801, 801, 802, 802, 803, 803, 804, 804, 805, 806, 806, 807, 807, 808, 808, 809 +dw 809, 810, 810, 811, 811, 812, 812, 813, 813, 814, 814, 815, 815, 815, 816, 816 +dw 817, 817, 818, 818, 818, 819, 819, 820, 820, 820, 821, 821, 822, 822, 822, 823 +dw 823, 823, 824, 824, 824, 825, 825, 825, 826, 826, 826, 826, 827, 827, 827, 828 +dw 828, 828, 828, 829, 829, 829, 829, 830, 830, 830, 830, 831, 831, 831, 831, 831 +dw 832, 832, 832, 832, 833, 833, 833, 833, 833, 834, 834, 834, 834, 834, 835, 835 +dw 835, 835, 835, 836, 836, 836, 836, 836, 837, 837, 837, 837, 837, 838, 838, 838 +dw 838, 839, 839, 839, 839, 840, 840, 840, 840, 841, 841, 841, 841, 842, 842, 842 +dw 843, 843, 843, 843, 844, 844, 844, 845, 845, 846, 846, 846, 847, 847, 847, 848 +dw 848, 849, 849, 850, 850, 850, 851, 851, 852, 852, 853, 853, 854, 854, 855, 856 +dw 856, 857, 857, 858, 858, 859, 860, 860, 861, 861, 862, 863, 863, 864, 865, 866 +dw 866, 867, 868, 868, 869, 870, 871, 871, 872, 873, 874, 875, 875, 876, 877, 878 +dw 879, 880, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 890, 891, 892 +dw 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 909 +dw 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925 +dw 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942 +dw 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 958 +dw 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 969, 970, 971, 972, 973 +dw 974, 974, 975, 976, 977, 978, 978, 979, 980, 981, 981, 982, 983, 983, 984, 985 +dw 985, 986, 987, 987, 988, 988, 989, 990, 990, 991, 991, 992, 992, 993, 993, 994 +dw 994, 995, 995, 996, 996, 996, 997, 997, 998, 998, 998, 999, 999, 999,1000,1000 +dw 1000,1001,1001,1001,1001,1002,1002,1002,1002,1003,1003,1003,1003,1003,1003,1004 +dw 1004,1004,1004,1004,1004,1004,1004,1004,1004,1005,1005,1005,1005,1005,1005,1005 +dw 1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1004,1004,1004 +dw 1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1003,1003,1003,1003,1003,1003 +dw 1003,1003,1003,1003,1002,1002,1002,1002,1002,1002,1002,1002,1002,1001,1001,1001 +dw 1001,1001,1001,1001,1001,1001,1001,1001,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1001,1001,1001,1001,1001,1001,1001 +dw 1001,1001,1001,1001,1002,1002,1002,1002,1002,1002,1002,1002,1002,1003,1003,1003 +dw 1003,1003,1003,1003,1003,1003,1003,1004,1004,1004,1004,1004,1004,1004,1004,1004 +dw 1004,1004,1004,1004,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005 +dw 1005,1005,1005,1005,1005,1005,1005,1005,1004,1004,1004,1004,1004,1004,1004,1004 +dw 1004,1004,1003,1003,1003,1003,1003,1003,1002,1002,1002,1002,1001,1001,1001,1001 +dw 1000,1000,1000, 999, 999, 999, 998, 998, 998, 997, 997, 996, 996, 996, 995, 995 +dw 994, 994, 993, 993, 992, 992, 991, 991, 990, 990, 989, 988, 988, 987, 987, 986 +dw 985, 985, 984, 983, 983, 982, 981, 981, 980, 979, 978, 978, 977, 976, 975, 974 +dw 974, 973, 972, 971, 970, 969, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960 +dw 959, 958, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945 +dw 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928 +dw 927, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911 +dw 910, 909, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894 +dw 893, 892, 891, 890, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 880 +dw 879, 878, 877, 876, 875, 875, 874, 873, 872, 871, 871, 870, 869, 868, 868, 867 +dw 866, 866, 865, 864, 863, 863, 862, 861, 861, 860, 860, 859, 858, 858, 857, 857 +dw 856, 856, 855, 854, 854, 853, 853, 852, 852, 851, 851, 850, 850, 850, 849, 849 +dw 848, 848, 847, 847, 847, 846, 846, 846, 845, 845, 844, 844, 844, 843, 843, 843 +dw 843, 842, 842, 842, 841, 841, 841, 841, 840, 840, 840, 840, 839, 839, 839, 839 +dw 838, 838, 838, 838, 837, 837, 837, 837, 837, 836, 836, 836, 836, 836, 835, 835 +dw 835, 835, 835, 834, 834, 834, 834, 834, 833, 833, 833, 833, 833, 832, 832, 832 +dw 832, 831, 831, 831, 831, 831, 830, 830, 830, 830, 829, 829, 829, 829, 828, 828 +dw 828, 828, 827, 827, 827, 826, 826, 826, 826, 825, 825, 825, 824, 824, 824, 823 +dw 823, 823, 822, 822, 822, 821, 821, 820, 820, 820, 819, 819, 818, 818, 818, 817 +dw 817, 816, 816, 815, 815, 815, 814, 814, 813, 813, 812, 812, 811, 811, 810, 810 +dw 809, 809, 808, 808, 807, 807, 806, 806, 805, 804, 804, 803, 803, 802, 802, 801 +dw 801, 800, 799, 799, 798, 798, 797, 796, 796, 795, 795, 794, 794, 793, 792, 792 +dw 791, 791, 790, 789, 789, 788, 788, 787, 786, 786, 785, 785, 784, 784, 783, 782 +dw 782, 781, 781, 780, 780, 779, 778, 778, 777, 777, 776, 776, 775, 775, 774, 774 +dw 773, 773, 772, 772, 771, 771, 770, 770, 769, 769, 769, 768, 768, 767, 767, 766 +dw 766, 766, 765, 765, 765, 764, 764, 764, 763, 763, 763, 762, 762, 762, 761, 761 +dw 761, 761, 760, 760, 760, 760, 760, 759, 759, 759, 759, 759, 759, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 759, 759, 759, 759, 759, 760 +dw 760, 760, 760, 760, 760, 761, 761, 761, 761, 762, 762, 762, 762, 763, 763, 763 +dw 763, 764, 764, 764, 764, 765, 765, 765, 766, 766, 766, 767, 767, 767, 767, 768 +dw 768, 768, 769, 769, 769, 770, 770, 770, 771, 771, 771, 772, 772, 772, 772, 773 +dw 773, 773, 774, 774, 774, 775, 775, 775, 775, 776, 776, 776, 776, 777, 777, 777 +dw 777, 778, 778, 778, 778, 778, 779, 779, 779, 779, 779, 779, 780, 780, 780, 780 +dw 780, 780, 780, 780, 780, 780, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781 +dw 781, 781, 780, 780, 780, 780, 780, 780, 780, 780, 780, 779, 779, 779, 779, 779 +dw 778, 778, 778, 778, 778, 777, 777, 777, 776, 776, 776, 775, 775, 775, 774, 774 +dw 774, 773, 773, 772, 772, 772, 771, 771, 770, 770, 769, 769, 768, 768, 767, 767 +dw 766, 766, 765, 764, 764, 763, 763, 762, 762, 761, 760, 760, 759, 758, 758, 757 +dw 756, 756, 755, 754, 754, 753, 752, 752, 751, 750, 749, 749, 748, 747, 747, 746 +dw 745, 744, 744, 743, 742, 741, 741, 740, 739, 738, 738, 737, 736, 735, 734, 734 +dw 733, 732, 731, 731, 730, 729, 728, 727, 727, 726, 725, 724, 724, 723, 722, 721 +dw 721, 720, 719, 718, 717, 717, 716, 715, 714, 714, 713, 712, 711, 711, 710, 709 +dw 709, 708, 707, 706, 706, 705, 704, 704, 703, 702, 702, 701, 700, 700, 699, 698 +dw 698, 697, 696, 696, 695, 694, 694, 693, 692, 692, 691, 691, 690, 689, 689, 688 +dw 688, 687, 686, 686, 685, 685, 684, 684, 683, 682, 682, 681, 681, 680, 680, 679 +dw 679, 678, 678, 677, 677, 676, 676, 675, 675, 674, 673, 673, 672, 672, 671, 671 +dw 670, 670, 669, 669, 668, 668, 667, 667, 666, 666, 665, 665, 664, 664, 663, 663 +dw 662, 662, 661, 661, 660, 660, 659, 659, 658, 658, 657, 656, 656, 655, 655, 654 +dw 654, 653, 653, 652, 651, 651, 650, 650, 649, 648, 648, 647, 646, 646, 645, 644 +dw 644, 643, 642, 642, 641, 640, 640, 639, 638, 637, 637, 636, 635, 634, 633, 633 +dw 632, 631, 630, 629, 629, 628, 627, 626, 625, 624, 623, 622, 621, 621, 620, 619 +dw 618, 617, 616, 615, 614, 613, 612, 611, 610, 608, 607, 606, 605, 604, 603, 602 +dw 601, 600, 598, 597, 596, 595, 594, 592, 591, 590, 589, 588, 586, 585, 584, 582 +dw 581, 580, 579, 577, 576, 575, 573, 572, 571, 569, 568, 566, 565, 564, 562, 561 +dw 559, 558, 557, 555, 554, 552, 551, 549, 548, 546, 545, 543, 542, 540, 539, 537 +dw 536, 534, 533, 531, 530, 528, 527, 525, 524, 522, 521, 519, 518, 516, 515, 513 +dw 512, 510, 508, 507, 505, 504, 502, 501, 499, 498, 496, 495, 493, 492, 490, 489 +dw 487, 486, 484, 483, 481, 480, 478, 477, 475, 474, 472, 471, 469, 468, 466, 465 +dw 464, 462, 461, 459, 458, 457, 455, 454, 452, 451, 450, 448, 447, 446, 444, 443 +dw 442, 441, 439, 438, 437, 435, 434, 433, 432, 431, 429, 428, 427, 426, 425, 423 +dw 422, 421, 420, 419, 418, 417, 416, 415, 413, 412, 411, 410, 409, 408, 407, 406 +dw 405, 404, 403, 402, 402, 401, 400, 399, 398, 397, 396, 395, 394, 394, 393, 392 +dw 391, 390, 390, 389, 388, 387, 386, 386, 385, 384, 383, 383, 382, 381, 381, 380 +dw 379, 379, 378, 377, 377, 376, 375, 375, 374, 373, 373, 372, 372, 371, 370, 370 +dw 369, 369, 368, 368, 367, 367, 366, 365, 365, 364, 364, 363, 363, 362, 362, 361 +dw 361, 360, 360, 359, 359, 358, 358, 357, 357, 356, 356, 355, 355, 354, 354, 353 +dw 353, 352, 352, 351, 351, 350, 350, 349, 348, 348, 347, 347, 346, 346, 345, 345 +dw 344, 344, 343, 343, 342, 342, 341, 341, 340, 339, 339, 338, 338, 337, 337, 336 +dw 335, 335, 334, 334, 333, 332, 332, 331, 331, 330, 329, 329, 328, 327, 327, 326 +dw 325, 325, 324, 323, 323, 322, 321, 321, 320, 319, 319, 318, 317, 317, 316, 315 +dw 314, 314, 313, 312, 312, 311, 310, 309, 309, 308, 307, 306, 306, 305, 304, 303 +dw 302, 302, 301, 300, 299, 299, 298, 297, 296, 296, 295, 294, 293, 292, 292, 291 +dw 290, 289, 289, 288, 287, 286, 285, 285, 284, 283, 282, 282, 281, 280, 279, 279 +dw 278, 277, 276, 276, 275, 274, 274, 273, 272, 271, 271, 270, 269, 269, 268, 267 +dw 267, 266, 265, 265, 264, 263, 263, 262, 261, 261, 260, 260, 259, 259, 258, 257 +dw 257, 256, 256, 255, 255, 254, 254, 253, 253, 252, 252, 251, 251, 251, 250, 250 +dw 249, 249, 249, 248, 248, 248, 247, 247, 247, 246, 246, 246, 245, 245, 245, 245 +dw 245, 244, 244, 244, 244, 244, 243, 243, 243, 243, 243, 243, 243, 243, 243, 242 +dw 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243 +dw 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245 +dw 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 248, 248, 249, 249, 249, 250 +dw 250, 250, 251, 251, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255 +dw 255, 255, 256, 256, 256, 256, 257, 257, 257, 258, 258, 258, 259, 259, 259, 259 +dw 260, 260, 260, 260, 261, 261, 261, 261, 262, 262, 262, 262, 263, 263, 263, 263 +dw 263, 263, 264, 264, 264, 264, 264, 264, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 264, 264, 264, 264, 264, 264, 263, 263, 263, 263, 263, 262 +dw 262, 262, 262, 261, 261, 261, 260, 260, 260, 259, 259, 259, 258, 258, 258, 257 +dw 257, 257, 256, 256, 255, 255, 254, 254, 254, 253, 253, 252, 252, 251, 251, 250 +dw 250, 249, 249, 248, 248, 247, 247, 246, 246, 245, 245, 244, 243, 243, 242, 242 +dw 241, 241, 240, 239, 239, 238, 238, 237, 237, 236, 235, 235, 234, 234, 233, 232 +dw 232, 231, 231, 230, 229, 229, 228, 228, 227, 227, 226, 225, 225, 224, 224, 223 +dw 222, 222, 221, 221, 220, 220, 219, 219, 218, 217, 217, 216, 216, 215, 215, 214 +dw 214, 213, 213, 212, 212, 211, 211, 210, 210, 209, 209, 208, 208, 208, 207, 207 +dw 206, 206, 205, 205, 205, 204, 204, 203, 203, 203, 202, 202, 201, 201, 201, 200 +dw 200, 200, 199, 199, 199, 198, 198, 198, 197, 197, 197, 197, 196, 196, 196, 195 +dw 195, 195, 195, 194, 194, 194, 194, 193, 193, 193, 193, 192, 192, 192, 192, 192 +dw 191, 191, 191, 191, 190, 190, 190, 190, 190, 189, 189, 189, 189, 189, 188, 188 +dw 188, 188, 188, 187, 187, 187, 187, 187, 186, 186, 186, 186, 186, 185, 185, 185 +dw 185, 184, 184, 184, 184, 183, 183, 183, 183, 182, 182, 182, 182, 181, 181, 181 +dw 180, 180, 180, 180, 179, 179, 179, 178, 178, 177, 177, 177, 176, 176, 176, 175 +dw 175, 174, 174, 173, 173, 173, 172, 172, 171, 171, 170, 170, 169, 169, 168, 167 +dw 167, 166, 166, 165, 165, 164, 163, 163, 162, 162, 161, 160, 160, 159, 158, 157 +dw 157, 156, 155, 155, 154, 153, 152, 152, 151, 150, 149, 148, 148, 147, 146, 145 +dw 144, 143, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 133, 132, 131 +dw 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 114 +dw 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98 +dw 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81 +dw 80, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 65 +dw 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 54, 53, 52, 51, 50 +dw 49, 49, 48, 47, 46, 45, 45, 44, 43, 42, 42, 41, 40, 40, 39, 38 +dw 38, 37, 36, 36, 35, 35, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29 +dw 29, 28, 28, 27, 27, 27, 26, 26, 25, 25, 25, 24, 24, 24, 23, 23 +dw 23, 22, 22, 22, 22, 21, 21, 21, 21, 20, 20, 20, 20, 20, 20, 19 +dw 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18 +dw 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19 +dw 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20 +dw 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22 +dw 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22 +dw 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 20 +dw 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19, 19, 19, 19, 19 +dw 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +dw 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19 +dw 19, 19, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22 +dw 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 27, 27, 27, 28, 28 +dw 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 37 +dw 38, 38, 39, 40, 40, 41, 42, 42, 43, 44, 45, 45, 46, 47, 48, 49 +dw 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 +dw 64, 65, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 +dw 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 +dw 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112 +dw 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 +dw 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 143 +dw 144, 145, 146, 147, 148, 148, 149, 150, 151, 152, 152, 153, 154, 155, 155, 156 +dw 157, 157, 158, 159, 160, 160, 161, 162, 162, 163, 163, 164, 165, 165, 166, 166 +dw 167, 167, 168, 169, 169, 170, 170, 171, 171, 172, 172, 173, 173, 173, 174, 174 +dw 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 179, 179, 179, 180, 180, 180 +dw 180, 181, 181, 181, 182, 182, 182, 182, 183, 183, 183, 183, 184, 184, 184, 184 +dw 185, 185, 185, 185, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 188, 188 +dw 188, 188, 188, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 191, 191, 191 +dw 191, 192, 192, 192, 192, 192, 193, 193, 193, 193, 194, 194, 194, 194, 195, 195 +dw 195, 195, 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, 199, 199, 199, 200 +dw 200, 200, 201, 201, 201, 202, 202, 203, 203, 203, 204, 204, 205, 205, 205, 206 +dw 206, 207, 207, 208, 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213 +dw 214, 214, 215, 215, 216, 216, 217, 217, 218, 219, 219, 220, 220, 221, 221, 222 +dw 222, 223, 224, 224, 225, 225, 226, 227, 227, 228, 228, 229, 229, 230, 231, 231 +dw 232, 232, 233, 234, 234, 235, 235, 236, 237, 237, 238, 238, 239, 239, 240, 241 +dw 241, 242, 242, 243, 243, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249 +dw 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 254, 255, 255, 256, 256, 257 +dw 257, 257, 258, 258, 258, 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262 +dw 262, 262, 263, 263, 263, 263, 263, 264, 264, 264, 264, 264, 264, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 264, 264, 264, 264, 264, 264, 263 +dw 263, 263, 263, 263, 263, 262, 262, 262, 262, 261, 261, 261, 261, 260, 260, 260 +dw 260, 259, 259, 259, 259, 258, 258, 258, 257, 257, 257, 256, 256, 256, 256, 255 +dw 255, 255, 254, 254, 254, 253, 253, 253, 252, 252, 252, 251, 251, 251, 251, 250 +dw 250, 250, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 247, 246, 246, 246 +dw 246, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 243, 243, 243, 243 +dw 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242 +dw 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244 +dw 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249 +dw 249, 250, 250, 251, 251, 251, 252, 252, 253, 253, 254, 254, 255, 255, 256, 256 +dw 257, 257, 258, 259, 259, 260, 260, 261, 261, 262, 263, 263, 264, 265, 265, 266 +dw 267, 267, 268, 269, 269, 270, 271, 271, 272, 273, 274, 274, 275, 276, 276, 277 +dw 278, 279, 279, 280, 281, 282, 282, 283, 284, 285, 285, 286, 287, 288, 289, 289 +dw 290, 291, 292, 292, 293, 294, 295, 296, 296, 297, 298, 299, 299, 300, 301, 302 +dw 302, 303, 304, 305, 306, 306, 307, 308, 309, 309, 310, 311, 312, 312, 313, 314 +dw 314, 315, 316, 317, 317, 318, 319, 319, 320, 321, 321, 322, 323, 323, 324, 325 +dw 325, 326, 327, 327, 328, 329, 329, 330, 331, 331, 332, 332, 333, 334, 334, 335 +dw 335, 336, 337, 337, 338, 338, 339, 339, 340, 341, 341, 342, 342, 343, 343, 344 +dw 344, 345, 345, 346, 346, 347, 347, 348, 348, 349, 350, 350, 351, 351, 352, 352 +dw 353, 353, 354, 354, 355, 355, 356, 356, 357, 357, 358, 358, 359, 359, 360, 360 +dw 361, 361, 362, 362, 363, 363, 364, 364, 365, 365, 366, 367, 367, 368, 368, 369 +dw 369, 370, 370, 371, 372, 372, 373, 373, 374, 375, 375, 376, 377, 377, 378, 379 +dw 379, 380, 381, 381, 382, 383, 383, 384, 385, 386, 386, 387, 388, 389, 390, 390 +dw 391, 392, 393, 394, 394, 395, 396, 397, 398, 399, 400, 401, 402, 402, 403, 404 +dw 405, 406, 407, 408, 409, 410, 411, 412, 413, 415, 416, 417, 418, 419, 420, 421 +dw 422, 423, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 437, 438, 439, 441 +dw 442, 443, 444, 446, 447, 448, 450, 451, 452, 454, 455, 457, 458, 459, 461, 462 +dw 464, 465, 466, 468, 469, 471, 472, 474, 475, 477, 478, 480, 481, 483, 484, 486 +dw 487, 489, 490, 492, 493, 495, 496, 498, 499, 501, 502, 504, 505, 507, 508, 510 +dw 511, 513, 515, 516, 518, 519, 521, 522, 524, 525, 527, 528, 530, 531, 533, 534 +dw 536, 537, 539, 540, 542, 543, 545, 546, 548, 549, 551, 552, 554, 555, 557, 558 +dw 559, 561, 562, 564, 565, 566, 568, 569, 571, 572, 573, 575, 576, 577, 579, 580 +dw 581, 582, 584, 585, 586, 588, 589, 590, 591, 592, 594, 595, 596, 597, 598, 600 +dw 601, 602, 603, 604, 605, 606, 607, 608, 610, 611, 612, 613, 614, 615, 616, 617 +dw 618, 619, 620, 621, 621, 622, 623, 624, 625, 626, 627, 628, 629, 629, 630, 631 +dw 632, 633, 633, 634, 635, 636, 637, 637, 638, 639, 640, 640, 641, 642, 642, 643 +dw 644, 644, 645, 646, 646, 647, 648, 648, 649, 650, 650, 651, 651, 652, 653, 653 +dw 654, 654, 655, 655, 656, 656, 657, 658, 658, 659, 659, 660, 660, 661, 661, 662 +dw 662, 663, 663, 664, 664, 665, 665, 666, 666, 667, 667, 668, 668, 669, 669, 670 +dw 670, 671, 671, 672, 672, 673, 673, 674, 675, 675, 676, 676, 677, 677, 678, 678 +dw 679, 679, 680, 680, 681, 681, 682, 682, 683, 684, 684, 685, 685, 686, 686, 687 +dw 688, 688, 689, 689, 690, 691, 691, 692, 692, 693, 694, 694, 695, 696, 696, 697 +dw 698, 698, 699, 700, 700, 701, 702, 702, 703, 704, 704, 705, 706, 706, 707, 708 +dw 709, 709, 710, 711, 711, 712, 713, 714, 714, 715, 716, 717, 717, 718, 719, 720 +dw 721, 721, 722, 723, 724, 724, 725, 726, 727, 727, 728, 729, 730, 731, 731, 732 +dw 733, 734, 734, 735, 736, 737, 738, 738, 739, 740, 741, 741, 742, 743, 744, 744 +dw 745, 746, 747, 747, 748, 749, 749, 750, 751, 752, 752, 753, 754, 754, 755, 756 +dw 756, 757, 758, 758, 759, 760, 760, 761, 762, 762, 763, 763, 764, 764, 765, 766 +dw 766, 767, 767, 768, 768, 769, 769, 770, 770, 771, 771, 772, 772, 772, 773, 773 +dw 774, 774, 774, 775, 775, 775, 776, 776, 776, 777, 777, 777, 778, 778, 778, 778 +dw 778, 779, 779, 779, 779, 779, 780, 780, 780, 780, 780, 780, 780, 780, 780, 781 +dw 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 780, 780, 780, 780, 780 +dw 780, 780, 780, 780, 780, 779, 779, 779, 779, 779, 779, 778, 778, 778, 778, 778 +dw 777, 777, 777, 777, 776, 776, 776, 776, 775, 775, 775, 775, 774, 774, 774, 773 +dw 773, 773, 772, 772, 772, 772, 771, 771, 771, 770, 770, 770, 769, 769, 769, 768 +dw 768, 768, 767, 767, 767, 767, 766, 766, 766, 765, 765, 765, 764, 764, 764, 764 +dw 763, 763, 763, 763, 762, 762, 762, 762, 761, 761, 761, 761, 760, 760, 760, 760 +dw 760, 760, 759, 759, 759, 759, 759, 759, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 759, 759, 759, 759, 759, 759, 760, 760, 760, 760, 760, 761 +dw 761, 761, 761, 762, 762, 762, 763, 763, 763, 764, 764, 764, 765, 765, 765, 766 +dw 766, 766, 767, 767, 768, 768, 769, 769, 769, 770, 770, 771, 771, 772, 772, 773 +dw 773, 774, 774, 775, 775, 776, 776, 777, 777, 778, 778, 779, 780, 780, 781, 781 +dw 782, 782, 783, 784, 784, 785, 785, 786, 786, 787, 788, 788, 789, 789, 790, 791 +dw 791, 792, 792, 793, 794, 794, 795, 795, 796, 796, 797, 798, 798, 799, 799, 800 +dw 801, 801, 802, 802, 803, 803, 804, 804, 805, 806, 806, 807, 807, 808, 808, 809 +dw 809, 810, 810, 811, 811, 812, 812, 813, 813, 814, 814, 815, 815, 815, 816, 816 +dw 817, 817, 818, 818, 818, 819, 819, 820, 820, 820, 821, 821, 822, 822, 822, 823 +dw 823, 823, 824, 824, 824, 825, 825, 825, 826, 826, 826, 826, 827, 827, 827, 828 +dw 828, 828, 828, 829, 829, 829, 829, 830, 830, 830, 830, 831, 831, 831, 831, 831 +dw 832, 832, 832, 832, 833, 833, 833, 833, 833, 834, 834, 834, 834, 834, 835, 835 +dw 835, 835, 835, 836, 836, 836, 836, 836, 837, 837, 837, 837, 837, 838, 838, 838 +dw 838, 839, 839, 839, 839, 840, 840, 840, 840, 841, 841, 841, 841, 842, 842, 842 +dw 843, 843, 843, 843, 844, 844, 844, 845, 845, 846, 846, 846, 847, 847, 847, 848 +dw 848, 849, 849, 850, 850, 850, 851, 851, 852, 852, 853, 853, 854, 854, 855, 856 +dw 856, 857, 857, 858, 858, 859, 860, 860, 861, 861, 862, 863, 863, 864, 865, 866 +dw 866, 867, 868, 868, 869, 870, 871, 871, 872, 873, 874, 875, 875, 876, 877, 878 +dw 879, 880, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 890, 891, 892 +dw 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 909 +dw 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925 +dw 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942 +dw 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 958 +dw 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 969, 970, 971, 972, 973 +dw 974, 974, 975, 976, 977, 978, 978, 979, 980, 981, 981, 982, 983, 983, 984, 985 +dw 985, 986, 987, 987, 988, 988, 989, 990, 990, 991, 991, 992, 992, 993, 993, 994 +dw 994, 995, 995, 996, 996, 996, 997, 997, 998, 998, 998, 999, 999, 999,1000,1000 +dw 1000,1001,1001,1001,1001,1002,1002,1002,1002,1003,1003,1003,1003,1003,1003,1004 +dw 1004,1004,1004,1004,1004,1004,1004,1004,1004,1005,1005,1005,1005,1005,1005,1005 +dw 1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1004,1004,1004 +dw 1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1003,1003,1003,1003,1003,1003 +dw 1003,1003,1003,1003,1002,1002,1002,1002,1002,1002,1002,1002,1002,1001,1001,1001 +dw 1001,1001,1001,1001,1001,1001,1001,1001,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1001,1001,1001,1001,1001,1001,1001 +dw 1001,1001,1001,1001,1002,1002,1002,1002,1002,1002,1002,1002,1002,1003,1003,1003 +dw 1003,1003,1003,1003,1003,1003,1003,1004,1004,1004,1004,1004,1004,1004,1004,1004 +dw 1004,1004,1004,1004,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005 +dw 1005,1005,1005,1005,1005,1005,1005,1005,1004,1004,1004,1004,1004,1004,1004,1004 +dw 1004,1004,1003,1003,1003,1003,1003,1003,1002,1002,1002,1002,1001,1001,1001,1001 +dw 1000,1000,1000, 999, 999, 999, 998, 998, 998, 997, 997, 996, 996, 996, 995, 995 +dw 994, 994, 993, 993, 992, 992, 991, 991, 990, 990, 989, 988, 988, 987, 987, 986 +dw 985, 985, 984, 983, 983, 982, 981, 981, 980, 979, 978, 978, 977, 976, 975, 974 +dw 974, 973, 972, 971, 970, 969, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960 +dw 959, 958, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945 +dw 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928 +dw 927, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911 +dw 910, 909, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894 +dw 893, 892, 891, 890, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 880 +dw 879, 878, 877, 876, 875, 875, 874, 873, 872, 871, 871, 870, 869, 868, 868, 867 +dw 866, 866, 865, 864, 863, 863, 862, 861, 861, 860, 860, 859, 858, 858, 857, 857 +dw 856, 856, 855, 854, 854, 853, 853, 852, 852, 851, 851, 850, 850, 850, 849, 849 +dw 848, 848, 847, 847, 847, 846, 846, 846, 845, 845, 844, 844, 844, 843, 843, 843 +dw 843, 842, 842, 842, 841, 841, 841, 841, 840, 840, 840, 840, 839, 839, 839, 839 +dw 838, 838, 838, 838, 837, 837, 837, 837, 837, 836, 836, 836, 836, 836, 835, 835 +dw 835, 835, 835, 834, 834, 834, 834, 834, 833, 833, 833, 833, 833, 832, 832, 832 +dw 832, 831, 831, 831, 831, 831, 830, 830, 830, 830, 829, 829, 829, 829, 828, 828 +dw 828, 828, 827, 827, 827, 826, 826, 826, 826, 825, 825, 825, 824, 824, 824, 823 +dw 823, 823, 822, 822, 822, 821, 821, 820, 820, 820, 819, 819, 818, 818, 818, 817 +dw 817, 816, 816, 815, 815, 815, 814, 814, 813, 813, 812, 812, 811, 811, 810, 810 +dw 809, 809, 808, 808, 807, 807, 806, 806, 805, 804, 804, 803, 803, 802, 802, 801 +dw 801, 800, 799, 799, 798, 798, 797, 796, 796, 795, 795, 794, 794, 793, 792, 792 +dw 791, 791, 790, 789, 789, 788, 788, 787, 786, 786, 785, 785, 784, 784, 783, 782 +dw 782, 781, 781, 780, 780, 779, 778, 778, 777, 777, 776, 776, 775, 775, 774, 774 +dw 773, 773, 772, 772, 771, 771, 770, 770, 769, 769, 769, 768, 768, 767, 767, 766 +dw 766, 766, 765, 765, 765, 764, 764, 764, 763, 763, 763, 762, 762, 762, 761, 761 +dw 761, 761, 760, 760, 760, 760, 760, 759, 759, 759, 759, 759, 759, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 759, 759, 759, 759, 759, 760 +dw 760, 760, 760, 760, 760, 761, 761, 761, 761, 762, 762, 762, 762, 763, 763, 763 +dw 763, 764, 764, 764, 764, 765, 765, 765, 766, 766, 766, 767, 767, 767, 767, 768 +dw 768, 768, 769, 769, 769, 770, 770, 770, 771, 771, 771, 772, 772, 772, 772, 773 +dw 773, 773, 774, 774, 774, 775, 775, 775, 775, 776, 776, 776, 776, 777, 777, 777 +dw 777, 778, 778, 778, 778, 778, 779, 779, 779, 779, 779, 779, 780, 780, 780, 780 +dw 780, 780, 780, 780, 780, 780, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781 +dw 781, 781, 780, 780, 780, 780, 780, 780, 780, 780, 780, 779, 779, 779, 779, 779 +dw 778, 778, 778, 778, 778, 777, 777, 777, 776, 776, 776, 775, 775, 775, 774, 774 +dw 774, 773, 773, 772, 772, 772, 771, 771, 770, 770, 769, 769, 768, 768, 767, 767 +dw 766, 766, 765, 764, 764, 763, 763, 762, 762, 761, 760, 760, 759, 758, 758, 757 +dw 756, 756, 755, 754, 754, 753, 752, 752, 751, 750, 749, 749, 748, 747, 747, 746 +dw 745, 744, 744, 743, 742, 741, 741, 740, 739, 738, 738, 737, 736, 735, 734, 734 +dw 733, 732, 731, 731, 730, 729, 728, 727, 727, 726, 725, 724, 724, 723, 722, 721 +dw 721, 720, 719, 718, 717, 717, 716, 715, 714, 714, 713, 712, 711, 711, 710, 709 +dw 709, 708, 707, 706, 706, 705, 704, 704, 703, 702, 702, 701, 700, 700, 699, 698 +dw 698, 697, 696, 696, 695, 694, 694, 693, 692, 692, 691, 691, 690, 689, 689, 688 +dw 688, 687, 686, 686, 685, 685, 684, 684, 683, 682, 682, 681, 681, 680, 680, 679 +dw 679, 678, 678, 677, 677, 676, 676, 675, 675, 674, 673, 673, 672, 672, 671, 671 +dw 670, 670, 669, 669, 668, 668, 667, 667, 666, 666, 665, 665, 664, 664, 663, 663 +dw 662, 662, 661, 661, 660, 660, 659, 659, 658, 658, 657, 656, 656, 655, 655, 654 +dw 654, 653, 653, 652, 651, 651, 650, 650, 649, 648, 648, 647, 646, 646, 645, 644 +dw 644, 643, 642, 642, 641, 640, 640, 639, 638, 637, 637, 636, 635, 634, 633, 633 +dw 632, 631, 630, 629, 629, 628, 627, 626, 625, 624, 623, 622, 621, 621, 620, 619 +dw 618, 617, 616, 615, 614, 613, 612, 611, 610, 608, 607, 606, 605, 604, 603, 602 +dw 601, 600, 598, 597, 596, 595, 594, 592, 591, 590, 589, 588, 586, 585, 584, 582 +dw 581, 580, 579, 577, 576, 575, 573, 572, 571, 569, 568, 566, 565, 564, 562, 561 +dw 559, 558, 557, 555, 554, 552, 551, 549, 548, 546, 545, 543, 542, 540, 539, 537 +dw 536, 534, 533, 531, 530, 528, 527, 525, 524, 522, 521, 519, 518, 516, 515, 513 +dw 512, 510, 508, 507, 505, 504, 502, 501, 499, 498, 496, 495, 493, 492, 490, 489 +dw 487, 486, 484, 483, 481, 480, 478, 477, 475, 474, 472, 471, 469, 468, 466, 465 +dw 464, 462, 461, 459, 458, 457, 455, 454, 452, 451, 450, 448, 447, 446, 444, 443 +dw 442, 441, 439, 438, 437, 435, 434, 433, 432, 431, 429, 428, 427, 426, 425, 423 +dw 422, 421, 420, 419, 418, 417, 416, 415, 413, 412, 411, 410, 409, 408, 407, 406 +dw 405, 404, 403, 402, 402, 401, 400, 399, 398, 397, 396, 395, 394, 394, 393, 392 +dw 391, 390, 390, 389, 388, 387, 386, 386, 385, 384, 383, 383, 382, 381, 381, 380 +dw 379, 379, 378, 377, 377, 376, 375, 375, 374, 373, 373, 372, 372, 371, 370, 370 +dw 369, 369, 368, 368, 367, 367, 366, 365, 365, 364, 364, 363, 363, 362, 362, 361 +dw 361, 360, 360, 359, 359, 358, 358, 357, 357, 356, 356, 355, 355, 354, 354, 353 +dw 353, 352, 352, 351, 351, 350, 350, 349, 348, 348, 347, 347, 346, 346, 345, 345 +dw 344, 344, 343, 343, 342, 342, 341, 341, 340, 339, 339, 338, 338, 337, 337, 336 +dw 335, 335, 334, 334, 333, 332, 332, 331, 331, 330, 329, 329, 328, 327, 327, 326 +dw 325, 325, 324, 323, 323, 322, 321, 321, 320, 319, 319, 318, 317, 317, 316, 315 +dw 314, 314, 313, 312, 312, 311, 310, 309, 309, 308, 307, 306, 306, 305, 304, 303 +dw 302, 302, 301, 300, 299, 299, 298, 297, 296, 296, 295, 294, 293, 292, 292, 291 +dw 290, 289, 289, 288, 287, 286, 285, 285, 284, 283, 282, 282, 281, 280, 279, 279 +dw 278, 277, 276, 276, 275, 274, 274, 273, 272, 271, 271, 270, 269, 269, 268, 267 +dw 267, 266, 265, 265, 264, 263, 263, 262, 261, 261, 260, 260, 259, 259, 258, 257 +dw 257, 256, 256, 255, 255, 254, 254, 253, 253, 252, 252, 251, 251, 251, 250, 250 +dw 249, 249, 249, 248, 248, 248, 247, 247, 247, 246, 246, 246, 245, 245, 245, 245 +dw 245, 244, 244, 244, 244, 244, 243, 243, 243, 243, 243, 243, 243, 243, 243, 242 +dw 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243 +dw 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245 +dw 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 248, 248, 249, 249, 249, 250 +dw 250, 250, 251, 251, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255 +dw 255, 255, 256, 256, 256, 256, 257, 257, 257, 258, 258, 258, 259, 259, 259, 259 +dw 260, 260, 260, 260, 261, 261, 261, 261, 262, 262, 262, 262, 263, 263, 263, 263 +dw 263, 263, 264, 264, 264, 264, 264, 264, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 264, 264, 264, 264, 264, 264, 263, 263, 263, 263, 263, 262 +dw 262, 262, 262, 261, 261, 261, 260, 260, 260, 259, 259, 259, 258, 258, 258, 257 +dw 257, 257, 256, 256, 255, 255, 254, 254, 254, 253, 253, 252, 252, 251, 251, 250 +dw 250, 249, 249, 248, 248, 247, 247, 246, 246, 245, 245, 244, 243, 243, 242, 242 +dw 241, 241, 240, 239, 239, 238, 238, 237, 237, 236, 235, 235, 234, 234, 233, 232 +dw 232, 231, 231, 230, 229, 229, 228, 228, 227, 227, 226, 225, 225, 224, 224, 223 +dw 222, 222, 221, 221, 220, 220, 219, 219, 218, 217, 217, 216, 216, 215, 215, 214 +dw 214, 213, 213, 212, 212, 211, 211, 210, 210, 209, 209, 208, 208, 208, 207, 207 +dw 206, 206, 205, 205, 205, 204, 204, 203, 203, 203, 202, 202, 201, 201, 201, 200 +dw 200, 200, 199, 199, 199, 198, 198, 198, 197, 197, 197, 197, 196, 196, 196, 195 +dw 195, 195, 195, 194, 194, 194, 194, 193, 193, 193, 193, 192, 192, 192, 192, 192 +dw 191, 191, 191, 191, 190, 190, 190, 190, 190, 189, 189, 189, 189, 189, 188, 188 +dw 188, 188, 188, 187, 187, 187, 187, 187, 186, 186, 186, 186, 186, 185, 185, 185 +dw 185, 184, 184, 184, 184, 183, 183, 183, 183, 182, 182, 182, 182, 181, 181, 181 +dw 180, 180, 180, 180, 179, 179, 179, 178, 178, 177, 177, 177, 176, 176, 176, 175 +dw 175, 174, 174, 173, 173, 173, 172, 172, 171, 171, 170, 170, 169, 169, 168, 167 +dw 167, 166, 166, 165, 165, 164, 163, 163, 162, 162, 161, 160, 160, 159, 158, 157 +dw 157, 156, 155, 155, 154, 153, 152, 152, 151, 150, 149, 148, 148, 147, 146, 145 +dw 144, 143, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 133, 132, 131 +dw 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 114 +dw 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98 +dw 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81 +dw 80, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 65 +dw 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 54, 53, 52, 51, 50 +dw 49, 49, 48, 47, 46, 45, 45, 44, 43, 42, 42, 41, 40, 40, 39, 38 +dw 38, 37, 36, 36, 35, 35, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29 +dw 29, 28, 28, 27, 27, 27, 26, 26, 25, 25, 25, 24, 24, 24, 23, 23 +dw 23, 22, 22, 22, 22, 21, 21, 21, 21, 20, 20, 20, 20, 20, 20, 19 +dw 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18 +dw 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19 +dw 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20 +dw 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22 +dw 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22 +dw 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 20 +dw 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19, 19, 19, 19, 19 +dw 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +dw 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19 +dw 19, 19, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22 +dw 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 27, 27, 27, 28, 28 +dw 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 37 +dw 38, 38, 39, 40, 40, 41, 42, 42, 43, 44, 45, 45, 46, 47, 48, 49 +dw 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 +dw 64, 65, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 +dw 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 +dw 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112 +dw 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 +dw 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 143 +dw 144, 145, 146, 147, 148, 148, 149, 150, 151, 152, 152, 153, 154, 155, 155, 156 +dw 157, 157, 158, 159, 160, 160, 161, 162, 162, 163, 163, 164, 165, 165, 166, 166 +dw 167, 167, 168, 169, 169, 170, 170, 171, 171, 172, 172, 173, 173, 173, 174, 174 +dw 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 179, 179, 179, 180, 180, 180 +dw 180, 181, 181, 181, 182, 182, 182, 182, 183, 183, 183, 183, 184, 184, 184, 184 +dw 185, 185, 185, 185, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 188, 188 +dw 188, 188, 188, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 191, 191, 191 +dw 191, 192, 192, 192, 192, 192, 193, 193, 193, 193, 194, 194, 194, 194, 195, 195 +dw 195, 195, 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, 199, 199, 199, 200 +dw 200, 200, 201, 201, 201, 202, 202, 203, 203, 203, 204, 204, 205, 205, 205, 206 +dw 206, 207, 207, 208, 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213 +dw 214, 214, 215, 215, 216, 216, 217, 217, 218, 219, 219, 220, 220, 221, 221, 222 +dw 222, 223, 224, 224, 225, 225, 226, 227, 227, 228, 228, 229, 229, 230, 231, 231 +dw 232, 232, 233, 234, 234, 235, 235, 236, 237, 237, 238, 238, 239, 239, 240, 241 +dw 241, 242, 242, 243, 243, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249 +dw 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 254, 255, 255, 256, 256, 257 +dw 257, 257, 258, 258, 258, 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262 +dw 262, 262, 263, 263, 263, 263, 263, 264, 264, 264, 264, 264, 264, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 264, 264, 264, 264, 264, 264, 263 +dw 263, 263, 263, 263, 263, 262, 262, 262, 262, 261, 261, 261, 261, 260, 260, 260 +dw 260, 259, 259, 259, 259, 258, 258, 258, 257, 257, 257, 256, 256, 256, 256, 255 +dw 255, 255, 254, 254, 254, 253, 253, 253, 252, 252, 252, 251, 251, 251, 251, 250 +dw 250, 250, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 247, 246, 246, 246 +dw 246, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 243, 243, 243, 243 +dw 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242 +dw 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244 +dw 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249 +dw 249, 250, 250, 251, 251, 251, 252, 252, 253, 253, 254, 254, 255, 255, 256, 256 +dw 257, 257, 258, 259, 259, 260, 260, 261, 261, 262, 263, 263, 264, 265, 265, 266 +dw 267, 267, 268, 269, 269, 270, 271, 271, 272, 273, 274, 274, 275, 276, 276, 277 +dw 278, 279, 279, 280, 281, 282, 282, 283, 284, 285, 285, 286, 287, 288, 289, 289 +dw 290, 291, 292, 292, 293, 294, 295, 296, 296, 297, 298, 299, 299, 300, 301, 302 +dw 302, 303, 304, 305, 306, 306, 307, 308, 309, 309, 310, 311, 312, 312, 313, 314 +dw 314, 315, 316, 317, 317, 318, 319, 319, 320, 321, 321, 322, 323, 323, 324, 325 +dw 325, 326, 327, 327, 328, 329, 329, 330, 331, 331, 332, 332, 333, 334, 334, 335 +dw 335, 336, 337, 337, 338, 338, 339, 339, 340, 341, 341, 342, 342, 343, 343, 344 +dw 344, 345, 345, 346, 346, 347, 347, 348, 348, 349, 350, 350, 351, 351, 352, 352 +dw 353, 353, 354, 354, 355, 355, 356, 356, 357, 357, 358, 358, 359, 359, 360, 360 +dw 361, 361, 362, 362, 363, 363, 364, 364, 365, 365, 366, 367, 367, 368, 368, 369 +dw 369, 370, 370, 371, 372, 372, 373, 373, 374, 375, 375, 376, 377, 377, 378, 379 +dw 379, 380, 381, 381, 382, 383, 383, 384, 385, 386, 386, 387, 388, 389, 390, 390 +dw 391, 392, 393, 394, 394, 395, 396, 397, 398, 399, 400, 401, 402, 402, 403, 404 +dw 405, 406, 407, 408, 409, 410, 411, 412, 413, 415, 416, 417, 418, 419, 420, 421 +dw 422, 423, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 437, 438, 439, 441 +dw 442, 443, 444, 446, 447, 448, 450, 451, 452, 454, 455, 457, 458, 459, 461, 462 +dw 464, 465, 466, 468, 469, 471, 472, 474, 475, 477, 478, 480, 481, 483, 484, 486 +dw 487, 489, 490, 492, 493, 495, 496, 498, 499, 501, 502, 504, 505, 507, 508, 510 \ No newline at end of file diff --git a/u2/MAIN.ASM b/u2/MAIN.ASM new file mode 100755 index 0000000..7b1a7b5 --- /dev/null +++ b/u2/MAIN.ASM @@ -0,0 +1,634 @@ + .386p + ifndef ??version +?debug macro + endm +publicdll macro name + public name + endm + endif + ?debug V 300h + ?debug S "MAIN.C" + ?debug C E9C789EC1A064D41494E2E43 + ?debug C E94019CA1815473A5C42435C494E434C5544455C535444494F2E48 + ?debug C E94019CA1815473A5C42435C494E434C5544455C5F444546532E48 + ?debug C E94019CA1816473A5C42435C494E434C5544455C5F4E46494C452E+ + ?debug C 48 + ?debug C E94019CA1815473A5C42435C494E434C5544455C5F4E554C4C2E48 + ?debug C E94019CA1814473A5C42435C494E434C5544455C4D4154482E48 + ?debug C E94019CA1815473A5C42435C494E434C5544455C434F4E494F2E48 + ?debug C E94019CA1813473A5C42435C494E434C5544455C444F532E48 + ?debug C E93587EB1A102E2E5C545745414B5C545745414B2E48 +MAIN_TEXT segment byte public use16 'CODE' +MAIN_TEXT ends +DGROUP group _DATA,_BSS + assume cs:MAIN_TEXT,ds:DGROUP +_DATA segment word public use16 'DATA' +d@ label byte +d@w label word +_DATA ends +_BSS segment word public use16 'BSS' +b@ label byte +b@w label word +_BSS ends +_DATA segment word public use16 'DATA' +_vmem label dword + db 0 + db 0 + db 0 + db 160 + ?debug C E947A5DC1A08505441552E505245 +_ptau label byte + db 0 + db 1 + db 1 + db 1 + db 1 + db 1 + db 2 + db 2 + db 3 + db 3 + db 4 + db 5 + db 6 + db 7 + db 8 + db 9 + db 10 + db 11 + db 12 + db 13 + db 14 + db 16 + db 17 + db 18 + db 20 + db 21 + db 23 + db 24 + db 25 + db 27 + db 28 + db 30 + db 31 + db 33 + db 35 + db 36 + db 38 + db 39 + db 40 + db 42 + db 43 + db 45 + db 46 + db 47 + db 49 + db 50 + db 51 + db 52 + db 53 + db 54 + db 55 + db 56 + db 57 + db 58 + db 59 + db 60 + db 60 + db 61 + db 61 + db 62 + db 62 + db 62 + db 62 + db 62 + db 63 + db 62 + db 62 + db 62 + db 62 + db 62 + db 61 + db 61 + db 60 + db 60 + db 59 + db 58 + db 57 + db 56 + db 55 + db 54 + db 53 + db 52 + db 51 + db 50 + db 49 + db 47 + db 46 + db 45 + db 43 + db 42 + db 40 + db 39 + db 38 + db 36 + db 35 + db 33 + db 32 + db 30 + db 28 + db 27 + db 25 + db 24 + db 23 + db 21 + db 20 + db 18 + db 17 + db 16 + db 14 + db 13 + db 12 + db 11 + db 10 + db 9 + db 8 + db 7 + db 6 + db 5 + db 4 + db 3 + db 3 + db 2 + db 2 + db 1 + db 1 + db 1 + db 1 + db 1 + db 1 + db 127 dup (0) +_l1 label word + db 144 + db 1 +_l2 label word + db 44 + db 1 +_l3 label word + db 32 + db 3 +_l4 label word + db 100 + db 0 +_k1 label word + db 244 + db 1 +_k2 label word + db 44 + db 1 +_k3 label word + db 132 + db 3 +_k4 label word + db 158 + db 2 +_m1 label word + db 244 + db 1 +_m2 label word + db 200 + db 0 +_m3 label word + db 144 + db 1 +_m4 label word + db 132 + db 3 +_n1 label word + db 188 + db 2 +_n2 label word + db 244 + db 1 +_n3 label word + db 132 + db 3 +_n4 label word + db 214 + db 1 +_DATA ends +MAIN_TEXT segment byte public use16 'CODE' + ?debug C E801064D41494E2E43C789EC1A + ?debug L 42 + assume cs:MAIN_TEXT +_main proc far + ?debug B + push bp + mov bp,sp + sub sp,22 + push si + push di + ?debug B + ?debug L 45 + mov dword ptr [bp-4],large 0 + mov dword ptr [bp-8],large 0 + ?debug L 46 + mov word ptr [bp-10],0 + ?debug L 48 + call far ptr _init_plz + ?debug L 50 + mov ax,seg _frame_count + mov es,ax + mov word ptr es:_frame_count,0 + jmp @1@1066 +@1@58: + ?debug L 53 + mov ax,seg _frame_count + mov es,ax + movsx eax,word ptr es:_frame_count + add dword ptr [bp-4],eax + inc dword ptr [bp-8] + ?debug L 54 + cmp word ptr [bp-10],37 + jne short @1@114 + push large 000140014h + push large 000140000h + call far ptr _tw_setrgbpalette + add sp,8 +@1@114: + ?debug L 56 + mov dx, 3c4h + ?debug L 57 + mov ax, 0a02h + ?debug L 58 + out dx, ax + ?debug L 60 + push word ptr DGROUP:_k4 + push word ptr DGROUP:_k3 + push word ptr DGROUP:_k2 + push word ptr DGROUP:_k1 + call far ptr _setplzparas + add sp,8 + ?debug L 61 + xor si,si + mov word ptr [bp-16],00000A000h +@1@254: + ?debug L 62 + push word ptr [bp-16] + push si + call far ptr _plzline + add sp,4 + ?debug L 61 + add word ptr [bp-16],12 + add si,2 + cmp si,350 + jl short @1@254 + ?debug L 63 + push word ptr DGROUP:_l4 + push word ptr DGROUP:_l3 + push word ptr DGROUP:_l2 + push word ptr DGROUP:_l1 + call far ptr _setplzparas + add sp,8 + ?debug L 64 + mov si,1 + mov word ptr [bp-18],00000A006h + jmp short @1@506 +@1@422: + ?debug L 65 + push word ptr [bp-18] + push si + call far ptr _plzline + add sp,4 + ?debug L 64 + add word ptr [bp-18],12 + add si,2 +@1@506: + cmp si,350 + jl short @1@422 + ?debug L 68 + mov dx, 3c4h + ?debug L 69 + mov ax, 0502h + ?debug L 70 + out dx, ax + ?debug L 72 + push word ptr DGROUP:_k4 + push word ptr DGROUP:_k3 + push word ptr DGROUP:_k2 + push word ptr DGROUP:_k1 + call far ptr _setplzparas + add sp,8 + ?debug L 73 + mov si,1 + mov word ptr [bp-20],00000A006h + jmp short @1@758 +@1@674: + ?debug L 74 + push word ptr [bp-20] + push si + call far ptr _plzline + add sp,4 + ?debug L 73 + add word ptr [bp-20],12 + add si,2 +@1@758: + cmp si,350 + jl short @1@674 + ?debug L 75 + push word ptr DGROUP:_l4 + push word ptr DGROUP:_l3 + push word ptr DGROUP:_l2 + push word ptr DGROUP:_l1 + call far ptr _setplzparas + add sp,8 + ?debug L 76 + xor si,si + mov word ptr [bp-22],00000A000h +@1@842: + ?debug L 77 + push word ptr [bp-22] + push si + call far ptr _plzline + add sp,4 + ?debug L 76 + add word ptr [bp-22],12 + add si,2 + cmp si,350 + jl short @1@842 + ?debug L 79 + cmp word ptr [bp-10],37 + jne short @1@1010 + push large 0 + push large 0 + call far ptr _tw_setrgbpalette + add sp,8 +@1@1010: + ?debug L 83 + call far ptr _kbhit + or ax,ax + je short @1@1066 + call far ptr _getch + mov word ptr [bp-10],ax +@1@1066: + ?debug L 51 + cmp word ptr [bp-10],27 + je short @@4 + jmp @1@58 +@@4: + ?debug L 85 + call far ptr _close_copper + ?debug L 86 + call far ptr _tw_closegraph + ?debug L 88 + mov eax,dword ptr [bp-4] + mov dword ptr [bp-14],eax + fild dword ptr [bp-14] + mov eax,dword ptr [bp-8] + mov dword ptr [bp-14],eax + fild dword ptr [bp-14] + fdiv + sub sp,8 + fstp qword ptr [bp-34] + push ds + push offset DGROUP:s@ + fwait + call far ptr _printf + add sp,12 + ?debug L 89 + pop di + pop si + leave + ret + ?debug C E60263680402F6FF0005636F756E740602F8FF00+ + ?debug C 0374696D0602FCFF00017904080192007B010406+ + ?debug C 00 + ?debug E + ?debug E +_main endp + ?debug L 91 + assume cs:MAIN_TEXT +_init_plz proc far + ?debug B + push bp + mov bp,sp + sub sp,2 + push si + ?debug B + ?debug L 141 + call far ptr _tw_opengraph + ?debug L 142 + push -17536 + call far ptr _tw_setstart + add sp,2 + ?debug L 144 + mov dx, 3d4h + ?debug L 145 + mov ax, 4009h + ?debug L 146 + out dx, ax + ?debug L 147 + mov ax, 3013h + ?debug L 148 + out dx, ax + ?debug L 149 + mov ax, a018h + ?debug L 150 + out dx, ax + ?debug L 151 + mov ax, 0f07h + ?debug L 152 + out dx, ax + ?debug L 155 + call far ptr _init_copper + ?debug L 158 + mov word ptr [bp-2],0 +@2@338: + mov al,byte ptr DGROUP:_ptau + cbw + mov si,ax + push ax + push ax + mov bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + push bx + call far ptr _tw_setrgbpalette + add sp,8 + inc word ptr [bp-2] + cmp word ptr [bp-2],64 + jl short @2@338 + ?debug L 159 + mov word ptr [bp-2],0 +@2@450: + mov bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov al,byte ptr DGROUP:_ptau + cbw + push ax + mov bx,63 + sub bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov ax,word ptr [bp-2] + add ax,64 + push ax + call far ptr _tw_setrgbpalette + add sp,8 + inc word ptr [bp-2] + cmp word ptr [bp-2],64 + jl short @2@450 + ?debug L 160 + mov word ptr [bp-2],0 +@2@562: + mov bx,63 + sub bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov al,byte ptr DGROUP:_ptau + cbw + push ax + mov ax,word ptr [bp-2] + add ax,128 + push ax + call far ptr _tw_setrgbpalette + add sp,8 + inc word ptr [bp-2] + cmp word ptr [bp-2],64 + jl short @2@562 + ?debug L 161 + mov word ptr [bp-2],0 +@2@674: + mov bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov al,byte ptr DGROUP:_ptau+63 + cbw + push ax + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov ax,word ptr [bp-2] + add ax,192 + push ax + call far ptr _tw_setrgbpalette + add sp,8 + inc word ptr [bp-2] + cmp word ptr [bp-2],64 + jl short @2@674 + ?debug L 185 + pop si + leave + ret + ?debug C E601610402FEFF00 + ?debug E + ?debug E +_init_plz endp + ?debug C E9 + ?debug C FA15000000 +MAIN_TEXT ends +_DATA segment word public use16 'DATA' +s@ label byte + db '%le' + db 10 + db 0 +_DATA ends +MAIN_TEXT segment byte public use16 'CODE' +MAIN_TEXT ends + public _init_plz + public _main + public _n4 + public _n3 + public _n2 + public _n1 + public _m4 + public _m3 + public _m2 + public _m1 + public _k4 + public _k3 + public _k2 + public _k1 + public _l4 + public _l3 + public _l2 + public _l1 + public _ptau + public _vmem + extrn _setplzparas:far + extrn _plzline:far + extrn _frame_count:word + extrn _close_copper:far + extrn _init_copper:far + extrn _tw_setstart:far + extrn _tw_setrgbpalette:far + extrn _tw_closegraph:far + extrn _tw_opengraph:far + extrn _kbhit:far + extrn _getch:far + extrn _printf:far +_s@ equ s@ + ?debug C EA010C + ?debug C E31800000023040400 + ?debug C EC095F696E69745F706C7A181800 + ?debug C E31900000023040400 + ?debug C EC055F6D61696E191800 + ?debug C EC035F6E34040000 + ?debug C EC035F6E33040000 + ?debug C EC035F6E32040000 + ?debug C EC035F6E31040000 + ?debug C EC035F6D34040000 + ?debug C EC035F6D33040000 + ?debug C EC035F6D32040000 + ?debug C EC035F6D31040000 + ?debug C EC035F6B34040000 + ?debug C EC035F6B33040000 + ?debug C EC035F6B32040000 + ?debug C EC035F6B31040000 + ?debug C EC035F6C34040000 + ?debug C EC035F6C33040000 + ?debug C EC035F6C32040000 + ?debug C EC035F6C31040000 + ?debug C E31A0000011A02 + ?debug C EC055F707461751A0000 + ?debug C E31C0052001A04 + ?debug C E31B000400161C00 + ?debug C EC055F766D656D1B0000 + ?debug C E31D00000023040400 + ?debug C EB0C5F736574706C7A70617261731D00 + ?debug C E31E00000023040400 + ?debug C EB085F706C7A6C696E651E00 + ?debug C EB0C5F6672616D655F636F756E740400 + ?debug C E31F00000023040400 + ?debug C EB0D5F636C6F73655F636F707065721F00 + ?debug C E32000000023040400 + ?debug C EB0C5F696E69745F636F707065722000 + ?debug C E32100000023010400 + ?debug C EB0C5F74775F73657473746172742100 + ?debug C E32200000023010400 + ?debug C EB115F74775F73657472676270616C6574746522+ + ?debug C 00 + ?debug C E32300000023010400 + ?debug C EB0E5F74775F636C6F736567726170682300 + ?debug C E32400000023010400 + ?debug C EB0D5F74775F6F70656E67726170682400 + ?debug C E32500000023040400 + ?debug C EB065F6B626869742500 + ?debug C E32600000023040400 + ?debug C EB065F67657463682600 + ?debug C E32700000023040401 + ?debug C EB075F7072696E74662700 + ?debug C E60666706F735F740606000673697A655F740A06+ + ?debug C 00 + end + \ No newline at end of file diff --git a/u2/MAIN.C b/u2/MAIN.C new file mode 100755 index 0000000..bf421c4 --- /dev/null +++ b/u2/MAIN.C @@ -0,0 +1,13 @@ +#include "..\dis\dis.h" + +extern plz(); +extern vect(); + +main() { + dis_partstart(); + init_copper(); + initvect(); + plz(); + vect(); + close_copper(); + } \ No newline at end of file diff --git a/u2/MAIN.OBJ b/u2/MAIN.OBJ new file mode 100755 index 0000000..689c88c Binary files /dev/null and b/u2/MAIN.OBJ differ diff --git a/u2/PLZ.C b/u2/PLZ.C new file mode 100755 index 0000000..420736d --- /dev/null +++ b/u2/PLZ.C @@ -0,0 +1,219 @@ +#include +#include +#include +#include +#include "tweak.h" + +//#define DO_TABLES +//#define DPII (3.1415926535*2.0) + +#define LINELEN 41 +#define MAXY 280 +#define YADD 0 +#define XADD 0 +#define SINMASK 4095 +#define PLZSINI(p1,p2,p3,p4) *ptr++ = (psini[x*32+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+p4]*4+p3]) + (psini[x*32+16+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+32+p4]*4+p3])*256; + +extern int init_copper(); +extern int close_copper(); +extern int far frame_count; +extern int far cop_drop; +extern int far cop_plz; +extern int far cop_start; +extern char far * far cop_fadepal; +extern char far fadepal[768]; +extern far char * far cop_pal; +extern far int do_pal; + +extern int plzline(int y, int vseg); +extern int setplzparas(int c1, int c2, int c3, int c4); +extern int set_plzstart(int y); +extern char far psini[16384]; +extern int far lsini4[8192]; +extern int far lsini16[8192]; + +//int (* vmem)[LINELEN]=MK_FP(0x0a000,0); +//char psini[16384]= +//#include "psini.pre" +//char lsini[16384]= +//#include "lsini.pre" + +char ptau[256]= +#include "ptau.pre" + +int pals[6][768]; +int curpal=0; +int timetable[10]={64*6*2-45,64*6*4-45,64*6*5-45,64*6*6-45,64*6*7+90,0}; +int ttptr=0; + +int l1=1000, l2=2000, l3=3000, l4=4000; +int k1=3500, k2=2300, k3=3900, k4=3670; + +int il1=1000, il2=2000, il3=3000, il4=4000; +int ik1=3500, ik2=2300, ik3=3900, ik4=3670; + +int inittable[10][8]={{1000,2000,3000,4000,3500,2300,3900,3670}, + {1000,2000,4000,4000,1500,2300,3900,1670}, + {3500,1000,3000,1000,3500,3300,2900,2670}, + {1000,2000,3000,4000,3500,2300,3900,3670}, + {1000,2000,3000,4000,3500,2300,3900,3670}, + {1000,2000,3000,4000,3500,2300,3900,3670}}; + +plz(){ + register int x,y; + int *ptr; + long tim=0,count=0; + int ch=0,sync=2; + + while(dis_musplus()<0 && !dis_exit()); + dis_setmframe(0); + + init_plz(); + cop_drop=128; + cop_fadepal=pals[curpal++]; + + frame_count=0; + while(!dis_exit()) + { + tim+=frame_count; frame_count=0; count++; + if(dis_getmframe()>timetable[ttptr]) + { + memset(fadepal,0,768); + cop_drop=1; + cop_fadepal=pals[curpal++]; + ttptr++; + il1=inittable[ttptr][0]; + il2=inittable[ttptr][1]; + il3=inittable[ttptr][2]; + il4=inittable[ttptr][3]; + ik1=inittable[ttptr][4]; + ik2=inittable[ttptr][5]; + ik3=inittable[ttptr][6]; + ik4=inittable[ttptr][7]; + } + if(curpal==5 && cop_drop>64) break; + + asm mov dx, 3c4h + asm mov ax, 0a02h + asm out dx, ax + + setplzparas(k1,k2,k3,k4); + for(y=0;y +dw OFFSET plz_y&ccc +ENDM + +LABEL start_mask BYTE +REPT 200 + db 1111b, 1110b, 1100b, 1000b +ENDM +LABEL end_mask BYTE +REPT 200 + db 0001b, 0011b, 0111b, 1111b +ENDM + +PUBLIC C xx, C yy +PUBLIC C yy1, C xx1, C yy2, C xx2 +PUBLIC C ay1, C ay2, C ax1, C ax2 +PUBLIC C txx1, C txx2, C txy1, C txy2 +PUBLIC C tax1, C tax2, C tay1, C tay2 +PUBLIC C to, C from, C dseg, C ctau + +xx dw ? +yy dw ? +yy1 dd ? +xx1 dd ? +yy2 dd ? +xx2 dd ? +ay1 dd ? +ax1 dd ? +ay2 dd ? +ax2 dd ? +txx1 dd ? +txy1 dd ? +txx2 dd ? +txy2 dd ? +tax1 dd ? +tay1 dd ? +tax2 dd ? +tay2 dd ? +to dd 0a0000000h +from dd ? +dseg dw 0 +ctau dd ? + + +linecount dw ? + +ASSUME cs:lerssicode, ds:nothing, es:nothing + +PUBLIC c do_block + +PROC C do_block FAR + ARG ycount:word + + push es ds si di bp + + mov ax, [ycount] + mov [linecount], ax + cmp ax, 0d + je @@end + lds bx, [from] + les di, [to] + lgs si, [ctau] + mov fs, [dseg] + +@@doline: + cmp [yy], 0d + jl @@endline + cmp [yy], 134d + jge @@end ; y-clip + + mov bp, [word ctau] + mov ax, [Word xx2+2] + cmp ax, [gs:bp] + ja @@l7 + mov [gs:bp], ax ; x1.. +@@l7: shr ax, 2d + add di, ax + mov si, [Word xx1+2] + cmp si, [gs:bp+2] + jb @@l8 + mov [gs:bp+2], si ; x2.. +@@l8: shr si, 2d + sub si, ax ; si = bytes to copy + jb @@endline + jz @@singlebyte + mov bp, si + dec si + jz @@twobyte + + mov dx, 3c4h + mov ax, 0f02h + out dx, ax + + mov ebx, [txy1-2] ; xlo + mov ecx, [txx1-2] ; ylo + + movsx esi, si + mov eax, [txy2] + sub eax, [txy1] + cdq + idiv esi ; addy + mov ecx, eax + mov eax, [txx2] + sub eax, [txx1] + cdq + idiv esi ; addx + + mov edx, ecx ; look reg table + rol edx, 16d ; y_add + mov dh, dl ; yah + rol eax, 16d ; x_add + mov dl, al ; xah + test dl, 80h + jz @@l2 + dec dh +@@l2: + mov bh, [Byte txy1+2] ; txt y + mov bl, [Byte txx1+2] ; txt x + test si, 1d + jz @@l1 + + movzx si, [fs:bx] ; out odd byte + add ecx, eax + mov al, [ds:bx+si] + adc ebx, edx + adc bh, 0 + mov [es:bp+di-1],al + jmp [cs:jmp_tau+bp-2] + +@@l1: jmp [cs:jmp_tau+si] ; and jump to rept + +; e h l +; ax x_add data data +; bx ylo ty tx +; cx xlo - - +; dx y_add yah xah +; di - +; si sinus inc + + ALIGN 4 +IRP ccc, <200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1> + +plz_y&ccc&: + + movzx si, [fs:bx] + add ecx, eax + mov ah, [ds:bx+si] + adc ebx, edx + adc bh, 0 + + movzx si, [fs:bx] + add ecx, eax + mov al, [ds:bx+si] + adc ebx, edx + adc bh, 0 ; immediate = y_hi + + mov [es:di+ccc*2-1], ax ; output byte +ENDM +plz_y0: + +@@twobyte: + mov bh, [Byte txy2+2] ; txt y + mov bl, [Byte txx2+2] ; txt x + movzx si, [fs:bx] + mov cl, [ds:bx+si] + mov bh, [Byte txy1+2] ; txt y + mov bl, [Byte txx1+2] ; txt x + movzx si, [fs:bx] + mov ch, [ds:bx+si] + + mov bx, [Word xx2+2] + and bx, 3d + mov ah, [start_mask+bx] + mov al, 02 + mov dx, 3c4h + out dx, ax + mov [es:di], cl + + mov bx, [Word xx1+2] + and bx, 3d + mov ah, [end_mask+bx] + out dx, ax + mov [es:bp+di], ch + +@@endline: + add [Word to], 160d ; next line + mov di, [word to] + inc [yy] + add [word ctau], 4d + + mov eax, [ax1] + add [xx1], eax + mov eax, [ax2] + add [xx2], eax + mov eax, [tay1] + add [txy1], eax + mov eax, [tax1] + add [txx1], eax + mov eax, [tay2] + add [txy2], eax + mov eax, [tax2] + add [txx2], eax ; increment txt and line indexes + + dec [linecount] + jnz @@doline + +@@end: + pop bp di si ds es + ret + + +@@singlebyte: + mov bh, [Byte txy2+2] ; txt y + mov bl, [Byte txx2+2] ; txt x + movzx si, [fs:bx] + mov cl, [ds:bx+si] + + mov al, 02 + mov dx, 3c4h + mov bx, [Word xx2+2] + and bx, 3d + mov ah, [start_mask+bx] + mov bx, [Word xx1+2] + and bx, 3d + and ah, [end_mask+bx] + out dx, ax + mov [es:di], cl + + add [Word to], 160d ; next line + mov di, [word to] + inc [yy] + add [word ctau], 4d + + mov eax, [ax1] + add [xx1], eax + mov eax, [ax2] + add [xx2], eax + mov eax, [tay1] + add [txy1], eax + mov eax, [tax1] + add [txx1], eax + mov eax, [tay2] + add [txy2], eax + mov eax, [tax2] + add [txx2], eax ; increment txt and line indexes + + dec [linecount] + jnz @@doline + pop bp di si ds es + ret +ENDP + + +PUBLIC C shadepal + +PROC C shadepal + + ARG fpal:dword, ppal:dword, shd:word + + push si di ds es + + lds si, [ppal] + les di, [fpal] + mov dx, [shd] + mov cx, 192/16d +@@loop: + REPT 16 + lodsb + mul dl + shr ax, 6d + stosb + ENDM + loop @@loop + + pop es ds di si + ret + +ENDP + + +ycnt dw 0 + +PUBLIC C do_clear + +PROC C do_clear + + ARG vmem:dword, otau:dword, ntau:dword + + push si di ds es bp + + mov dx, 3c4h + mov ax, 0f02h + out dx, ax + + les dx, [vmem] + lds bx, [otau] ; dx:bx-> otau + lds si, [ntau] + sub si, bx ; dx:bx+si-> ntau + mov dl, [es:0] ; fill latches + mov [ycnt], 134d + xor ax, ax + +@@lineloop: + cmp [Word ds:bx], 640d + je @@nextline + + mov di, [Word ds:bx] + shr di, 2d + mov cx, [word ds:bx+si] + shr cx, 2d + sub cx, di + jb @@l1 + add di, dx + rep stosb +@@l1: + mov di, [Word ds:bx+si+2] + shr di, 2d + mov cx, [word ds:bx+2] + shr cx, 2d + sub cx, di + jb @@nextline + add di, dx + inc di + rep stosb + +@@nextline: + mov [Word ds:bx], 640d + mov [Word ds:bx+2], 0d + + add dx, 160d + add bx, 4d + sub [ycnt], 1d + jae @@lineloop + +; Maskaa p„„t... + + les di, [vmem] + lds si, [ntau] ; dx:bx-> ntau + mov cx, 134d + mov dx, 3c4h + mov ax, 0f02h +@@maskloop: + mov bx, [ds:si] + dec bx + mov ah, [end_mask+bx] + out dx, ax + shr bx, 2d + mov [es:bx+di], ch + + mov bx, [ds:si+2] + inc bx + mov ah, [start_mask+bx] + out dx, ax + shr bx, 2d + mov [es:bx+di], ch + +@@nextmask: + add si,4d + add di, 160d + loop @@maskloop + + pop bp es ds di si + ret +ENDP +ENDS + +END diff --git a/u2/PLZA.OBJ b/u2/PLZA.OBJ new file mode 100755 index 0000000..f2734ec Binary files /dev/null and b/u2/PLZA.OBJ differ diff --git a/u2/PLZFILL.C b/u2/PLZFILL.C new file mode 100755 index 0000000..ae73c18 --- /dev/null +++ b/u2/PLZFILL.C @@ -0,0 +1,186 @@ +#include +#include +#include +#include +#include "tweak.h" + +extern far do_line(char far *to, int dx, int dy, int cnt, char far *from, long txx1, long txy1, long txx2, long txy2, int dseg); +extern far do_block(int ycnt); +extern far do_clear(char far *vmem, int far *otau, int far *ntau); + +extern int acstau[256]; +int sini[2000]; +char (* far vmem)[160]=MK_FP(0x0a000,0); +extern char far kuva1[128][256]; +extern char far kuva2[128][256]; +extern char far kuva3[128][256]; +extern char far dist1[128][256]; +char far buu[1000]; +char sinx[128], siny[128]; +char pal[768]; + +int clrtau[8][256][2]; +int clrptr=0; + +initvect() { + int a,b,x,y,s,d=0,p=0,ch; + + for(a=0;a<1524;a++) + { + sini[a]=s=sin(a/1024.0*M_PI*4)*127; + s-=sini[a]; + } + +/* for(a=0;a<65;a++) for(b=0;b<256;b++) // chessboard + { x=1; if((a>>4)&1) x^=3; if((b>>5)&1) x^=3; kuva[a][b]=x; } + + pal[0*192+3*1]=pal[0*192+3*1+1]=pal[0*192+3*1+2]=40; + pal[0*192+3*2]=pal[0*192+3*2+1]=pal[0*192+3*2+2]=60; +*/ + for(a=1;a<32;a++) // must-sini-valk + { pal[0*192+a*3]=0; pal[0*192+a*3+1]=0; pal[0*192+a*3+2]=a*2; } + for(a=0;a<32;a++) + { pal[0*192+a*3+32*3]=a*2; pal[0*192+a*3+1+32*3]=a*2; pal[0*192+a*3+2+32*3]=63; } + + for(a=0;a<32;a++) // must-pun-kelt + { pal[1*192+a*3]=a*2; pal[1*192+a*3+1]=0; pal[1*192+a*3+2]=0; } + for(a=0;a<32;a++) + { pal[1*192+a*3+32*3]=63; pal[1*192+a*3+1+32*3]=a*2; pal[1*192+a*3+2+32*3]=0; } + + + for(a=0;a<32;a++) // must-orans-viol + { pal[2*192+a*3]=a; pal[2*192+a*3+1]=0; pal[2*192+a*3+2]=a*2/3; } + for(a=0;a<32;a++) + { pal[2*192+a*3+32*3]=31-a; pal[2*192+a*3+1+32*3]=a*2; pal[2*192+a*3+2+32*3]=21; } + + + for(y=0;y<64;y++) for(x=0;x<256;x++) + { + kuva1[y][x]=sini[(y*4+sini[x*2])&511]/4+32; + kuva2[y][x]=sini[(y*4+sini[x*2])&511]/4+32+64; + kuva3[y][x]=sini[(y*4+sini[x*2])&511]/4+32+128; + } + + for(y=0;y<128;y++) for(x=0;x<256;x++) + dist1[y][x]=sini[y*8]/3; + + for(a=0;a<8*256;a++) { clrtau[0][a][0]=640; clrtau[0][a][1]=0; } + } + +extern far char * to; +extern far char * from; +extern far int * ctau; +extern far int dseg; +extern far int xx, yy; +extern far long ay1,ay2,ax1,ax2,xx1,yy1,xx2,yy2; +extern far long txx1,txy1,tay1,tax1; +extern far long txx2,txy2,tay2,tax2; + +int kuvataus[]={FP_SEG(kuva1),FP_SEG(kuva2),FP_SEG(kuva3),FP_SEG(kuva1)}; +int disttaus[]={FP_SEG(dist1),FP_SEG(dist1),FP_SEG(dist1),FP_SEG(dist1)}; + +do_poly(x1,y1,x2,y2,x3,y3,x4,y4,color, dd) +int x1,y1,x2,y2,x3,y3,x4,y4,color, dd; + { + int a,b,c,d,n=0,m,s1,s2,d1,d2,dx1,dy1,dx2,dy2; + + struct points { + int x,y; } pnts[4],txt[4]={{64,4},{190,4},{190,60},{64,60}}; +// int x,y; } pnts[4],txt[4]={{1,1},{63,1},{63,63},{1,63}}; + + dd=(dd+1)&63; + + pnts[0].x=x1; pnts[0].y=y1; + pnts[1].x=x2; pnts[1].y=y2; + pnts[2].x=x3; pnts[2].y=y3; + pnts[3].x=x4; pnts[3].y=y4; + + for(n=0,a=1;a<4;a++) if(pnts[a].y +#include +#include +#include +#include +#include +#include "tweak.h" + +#define SX sinit[kx] +#define SY sinit[ky] +#define SZ sinit[kz] +#define CX kosinit[kx] +#define CY kosinit[ky] +#define CZ kosinit[kz] + +extern far char (* far vmem)[160]; +extern char far pal[768]; + +extern clear(); +extern init(); +extern shadepal(char far *fpal, char far *ppal, int shade); +extern init_copper(); +extern close_copper(); +extern int far cop_rotatev; +extern far int frame_count; +extern far char * far cop_pal; +extern far int do_pal; +extern far int cop_start; +extern far int cop_scrl; + +extern int do_poly(); +extern int getspl(int where); +extern int far sinit[1024]; +extern int far kosinit[1024]; + +char far fpal[768]; + +struct object { + char name[100]; + + int pnts; + struct points_3d { + int x; + int y; + int z; + int xx; + int yy; + int zz; + int xxx; + int yyy; + } point[256]; + + int faces; + struct polygon { + int p1; + int p2; + int p3; + int p4; + int p5; + int p6; + int n; + int color; + } pg[256]; + + int lines; + struct lines { + int p1; + int p2; + int n; + int col; + } lin[256]; + } object={ + "Cube", + 8, // points + { + {125,125,125}, + {125,-125,125}, + {-125,-125,125}, + {-125,125,125}, + {125,125,-125}, + {125,-125,-125}, + {-125,-125,-125}, + {-125,125,-125}, + }, + 6, // faces + { + {1,2,3,0,0,0,0,0}, + {7,6,5,4,0,0,0,0}, + {0,4,5,1,0,0,0,1}, + {1,5,6,2,0,0,0,2}, + {2,6,7,3,0,0,0,1}, + {3,7,4,0,0,0,0,2}} + }; + +struct polygons_to_draw { + int p; + int dis; + } ptodraw[256]; +int polys=0; + +int light_src[6]={0}; +int lls[6]={0}; + +int cxx, cxy, cxz, cyx, cyy, cyz, czx, czy, czz; +int kx=0,ky=0,kz=0,dis=320,tx=0,ty=-50; +int ls_kx=0,ls_ky=0,ls_kz=0,ls_x=0,ls_y=0,ls_z=128; +int page=0; +int frames=0; + +vect() + { + int c=0,a; + + tw_opengraph(); + + while(dis_musplus()<13 && !dis_exit()); frame_count=0; + while(!dis_exit()) + { + a=dis_musplus(); + if(a>=-4 && a<0) break; + swappage(); + while(frame_count<1); frames+=frame_count; frame_count=0; + cop_pal=fpal; do_pal=1; + + calculate(1); + draw(15); + clear(); + } +// tw_closegraph(); + } + +calculate(int k) + { + int a; + static int px=0,py=256; + + getspl(4*256+frames*4); + kx=kx&1023; + ky=ky&1023; + kz=kz&1023; + ls_kx=ls_kx&1023; + ls_ky=ls_ky&1023; + + ls_y=kosinit[ls_kx]>>8; + ls_x=(sinit[ls_kx]>>8)*(sinit[ls_ky]>>8)>>7; + ls_z=(sinit[ls_kx]>>8)*(kosinit[ls_ky]>>8)>>7; + + count_const(); + rotate(); + sort_faces(); + } + +count_const() + { + //matrix equations: + //X Y Z -> nX + //X Y Z -> nY + //X Y Z -> nZ + // + // 0=Ycos*Zcos 2=Ycos*Zsin 4=-Ysin + // 6=Xsin*Zcos*Ysin 8=Xsin*Ysin*Zsin 10=Ycos*Xsin + // -Xcos*Zsin +Xcos*Zcos + //12=Xcos*Zcos*Ysin 14=Xcos*Ysin*Zsin 16=Ycos*Xcos + // +Xsin*Zsin -Xsin*Zcos + + cxx=(long)CY*(long)CZ>>15+7; + cxy=(long)CY*(long)SZ>>15+7; + cxz=-(long)SY>>7; + + cyx=((long)SX*(long)CZ+16384L>>15)*(long)SY - (long)CX*(long)SZ>>15+7; + cyy=((long)SX*(long)SY+16384L>>15)*(long)SZ + (long)CX*(long)CZ>>15+7; + cyz=(long)CY*(long)SX>>15+7; + + czx=((long)CX*(long)CZ+16384L>>15)*(long)SY + (long)SX*(long)SZ>>15+7; + czy=((long)CX*(long)SY+16384L>>15)*(long)SZ - (long)SX*(long)CZ>>15+7; + czz=(long)CY*(long)CX>>15+7; + + } + +rotate() + { + int a,b,x,y,z,xx,yy,zz; + + for(a=0;a>1) + (y*cxy>>1) + (z*cxz>>1)>>7)+tx; + object.point[a].yy=yy=((x*cyx>>1) + (y*cyy>>1) + (z*cyz>>1)>>7)+ty; + object.point[a].zz=zz=((x*czx>>1) + (y*czy>>1) + (z*czz>>1)>>7)+dis; + +/* + 1000,1000,1000 + + x*256, y*213, / ( +*/ + + object.point[a].xxx=(xx*256L)/zz+160+160; + object.point[a].yyy=(yy*142L)/zz+66; + } + } + +sort_faces() + { + int a=0,b,c,x,y,z,p=0; + long ax,ay,az,bx,by,bz,kx,ky,kz,nx,ny,nz,s,l; + + while(a0) { a++; continue; } + + s=(ls_x*nx+ls_y*ny+ls_z*nz)/250000+32; + light_src[p]=s; + c=object.pg[a].color; + if(lls[p]!=light_src[p]) + { + shadepal(&fpal[c*64*3],&pal[c*64*3], light_src[p]); + lls[p]=light_src[p]; + } + + ptodraw[p++].p=a++; + } + polys=p; + } + + +draw() + { + int a=0,b,c,f,x,y,z; + long ax,ay,az,bx,by,bz,kx,ky,kz,nx,ny,nz,s; + + for(a=0;a + +IF (ccc AND 1) EQ 1 + +lc2_&ccc=$+2 + mov bx, [ds:si+0c200h] +lc1_&ccc=$+2 + mov ah, [ds:ccc*32 + bx + 0c100h] +lc4_&ccc=$+2 + mov bx, [ds:ccc*64 + di + 0c400h] +lc3_&ccc=$+2 + add ah, [ds:bx + di + 0c300h] +ELSE +lc2_&ccc=$+2 + mov bx, [ds:si+0c200h] +lc1_&ccc=$+2 + mov al, [ds:ccc*32 + bx + 0c100h] +lc4_&ccc=$+2 + mov bx, [ds:ccc*64 + di + 0c400h] +lc3_&ccc=$+2 + add al, [ds:bx + di + 0c300h] +ENDIF +IF (ccc AND 3) EQ 2 + shl eax, 16d +ENDIF +IF (ccc AND 3) EQ 0 + mov [es:ccc], eax +ENDIF + ENDM + pop di si es ds + ret +ENDP + +PROC C setplzparas + + ARG c1:word, c2:word, c3:word, c4:word + + IRP ccc, <0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83> + mov ax, [c1] + add ax, OFFSET psini+ccc*8 + mov [word (cs:lc1_&ccc)], ax + mov ax, [c2] + shl ax, 1d + add ax, OFFSET lsini16-ccc*8+80*8 + mov [word (cs:lc2_&ccc)], ax + mov ax, [c3] + add ax, OFFSET psini-ccc*4+80*4 + mov [word (cs:lc3_&ccc)], ax + mov ax, [c4] + shl ax, 1d + add ax, OFFSET lsini4+ccc*32 + mov [word (cs:lc4_&ccc)], ax + ENDM + ret +ENDP + +PUBLIC C set_plzstart + +PROC C set_plzstart + + ARG start:word + + mov dx, 3d4h + mov al, 18h ; linecompare + mov ah, [Byte start] + out dx, ax + mov al, 07h + mov ah, [Byte start+1] + shl ah, 4d + and ah, 10h + or ah, 0fh + out dx, ax ; 8th bit + ret + +ENDP + + +ENDS +END diff --git a/u2orig/ASMYT.OBJ b/u2orig/ASMYT.OBJ new file mode 100755 index 0000000..cccfe42 Binary files /dev/null and b/u2orig/ASMYT.OBJ differ diff --git a/u2orig/COPPER.ASM b/u2orig/COPPER.ASM new file mode 100755 index 0000000..c7a6209 --- /dev/null +++ b/u2orig/COPPER.ASM @@ -0,0 +1,300 @@ + IDEAL + MODEL large + P386 + +EXTRN C l1:word, C l2:word, C l3:word, C l4:word, C k1:word, C k2:word, C k3:word, C k4:word +EXTRN C il1:word, C il2:word, C il3:word, C il4:word, C ik1:word, C ik2:word, C ik3:word, C ik4:word + +CODESEG + +PUBLIC C frame_count, C init_copper, C close_copper, C cop_drop, C cop_pal, C do_pal +PUBLIC C cop_scrl, C cop_start, C cop_plz + +frame_count dw 0 +cop_drop dw 0 +cop_pal dd 0 +do_pal dw 0 +cop_start dw 0 +cop_scrl dw 0 +cop_plz dw 1 + +PROC close_copper + + mov bx, 7 + mov ax, 0 + mov cx, 0 + mov dx, 0 + int 0fch + + mov bx, 7 + mov ax, 1 + mov cx, 0 + mov dx, 0 + int 0fch + + mov bx, 7 + mov ax, 2 + mov cx, 0 + mov dx, 0 + int 0fch + + ret +ENDP + +PROC init_copper + + mov bx, 7 + mov ax, 1 + mov cx, OFFSET copper1 + mov dx, SEG copper1 + int 0fch + + mov bx, 7 + mov ax, 2 + mov cx, OFFSET copper2 + mov dx, SEG copper2 + int 0fch + + mov bx, 7 + mov ax, 0 + mov cx, OFFSET copper3 + mov dx, SEG copper3 + int 0fch + + ret +ENDP + +PROC copper1 + + mov dx, 03d4h + mov al, 0dh + mov ah, [Byte cs:cop_start] + out dx, ax + mov al, 0ch + mov ah, [Byte cs:cop_start+1] + out dx, ax + + mov dx, 3c0h + mov al, 33h + out dx, al + mov ax, [cs:cop_scrl] + out dx, al + + retf +ENDP + +PROC copper2 + + pusha + push ds + + inc [cs:frame_count] + + cmp [cs:do_pal], 0d + je @@no_pal + lds si, [cs:cop_pal] + mov cx, 768d + mov dx, 3c8h + mov al, 0d + out dx, al + inc dx + rep outsb + mov [cs:do_pal], 0d +@@no_pal: + cmp [cs:cop_plz], 0d + je @@l3 + call pompota + call moveplz +@@l3: + cmp [cs:cop_drop], 0d + je @@l1 + call do_drop +@@l1: + pop ds + popa + retf +ENDP + +PROC copper3 + retf +ENDP + +pompi db 0 + +PUBLIC C pompota + +PROC pompota + + mov [cs:cop_scrl], 4d + mov dx, 3d4h + mov ax, 3c18h + out dx, ax + mov ax, 0f07h + out dx, ax ; 8th bit + mov ax, 3c18h + inc [cs:pompi] + test [cs:pompi], 1d + jz @@l1 + mov [cs:cop_scrl], 0d + mov ax, 3d18h +@@l1: + out dx, ax + ret +ENDP + +PUBLIC C moveplz + +PROC moveplz + + push ds + push SEG k1 + pop ds + + add [ds:k1], -3d + and [ds:k1], 4095d + add [ds:k2], -2d + and [ds:k2], 4095d + add [ds:k3], 1d + and [ds:k3], 4095d + add [ds:k4], 2d + and [ds:k4], 4095d + + add [ds:l1], -1d + and [ds:l1], 4095d + add [ds:l2], -2d + and [ds:l2], 4095d + add [ds:l3], 2d + and [ds:l3], 4095d + add [ds:l4], 3d + and [ds:l4], 4095d + + pop ds + ret +ENDP + +LABEL dtau Word +ccc=0 +cccc=0 +REPT 65 ; 43=dy*512/dtý + dw ccc*ccc/4*43/128+60 +ccc=ccc+1 +ENDM + +PUBLIC C fadepal +fadepal db 768*2 dup(?) + +PUBLIC C cop_fadepal +cop_fadepal dd 0 + +PROC do_drop + + inc [cs:cop_drop] + cmp [cs:cop_drop], 64d + ja @@over + + push bx + mov bx, [cs:cop_drop] + shl bx, 1d + add bx, OFFSET dtau + + mov bx, [cs:bx] + mov dx, 3d4h + mov al, 18h ; linecompare + mov ah, bl + out dx, ax + mov al, 07h + mov ah, bh + shl ah, 4d + and ah, 10h + or ah, 0fh + out dx, ax ; 8th bit + + pop bx + ret + +@@over: + cmp [cs:cop_drop], 256d + jae @@end + cmp [cs:cop_drop], 128 + jae @@lll + cmp [cs:cop_drop], 64+32d + ja @@end + +@@lll: mov [Word cs:cop_pal], OFFSET fadepal + mov [Word cs:cop_pal+2], SEG fadepal + mov [do_pal], 1d + + cmp [cs:cop_drop], 65 + je @@l5 + + mov dx, 3d4h + mov ax, 3c18h + out dx, ax + mov ax, 0f07h + out dx, ax ; 8th bit + + push ds si di cx + + lds si, [cs:cop_fadepal] + mov di, OFFSET fadepal + mov cx, 768/16d +@@l4: + ccc=0 + REPT 16 + mov ax, [ds:si+ccc*2] + add [cs:di+ccc+768], al + adc [cs:di+ccc], ah + ccc=ccc+1 + ENDM + add di, 16d + add si, 32d + dec cx + jnz @@l4 + + pop cx di si ds + ret +@@l5: + mov dx, 3d4h + mov ax, 9018h + out dx, ax + mov ax, 1f07h + out dx, ax ; 8th bit + + call initpparas + ret +@@end: + mov [cs:cop_drop], 0d + ret +ENDP + +PROC initpparas + push ax + push ds + push SEG k1 + pop ds + + mov ax, [ds:il1] + mov [ds:l1], ax + mov ax, [ds:il2] + mov [ds:l2], ax + mov ax, [ds:il3] + mov [ds:l3], ax + mov ax, [ds:il4] + mov [ds:l4], ax + + mov ax, [ds:ik1] + mov [ds:k1], ax + mov ax, [ds:ik2] + mov [ds:k2], ax + mov ax, [ds:ik3] + mov [ds:k3], ax + mov ax, [ds:ik4] + mov [ds:k4], ax + + pop ds + pop ax + ret +ENDP + +END + diff --git a/u2orig/COPPER.OBJ b/u2orig/COPPER.OBJ new file mode 100755 index 0000000..211743a Binary files /dev/null and b/u2orig/COPPER.OBJ differ diff --git a/u2orig/INCLUDE.ASM b/u2orig/INCLUDE.ASM new file mode 100755 index 0000000..c31276e --- /dev/null +++ b/u2orig/INCLUDE.ASM @@ -0,0 +1,40 @@ + IDEAL + MODEL large + P386 + +SEGMENT kakka2 para use16 private 'FAR_DATA' +PUBLIC C kuva1 +LABEL kuva1 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka6 para use16 private 'FAR_DATA' +PUBLIC C dist1 +LABEL dist1 BYTE + dw 16384 DUP (?) +ENDS + + + +SEGMENT kakka3 para use16 private 'FAR_DATA' +PUBLIC C kuva2 +LABEL kuva2 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka4 para use16 private 'FAR_DATA' +PUBLIC C kuva3 +LABEL kuva3 WORD + db 16384 dup(?) +ENDS + +SEGMENT kakka5 para use16 private 'FAR_DATA' + +PUBLIC C sinit, C kosinit +LABEL sinit WORD +INCLUDE 'sinit.inc' +kosinit=sinit+512 + +ENDS + +END \ No newline at end of file diff --git a/u2orig/INCLUDE.OBJ b/u2orig/INCLUDE.OBJ new file mode 100755 index 0000000..399b9e2 Binary files /dev/null and b/u2orig/INCLUDE.OBJ differ diff --git a/u2orig/LSINI.PRE b/u2orig/LSINI.PRE new file mode 100755 index 0000000..f524987 --- /dev/null +++ b/u2orig/LSINI.PRE @@ -0,0 +1,513 @@ +{ +64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66 +, 66, 66, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 68, 68, 69 +, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71 +, 71, 71, 71, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73 +, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75 +, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77 +, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 78 +, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79 +, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80 +, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81 +, 81, 81, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89 +, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91 +, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92 +, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94 +, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 96, 96, 96 +, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98 +, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99,100,100,100,100,100 +,100,100,100,101,101,101,101,101,101,101,102,102,102,102,102,102 +,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104 +,104,104,105,105,105,105,105,105,105,105,106,106,106,106,106,106 +,106,106,106,107,107,107,107,107,107,107,107,107,107,108,108,108 +,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109 +,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,110 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112 +,112,112,112,112,112,112,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,112,112,112 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,111 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110 +,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,109 +,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109 +,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108 +,108,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,108,108,108,108,108 +,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,109 +,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109 +,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112 +,112,112,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,112,112,112,112,112,112,112 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,111 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110 +,110,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109 +,109,109,109,109,109,109,109,109,108,108,108,108,108,108,108,108 +,108,108,107,107,107,107,107,107,107,107,107,107,106,106,106,106 +,106,106,106,106,106,105,105,105,105,105,105,105,105,104,104,104 +,104,104,104,104,104,103,103,103,103,103,103,103,103,102,102,102 +,102,102,102,102,102,101,101,101,101,101,101,101,100,100,100,100 +,100,100,100,100, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98 +, 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 96, 96, 96, 96, 96, 96 +, 96, 96, 95, 95, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 94, 94 +, 94, 94, 94, 93, 93, 93, 93, 93, 93, 93, 93, 93, 92, 92, 92, 92 +, 92, 92, 92, 92, 92, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91 +, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89 +, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81 +, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80 +, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 79, 79, 79 +, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 78, 78 +, 78, 78, 78, 78, 78, 78, 78, 78, 77, 77, 77, 77, 77, 77, 77, 77 +, 77, 77, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 75, 75, 75, 75 +, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 73 +, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71 +, 71, 71, 71, 70, 70, 70, 70, 70, 70, 70, 69, 69, 69, 69, 69, 69 +, 68, 68, 68, 68, 68, 68, 68, 67, 67, 67, 67, 67, 67, 66, 66, 66 +, 66, 66, 66, 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, 64, 64, 64 +, 63, 63, 63, 63, 63, 63, 62, 62, 62, 62, 62, 62, 61, 61, 61, 61 +, 61, 61, 60, 60, 60, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 58 +, 58, 58, 58, 58, 58, 57, 57, 57, 57, 57, 57, 57, 56, 56, 56, 56 +, 56, 56, 56, 55, 55, 55, 55, 55, 55, 55, 54, 54, 54, 54, 54, 54 +, 54, 54, 53, 53, 53, 53, 53, 53, 53, 53, 52, 52, 52, 52, 52, 52 +, 52, 52, 52, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 50, 50, 50 +, 50, 50, 50, 50, 50, 50, 50, 49, 49, 49, 49, 49, 49, 49, 49, 49 +, 49, 49, 49, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 +, 48, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47 +, 47, 47, 47, 47, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46 +, 46, 46, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38 +, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36 +, 36, 36, 36, 36, 36, 36, 36, 36, 36, 35, 35, 35, 35, 35, 35, 35 +, 35, 35, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 33, 33, 33, 33 +, 33, 33, 33, 33, 33, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31 +, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 29, 29, 29, 29 +, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27 +, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25 +, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 23, 23, 23 +, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21 +, 21, 21, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19 +, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 18, 18, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 +, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19 +, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19 +, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21 +, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23 +, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25 +, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27 +, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29 +, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31 +, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33 +, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35 +, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36 +, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38 +, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46 +, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47 +, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48 +, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49 +, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50 +, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52 +, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54 +, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56 +, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58 +, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 61, 61, 61 +, 61, 61, 61, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63 +, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66 +, 66, 66, 67, 67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 68, 68, 69 +, 69, 69, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70, 71, 71, 71, 71 +, 71, 71, 71, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73 +, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75 +, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77 +, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 78 +, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79 +, 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80 +, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81 +, 81, 81, 81, 81, 81, 81, 81, 81, 81, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89 +, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 91 +, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92 +, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, 94, 94, 94 +, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 96, 96, 96 +, 96, 96, 96, 96, 96, 97, 97, 97, 97, 97, 97, 97, 98, 98, 98, 98 +, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99,100,100,100,100,100 +,100,100,100,101,101,101,101,101,101,101,102,102,102,102,102,102 +,102,102,103,103,103,103,103,103,103,103,104,104,104,104,104,104 +,104,104,105,105,105,105,105,105,105,105,106,106,106,106,106,106 +,106,106,106,107,107,107,107,107,107,107,107,107,107,108,108,108 +,108,108,108,108,108,108,108,109,109,109,109,109,109,109,109,109 +,109,109,109,110,110,110,110,110,110,110,110,110,110,110,110,110 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112 +,112,112,112,112,112,112,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,112,112,112 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,111 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110 +,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,109 +,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109 +,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108 +,108,108,108,108,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107 +,107,107,107,107,107,107,107,107,107,107,107,108,108,108,108,108 +,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,109 +,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109 +,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112 +,112,112,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115 +,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114 +,114,114,114,114,114,114,114,114,114,114,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113,113 +,113,113,113,113,113,113,113,113,113,112,112,112,112,112,112,112 +,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,111 +,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,110 +,110,110,110,110,110,110,110,110,110,110,110,110,109,109,109,109 +,109,109,109,109,109,109,109,109,108,108,108,108,108,108,108,108 +,108,108,107,107,107,107,107,107,107,107,107,107,106,106,106,106 +,106,106,106,106,106,105,105,105,105,105,105,105,105,104,104,104 +,104,104,104,104,104,103,103,103,103,103,103,103,103,102,102,102 +,102,102,102,102,102,101,101,101,101,101,101,101,100,100,100,100 +,100,100,100,100, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98 +, 98, 98, 98, 97, 97, 97, 97, 97, 97, 97, 96, 96, 96, 96, 96, 96 +, 96, 96, 95, 95, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 94, 94 +, 94, 94, 94, 93, 93, 93, 93, 93, 93, 93, 93, 93, 92, 92, 92, 92 +, 92, 92, 92, 92, 92, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91 +, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 89, 89 +, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88 +, 88, 88, 88, 88, 88, 88, 88, 88, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87 +, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85 +, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84 +, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83 +, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82 +, 82, 82, 82, 82, 82, 82, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81 +, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80 +, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 79, 79, 79 +, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 78, 78 +, 78, 78, 78, 78, 78, 78, 78, 78, 77, 77, 77, 77, 77, 77, 77, 77 +, 77, 77, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 75, 75, 75, 75 +, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 73, 73, 73 +, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 72, 71, 71, 71, 71 +, 71, 71, 71, 70, 70, 70, 70, 70, 70, 70, 69, 69, 69, 69, 69, 69 +, 68, 68, 68, 68, 68, 68, 68, 67, 67, 67, 67, 67, 67, 66, 66, 66 +, 66, 66, 66, 65, 65, 65, 65, 65, 65, 64, 64, 64, 64, 64, 64, 64 +, 63, 63, 63, 63, 63, 63, 62, 62, 62, 62, 62, 62, 61, 61, 61, 61 +, 61, 61, 60, 60, 60, 60, 60, 60, 59, 59, 59, 59, 59, 59, 59, 58 +, 58, 58, 58, 58, 58, 57, 57, 57, 57, 57, 57, 57, 56, 56, 56, 56 +, 56, 56, 56, 55, 55, 55, 55, 55, 55, 55, 54, 54, 54, 54, 54, 54 +, 54, 54, 53, 53, 53, 53, 53, 53, 53, 53, 52, 52, 52, 52, 52, 52 +, 52, 52, 52, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 50, 50, 50 +, 50, 50, 50, 50, 50, 50, 50, 49, 49, 49, 49, 49, 49, 49, 49, 49 +, 49, 49, 49, 49, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 +, 48, 48, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47 +, 47, 47, 47, 47, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46 +, 46, 46, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38 +, 38, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 36, 36 +, 36, 36, 36, 36, 36, 36, 36, 36, 36, 35, 35, 35, 35, 35, 35, 35 +, 35, 35, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34, 33, 33, 33, 33 +, 33, 33, 33, 33, 33, 32, 32, 32, 32, 32, 32, 32, 32, 31, 31, 31 +, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30, 29, 29, 29, 29 +, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27 +, 27, 27, 27, 26, 26, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 25 +, 25, 25, 24, 24, 24, 24, 24, 24, 24, 24, 23, 23, 23, 23, 23, 23 +, 23, 23, 22, 22, 22, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 21 +, 21, 21, 21, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19 +, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 18, 18, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19 +, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19 +, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 +, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 +, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14 +, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15 +, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16 +, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17 +, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18 +, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19 +, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21 +, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23 +, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25 +, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27 +, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29 +, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31 +, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33, 33 +, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34, 34, 34, 35, 35, 35, 35 +, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36 +, 36, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38 +, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39 +, 39, 39, 39, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 +, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 +, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43 +, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44 +, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 +, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46 +, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 47, 47, 47, 47, 47 +, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 48, 48, 48 +, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49 +, 49, 49, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50, 50, 50, 50, 50 +, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52 +, 52, 52, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53, 54, 54, 54 +, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 56, 56, 56, 56 +, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58 +, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 61, 61, 61 +, 61, 61, 61, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63}; \ No newline at end of file diff --git a/u2orig/LSINI16.INC b/u2orig/LSINI16.INC new file mode 100755 index 0000000..fcada5c --- /dev/null +++ b/u2orig/LSINI16.INC @@ -0,0 +1,513 @@ + +dw 1024,1027,1030,1033,1036,1039,1042,1045,1048,1051,1054,1057,1060,1063,1066,1069 +dw 1072,1075,1078,1081,1084,1087,1090,1093,1096,1099,1101,1104,1107,1110,1112,1115 +dw 1118,1121,1123,1126,1128,1131,1133,1136,1138,1141,1143,1146,1148,1150,1153,1155 +dw 1157,1159,1161,1164,1166,1168,1170,1172,1174,1176,1177,1179,1181,1183,1185,1186 +dw 1188,1190,1191,1193,1195,1196,1198,1199,1200,1202,1203,1205,1206,1207,1208,1210 +dw 1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1223,1224,1225 +dw 1226,1226,1227,1228,1228,1229,1230,1230,1231,1232,1232,1233,1233,1234,1234,1235 +dw 1235,1236,1236,1237,1237,1238,1238,1238,1239,1239,1240,1240,1241,1241,1242,1242 +dw 1242,1243,1243,1244,1244,1245,1245,1246,1246,1247,1247,1248,1248,1249,1249,1250 +dw 1251,1251,1252,1252,1253,1254,1254,1255,1256,1257,1257,1258,1259,1260,1261,1262 +dw 1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1275,1276,1277,1278,1280 +dw 1281,1283,1284,1285,1287,1288,1290,1291,1293,1295,1296,1298,1300,1302,1303,1305 +dw 1307,1309,1311,1313,1315,1316,1318,1320,1323,1325,1327,1329,1331,1333,1335,1338 +dw 1340,1342,1344,1347,1349,1351,1354,1356,1358,1361,1363,1366,1368,1370,1373,1375 +dw 1378,1380,1383,1385,1388,1391,1393,1396,1398,1401,1403,1406,1408,1411,1414,1416 +dw 1419,1421,1424,1426,1429,1431,1434,1436,1439,1441,1444,1446,1449,1451,1454,1456 +dw 1459,1461,1463,1466,1468,1470,1473,1475,1477,1480,1482,1484,1486,1488,1490,1492 +dw 1494,1497,1499,1501,1502,1504,1506,1508,1510,1512,1514,1515,1517,1519,1520,1522 +dw 1523,1525,1526,1528,1529,1531,1532,1533,1535,1536,1537,1538,1539,1541,1542,1543 +dw 1544,1545,1545,1546,1547,1548,1549,1549,1550,1551,1551,1552,1553,1553,1554,1554 +dw 1555,1555,1555,1556,1556,1556,1556,1557,1557,1557,1557,1557,1557,1557,1557,1557 +dw 1557,1557,1557,1557,1557,1557,1557,1556,1556,1556,1556,1556,1555,1555,1555,1554 +dw 1554,1554,1553,1553,1553,1552,1552,1552,1551,1551,1550,1550,1550,1549,1549,1548 +dw 1548,1548,1547,1547,1546,1546,1546,1545,1545,1544,1544,1544,1543,1543,1543,1543 +dw 1542,1542,1542,1542,1541,1541,1541,1541,1541,1541,1541,1540,1540,1540,1540,1540 +dw 1540,1540,1541,1541,1541,1541,1541,1541,1542,1542,1542,1543,1543,1543,1544,1544 +dw 1545,1545,1546,1546,1547,1548,1548,1549,1550,1550,1551,1552,1553,1554,1554,1555 +dw 1556,1557,1558,1559,1560,1562,1563,1564,1565,1566,1567,1569,1570,1571,1573,1574 +dw 1575,1577,1578,1580,1581,1582,1584,1585,1587,1589,1590,1592,1593,1595,1597,1598 +dw 1600,1602,1603,1605,1607,1608,1610,1612,1614,1615,1617,1619,1621,1622,1624,1626 +dw 1628,1629,1631,1633,1635,1637,1638,1640,1642,1644,1645,1647,1649,1650,1652,1654 +dw 1655,1657,1659,1660,1662,1664,1665,1667,1668,1670,1671,1673,1674,1676,1677,1678 +dw 1680,1681,1682,1684,1685,1686,1687,1689,1690,1691,1692,1693,1694,1695,1696,1697 +dw 1698,1699,1700,1700,1701,1702,1703,1703,1704,1705,1705,1706,1706,1707,1707,1707 +dw 1708,1708,1709,1709,1709,1709,1709,1710,1710,1710,1710,1710,1710,1710,1710,1710 +dw 1709,1709,1709,1709,1709,1708,1708,1708,1707,1707,1707,1706,1706,1705,1705,1704 +dw 1704,1703,1702,1702,1701,1701,1700,1699,1698,1698,1697,1696,1695,1695,1694,1693 +dw 1692,1692,1691,1690,1689,1688,1687,1687,1686,1685,1684,1683,1682,1681,1681,1680 +dw 1679,1678,1677,1676,1676,1675,1674,1673,1672,1672,1671,1670,1669,1669,1668,1667 +dw 1667,1666,1665,1665,1664,1663,1663,1662,1662,1661,1661,1661,1660,1660,1659,1659 +dw 1659,1658,1658,1658,1658,1658,1657,1657,1657,1657,1657,1657,1657,1657,1658,1658 +dw 1658,1658,1658,1659,1659,1659,1660,1660,1660,1661,1661,1662,1663,1663,1664,1665 +dw 1665,1666,1667,1668,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1680 +dw 1681,1682,1683,1685,1686,1687,1688,1690,1691,1693,1694,1696,1697,1698,1700,1702 +dw 1703,1705,1706,1708,1709,1711,1713,1714,1716,1718,1719,1721,1723,1724,1726,1728 +dw 1729,1731,1733,1735,1736,1738,1740,1741,1743,1745,1747,1748,1750,1752,1753,1755 +dw 1757,1758,1760,1762,1763,1765,1766,1768,1770,1771,1773,1774,1776,1777,1779,1780 +dw 1781,1783,1784,1786,1787,1788,1790,1791,1792,1793,1794,1796,1797,1798,1799,1800 +dw 1801,1802,1803,1804,1805,1805,1806,1807,1808,1809,1809,1810,1811,1811,1812,1812 +dw 1813,1813,1814,1814,1815,1815,1815,1816,1816,1816,1816,1817,1817,1817,1817,1817 +dw 1817,1817,1817,1817,1817,1817,1817,1816,1816,1816,1816,1816,1815,1815,1815,1814 +dw 1814,1813,1813,1813,1812,1812,1811,1811,1810,1810,1809,1809,1808,1807,1807,1806 +dw 1806,1805,1804,1804,1803,1802,1802,1801,1800,1800,1799,1798,1798,1797,1797,1796 +dw 1795,1795,1794,1793,1793,1792,1791,1791,1790,1790,1789,1788,1788,1787,1787,1786 +dw 1786,1785,1785,1785,1784,1784,1783,1783,1783,1782,1782,1782,1782,1781,1781,1781 +dw 1781,1781,1781,1781,1781,1781,1781,1781,1781,1781,1781,1782,1782,1782,1782,1783 +dw 1783,1783,1784,1784,1785,1785,1786,1786,1787,1788,1788,1789,1790,1790,1791,1792 +dw 1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1805,1806,1807,1808,1810 +dw 1811,1812,1814,1815,1817,1818,1820,1821,1823,1824,1826,1827,1829,1831,1832,1834 +dw 1836,1837,1839,1841,1842,1844,1846,1848,1849,1851,1853,1855,1857,1858,1860,1862 +dw 1864,1866,1868,1869,1871,1873,1875,1877,1879,1880,1882,1884,1886,1888,1889,1891 +dw 1893,1895,1896,1898,1900,1902,1903,1905,1907,1908,1910,1911,1913,1915,1916,1918 +dw 1919,1921,1922,1923,1925,1926,1927,1929,1930,1931,1933,1934,1935,1936,1937,1938 +dw 1939,1940,1941,1942,1943,1944,1945,1946,1946,1947,1948,1949,1949,1950,1950,1951 +dw 1951,1952,1952,1953,1953,1954,1954,1954,1954,1955,1955,1955,1955,1955,1955,1955 +dw 1955,1955,1955,1955,1954,1954,1954,1954,1954,1953,1953,1953,1952,1952,1951,1951 +dw 1950,1950,1949,1949,1948,1947,1947,1946,1945,1945,1944,1943,1943,1942,1941,1940 +dw 1939,1939,1938,1937,1936,1935,1934,1933,1932,1932,1931,1930,1929,1928,1927,1926 +dw 1925,1924,1923,1922,1921,1921,1920,1919,1918,1917,1916,1915,1914,1913,1913,1912 +dw 1911,1910,1909,1909,1908,1907,1906,1906,1905,1904,1903,1903,1902,1902,1901,1900 +dw 1900,1899,1899,1898,1898,1897,1897,1897,1896,1896,1896,1895,1895,1895,1895,1895 +dw 1894,1894,1894,1894,1894,1894,1894,1894,1894,1894,1895,1895,1895,1895,1895,1896 +dw 1896,1896,1897,1897,1898,1898,1899,1899,1900,1900,1901,1901,1902,1903,1903,1904 +dw 1905,1905,1906,1907,1908,1909,1910,1910,1911,1912,1913,1914,1915,1916,1917,1918 +dw 1919,1920,1921,1922,1923,1924,1925,1926,1927,1929,1930,1931,1932,1933,1934,1935 +dw 1936,1937,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952 +dw 1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1963,1964,1965,1966,1966 +dw 1967,1968,1968,1969,1969,1970,1970,1971,1971,1972,1972,1973,1973,1973,1973,1974 +dw 1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1973,1973,1973,1973 +dw 1972,1972,1971,1971,1970,1970,1969,1968,1968,1967,1966,1965,1965,1964,1963,1962 +dw 1961,1960,1959,1958,1957,1955,1954,1953,1952,1951,1949,1948,1946,1945,1944,1942 +dw 1941,1939,1938,1936,1934,1933,1931,1930,1928,1926,1924,1923,1921,1919,1917,1915 +dw 1914,1912,1910,1908,1906,1904,1902,1900,1898,1896,1894,1893,1891,1889,1887,1885 +dw 1883,1881,1879,1877,1875,1873,1871,1869,1867,1865,1863,1861,1859,1857,1855,1853 +dw 1851,1849,1847,1845,1843,1841,1840,1838,1836,1834,1832,1830,1829,1827,1825,1824 +dw 1822,1820,1819,1817,1815,1814,1812,1811,1809,1808,1806,1805,1804,1802,1801,1800 +dw 1798,1797,1796,1795,1793,1792,1791,1790,1789,1788,1787,1786,1785,1784,1783,1782 +dw 1782,1781,1780,1779,1778,1778,1777,1776,1776,1775,1775,1774,1774,1773,1773,1772 +dw 1772,1771,1771,1771,1770,1770,1770,1770,1769,1769,1769,1769,1769,1768,1768,1768 +dw 1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768 +dw 1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768 +dw 1768,1768,1768,1768,1767,1767,1767,1767,1767,1767,1766,1766,1766,1766,1765,1765 +dw 1765,1764,1764,1764,1763,1763,1762,1762,1761,1761,1760,1759,1759,1758,1757,1757 +dw 1756,1755,1754,1753,1753,1752,1751,1750,1749,1748,1746,1745,1744,1743,1742,1740 +dw 1739,1738,1736,1735,1734,1732,1731,1729,1727,1726,1724,1722,1721,1719,1717,1715 +dw 1713,1712,1710,1708,1706,1704,1702,1700,1698,1695,1693,1691,1689,1687,1684,1682 +dw 1680,1677,1675,1673,1670,1668,1665,1663,1660,1658,1655,1653,1650,1648,1645,1642 +dw 1640,1637,1634,1632,1629,1626,1624,1621,1618,1616,1613,1610,1607,1605,1602,1599 +dw 1597,1594,1591,1588,1586,1583,1580,1577,1575,1572,1569,1567,1564,1561,1559,1556 +dw 1553,1551,1548,1546,1543,1541,1538,1536,1533,1531,1528,1526,1523,1521,1519,1516 +dw 1514,1512,1510,1507,1505,1503,1501,1499,1497,1495,1492,1490,1489,1487,1485,1483 +dw 1481,1479,1477,1476,1474,1472,1471,1469,1467,1466,1464,1463,1461,1460,1458,1457 +dw 1456,1454,1453,1452,1451,1450,1449,1447,1446,1445,1444,1443,1442,1441,1441,1440 +dw 1439,1438,1437,1437,1436,1435,1435,1434,1433,1433,1432,1432,1431,1431,1430,1430 +dw 1429,1429,1428,1428,1428,1427,1427,1427,1426,1426,1426,1425,1425,1425,1425,1424 +dw 1424,1424,1424,1424,1423,1423,1423,1423,1423,1422,1422,1422,1422,1422,1421,1421 +dw 1421,1421,1421,1420,1420,1420,1420,1419,1419,1419,1418,1418,1418,1417,1417,1417 +dw 1416,1416,1415,1415,1414,1414,1413,1413,1412,1412,1411,1410,1410,1409,1408,1408 +dw 1407,1406,1405,1404,1403,1402,1402,1401,1400,1399,1397,1396,1395,1394,1393,1392 +dw 1390,1389,1388,1387,1385,1384,1382,1381,1379,1378,1376,1375,1373,1372,1370,1368 +dw 1366,1365,1363,1361,1359,1357,1356,1354,1352,1350,1348,1346,1344,1342,1340,1337 +dw 1335,1333,1331,1329,1327,1324,1322,1320,1317,1315,1313,1311,1308,1306,1303,1301 +dw 1299,1296,1294,1291,1289,1287,1284,1282,1279,1277,1274,1272,1269,1267,1264,1262 +dw 1259,1257,1254,1252,1250,1247,1245,1242,1240,1237,1235,1233,1230,1228,1226,1223 +dw 1221,1219,1216,1214,1212,1210,1207,1205,1203,1201,1199,1197,1195,1193,1191,1189 +dw 1187,1185,1183,1181,1179,1177,1175,1174,1172,1170,1169,1167,1165,1164,1162,1161 +dw 1159,1158,1156,1155,1154,1152,1151,1150,1148,1147,1146,1145,1144,1143,1142,1141 +dw 1140,1139,1138,1137,1137,1136,1135,1134,1134,1133,1133,1132,1131,1131,1130,1130 +dw 1130,1129,1129,1129,1128,1128,1128,1128,1127,1127,1127,1127,1127,1127,1127,1127 +dw 1127,1127,1127,1127,1127,1127,1127,1127,1128,1128,1128,1128,1128,1129,1129,1129 +dw 1129,1130,1130,1130,1130,1131,1131,1131,1131,1132,1132,1132,1133,1133,1133,1133 +dw 1134,1134,1134,1134,1135,1135,1135,1135,1136,1136,1136,1136,1136,1136,1137,1137 +dw 1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1136,1136,1136,1136,1136 +dw 1135,1135,1135,1134,1134,1133,1133,1133,1132,1132,1131,1130,1130,1129,1128,1128 +dw 1127,1126,1125,1124,1124,1123,1122,1121,1120,1119,1118,1117,1115,1114,1113,1112 +dw 1111,1109,1108,1107,1105,1104,1102,1101,1099,1098,1096,1095,1093,1092,1090,1088 +dw 1087,1085,1083,1081,1080,1078,1076,1074,1072,1070,1068,1067,1065,1063,1061,1059 +dw 1057,1055,1053,1051,1049,1047,1044,1042,1040,1038,1036,1034,1032,1030,1028,1026 +dw 1024,1021,1019,1017,1015,1013,1011,1009,1007,1005,1003,1000, 998, 996, 994, 992 +dw 990, 988, 986, 984, 982, 980, 979, 977, 975, 973, 971, 969, 967, 966, 964, 962 +dw 960, 959, 957, 955, 954, 952, 951, 949, 948, 946, 945, 943, 942, 940, 939, 938 +dw 936, 935, 934, 933, 932, 930, 929, 928, 927, 926, 925, 924, 923, 923, 922, 921 +dw 920, 919, 919, 918, 917, 917, 916, 915, 915, 914, 914, 914, 913, 913, 912, 912 +dw 912, 911, 911, 911, 911, 911, 910, 910, 910, 910, 910, 910, 910, 910, 910, 910 +dw 910, 910, 910, 911, 911, 911, 911, 911, 911, 912, 912, 912, 912, 913, 913, 913 +dw 913, 914, 914, 914, 914, 915, 915, 915, 916, 916, 916, 916, 917, 917, 917, 917 +dw 918, 918, 918, 918, 919, 919, 919, 919, 919, 920, 920, 920, 920, 920, 920, 920 +dw 920, 920, 920, 920, 920, 920, 920, 920, 920, 919, 919, 919, 919, 918, 918, 918 +dw 917, 917, 917, 916, 916, 915, 914, 914, 913, 913, 912, 911, 910, 910, 909, 908 +dw 907, 906, 905, 904, 903, 902, 901, 900, 899, 897, 896, 895, 893, 892, 891, 889 +dw 888, 886, 885, 883, 882, 880, 878, 877, 875, 873, 872, 870, 868, 866, 864, 862 +dw 860, 858, 856, 854, 852, 850, 848, 846, 844, 842, 840, 837, 835, 833, 831, 828 +dw 826, 824, 821, 819, 817, 814, 812, 810, 807, 805, 802, 800, 797, 795, 793, 790 +dw 788, 785, 783, 780, 778, 775, 773, 770, 768, 765, 763, 760, 758, 756, 753, 751 +dw 748, 746, 744, 741, 739, 736, 734, 732, 730, 727, 725, 723, 720, 718, 716, 714 +dw 712, 710, 707, 705, 703, 701, 699, 697, 695, 693, 691, 690, 688, 686, 684, 682 +dw 681, 679, 677, 675, 674, 672, 671, 669, 668, 666, 665, 663, 662, 660, 659, 658 +dw 657, 655, 654, 653, 652, 651, 650, 648, 647, 646, 645, 645, 644, 643, 642, 641 +dw 640, 639, 639, 638, 637, 637, 636, 635, 635, 634, 634, 633, 633, 632, 632, 631 +dw 631, 630, 630, 630, 629, 629, 629, 628, 628, 628, 627, 627, 627, 627, 626, 626 +dw 626, 626, 626, 625, 625, 625, 625, 625, 624, 624, 624, 624, 624, 623, 623, 623 +dw 623, 623, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 619, 619, 619, 618 +dw 618, 617, 617, 616, 616, 615, 615, 614, 614, 613, 612, 612, 611, 610, 610, 609 +dw 608, 607, 606, 606, 605, 604, 603, 602, 601, 600, 598, 597, 596, 595, 594, 593 +dw 591, 590, 589, 587, 586, 584, 583, 581, 580, 578, 576, 575, 573, 571, 570, 568 +dw 566, 564, 562, 560, 558, 557, 555, 552, 550, 548, 546, 544, 542, 540, 537, 535 +dw 533, 531, 528, 526, 524, 521, 519, 516, 514, 511, 509, 506, 504, 501, 499, 496 +dw 494, 491, 488, 486, 483, 480, 478, 475, 472, 470, 467, 464, 461, 459, 456, 453 +dw 450, 448, 445, 442, 440, 437, 434, 431, 429, 426, 423, 421, 418, 415, 413, 410 +dw 407, 405, 402, 399, 397, 394, 392, 389, 387, 384, 382, 379, 377, 374, 372, 370 +dw 367, 365, 363, 360, 358, 356, 354, 352, 349, 347, 345, 343, 341, 339, 337, 335 +dw 334, 332, 330, 328, 326, 325, 323, 321, 320, 318, 316, 315, 313, 312, 311, 309 +dw 308, 307, 305, 304, 303, 302, 301, 299, 298, 297, 296, 295, 294, 294, 293, 292 +dw 291, 290, 290, 289, 288, 288, 287, 286, 286, 285, 285, 284, 284, 283, 283, 283 +dw 282, 282, 282, 281, 281, 281, 281, 280, 280, 280, 280, 280, 280, 279, 279, 279 +dw 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279 +dw 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279 +dw 279, 279, 279, 279, 278, 278, 278, 278, 278, 277, 277, 277, 277, 276, 276, 276 +dw 275, 275, 274, 274, 273, 273, 272, 272, 271, 271, 270, 269, 269, 268, 267, 266 +dw 265, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 252, 251, 250 +dw 249, 247, 246, 245, 243, 242, 241, 239, 238, 236, 235, 233, 232, 230, 228, 227 +dw 225, 223, 222, 220, 218, 217, 215, 213, 211, 209, 207, 206, 204, 202, 200, 198 +dw 196, 194, 192, 190, 188, 186, 184, 182, 180, 178, 176, 174, 172, 170, 168, 166 +dw 164, 162, 160, 158, 156, 154, 153, 151, 149, 147, 145, 143, 141, 139, 137, 135 +dw 133, 132, 130, 128, 126, 124, 123, 121, 119, 117, 116, 114, 113, 111, 109, 108 +dw 106, 105, 103, 102, 101, 99, 98, 96, 95, 94, 93, 92, 90, 89, 88, 87 +dw 86, 85, 84, 83, 82, 82, 81, 80, 79, 79, 78, 77, 77, 76, 76, 75 +dw 75, 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73 +dw 73, 73, 74, 74, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79 +dw 80, 81, 81, 82, 83, 84, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93 +dw 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 110 +dw 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127 +dw 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 137, 138, 139, 140, 141, 142 +dw 142, 143, 144, 144, 145, 146, 146, 147, 147, 148, 148, 149, 149, 150, 150, 151 +dw 151, 151, 152, 152, 152, 152, 152, 153, 153, 153, 153, 153, 153, 153, 153, 153 +dw 153, 152, 152, 152, 152, 152, 151, 151, 151, 150, 150, 150, 149, 149, 148, 148 +dw 147, 147, 146, 145, 145, 144, 144, 143, 142, 141, 141, 140, 139, 138, 138, 137 +dw 136, 135, 134, 134, 133, 132, 131, 130, 129, 128, 127, 126, 126, 125, 124, 123 +dw 122, 121, 120, 119, 118, 117, 116, 115, 115, 114, 113, 112, 111, 110, 109, 108 +dw 108, 107, 106, 105, 104, 104, 103, 102, 102, 101, 100, 100, 99, 98, 98, 97 +dw 97, 96, 96, 95, 95, 94, 94, 94, 93, 93, 93, 93, 93, 92, 92, 92 +dw 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 94, 94, 95, 95 +dw 95, 96, 97, 97, 98, 98, 99, 100, 101, 101, 102, 103, 104, 105, 106, 107 +dw 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 120, 121, 122, 124, 125, 126 +dw 128, 129, 131, 132, 134, 136, 137, 139, 140, 142, 144, 145, 147, 149, 151, 152 +dw 154, 156, 158, 159, 161, 163, 165, 167, 168, 170, 172, 174, 176, 178, 179, 181 +dw 183, 185, 187, 189, 190, 192, 194, 196, 198, 199, 201, 203, 205, 206, 208, 210 +dw 211, 213, 215, 216, 218, 220, 221, 223, 224, 226, 227, 229, 230, 232, 233, 235 +dw 236, 237, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253 +dw 254, 255, 256, 257, 257, 258, 259, 259, 260, 261, 261, 262, 262, 263, 263, 264 +dw 264, 264, 265, 265, 265, 265, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266 +dw 266, 266, 266, 266, 265, 265, 265, 265, 264, 264, 264, 263, 263, 262, 262, 262 +dw 261, 261, 260, 260, 259, 259, 258, 257, 257, 256, 256, 255, 254, 254, 253, 252 +dw 252, 251, 250, 250, 249, 249, 248, 247, 247, 246, 245, 245, 244, 243, 243, 242 +dw 241, 241, 240, 240, 239, 238, 238, 237, 237, 236, 236, 235, 235, 234, 234, 234 +dw 233, 233, 232, 232, 232, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230 +dw 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 232, 232, 232, 233, 233, 234 +dw 234, 235, 235, 236, 236, 237, 238, 238, 239, 240, 241, 242, 242, 243, 244, 245 +dw 246, 247, 248, 249, 250, 251, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264 +dw 266, 267, 268, 270, 271, 273, 274, 276, 277, 279, 281, 282, 284, 285, 287, 289 +dw 290, 292, 294, 295, 297, 299, 300, 302, 304, 306, 307, 309, 311, 312, 314, 316 +dw 318, 319, 321, 323, 324, 326, 328, 329, 331, 333, 334, 336, 338, 339, 341, 342 +dw 344, 345, 347, 349, 350, 351, 353, 354, 356, 357, 359, 360, 361, 362, 364, 365 +dw 366, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 379, 380, 381 +dw 382, 382, 383, 384, 384, 385, 386, 386, 387, 387, 387, 388, 388, 388, 389, 389 +dw 389, 389, 389, 390, 390, 390, 390, 390, 390, 390, 390, 389, 389, 389, 389, 389 +dw 388, 388, 388, 387, 387, 386, 386, 386, 385, 385, 384, 384, 383, 382, 382, 381 +dw 380, 380, 379, 378, 378, 377, 376, 375, 375, 374, 373, 372, 371, 371, 370, 369 +dw 368, 367, 366, 366, 365, 364, 363, 362, 361, 360, 360, 359, 358, 357, 356, 355 +dw 355, 354, 353, 352, 352, 351, 350, 349, 349, 348, 347, 346, 346, 345, 345, 344 +dw 343, 343, 342, 342, 341, 341, 340, 340, 340, 339, 339, 339, 338, 338, 338, 338 +dw 338, 337, 337, 337, 337, 337, 337, 337, 337, 337, 338, 338, 338, 338, 338, 339 +dw 339, 340, 340, 340, 341, 341, 342, 342, 343, 344, 344, 345, 346, 347, 347, 348 +dw 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 360, 361, 362, 363, 365, 366 +dw 367, 369, 370, 371, 373, 374, 376, 377, 379, 380, 382, 383, 385, 387, 388, 390 +dw 392, 393, 395, 397, 398, 400, 402, 403, 405, 407, 409, 410, 412, 414, 416, 418 +dw 419, 421, 423, 425, 426, 428, 430, 432, 433, 435, 437, 439, 440, 442, 444, 445 +dw 447, 449, 450, 452, 454, 455, 457, 458, 460, 462, 463, 465, 466, 467, 469, 470 +dw 472, 473, 474, 476, 477, 478, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490 +dw 491, 492, 493, 493, 494, 495, 496, 497, 497, 498, 499, 499, 500, 501, 501, 502 +dw 502, 503, 503, 504, 504, 504, 505, 505, 505, 506, 506, 506, 506, 506, 506, 507 +dw 507, 507, 507, 507, 507, 507, 506, 506, 506, 506, 506, 506, 506, 505, 505, 505 +dw 505, 504, 504, 504, 504, 503, 503, 503, 502, 502, 501, 501, 501, 500, 500, 499 +dw 499, 499, 498, 498, 497, 497, 497, 496, 496, 495, 495, 495, 494, 494, 494, 493 +dw 493, 493, 492, 492, 492, 491, 491, 491, 491, 491, 490, 490, 490, 490, 490, 490 +dw 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 491, 491, 491, 491, 492, 492 +dw 492, 493, 493, 494, 494, 495, 496, 496, 497, 498, 498, 499, 500, 501, 502, 502 +dw 503, 504, 505, 506, 508, 509, 510, 511, 512, 514, 515, 516, 518, 519, 521, 522 +dw 524, 525, 527, 528, 530, 532, 533, 535, 537, 539, 541, 543, 545, 546, 548, 550 +dw 553, 555, 557, 559, 561, 563, 565, 567, 570, 572, 574, 577, 579, 581, 584, 586 +dw 588, 591, 593, 596, 598, 601, 603, 606, 608, 611, 613, 616, 618, 621, 623, 626 +dw 628, 631, 633, 636, 639, 641, 644, 646, 649, 651, 654, 656, 659, 662, 664, 667 +dw 669, 672, 674, 677, 679, 681, 684, 686, 689, 691, 693, 696, 698, 700, 703, 705 +dw 707, 709, 712, 714, 716, 718, 720, 722, 724, 727, 729, 731, 732, 734, 736, 738 +dw 740, 742, 744, 745, 747, 749, 751, 752, 754, 756, 757, 759, 760, 762, 763, 764 +dw 766, 767, 769, 770, 771, 772, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783 +dw 784, 785, 786, 787, 788, 789, 790, 790, 791, 792, 793, 793, 794, 795, 795, 796 +dw 796, 797, 798, 798, 799, 799, 800, 800, 801, 801, 802, 802, 803, 803, 804, 804 +dw 805, 805, 805, 806, 806, 807, 807, 808, 808, 809, 809, 809, 810, 810, 811, 811 +dw 812, 812, 813, 813, 814, 814, 815, 815, 816, 817, 817, 818, 819, 819, 820, 821 +dw 821, 822, 823, 824, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835 +dw 836, 837, 839, 840, 841, 842, 844, 845, 847, 848, 849, 851, 852, 854, 856, 857 +dw 859, 861, 862, 864, 866, 868, 870, 871, 873, 875, 877, 879, 881, 883, 886, 888 +dw 890, 892, 894, 897, 899, 901, 904, 906, 909, 911, 914, 916, 919, 921, 924, 926 +dw 929, 932, 935, 937, 940, 943, 946, 948, 951, 954, 957, 960, 963, 966, 969, 972 +dw 975, 978, 981, 984, 987, 990, 993, 996, 999,1002,1005,1008,1011,1014,1017,1020 +dw 1023,1027,1030,1033,1036,1039,1042,1045,1048,1051,1054,1057,1060,1063,1066,1069 +dw 1072,1075,1078,1081,1084,1087,1090,1093,1096,1099,1101,1104,1107,1110,1112,1115 +dw 1118,1121,1123,1126,1128,1131,1133,1136,1138,1141,1143,1146,1148,1150,1153,1155 +dw 1157,1159,1161,1164,1166,1168,1170,1172,1174,1176,1177,1179,1181,1183,1185,1186 +dw 1188,1190,1191,1193,1195,1196,1198,1199,1200,1202,1203,1205,1206,1207,1208,1210 +dw 1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1223,1224,1225 +dw 1226,1226,1227,1228,1228,1229,1230,1230,1231,1232,1232,1233,1233,1234,1234,1235 +dw 1235,1236,1236,1237,1237,1238,1238,1238,1239,1239,1240,1240,1241,1241,1242,1242 +dw 1242,1243,1243,1244,1244,1245,1245,1246,1246,1247,1247,1248,1248,1249,1249,1250 +dw 1251,1251,1252,1252,1253,1254,1254,1255,1256,1257,1257,1258,1259,1260,1261,1262 +dw 1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1275,1276,1277,1278,1280 +dw 1281,1283,1284,1285,1287,1288,1290,1291,1293,1295,1296,1298,1300,1302,1303,1305 +dw 1307,1309,1311,1313,1315,1316,1318,1320,1323,1325,1327,1329,1331,1333,1335,1338 +dw 1340,1342,1344,1347,1349,1351,1354,1356,1358,1361,1363,1366,1368,1370,1373,1375 +dw 1378,1380,1383,1385,1388,1391,1393,1396,1398,1401,1403,1406,1408,1411,1414,1416 +dw 1419,1421,1424,1426,1429,1431,1434,1436,1439,1441,1444,1446,1449,1451,1454,1456 +dw 1459,1461,1463,1466,1468,1470,1473,1475,1477,1480,1482,1484,1486,1488,1490,1492 +dw 1494,1497,1499,1501,1502,1504,1506,1508,1510,1512,1514,1515,1517,1519,1520,1522 +dw 1523,1525,1526,1528,1529,1531,1532,1533,1535,1536,1537,1538,1539,1541,1542,1543 +dw 1544,1545,1545,1546,1547,1548,1549,1549,1550,1551,1551,1552,1553,1553,1554,1554 +dw 1555,1555,1555,1556,1556,1556,1556,1557,1557,1557,1557,1557,1557,1557,1557,1557 +dw 1557,1557,1557,1557,1557,1557,1557,1556,1556,1556,1556,1556,1555,1555,1555,1554 +dw 1554,1554,1553,1553,1553,1552,1552,1552,1551,1551,1550,1550,1550,1549,1549,1548 +dw 1548,1548,1547,1547,1546,1546,1546,1545,1545,1544,1544,1544,1543,1543,1543,1543 +dw 1542,1542,1542,1542,1541,1541,1541,1541,1541,1541,1541,1540,1540,1540,1540,1540 +dw 1540,1540,1541,1541,1541,1541,1541,1541,1542,1542,1542,1543,1543,1543,1544,1544 +dw 1545,1545,1546,1546,1547,1548,1548,1549,1550,1550,1551,1552,1553,1554,1554,1555 +dw 1556,1557,1558,1559,1560,1562,1563,1564,1565,1566,1567,1569,1570,1571,1573,1574 +dw 1575,1577,1578,1580,1581,1582,1584,1585,1587,1589,1590,1592,1593,1595,1597,1598 +dw 1600,1602,1603,1605,1607,1608,1610,1612,1614,1615,1617,1619,1621,1622,1624,1626 +dw 1628,1629,1631,1633,1635,1637,1638,1640,1642,1644,1645,1647,1649,1650,1652,1654 +dw 1655,1657,1659,1660,1662,1664,1665,1667,1668,1670,1671,1673,1674,1676,1677,1678 +dw 1680,1681,1682,1684,1685,1686,1687,1689,1690,1691,1692,1693,1694,1695,1696,1697 +dw 1698,1699,1700,1700,1701,1702,1703,1703,1704,1705,1705,1706,1706,1707,1707,1707 +dw 1708,1708,1709,1709,1709,1709,1709,1710,1710,1710,1710,1710,1710,1710,1710,1710 +dw 1709,1709,1709,1709,1709,1708,1708,1708,1707,1707,1707,1706,1706,1705,1705,1704 +dw 1704,1703,1702,1702,1701,1701,1700,1699,1698,1698,1697,1696,1695,1695,1694,1693 +dw 1692,1692,1691,1690,1689,1688,1687,1687,1686,1685,1684,1683,1682,1681,1681,1680 +dw 1679,1678,1677,1676,1676,1675,1674,1673,1672,1672,1671,1670,1669,1669,1668,1667 +dw 1667,1666,1665,1665,1664,1663,1663,1662,1662,1661,1661,1661,1660,1660,1659,1659 +dw 1659,1658,1658,1658,1658,1658,1657,1657,1657,1657,1657,1657,1657,1657,1658,1658 +dw 1658,1658,1658,1659,1659,1659,1660,1660,1660,1661,1661,1662,1663,1663,1664,1665 +dw 1665,1666,1667,1668,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1680 +dw 1681,1682,1683,1685,1686,1687,1688,1690,1691,1693,1694,1696,1697,1698,1700,1702 +dw 1703,1705,1706,1708,1709,1711,1713,1714,1716,1718,1719,1721,1723,1724,1726,1728 +dw 1729,1731,1733,1735,1736,1738,1740,1741,1743,1745,1747,1748,1750,1752,1753,1755 +dw 1757,1758,1760,1762,1763,1765,1766,1768,1770,1771,1773,1774,1776,1777,1779,1780 +dw 1781,1783,1784,1786,1787,1788,1790,1791,1792,1793,1794,1796,1797,1798,1799,1800 +dw 1801,1802,1803,1804,1805,1805,1806,1807,1808,1809,1809,1810,1811,1811,1812,1812 +dw 1813,1813,1814,1814,1815,1815,1815,1816,1816,1816,1816,1817,1817,1817,1817,1817 +dw 1817,1817,1817,1817,1817,1817,1817,1816,1816,1816,1816,1816,1815,1815,1815,1814 +dw 1814,1813,1813,1813,1812,1812,1811,1811,1810,1810,1809,1809,1808,1807,1807,1806 +dw 1806,1805,1804,1804,1803,1802,1802,1801,1800,1800,1799,1798,1798,1797,1797,1796 +dw 1795,1795,1794,1793,1793,1792,1791,1791,1790,1790,1789,1788,1788,1787,1787,1786 +dw 1786,1785,1785,1785,1784,1784,1783,1783,1783,1782,1782,1782,1782,1781,1781,1781 +dw 1781,1781,1781,1781,1781,1781,1781,1781,1781,1781,1781,1782,1782,1782,1782,1783 +dw 1783,1783,1784,1784,1785,1785,1786,1786,1787,1788,1788,1789,1790,1790,1791,1792 +dw 1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1805,1806,1807,1808,1810 +dw 1811,1812,1814,1815,1817,1818,1820,1821,1823,1824,1826,1827,1829,1831,1832,1834 +dw 1836,1837,1839,1841,1842,1844,1846,1848,1849,1851,1853,1855,1857,1858,1860,1862 +dw 1864,1866,1868,1869,1871,1873,1875,1877,1879,1880,1882,1884,1886,1888,1889,1891 +dw 1893,1895,1896,1898,1900,1902,1903,1905,1907,1908,1910,1911,1913,1915,1916,1918 +dw 1919,1921,1922,1923,1925,1926,1927,1929,1930,1931,1933,1934,1935,1936,1937,1938 +dw 1939,1940,1941,1942,1943,1944,1945,1946,1946,1947,1948,1949,1949,1950,1950,1951 +dw 1951,1952,1952,1953,1953,1954,1954,1954,1954,1955,1955,1955,1955,1955,1955,1955 +dw 1955,1955,1955,1955,1954,1954,1954,1954,1954,1953,1953,1953,1952,1952,1951,1951 +dw 1950,1950,1949,1949,1948,1947,1947,1946,1945,1945,1944,1943,1943,1942,1941,1940 +dw 1939,1939,1938,1937,1936,1935,1934,1933,1932,1932,1931,1930,1929,1928,1927,1926 +dw 1925,1924,1923,1922,1921,1921,1920,1919,1918,1917,1916,1915,1914,1913,1913,1912 +dw 1911,1910,1909,1909,1908,1907,1906,1906,1905,1904,1903,1903,1902,1902,1901,1900 +dw 1900,1899,1899,1898,1898,1897,1897,1897,1896,1896,1896,1895,1895,1895,1895,1895 +dw 1894,1894,1894,1894,1894,1894,1894,1894,1894,1894,1895,1895,1895,1895,1895,1896 +dw 1896,1896,1897,1897,1898,1898,1899,1899,1900,1900,1901,1901,1902,1903,1903,1904 +dw 1905,1905,1906,1907,1908,1909,1910,1910,1911,1912,1913,1914,1915,1916,1917,1918 +dw 1919,1920,1921,1922,1923,1924,1925,1926,1927,1929,1930,1931,1932,1933,1934,1935 +dw 1936,1937,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952 +dw 1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1963,1964,1965,1966,1966 +dw 1967,1968,1968,1969,1969,1970,1970,1971,1971,1972,1972,1973,1973,1973,1973,1974 +dw 1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1974,1973,1973,1973,1973 +dw 1972,1972,1971,1971,1970,1970,1969,1968,1968,1967,1966,1965,1965,1964,1963,1962 +dw 1961,1960,1959,1958,1957,1955,1954,1953,1952,1951,1949,1948,1946,1945,1944,1942 +dw 1941,1939,1938,1936,1934,1933,1931,1930,1928,1926,1924,1923,1921,1919,1917,1915 +dw 1914,1912,1910,1908,1906,1904,1902,1900,1898,1896,1894,1893,1891,1889,1887,1885 +dw 1883,1881,1879,1877,1875,1873,1871,1869,1867,1865,1863,1861,1859,1857,1855,1853 +dw 1851,1849,1847,1845,1843,1841,1840,1838,1836,1834,1832,1830,1829,1827,1825,1824 +dw 1822,1820,1819,1817,1815,1814,1812,1811,1809,1808,1806,1805,1804,1802,1801,1800 +dw 1798,1797,1796,1795,1793,1792,1791,1790,1789,1788,1787,1786,1785,1784,1783,1782 +dw 1782,1781,1780,1779,1778,1778,1777,1776,1776,1775,1775,1774,1774,1773,1773,1772 +dw 1772,1771,1771,1771,1770,1770,1770,1770,1769,1769,1769,1769,1769,1768,1768,1768 +dw 1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768 +dw 1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768,1768 +dw 1768,1768,1768,1768,1767,1767,1767,1767,1767,1767,1766,1766,1766,1766,1765,1765 +dw 1765,1764,1764,1764,1763,1763,1762,1762,1761,1761,1760,1759,1759,1758,1757,1757 +dw 1756,1755,1754,1753,1753,1752,1751,1750,1749,1748,1746,1745,1744,1743,1742,1740 +dw 1739,1738,1736,1735,1734,1732,1731,1729,1727,1726,1724,1722,1721,1719,1717,1715 +dw 1713,1712,1710,1708,1706,1704,1702,1700,1698,1695,1693,1691,1689,1687,1684,1682 +dw 1680,1677,1675,1673,1670,1668,1665,1663,1660,1658,1655,1653,1650,1648,1645,1642 +dw 1640,1637,1634,1632,1629,1626,1624,1621,1618,1616,1613,1610,1607,1605,1602,1599 +dw 1597,1594,1591,1588,1586,1583,1580,1577,1575,1572,1569,1567,1564,1561,1559,1556 +dw 1553,1551,1548,1546,1543,1541,1538,1536,1533,1531,1528,1526,1523,1521,1519,1516 +dw 1514,1512,1510,1507,1505,1503,1501,1499,1497,1495,1492,1490,1489,1487,1485,1483 +dw 1481,1479,1477,1476,1474,1472,1471,1469,1467,1466,1464,1463,1461,1460,1458,1457 +dw 1456,1454,1453,1452,1451,1450,1449,1447,1446,1445,1444,1443,1442,1441,1441,1440 +dw 1439,1438,1437,1437,1436,1435,1435,1434,1433,1433,1432,1432,1431,1431,1430,1430 +dw 1429,1429,1428,1428,1428,1427,1427,1427,1426,1426,1426,1425,1425,1425,1425,1424 +dw 1424,1424,1424,1424,1423,1423,1423,1423,1423,1422,1422,1422,1422,1422,1421,1421 +dw 1421,1421,1421,1420,1420,1420,1420,1419,1419,1419,1418,1418,1418,1417,1417,1417 +dw 1416,1416,1415,1415,1414,1414,1413,1413,1412,1412,1411,1410,1410,1409,1408,1408 +dw 1407,1406,1405,1404,1403,1402,1402,1401,1400,1399,1397,1396,1395,1394,1393,1392 +dw 1390,1389,1388,1387,1385,1384,1382,1381,1379,1378,1376,1375,1373,1372,1370,1368 +dw 1366,1365,1363,1361,1359,1357,1356,1354,1352,1350,1348,1346,1344,1342,1340,1337 +dw 1335,1333,1331,1329,1327,1324,1322,1320,1317,1315,1313,1311,1308,1306,1303,1301 +dw 1299,1296,1294,1291,1289,1287,1284,1282,1279,1277,1274,1272,1269,1267,1264,1262 +dw 1259,1257,1254,1252,1250,1247,1245,1242,1240,1237,1235,1233,1230,1228,1226,1223 +dw 1221,1219,1216,1214,1212,1210,1207,1205,1203,1201,1199,1197,1195,1193,1191,1189 +dw 1187,1185,1183,1181,1179,1177,1175,1174,1172,1170,1169,1167,1165,1164,1162,1161 +dw 1159,1158,1156,1155,1154,1152,1151,1150,1148,1147,1146,1145,1144,1143,1142,1141 +dw 1140,1139,1138,1137,1137,1136,1135,1134,1134,1133,1133,1132,1131,1131,1130,1130 +dw 1130,1129,1129,1129,1128,1128,1128,1128,1127,1127,1127,1127,1127,1127,1127,1127 +dw 1127,1127,1127,1127,1127,1127,1127,1127,1128,1128,1128,1128,1128,1129,1129,1129 +dw 1129,1130,1130,1130,1130,1131,1131,1131,1131,1132,1132,1132,1133,1133,1133,1133 +dw 1134,1134,1134,1134,1135,1135,1135,1135,1136,1136,1136,1136,1136,1136,1137,1137 +dw 1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1137,1136,1136,1136,1136,1136 +dw 1135,1135,1135,1134,1134,1133,1133,1133,1132,1132,1131,1130,1130,1129,1128,1128 +dw 1127,1126,1125,1124,1124,1123,1122,1121,1120,1119,1118,1117,1115,1114,1113,1112 +dw 1111,1109,1108,1107,1105,1104,1102,1101,1099,1098,1096,1095,1093,1092,1090,1088 +dw 1087,1085,1083,1081,1080,1078,1076,1074,1072,1070,1068,1067,1065,1063,1061,1059 +dw 1057,1055,1053,1051,1049,1047,1044,1042,1040,1038,1036,1034,1032,1030,1028,1026 +dw 1024,1021,1019,1017,1015,1013,1011,1009,1007,1005,1003,1000, 998, 996, 994, 992 +dw 990, 988, 986, 984, 982, 980, 979, 977, 975, 973, 971, 969, 967, 966, 964, 962 +dw 960, 959, 957, 955, 954, 952, 951, 949, 948, 946, 945, 943, 942, 940, 939, 938 +dw 936, 935, 934, 933, 932, 930, 929, 928, 927, 926, 925, 924, 923, 923, 922, 921 +dw 920, 919, 919, 918, 917, 917, 916, 915, 915, 914, 914, 914, 913, 913, 912, 912 +dw 912, 911, 911, 911, 911, 911, 910, 910, 910, 910, 910, 910, 910, 910, 910, 910 +dw 910, 910, 910, 911, 911, 911, 911, 911, 911, 912, 912, 912, 912, 913, 913, 913 +dw 913, 914, 914, 914, 914, 915, 915, 915, 916, 916, 916, 916, 917, 917, 917, 917 +dw 918, 918, 918, 918, 919, 919, 919, 919, 919, 920, 920, 920, 920, 920, 920, 920 +dw 920, 920, 920, 920, 920, 920, 920, 920, 920, 919, 919, 919, 919, 918, 918, 918 +dw 917, 917, 917, 916, 916, 915, 914, 914, 913, 913, 912, 911, 910, 910, 909, 908 +dw 907, 906, 905, 904, 903, 902, 901, 900, 899, 897, 896, 895, 893, 892, 891, 889 +dw 888, 886, 885, 883, 882, 880, 878, 877, 875, 873, 872, 870, 868, 866, 864, 862 +dw 860, 858, 856, 854, 852, 850, 848, 846, 844, 842, 840, 837, 835, 833, 831, 828 +dw 826, 824, 821, 819, 817, 814, 812, 810, 807, 805, 802, 800, 797, 795, 793, 790 +dw 788, 785, 783, 780, 778, 775, 773, 770, 768, 765, 763, 760, 758, 756, 753, 751 +dw 748, 746, 744, 741, 739, 736, 734, 732, 730, 727, 725, 723, 720, 718, 716, 714 +dw 712, 710, 707, 705, 703, 701, 699, 697, 695, 693, 691, 690, 688, 686, 684, 682 +dw 681, 679, 677, 675, 674, 672, 671, 669, 668, 666, 665, 663, 662, 660, 659, 658 +dw 657, 655, 654, 653, 652, 651, 650, 648, 647, 646, 645, 645, 644, 643, 642, 641 +dw 640, 639, 639, 638, 637, 637, 636, 635, 635, 634, 634, 633, 633, 632, 632, 631 +dw 631, 630, 630, 630, 629, 629, 629, 628, 628, 628, 627, 627, 627, 627, 626, 626 +dw 626, 626, 626, 625, 625, 625, 625, 625, 624, 624, 624, 624, 624, 623, 623, 623 +dw 623, 623, 622, 622, 622, 622, 621, 621, 621, 620, 620, 620, 619, 619, 619, 618 +dw 618, 617, 617, 616, 616, 615, 615, 614, 614, 613, 612, 612, 611, 610, 610, 609 +dw 608, 607, 606, 606, 605, 604, 603, 602, 601, 600, 598, 597, 596, 595, 594, 593 +dw 591, 590, 589, 587, 586, 584, 583, 581, 580, 578, 576, 575, 573, 571, 570, 568 +dw 566, 564, 562, 560, 558, 557, 555, 552, 550, 548, 546, 544, 542, 540, 537, 535 +dw 533, 531, 528, 526, 524, 521, 519, 516, 514, 511, 509, 506, 504, 501, 499, 496 +dw 494, 491, 488, 486, 483, 480, 478, 475, 472, 470, 467, 464, 461, 459, 456, 453 +dw 450, 448, 445, 442, 440, 437, 434, 431, 429, 426, 423, 421, 418, 415, 413, 410 +dw 407, 405, 402, 399, 397, 394, 392, 389, 387, 384, 382, 379, 377, 374, 372, 370 +dw 367, 365, 363, 360, 358, 356, 354, 352, 349, 347, 345, 343, 341, 339, 337, 335 +dw 334, 332, 330, 328, 326, 325, 323, 321, 320, 318, 316, 315, 313, 312, 311, 309 +dw 308, 307, 305, 304, 303, 302, 301, 299, 298, 297, 296, 295, 294, 294, 293, 292 +dw 291, 290, 290, 289, 288, 288, 287, 286, 286, 285, 285, 284, 284, 283, 283, 283 +dw 282, 282, 282, 281, 281, 281, 281, 280, 280, 280, 280, 280, 280, 279, 279, 279 +dw 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279 +dw 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279 +dw 279, 279, 279, 279, 278, 278, 278, 278, 278, 277, 277, 277, 277, 276, 276, 276 +dw 275, 275, 274, 274, 273, 273, 272, 272, 271, 271, 270, 269, 269, 268, 267, 266 +dw 265, 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, 255, 254, 252, 251, 250 +dw 249, 247, 246, 245, 243, 242, 241, 239, 238, 236, 235, 233, 232, 230, 228, 227 +dw 225, 223, 222, 220, 218, 217, 215, 213, 211, 209, 207, 206, 204, 202, 200, 198 +dw 196, 194, 192, 190, 188, 186, 184, 182, 180, 178, 176, 174, 172, 170, 168, 166 +dw 164, 162, 160, 158, 156, 154, 153, 151, 149, 147, 145, 143, 141, 139, 137, 135 +dw 133, 132, 130, 128, 126, 124, 123, 121, 119, 117, 116, 114, 113, 111, 109, 108 +dw 106, 105, 103, 102, 101, 99, 98, 96, 95, 94, 93, 92, 90, 89, 88, 87 +dw 86, 85, 84, 83, 82, 82, 81, 80, 79, 79, 78, 77, 77, 76, 76, 75 +dw 75, 74, 74, 74, 74, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73 +dw 73, 73, 74, 74, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 79, 79 +dw 80, 81, 81, 82, 83, 84, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93 +dw 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 110 +dw 111, 112, 113, 114, 115, 116, 117, 118, 120, 121, 122, 123, 124, 125, 126, 127 +dw 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 137, 138, 139, 140, 141, 142 +dw 142, 143, 144, 144, 145, 146, 146, 147, 147, 148, 148, 149, 149, 150, 150, 151 +dw 151, 151, 152, 152, 152, 152, 152, 153, 153, 153, 153, 153, 153, 153, 153, 153 +dw 153, 152, 152, 152, 152, 152, 151, 151, 151, 150, 150, 150, 149, 149, 148, 148 +dw 147, 147, 146, 145, 145, 144, 144, 143, 142, 141, 141, 140, 139, 138, 138, 137 +dw 136, 135, 134, 134, 133, 132, 131, 130, 129, 128, 127, 126, 126, 125, 124, 123 +dw 122, 121, 120, 119, 118, 117, 116, 115, 115, 114, 113, 112, 111, 110, 109, 108 +dw 108, 107, 106, 105, 104, 104, 103, 102, 102, 101, 100, 100, 99, 98, 98, 97 +dw 97, 96, 96, 95, 95, 94, 94, 94, 93, 93, 93, 93, 93, 92, 92, 92 +dw 92, 92, 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, 94, 94, 95, 95 +dw 95, 96, 97, 97, 98, 98, 99, 100, 101, 101, 102, 103, 104, 105, 106, 107 +dw 108, 109, 110, 111, 112, 113, 114, 116, 117, 118, 120, 121, 122, 124, 125, 126 +dw 128, 129, 131, 132, 134, 136, 137, 139, 140, 142, 144, 145, 147, 149, 151, 152 +dw 154, 156, 158, 159, 161, 163, 165, 167, 168, 170, 172, 174, 176, 178, 179, 181 +dw 183, 185, 187, 189, 190, 192, 194, 196, 198, 199, 201, 203, 205, 206, 208, 210 +dw 211, 213, 215, 216, 218, 220, 221, 223, 224, 226, 227, 229, 230, 232, 233, 235 +dw 236, 237, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253 +dw 254, 255, 256, 257, 257, 258, 259, 259, 260, 261, 261, 262, 262, 263, 263, 264 +dw 264, 264, 265, 265, 265, 265, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266 +dw 266, 266, 266, 266, 265, 265, 265, 265, 264, 264, 264, 263, 263, 262, 262, 262 +dw 261, 261, 260, 260, 259, 259, 258, 257, 257, 256, 256, 255, 254, 254, 253, 252 +dw 252, 251, 250, 250, 249, 249, 248, 247, 247, 246, 245, 245, 244, 243, 243, 242 +dw 241, 241, 240, 240, 239, 238, 238, 237, 237, 236, 236, 235, 235, 234, 234, 234 +dw 233, 233, 232, 232, 232, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230 +dw 230, 230, 230, 230, 230, 230, 231, 231, 231, 231, 232, 232, 232, 233, 233, 234 +dw 234, 235, 235, 236, 236, 237, 238, 238, 239, 240, 241, 242, 242, 243, 244, 245 +dw 246, 247, 248, 249, 250, 251, 253, 254, 255, 256, 257, 259, 260, 261, 263, 264 +dw 266, 267, 268, 270, 271, 273, 274, 276, 277, 279, 281, 282, 284, 285, 287, 289 +dw 290, 292, 294, 295, 297, 299, 300, 302, 304, 306, 307, 309, 311, 312, 314, 316 +dw 318, 319, 321, 323, 324, 326, 328, 329, 331, 333, 334, 336, 338, 339, 341, 342 +dw 344, 345, 347, 349, 350, 351, 353, 354, 356, 357, 359, 360, 361, 362, 364, 365 +dw 366, 367, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 379, 380, 381 +dw 382, 382, 383, 384, 384, 385, 386, 386, 387, 387, 387, 388, 388, 388, 389, 389 +dw 389, 389, 389, 390, 390, 390, 390, 390, 390, 390, 390, 389, 389, 389, 389, 389 +dw 388, 388, 388, 387, 387, 386, 386, 386, 385, 385, 384, 384, 383, 382, 382, 381 +dw 380, 380, 379, 378, 378, 377, 376, 375, 375, 374, 373, 372, 371, 371, 370, 369 +dw 368, 367, 366, 366, 365, 364, 363, 362, 361, 360, 360, 359, 358, 357, 356, 355 +dw 355, 354, 353, 352, 352, 351, 350, 349, 349, 348, 347, 346, 346, 345, 345, 344 +dw 343, 343, 342, 342, 341, 341, 340, 340, 340, 339, 339, 339, 338, 338, 338, 338 +dw 338, 337, 337, 337, 337, 337, 337, 337, 337, 337, 338, 338, 338, 338, 338, 339 +dw 339, 340, 340, 340, 341, 341, 342, 342, 343, 344, 344, 345, 346, 347, 347, 348 +dw 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 360, 361, 362, 363, 365, 366 +dw 367, 369, 370, 371, 373, 374, 376, 377, 379, 380, 382, 383, 385, 387, 388, 390 +dw 392, 393, 395, 397, 398, 400, 402, 403, 405, 407, 409, 410, 412, 414, 416, 418 +dw 419, 421, 423, 425, 426, 428, 430, 432, 433, 435, 437, 439, 440, 442, 444, 445 +dw 447, 449, 450, 452, 454, 455, 457, 458, 460, 462, 463, 465, 466, 467, 469, 470 +dw 472, 473, 474, 476, 477, 478, 480, 481, 482, 483, 484, 485, 487, 488, 489, 490 +dw 491, 492, 493, 493, 494, 495, 496, 497, 497, 498, 499, 499, 500, 501, 501, 502 +dw 502, 503, 503, 504, 504, 504, 505, 505, 505, 506, 506, 506, 506, 506, 506, 507 +dw 507, 507, 507, 507, 507, 507, 506, 506, 506, 506, 506, 506, 506, 505, 505, 505 +dw 505, 504, 504, 504, 504, 503, 503, 503, 502, 502, 501, 501, 501, 500, 500, 499 +dw 499, 499, 498, 498, 497, 497, 497, 496, 496, 495, 495, 495, 494, 494, 494, 493 +dw 493, 493, 492, 492, 492, 491, 491, 491, 491, 491, 490, 490, 490, 490, 490, 490 +dw 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 491, 491, 491, 491, 492, 492 +dw 492, 493, 493, 494, 494, 495, 496, 496, 497, 498, 498, 499, 500, 501, 502, 502 +dw 503, 504, 505, 506, 508, 509, 510, 511, 512, 514, 515, 516, 518, 519, 521, 522 +dw 524, 525, 527, 528, 530, 532, 533, 535, 537, 539, 541, 543, 545, 546, 548, 550 +dw 553, 555, 557, 559, 561, 563, 565, 567, 570, 572, 574, 577, 579, 581, 584, 586 +dw 588, 591, 593, 596, 598, 601, 603, 606, 608, 611, 613, 616, 618, 621, 623, 626 +dw 628, 631, 633, 636, 639, 641, 644, 646, 649, 651, 654, 656, 659, 662, 664, 667 +dw 669, 672, 674, 677, 679, 681, 684, 686, 689, 691, 693, 696, 698, 700, 703, 705 +dw 707, 709, 712, 714, 716, 718, 720, 722, 724, 727, 729, 731, 732, 734, 736, 738 +dw 740, 742, 744, 745, 747, 749, 751, 752, 754, 756, 757, 759, 760, 762, 763, 764 +dw 766, 767, 769, 770, 771, 772, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783 +dw 784, 785, 786, 787, 788, 789, 790, 790, 791, 792, 793, 793, 794, 795, 795, 796 +dw 796, 797, 798, 798, 799, 799, 800, 800, 801, 801, 802, 802, 803, 803, 804, 804 +dw 805, 805, 805, 806, 806, 807, 807, 808, 808, 809, 809, 809, 810, 810, 811, 811 +dw 812, 812, 813, 813, 814, 814, 815, 815, 816, 817, 817, 818, 819, 819, 820, 821 +dw 821, 822, 823, 824, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835 +dw 836, 837, 839, 840, 841, 842, 844, 845, 847, 848, 849, 851, 852, 854, 856, 857 +dw 859, 861, 862, 864, 866, 868, 870, 871, 873, 875, 877, 879, 881, 883, 886, 888 +dw 890, 892, 894, 897, 899, 901, 904, 906, 909, 911, 914, 916, 919, 921, 924, 926 +dw 929, 932, 935, 937, 940, 943, 946, 948, 951, 954, 957, 960, 963, 966, 969, 972 +dw 975, 978, 981, 984, 987, 990, 993, 996, 999,1002,1005,1008,1011,1014,1017,1020 \ No newline at end of file diff --git a/u2orig/LSINI4.INC b/u2orig/LSINI4.INC new file mode 100755 index 0000000..4fb739a --- /dev/null +++ b/u2orig/LSINI4.INC @@ -0,0 +1,513 @@ + +dw 512, 513, 515, 516, 518, 519, 521, 522, 524, 525, 527, 528, 530, 531, 533, 534 +dw 536, 537, 539, 540, 542, 543, 545, 546, 548, 549, 551, 552, 554, 555, 557, 558 +dw 559, 561, 562, 564, 565, 566, 568, 569, 571, 572, 573, 575, 576, 577, 579, 580 +dw 581, 582, 584, 585, 586, 588, 589, 590, 591, 592, 594, 595, 596, 597, 598, 600 +dw 601, 602, 603, 604, 605, 606, 607, 608, 610, 611, 612, 613, 614, 615, 616, 617 +dw 618, 619, 620, 621, 621, 622, 623, 624, 625, 626, 627, 628, 629, 629, 630, 631 +dw 632, 633, 633, 634, 635, 636, 637, 637, 638, 639, 640, 640, 641, 642, 642, 643 +dw 644, 644, 645, 646, 646, 647, 648, 648, 649, 650, 650, 651, 651, 652, 653, 653 +dw 654, 654, 655, 655, 656, 656, 657, 658, 658, 659, 659, 660, 660, 661, 661, 662 +dw 662, 663, 663, 664, 664, 665, 665, 666, 666, 667, 667, 668, 668, 669, 669, 670 +dw 670, 671, 671, 672, 672, 673, 673, 674, 675, 675, 676, 676, 677, 677, 678, 678 +dw 679, 679, 680, 680, 681, 681, 682, 682, 683, 684, 684, 685, 685, 686, 686, 687 +dw 688, 688, 689, 689, 690, 691, 691, 692, 692, 693, 694, 694, 695, 696, 696, 697 +dw 698, 698, 699, 700, 700, 701, 702, 702, 703, 704, 704, 705, 706, 706, 707, 708 +dw 709, 709, 710, 711, 711, 712, 713, 714, 714, 715, 716, 717, 717, 718, 719, 720 +dw 721, 721, 722, 723, 724, 724, 725, 726, 727, 727, 728, 729, 730, 731, 731, 732 +dw 733, 734, 734, 735, 736, 737, 738, 738, 739, 740, 741, 741, 742, 743, 744, 744 +dw 745, 746, 747, 747, 748, 749, 749, 750, 751, 752, 752, 753, 754, 754, 755, 756 +dw 756, 757, 758, 758, 759, 760, 760, 761, 762, 762, 763, 763, 764, 764, 765, 766 +dw 766, 767, 767, 768, 768, 769, 769, 770, 770, 771, 771, 772, 772, 772, 773, 773 +dw 774, 774, 774, 775, 775, 775, 776, 776, 776, 777, 777, 777, 778, 778, 778, 778 +dw 778, 779, 779, 779, 779, 779, 780, 780, 780, 780, 780, 780, 780, 780, 780, 781 +dw 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 780, 780, 780, 780, 780 +dw 780, 780, 780, 780, 780, 779, 779, 779, 779, 779, 779, 778, 778, 778, 778, 778 +dw 777, 777, 777, 777, 776, 776, 776, 776, 775, 775, 775, 775, 774, 774, 774, 773 +dw 773, 773, 772, 772, 772, 772, 771, 771, 771, 770, 770, 770, 769, 769, 769, 768 +dw 768, 768, 767, 767, 767, 767, 766, 766, 766, 765, 765, 765, 764, 764, 764, 764 +dw 763, 763, 763, 763, 762, 762, 762, 762, 761, 761, 761, 761, 760, 760, 760, 760 +dw 760, 760, 759, 759, 759, 759, 759, 759, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 759, 759, 759, 759, 759, 759, 760, 760, 760, 760, 760, 761 +dw 761, 761, 761, 762, 762, 762, 763, 763, 763, 764, 764, 764, 765, 765, 765, 766 +dw 766, 766, 767, 767, 768, 768, 769, 769, 769, 770, 770, 771, 771, 772, 772, 773 +dw 773, 774, 774, 775, 775, 776, 776, 777, 777, 778, 778, 779, 780, 780, 781, 781 +dw 782, 782, 783, 784, 784, 785, 785, 786, 786, 787, 788, 788, 789, 789, 790, 791 +dw 791, 792, 792, 793, 794, 794, 795, 795, 796, 796, 797, 798, 798, 799, 799, 800 +dw 801, 801, 802, 802, 803, 803, 804, 804, 805, 806, 806, 807, 807, 808, 808, 809 +dw 809, 810, 810, 811, 811, 812, 812, 813, 813, 814, 814, 815, 815, 815, 816, 816 +dw 817, 817, 818, 818, 818, 819, 819, 820, 820, 820, 821, 821, 822, 822, 822, 823 +dw 823, 823, 824, 824, 824, 825, 825, 825, 826, 826, 826, 826, 827, 827, 827, 828 +dw 828, 828, 828, 829, 829, 829, 829, 830, 830, 830, 830, 831, 831, 831, 831, 831 +dw 832, 832, 832, 832, 833, 833, 833, 833, 833, 834, 834, 834, 834, 834, 835, 835 +dw 835, 835, 835, 836, 836, 836, 836, 836, 837, 837, 837, 837, 837, 838, 838, 838 +dw 838, 839, 839, 839, 839, 840, 840, 840, 840, 841, 841, 841, 841, 842, 842, 842 +dw 843, 843, 843, 843, 844, 844, 844, 845, 845, 846, 846, 846, 847, 847, 847, 848 +dw 848, 849, 849, 850, 850, 850, 851, 851, 852, 852, 853, 853, 854, 854, 855, 856 +dw 856, 857, 857, 858, 858, 859, 860, 860, 861, 861, 862, 863, 863, 864, 865, 866 +dw 866, 867, 868, 868, 869, 870, 871, 871, 872, 873, 874, 875, 875, 876, 877, 878 +dw 879, 880, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 890, 891, 892 +dw 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 909 +dw 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925 +dw 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942 +dw 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 958 +dw 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 969, 970, 971, 972, 973 +dw 974, 974, 975, 976, 977, 978, 978, 979, 980, 981, 981, 982, 983, 983, 984, 985 +dw 985, 986, 987, 987, 988, 988, 989, 990, 990, 991, 991, 992, 992, 993, 993, 994 +dw 994, 995, 995, 996, 996, 996, 997, 997, 998, 998, 998, 999, 999, 999,1000,1000 +dw 1000,1001,1001,1001,1001,1002,1002,1002,1002,1003,1003,1003,1003,1003,1003,1004 +dw 1004,1004,1004,1004,1004,1004,1004,1004,1004,1005,1005,1005,1005,1005,1005,1005 +dw 1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1004,1004,1004 +dw 1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1003,1003,1003,1003,1003,1003 +dw 1003,1003,1003,1003,1002,1002,1002,1002,1002,1002,1002,1002,1002,1001,1001,1001 +dw 1001,1001,1001,1001,1001,1001,1001,1001,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1001,1001,1001,1001,1001,1001,1001 +dw 1001,1001,1001,1001,1002,1002,1002,1002,1002,1002,1002,1002,1002,1003,1003,1003 +dw 1003,1003,1003,1003,1003,1003,1003,1004,1004,1004,1004,1004,1004,1004,1004,1004 +dw 1004,1004,1004,1004,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005 +dw 1005,1005,1005,1005,1005,1005,1005,1005,1004,1004,1004,1004,1004,1004,1004,1004 +dw 1004,1004,1003,1003,1003,1003,1003,1003,1002,1002,1002,1002,1001,1001,1001,1001 +dw 1000,1000,1000, 999, 999, 999, 998, 998, 998, 997, 997, 996, 996, 996, 995, 995 +dw 994, 994, 993, 993, 992, 992, 991, 991, 990, 990, 989, 988, 988, 987, 987, 986 +dw 985, 985, 984, 983, 983, 982, 981, 981, 980, 979, 978, 978, 977, 976, 975, 974 +dw 974, 973, 972, 971, 970, 969, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960 +dw 959, 958, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945 +dw 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928 +dw 927, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911 +dw 910, 909, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894 +dw 893, 892, 891, 890, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 880 +dw 879, 878, 877, 876, 875, 875, 874, 873, 872, 871, 871, 870, 869, 868, 868, 867 +dw 866, 866, 865, 864, 863, 863, 862, 861, 861, 860, 860, 859, 858, 858, 857, 857 +dw 856, 856, 855, 854, 854, 853, 853, 852, 852, 851, 851, 850, 850, 850, 849, 849 +dw 848, 848, 847, 847, 847, 846, 846, 846, 845, 845, 844, 844, 844, 843, 843, 843 +dw 843, 842, 842, 842, 841, 841, 841, 841, 840, 840, 840, 840, 839, 839, 839, 839 +dw 838, 838, 838, 838, 837, 837, 837, 837, 837, 836, 836, 836, 836, 836, 835, 835 +dw 835, 835, 835, 834, 834, 834, 834, 834, 833, 833, 833, 833, 833, 832, 832, 832 +dw 832, 831, 831, 831, 831, 831, 830, 830, 830, 830, 829, 829, 829, 829, 828, 828 +dw 828, 828, 827, 827, 827, 826, 826, 826, 826, 825, 825, 825, 824, 824, 824, 823 +dw 823, 823, 822, 822, 822, 821, 821, 820, 820, 820, 819, 819, 818, 818, 818, 817 +dw 817, 816, 816, 815, 815, 815, 814, 814, 813, 813, 812, 812, 811, 811, 810, 810 +dw 809, 809, 808, 808, 807, 807, 806, 806, 805, 804, 804, 803, 803, 802, 802, 801 +dw 801, 800, 799, 799, 798, 798, 797, 796, 796, 795, 795, 794, 794, 793, 792, 792 +dw 791, 791, 790, 789, 789, 788, 788, 787, 786, 786, 785, 785, 784, 784, 783, 782 +dw 782, 781, 781, 780, 780, 779, 778, 778, 777, 777, 776, 776, 775, 775, 774, 774 +dw 773, 773, 772, 772, 771, 771, 770, 770, 769, 769, 769, 768, 768, 767, 767, 766 +dw 766, 766, 765, 765, 765, 764, 764, 764, 763, 763, 763, 762, 762, 762, 761, 761 +dw 761, 761, 760, 760, 760, 760, 760, 759, 759, 759, 759, 759, 759, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 759, 759, 759, 759, 759, 760 +dw 760, 760, 760, 760, 760, 761, 761, 761, 761, 762, 762, 762, 762, 763, 763, 763 +dw 763, 764, 764, 764, 764, 765, 765, 765, 766, 766, 766, 767, 767, 767, 767, 768 +dw 768, 768, 769, 769, 769, 770, 770, 770, 771, 771, 771, 772, 772, 772, 772, 773 +dw 773, 773, 774, 774, 774, 775, 775, 775, 775, 776, 776, 776, 776, 777, 777, 777 +dw 777, 778, 778, 778, 778, 778, 779, 779, 779, 779, 779, 779, 780, 780, 780, 780 +dw 780, 780, 780, 780, 780, 780, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781 +dw 781, 781, 780, 780, 780, 780, 780, 780, 780, 780, 780, 779, 779, 779, 779, 779 +dw 778, 778, 778, 778, 778, 777, 777, 777, 776, 776, 776, 775, 775, 775, 774, 774 +dw 774, 773, 773, 772, 772, 772, 771, 771, 770, 770, 769, 769, 768, 768, 767, 767 +dw 766, 766, 765, 764, 764, 763, 763, 762, 762, 761, 760, 760, 759, 758, 758, 757 +dw 756, 756, 755, 754, 754, 753, 752, 752, 751, 750, 749, 749, 748, 747, 747, 746 +dw 745, 744, 744, 743, 742, 741, 741, 740, 739, 738, 738, 737, 736, 735, 734, 734 +dw 733, 732, 731, 731, 730, 729, 728, 727, 727, 726, 725, 724, 724, 723, 722, 721 +dw 721, 720, 719, 718, 717, 717, 716, 715, 714, 714, 713, 712, 711, 711, 710, 709 +dw 709, 708, 707, 706, 706, 705, 704, 704, 703, 702, 702, 701, 700, 700, 699, 698 +dw 698, 697, 696, 696, 695, 694, 694, 693, 692, 692, 691, 691, 690, 689, 689, 688 +dw 688, 687, 686, 686, 685, 685, 684, 684, 683, 682, 682, 681, 681, 680, 680, 679 +dw 679, 678, 678, 677, 677, 676, 676, 675, 675, 674, 673, 673, 672, 672, 671, 671 +dw 670, 670, 669, 669, 668, 668, 667, 667, 666, 666, 665, 665, 664, 664, 663, 663 +dw 662, 662, 661, 661, 660, 660, 659, 659, 658, 658, 657, 656, 656, 655, 655, 654 +dw 654, 653, 653, 652, 651, 651, 650, 650, 649, 648, 648, 647, 646, 646, 645, 644 +dw 644, 643, 642, 642, 641, 640, 640, 639, 638, 637, 637, 636, 635, 634, 633, 633 +dw 632, 631, 630, 629, 629, 628, 627, 626, 625, 624, 623, 622, 621, 621, 620, 619 +dw 618, 617, 616, 615, 614, 613, 612, 611, 610, 608, 607, 606, 605, 604, 603, 602 +dw 601, 600, 598, 597, 596, 595, 594, 592, 591, 590, 589, 588, 586, 585, 584, 582 +dw 581, 580, 579, 577, 576, 575, 573, 572, 571, 569, 568, 566, 565, 564, 562, 561 +dw 559, 558, 557, 555, 554, 552, 551, 549, 548, 546, 545, 543, 542, 540, 539, 537 +dw 536, 534, 533, 531, 530, 528, 527, 525, 524, 522, 521, 519, 518, 516, 515, 513 +dw 512, 510, 508, 507, 505, 504, 502, 501, 499, 498, 496, 495, 493, 492, 490, 489 +dw 487, 486, 484, 483, 481, 480, 478, 477, 475, 474, 472, 471, 469, 468, 466, 465 +dw 464, 462, 461, 459, 458, 457, 455, 454, 452, 451, 450, 448, 447, 446, 444, 443 +dw 442, 441, 439, 438, 437, 435, 434, 433, 432, 431, 429, 428, 427, 426, 425, 423 +dw 422, 421, 420, 419, 418, 417, 416, 415, 413, 412, 411, 410, 409, 408, 407, 406 +dw 405, 404, 403, 402, 402, 401, 400, 399, 398, 397, 396, 395, 394, 394, 393, 392 +dw 391, 390, 390, 389, 388, 387, 386, 386, 385, 384, 383, 383, 382, 381, 381, 380 +dw 379, 379, 378, 377, 377, 376, 375, 375, 374, 373, 373, 372, 372, 371, 370, 370 +dw 369, 369, 368, 368, 367, 367, 366, 365, 365, 364, 364, 363, 363, 362, 362, 361 +dw 361, 360, 360, 359, 359, 358, 358, 357, 357, 356, 356, 355, 355, 354, 354, 353 +dw 353, 352, 352, 351, 351, 350, 350, 349, 348, 348, 347, 347, 346, 346, 345, 345 +dw 344, 344, 343, 343, 342, 342, 341, 341, 340, 339, 339, 338, 338, 337, 337, 336 +dw 335, 335, 334, 334, 333, 332, 332, 331, 331, 330, 329, 329, 328, 327, 327, 326 +dw 325, 325, 324, 323, 323, 322, 321, 321, 320, 319, 319, 318, 317, 317, 316, 315 +dw 314, 314, 313, 312, 312, 311, 310, 309, 309, 308, 307, 306, 306, 305, 304, 303 +dw 302, 302, 301, 300, 299, 299, 298, 297, 296, 296, 295, 294, 293, 292, 292, 291 +dw 290, 289, 289, 288, 287, 286, 285, 285, 284, 283, 282, 282, 281, 280, 279, 279 +dw 278, 277, 276, 276, 275, 274, 274, 273, 272, 271, 271, 270, 269, 269, 268, 267 +dw 267, 266, 265, 265, 264, 263, 263, 262, 261, 261, 260, 260, 259, 259, 258, 257 +dw 257, 256, 256, 255, 255, 254, 254, 253, 253, 252, 252, 251, 251, 251, 250, 250 +dw 249, 249, 249, 248, 248, 248, 247, 247, 247, 246, 246, 246, 245, 245, 245, 245 +dw 245, 244, 244, 244, 244, 244, 243, 243, 243, 243, 243, 243, 243, 243, 243, 242 +dw 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243 +dw 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245 +dw 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 248, 248, 249, 249, 249, 250 +dw 250, 250, 251, 251, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255 +dw 255, 255, 256, 256, 256, 256, 257, 257, 257, 258, 258, 258, 259, 259, 259, 259 +dw 260, 260, 260, 260, 261, 261, 261, 261, 262, 262, 262, 262, 263, 263, 263, 263 +dw 263, 263, 264, 264, 264, 264, 264, 264, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 264, 264, 264, 264, 264, 264, 263, 263, 263, 263, 263, 262 +dw 262, 262, 262, 261, 261, 261, 260, 260, 260, 259, 259, 259, 258, 258, 258, 257 +dw 257, 257, 256, 256, 255, 255, 254, 254, 254, 253, 253, 252, 252, 251, 251, 250 +dw 250, 249, 249, 248, 248, 247, 247, 246, 246, 245, 245, 244, 243, 243, 242, 242 +dw 241, 241, 240, 239, 239, 238, 238, 237, 237, 236, 235, 235, 234, 234, 233, 232 +dw 232, 231, 231, 230, 229, 229, 228, 228, 227, 227, 226, 225, 225, 224, 224, 223 +dw 222, 222, 221, 221, 220, 220, 219, 219, 218, 217, 217, 216, 216, 215, 215, 214 +dw 214, 213, 213, 212, 212, 211, 211, 210, 210, 209, 209, 208, 208, 208, 207, 207 +dw 206, 206, 205, 205, 205, 204, 204, 203, 203, 203, 202, 202, 201, 201, 201, 200 +dw 200, 200, 199, 199, 199, 198, 198, 198, 197, 197, 197, 197, 196, 196, 196, 195 +dw 195, 195, 195, 194, 194, 194, 194, 193, 193, 193, 193, 192, 192, 192, 192, 192 +dw 191, 191, 191, 191, 190, 190, 190, 190, 190, 189, 189, 189, 189, 189, 188, 188 +dw 188, 188, 188, 187, 187, 187, 187, 187, 186, 186, 186, 186, 186, 185, 185, 185 +dw 185, 184, 184, 184, 184, 183, 183, 183, 183, 182, 182, 182, 182, 181, 181, 181 +dw 180, 180, 180, 180, 179, 179, 179, 178, 178, 177, 177, 177, 176, 176, 176, 175 +dw 175, 174, 174, 173, 173, 173, 172, 172, 171, 171, 170, 170, 169, 169, 168, 167 +dw 167, 166, 166, 165, 165, 164, 163, 163, 162, 162, 161, 160, 160, 159, 158, 157 +dw 157, 156, 155, 155, 154, 153, 152, 152, 151, 150, 149, 148, 148, 147, 146, 145 +dw 144, 143, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 133, 132, 131 +dw 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 114 +dw 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98 +dw 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81 +dw 80, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 65 +dw 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 54, 53, 52, 51, 50 +dw 49, 49, 48, 47, 46, 45, 45, 44, 43, 42, 42, 41, 40, 40, 39, 38 +dw 38, 37, 36, 36, 35, 35, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29 +dw 29, 28, 28, 27, 27, 27, 26, 26, 25, 25, 25, 24, 24, 24, 23, 23 +dw 23, 22, 22, 22, 22, 21, 21, 21, 21, 20, 20, 20, 20, 20, 20, 19 +dw 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18 +dw 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19 +dw 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20 +dw 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22 +dw 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22 +dw 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 20 +dw 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19, 19, 19, 19, 19 +dw 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +dw 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19 +dw 19, 19, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22 +dw 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 27, 27, 27, 28, 28 +dw 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 37 +dw 38, 38, 39, 40, 40, 41, 42, 42, 43, 44, 45, 45, 46, 47, 48, 49 +dw 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 +dw 64, 65, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 +dw 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 +dw 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112 +dw 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 +dw 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 143 +dw 144, 145, 146, 147, 148, 148, 149, 150, 151, 152, 152, 153, 154, 155, 155, 156 +dw 157, 157, 158, 159, 160, 160, 161, 162, 162, 163, 163, 164, 165, 165, 166, 166 +dw 167, 167, 168, 169, 169, 170, 170, 171, 171, 172, 172, 173, 173, 173, 174, 174 +dw 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 179, 179, 179, 180, 180, 180 +dw 180, 181, 181, 181, 182, 182, 182, 182, 183, 183, 183, 183, 184, 184, 184, 184 +dw 185, 185, 185, 185, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 188, 188 +dw 188, 188, 188, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 191, 191, 191 +dw 191, 192, 192, 192, 192, 192, 193, 193, 193, 193, 194, 194, 194, 194, 195, 195 +dw 195, 195, 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, 199, 199, 199, 200 +dw 200, 200, 201, 201, 201, 202, 202, 203, 203, 203, 204, 204, 205, 205, 205, 206 +dw 206, 207, 207, 208, 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213 +dw 214, 214, 215, 215, 216, 216, 217, 217, 218, 219, 219, 220, 220, 221, 221, 222 +dw 222, 223, 224, 224, 225, 225, 226, 227, 227, 228, 228, 229, 229, 230, 231, 231 +dw 232, 232, 233, 234, 234, 235, 235, 236, 237, 237, 238, 238, 239, 239, 240, 241 +dw 241, 242, 242, 243, 243, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249 +dw 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 254, 255, 255, 256, 256, 257 +dw 257, 257, 258, 258, 258, 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262 +dw 262, 262, 263, 263, 263, 263, 263, 264, 264, 264, 264, 264, 264, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 264, 264, 264, 264, 264, 264, 263 +dw 263, 263, 263, 263, 263, 262, 262, 262, 262, 261, 261, 261, 261, 260, 260, 260 +dw 260, 259, 259, 259, 259, 258, 258, 258, 257, 257, 257, 256, 256, 256, 256, 255 +dw 255, 255, 254, 254, 254, 253, 253, 253, 252, 252, 252, 251, 251, 251, 251, 250 +dw 250, 250, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 247, 246, 246, 246 +dw 246, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 243, 243, 243, 243 +dw 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242 +dw 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244 +dw 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249 +dw 249, 250, 250, 251, 251, 251, 252, 252, 253, 253, 254, 254, 255, 255, 256, 256 +dw 257, 257, 258, 259, 259, 260, 260, 261, 261, 262, 263, 263, 264, 265, 265, 266 +dw 267, 267, 268, 269, 269, 270, 271, 271, 272, 273, 274, 274, 275, 276, 276, 277 +dw 278, 279, 279, 280, 281, 282, 282, 283, 284, 285, 285, 286, 287, 288, 289, 289 +dw 290, 291, 292, 292, 293, 294, 295, 296, 296, 297, 298, 299, 299, 300, 301, 302 +dw 302, 303, 304, 305, 306, 306, 307, 308, 309, 309, 310, 311, 312, 312, 313, 314 +dw 314, 315, 316, 317, 317, 318, 319, 319, 320, 321, 321, 322, 323, 323, 324, 325 +dw 325, 326, 327, 327, 328, 329, 329, 330, 331, 331, 332, 332, 333, 334, 334, 335 +dw 335, 336, 337, 337, 338, 338, 339, 339, 340, 341, 341, 342, 342, 343, 343, 344 +dw 344, 345, 345, 346, 346, 347, 347, 348, 348, 349, 350, 350, 351, 351, 352, 352 +dw 353, 353, 354, 354, 355, 355, 356, 356, 357, 357, 358, 358, 359, 359, 360, 360 +dw 361, 361, 362, 362, 363, 363, 364, 364, 365, 365, 366, 367, 367, 368, 368, 369 +dw 369, 370, 370, 371, 372, 372, 373, 373, 374, 375, 375, 376, 377, 377, 378, 379 +dw 379, 380, 381, 381, 382, 383, 383, 384, 385, 386, 386, 387, 388, 389, 390, 390 +dw 391, 392, 393, 394, 394, 395, 396, 397, 398, 399, 400, 401, 402, 402, 403, 404 +dw 405, 406, 407, 408, 409, 410, 411, 412, 413, 415, 416, 417, 418, 419, 420, 421 +dw 422, 423, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 437, 438, 439, 441 +dw 442, 443, 444, 446, 447, 448, 450, 451, 452, 454, 455, 457, 458, 459, 461, 462 +dw 464, 465, 466, 468, 469, 471, 472, 474, 475, 477, 478, 480, 481, 483, 484, 486 +dw 487, 489, 490, 492, 493, 495, 496, 498, 499, 501, 502, 504, 505, 507, 508, 510 +dw 511, 513, 515, 516, 518, 519, 521, 522, 524, 525, 527, 528, 530, 531, 533, 534 +dw 536, 537, 539, 540, 542, 543, 545, 546, 548, 549, 551, 552, 554, 555, 557, 558 +dw 559, 561, 562, 564, 565, 566, 568, 569, 571, 572, 573, 575, 576, 577, 579, 580 +dw 581, 582, 584, 585, 586, 588, 589, 590, 591, 592, 594, 595, 596, 597, 598, 600 +dw 601, 602, 603, 604, 605, 606, 607, 608, 610, 611, 612, 613, 614, 615, 616, 617 +dw 618, 619, 620, 621, 621, 622, 623, 624, 625, 626, 627, 628, 629, 629, 630, 631 +dw 632, 633, 633, 634, 635, 636, 637, 637, 638, 639, 640, 640, 641, 642, 642, 643 +dw 644, 644, 645, 646, 646, 647, 648, 648, 649, 650, 650, 651, 651, 652, 653, 653 +dw 654, 654, 655, 655, 656, 656, 657, 658, 658, 659, 659, 660, 660, 661, 661, 662 +dw 662, 663, 663, 664, 664, 665, 665, 666, 666, 667, 667, 668, 668, 669, 669, 670 +dw 670, 671, 671, 672, 672, 673, 673, 674, 675, 675, 676, 676, 677, 677, 678, 678 +dw 679, 679, 680, 680, 681, 681, 682, 682, 683, 684, 684, 685, 685, 686, 686, 687 +dw 688, 688, 689, 689, 690, 691, 691, 692, 692, 693, 694, 694, 695, 696, 696, 697 +dw 698, 698, 699, 700, 700, 701, 702, 702, 703, 704, 704, 705, 706, 706, 707, 708 +dw 709, 709, 710, 711, 711, 712, 713, 714, 714, 715, 716, 717, 717, 718, 719, 720 +dw 721, 721, 722, 723, 724, 724, 725, 726, 727, 727, 728, 729, 730, 731, 731, 732 +dw 733, 734, 734, 735, 736, 737, 738, 738, 739, 740, 741, 741, 742, 743, 744, 744 +dw 745, 746, 747, 747, 748, 749, 749, 750, 751, 752, 752, 753, 754, 754, 755, 756 +dw 756, 757, 758, 758, 759, 760, 760, 761, 762, 762, 763, 763, 764, 764, 765, 766 +dw 766, 767, 767, 768, 768, 769, 769, 770, 770, 771, 771, 772, 772, 772, 773, 773 +dw 774, 774, 774, 775, 775, 775, 776, 776, 776, 777, 777, 777, 778, 778, 778, 778 +dw 778, 779, 779, 779, 779, 779, 780, 780, 780, 780, 780, 780, 780, 780, 780, 781 +dw 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 780, 780, 780, 780, 780 +dw 780, 780, 780, 780, 780, 779, 779, 779, 779, 779, 779, 778, 778, 778, 778, 778 +dw 777, 777, 777, 777, 776, 776, 776, 776, 775, 775, 775, 775, 774, 774, 774, 773 +dw 773, 773, 772, 772, 772, 772, 771, 771, 771, 770, 770, 770, 769, 769, 769, 768 +dw 768, 768, 767, 767, 767, 767, 766, 766, 766, 765, 765, 765, 764, 764, 764, 764 +dw 763, 763, 763, 763, 762, 762, 762, 762, 761, 761, 761, 761, 760, 760, 760, 760 +dw 760, 760, 759, 759, 759, 759, 759, 759, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 759, 759, 759, 759, 759, 759, 760, 760, 760, 760, 760, 761 +dw 761, 761, 761, 762, 762, 762, 763, 763, 763, 764, 764, 764, 765, 765, 765, 766 +dw 766, 766, 767, 767, 768, 768, 769, 769, 769, 770, 770, 771, 771, 772, 772, 773 +dw 773, 774, 774, 775, 775, 776, 776, 777, 777, 778, 778, 779, 780, 780, 781, 781 +dw 782, 782, 783, 784, 784, 785, 785, 786, 786, 787, 788, 788, 789, 789, 790, 791 +dw 791, 792, 792, 793, 794, 794, 795, 795, 796, 796, 797, 798, 798, 799, 799, 800 +dw 801, 801, 802, 802, 803, 803, 804, 804, 805, 806, 806, 807, 807, 808, 808, 809 +dw 809, 810, 810, 811, 811, 812, 812, 813, 813, 814, 814, 815, 815, 815, 816, 816 +dw 817, 817, 818, 818, 818, 819, 819, 820, 820, 820, 821, 821, 822, 822, 822, 823 +dw 823, 823, 824, 824, 824, 825, 825, 825, 826, 826, 826, 826, 827, 827, 827, 828 +dw 828, 828, 828, 829, 829, 829, 829, 830, 830, 830, 830, 831, 831, 831, 831, 831 +dw 832, 832, 832, 832, 833, 833, 833, 833, 833, 834, 834, 834, 834, 834, 835, 835 +dw 835, 835, 835, 836, 836, 836, 836, 836, 837, 837, 837, 837, 837, 838, 838, 838 +dw 838, 839, 839, 839, 839, 840, 840, 840, 840, 841, 841, 841, 841, 842, 842, 842 +dw 843, 843, 843, 843, 844, 844, 844, 845, 845, 846, 846, 846, 847, 847, 847, 848 +dw 848, 849, 849, 850, 850, 850, 851, 851, 852, 852, 853, 853, 854, 854, 855, 856 +dw 856, 857, 857, 858, 858, 859, 860, 860, 861, 861, 862, 863, 863, 864, 865, 866 +dw 866, 867, 868, 868, 869, 870, 871, 871, 872, 873, 874, 875, 875, 876, 877, 878 +dw 879, 880, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 890, 891, 892 +dw 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 909 +dw 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925 +dw 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942 +dw 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 958 +dw 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 969, 970, 971, 972, 973 +dw 974, 974, 975, 976, 977, 978, 978, 979, 980, 981, 981, 982, 983, 983, 984, 985 +dw 985, 986, 987, 987, 988, 988, 989, 990, 990, 991, 991, 992, 992, 993, 993, 994 +dw 994, 995, 995, 996, 996, 996, 997, 997, 998, 998, 998, 999, 999, 999,1000,1000 +dw 1000,1001,1001,1001,1001,1002,1002,1002,1002,1003,1003,1003,1003,1003,1003,1004 +dw 1004,1004,1004,1004,1004,1004,1004,1004,1004,1005,1005,1005,1005,1005,1005,1005 +dw 1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1004,1004,1004 +dw 1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,1003,1003,1003,1003,1003,1003 +dw 1003,1003,1003,1003,1002,1002,1002,1002,1002,1002,1002,1002,1002,1001,1001,1001 +dw 1001,1001,1001,1001,1001,1001,1001,1001,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,1000 +dw 1000,1000,1000,1000,1000,1000,1000,1000,1000,1001,1001,1001,1001,1001,1001,1001 +dw 1001,1001,1001,1001,1002,1002,1002,1002,1002,1002,1002,1002,1002,1003,1003,1003 +dw 1003,1003,1003,1003,1003,1003,1003,1004,1004,1004,1004,1004,1004,1004,1004,1004 +dw 1004,1004,1004,1004,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005 +dw 1005,1005,1005,1005,1005,1005,1005,1005,1004,1004,1004,1004,1004,1004,1004,1004 +dw 1004,1004,1003,1003,1003,1003,1003,1003,1002,1002,1002,1002,1001,1001,1001,1001 +dw 1000,1000,1000, 999, 999, 999, 998, 998, 998, 997, 997, 996, 996, 996, 995, 995 +dw 994, 994, 993, 993, 992, 992, 991, 991, 990, 990, 989, 988, 988, 987, 987, 986 +dw 985, 985, 984, 983, 983, 982, 981, 981, 980, 979, 978, 978, 977, 976, 975, 974 +dw 974, 973, 972, 971, 970, 969, 969, 968, 967, 966, 965, 964, 963, 962, 961, 960 +dw 959, 958, 958, 957, 956, 955, 954, 953, 952, 951, 950, 949, 948, 947, 946, 945 +dw 943, 942, 941, 940, 939, 938, 937, 936, 935, 934, 933, 932, 931, 930, 929, 928 +dw 927, 925, 924, 923, 922, 921, 920, 919, 918, 917, 916, 915, 914, 913, 912, 911 +dw 910, 909, 907, 906, 905, 904, 903, 902, 901, 900, 899, 898, 897, 896, 895, 894 +dw 893, 892, 891, 890, 890, 889, 888, 887, 886, 885, 884, 883, 882, 881, 880, 880 +dw 879, 878, 877, 876, 875, 875, 874, 873, 872, 871, 871, 870, 869, 868, 868, 867 +dw 866, 866, 865, 864, 863, 863, 862, 861, 861, 860, 860, 859, 858, 858, 857, 857 +dw 856, 856, 855, 854, 854, 853, 853, 852, 852, 851, 851, 850, 850, 850, 849, 849 +dw 848, 848, 847, 847, 847, 846, 846, 846, 845, 845, 844, 844, 844, 843, 843, 843 +dw 843, 842, 842, 842, 841, 841, 841, 841, 840, 840, 840, 840, 839, 839, 839, 839 +dw 838, 838, 838, 838, 837, 837, 837, 837, 837, 836, 836, 836, 836, 836, 835, 835 +dw 835, 835, 835, 834, 834, 834, 834, 834, 833, 833, 833, 833, 833, 832, 832, 832 +dw 832, 831, 831, 831, 831, 831, 830, 830, 830, 830, 829, 829, 829, 829, 828, 828 +dw 828, 828, 827, 827, 827, 826, 826, 826, 826, 825, 825, 825, 824, 824, 824, 823 +dw 823, 823, 822, 822, 822, 821, 821, 820, 820, 820, 819, 819, 818, 818, 818, 817 +dw 817, 816, 816, 815, 815, 815, 814, 814, 813, 813, 812, 812, 811, 811, 810, 810 +dw 809, 809, 808, 808, 807, 807, 806, 806, 805, 804, 804, 803, 803, 802, 802, 801 +dw 801, 800, 799, 799, 798, 798, 797, 796, 796, 795, 795, 794, 794, 793, 792, 792 +dw 791, 791, 790, 789, 789, 788, 788, 787, 786, 786, 785, 785, 784, 784, 783, 782 +dw 782, 781, 781, 780, 780, 779, 778, 778, 777, 777, 776, 776, 775, 775, 774, 774 +dw 773, 773, 772, 772, 771, 771, 770, 770, 769, 769, 769, 768, 768, 767, 767, 766 +dw 766, 766, 765, 765, 765, 764, 764, 764, 763, 763, 763, 762, 762, 762, 761, 761 +dw 761, 761, 760, 760, 760, 760, 760, 759, 759, 759, 759, 759, 759, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758 +dw 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 759, 759, 759, 759, 759, 760 +dw 760, 760, 760, 760, 760, 761, 761, 761, 761, 762, 762, 762, 762, 763, 763, 763 +dw 763, 764, 764, 764, 764, 765, 765, 765, 766, 766, 766, 767, 767, 767, 767, 768 +dw 768, 768, 769, 769, 769, 770, 770, 770, 771, 771, 771, 772, 772, 772, 772, 773 +dw 773, 773, 774, 774, 774, 775, 775, 775, 775, 776, 776, 776, 776, 777, 777, 777 +dw 777, 778, 778, 778, 778, 778, 779, 779, 779, 779, 779, 779, 780, 780, 780, 780 +dw 780, 780, 780, 780, 780, 780, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781 +dw 781, 781, 780, 780, 780, 780, 780, 780, 780, 780, 780, 779, 779, 779, 779, 779 +dw 778, 778, 778, 778, 778, 777, 777, 777, 776, 776, 776, 775, 775, 775, 774, 774 +dw 774, 773, 773, 772, 772, 772, 771, 771, 770, 770, 769, 769, 768, 768, 767, 767 +dw 766, 766, 765, 764, 764, 763, 763, 762, 762, 761, 760, 760, 759, 758, 758, 757 +dw 756, 756, 755, 754, 754, 753, 752, 752, 751, 750, 749, 749, 748, 747, 747, 746 +dw 745, 744, 744, 743, 742, 741, 741, 740, 739, 738, 738, 737, 736, 735, 734, 734 +dw 733, 732, 731, 731, 730, 729, 728, 727, 727, 726, 725, 724, 724, 723, 722, 721 +dw 721, 720, 719, 718, 717, 717, 716, 715, 714, 714, 713, 712, 711, 711, 710, 709 +dw 709, 708, 707, 706, 706, 705, 704, 704, 703, 702, 702, 701, 700, 700, 699, 698 +dw 698, 697, 696, 696, 695, 694, 694, 693, 692, 692, 691, 691, 690, 689, 689, 688 +dw 688, 687, 686, 686, 685, 685, 684, 684, 683, 682, 682, 681, 681, 680, 680, 679 +dw 679, 678, 678, 677, 677, 676, 676, 675, 675, 674, 673, 673, 672, 672, 671, 671 +dw 670, 670, 669, 669, 668, 668, 667, 667, 666, 666, 665, 665, 664, 664, 663, 663 +dw 662, 662, 661, 661, 660, 660, 659, 659, 658, 658, 657, 656, 656, 655, 655, 654 +dw 654, 653, 653, 652, 651, 651, 650, 650, 649, 648, 648, 647, 646, 646, 645, 644 +dw 644, 643, 642, 642, 641, 640, 640, 639, 638, 637, 637, 636, 635, 634, 633, 633 +dw 632, 631, 630, 629, 629, 628, 627, 626, 625, 624, 623, 622, 621, 621, 620, 619 +dw 618, 617, 616, 615, 614, 613, 612, 611, 610, 608, 607, 606, 605, 604, 603, 602 +dw 601, 600, 598, 597, 596, 595, 594, 592, 591, 590, 589, 588, 586, 585, 584, 582 +dw 581, 580, 579, 577, 576, 575, 573, 572, 571, 569, 568, 566, 565, 564, 562, 561 +dw 559, 558, 557, 555, 554, 552, 551, 549, 548, 546, 545, 543, 542, 540, 539, 537 +dw 536, 534, 533, 531, 530, 528, 527, 525, 524, 522, 521, 519, 518, 516, 515, 513 +dw 512, 510, 508, 507, 505, 504, 502, 501, 499, 498, 496, 495, 493, 492, 490, 489 +dw 487, 486, 484, 483, 481, 480, 478, 477, 475, 474, 472, 471, 469, 468, 466, 465 +dw 464, 462, 461, 459, 458, 457, 455, 454, 452, 451, 450, 448, 447, 446, 444, 443 +dw 442, 441, 439, 438, 437, 435, 434, 433, 432, 431, 429, 428, 427, 426, 425, 423 +dw 422, 421, 420, 419, 418, 417, 416, 415, 413, 412, 411, 410, 409, 408, 407, 406 +dw 405, 404, 403, 402, 402, 401, 400, 399, 398, 397, 396, 395, 394, 394, 393, 392 +dw 391, 390, 390, 389, 388, 387, 386, 386, 385, 384, 383, 383, 382, 381, 381, 380 +dw 379, 379, 378, 377, 377, 376, 375, 375, 374, 373, 373, 372, 372, 371, 370, 370 +dw 369, 369, 368, 368, 367, 367, 366, 365, 365, 364, 364, 363, 363, 362, 362, 361 +dw 361, 360, 360, 359, 359, 358, 358, 357, 357, 356, 356, 355, 355, 354, 354, 353 +dw 353, 352, 352, 351, 351, 350, 350, 349, 348, 348, 347, 347, 346, 346, 345, 345 +dw 344, 344, 343, 343, 342, 342, 341, 341, 340, 339, 339, 338, 338, 337, 337, 336 +dw 335, 335, 334, 334, 333, 332, 332, 331, 331, 330, 329, 329, 328, 327, 327, 326 +dw 325, 325, 324, 323, 323, 322, 321, 321, 320, 319, 319, 318, 317, 317, 316, 315 +dw 314, 314, 313, 312, 312, 311, 310, 309, 309, 308, 307, 306, 306, 305, 304, 303 +dw 302, 302, 301, 300, 299, 299, 298, 297, 296, 296, 295, 294, 293, 292, 292, 291 +dw 290, 289, 289, 288, 287, 286, 285, 285, 284, 283, 282, 282, 281, 280, 279, 279 +dw 278, 277, 276, 276, 275, 274, 274, 273, 272, 271, 271, 270, 269, 269, 268, 267 +dw 267, 266, 265, 265, 264, 263, 263, 262, 261, 261, 260, 260, 259, 259, 258, 257 +dw 257, 256, 256, 255, 255, 254, 254, 253, 253, 252, 252, 251, 251, 251, 250, 250 +dw 249, 249, 249, 248, 248, 248, 247, 247, 247, 246, 246, 246, 245, 245, 245, 245 +dw 245, 244, 244, 244, 244, 244, 243, 243, 243, 243, 243, 243, 243, 243, 243, 242 +dw 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243 +dw 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245 +dw 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 248, 248, 249, 249, 249, 250 +dw 250, 250, 251, 251, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 254, 255 +dw 255, 255, 256, 256, 256, 256, 257, 257, 257, 258, 258, 258, 259, 259, 259, 259 +dw 260, 260, 260, 260, 261, 261, 261, 261, 262, 262, 262, 262, 263, 263, 263, 263 +dw 263, 263, 264, 264, 264, 264, 264, 264, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 264, 264, 264, 264, 264, 264, 263, 263, 263, 263, 263, 262 +dw 262, 262, 262, 261, 261, 261, 260, 260, 260, 259, 259, 259, 258, 258, 258, 257 +dw 257, 257, 256, 256, 255, 255, 254, 254, 254, 253, 253, 252, 252, 251, 251, 250 +dw 250, 249, 249, 248, 248, 247, 247, 246, 246, 245, 245, 244, 243, 243, 242, 242 +dw 241, 241, 240, 239, 239, 238, 238, 237, 237, 236, 235, 235, 234, 234, 233, 232 +dw 232, 231, 231, 230, 229, 229, 228, 228, 227, 227, 226, 225, 225, 224, 224, 223 +dw 222, 222, 221, 221, 220, 220, 219, 219, 218, 217, 217, 216, 216, 215, 215, 214 +dw 214, 213, 213, 212, 212, 211, 211, 210, 210, 209, 209, 208, 208, 208, 207, 207 +dw 206, 206, 205, 205, 205, 204, 204, 203, 203, 203, 202, 202, 201, 201, 201, 200 +dw 200, 200, 199, 199, 199, 198, 198, 198, 197, 197, 197, 197, 196, 196, 196, 195 +dw 195, 195, 195, 194, 194, 194, 194, 193, 193, 193, 193, 192, 192, 192, 192, 192 +dw 191, 191, 191, 191, 190, 190, 190, 190, 190, 189, 189, 189, 189, 189, 188, 188 +dw 188, 188, 188, 187, 187, 187, 187, 187, 186, 186, 186, 186, 186, 185, 185, 185 +dw 185, 184, 184, 184, 184, 183, 183, 183, 183, 182, 182, 182, 182, 181, 181, 181 +dw 180, 180, 180, 180, 179, 179, 179, 178, 178, 177, 177, 177, 176, 176, 176, 175 +dw 175, 174, 174, 173, 173, 173, 172, 172, 171, 171, 170, 170, 169, 169, 168, 167 +dw 167, 166, 166, 165, 165, 164, 163, 163, 162, 162, 161, 160, 160, 159, 158, 157 +dw 157, 156, 155, 155, 154, 153, 152, 152, 151, 150, 149, 148, 148, 147, 146, 145 +dw 144, 143, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 133, 132, 131 +dw 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 114 +dw 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98 +dw 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81 +dw 80, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 65 +dw 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 54, 53, 52, 51, 50 +dw 49, 49, 48, 47, 46, 45, 45, 44, 43, 42, 42, 41, 40, 40, 39, 38 +dw 38, 37, 36, 36, 35, 35, 34, 33, 33, 32, 32, 31, 31, 30, 30, 29 +dw 29, 28, 28, 27, 27, 27, 26, 26, 25, 25, 25, 24, 24, 24, 23, 23 +dw 23, 22, 22, 22, 22, 21, 21, 21, 21, 20, 20, 20, 20, 20, 20, 19 +dw 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18 +dw 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19 +dw 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20 +dw 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22 +dw 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23 +dw 23, 23, 23, 23, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 22, 22 +dw 22, 22, 22, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 20, 20, 20 +dw 20, 20, 20, 20, 20, 20, 20, 19, 19, 19, 19, 19, 19, 19, 19, 19 +dw 19, 19, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 +dw 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19 +dw 19, 19, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22 +dw 23, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26, 27, 27, 27, 28, 28 +dw 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 35, 35, 36, 36, 37 +dw 38, 38, 39, 40, 40, 41, 42, 42, 43, 44, 45, 45, 46, 47, 48, 49 +dw 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 +dw 64, 65, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78 +dw 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95 +dw 96, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112 +dw 113, 114, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 +dw 130, 131, 132, 133, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 143 +dw 144, 145, 146, 147, 148, 148, 149, 150, 151, 152, 152, 153, 154, 155, 155, 156 +dw 157, 157, 158, 159, 160, 160, 161, 162, 162, 163, 163, 164, 165, 165, 166, 166 +dw 167, 167, 168, 169, 169, 170, 170, 171, 171, 172, 172, 173, 173, 173, 174, 174 +dw 175, 175, 176, 176, 176, 177, 177, 177, 178, 178, 179, 179, 179, 180, 180, 180 +dw 180, 181, 181, 181, 182, 182, 182, 182, 183, 183, 183, 183, 184, 184, 184, 184 +dw 185, 185, 185, 185, 186, 186, 186, 186, 186, 187, 187, 187, 187, 187, 188, 188 +dw 188, 188, 188, 189, 189, 189, 189, 189, 190, 190, 190, 190, 190, 191, 191, 191 +dw 191, 192, 192, 192, 192, 192, 193, 193, 193, 193, 194, 194, 194, 194, 195, 195 +dw 195, 195, 196, 196, 196, 197, 197, 197, 197, 198, 198, 198, 199, 199, 199, 200 +dw 200, 200, 201, 201, 201, 202, 202, 203, 203, 203, 204, 204, 205, 205, 205, 206 +dw 206, 207, 207, 208, 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, 213, 213 +dw 214, 214, 215, 215, 216, 216, 217, 217, 218, 219, 219, 220, 220, 221, 221, 222 +dw 222, 223, 224, 224, 225, 225, 226, 227, 227, 228, 228, 229, 229, 230, 231, 231 +dw 232, 232, 233, 234, 234, 235, 235, 236, 237, 237, 238, 238, 239, 239, 240, 241 +dw 241, 242, 242, 243, 243, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249 +dw 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 254, 255, 255, 256, 256, 257 +dw 257, 257, 258, 258, 258, 259, 259, 259, 260, 260, 260, 261, 261, 261, 262, 262 +dw 262, 262, 263, 263, 263, 263, 263, 264, 264, 264, 264, 264, 264, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265 +dw 265, 265, 265, 265, 265, 265, 265, 265, 265, 264, 264, 264, 264, 264, 264, 263 +dw 263, 263, 263, 263, 263, 262, 262, 262, 262, 261, 261, 261, 261, 260, 260, 260 +dw 260, 259, 259, 259, 259, 258, 258, 258, 257, 257, 257, 256, 256, 256, 256, 255 +dw 255, 255, 254, 254, 254, 253, 253, 253, 252, 252, 252, 251, 251, 251, 251, 250 +dw 250, 250, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 247, 246, 246, 246 +dw 246, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 243, 243, 243, 243 +dw 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242 +dw 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244 +dw 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249 +dw 249, 250, 250, 251, 251, 251, 252, 252, 253, 253, 254, 254, 255, 255, 256, 256 +dw 257, 257, 258, 259, 259, 260, 260, 261, 261, 262, 263, 263, 264, 265, 265, 266 +dw 267, 267, 268, 269, 269, 270, 271, 271, 272, 273, 274, 274, 275, 276, 276, 277 +dw 278, 279, 279, 280, 281, 282, 282, 283, 284, 285, 285, 286, 287, 288, 289, 289 +dw 290, 291, 292, 292, 293, 294, 295, 296, 296, 297, 298, 299, 299, 300, 301, 302 +dw 302, 303, 304, 305, 306, 306, 307, 308, 309, 309, 310, 311, 312, 312, 313, 314 +dw 314, 315, 316, 317, 317, 318, 319, 319, 320, 321, 321, 322, 323, 323, 324, 325 +dw 325, 326, 327, 327, 328, 329, 329, 330, 331, 331, 332, 332, 333, 334, 334, 335 +dw 335, 336, 337, 337, 338, 338, 339, 339, 340, 341, 341, 342, 342, 343, 343, 344 +dw 344, 345, 345, 346, 346, 347, 347, 348, 348, 349, 350, 350, 351, 351, 352, 352 +dw 353, 353, 354, 354, 355, 355, 356, 356, 357, 357, 358, 358, 359, 359, 360, 360 +dw 361, 361, 362, 362, 363, 363, 364, 364, 365, 365, 366, 367, 367, 368, 368, 369 +dw 369, 370, 370, 371, 372, 372, 373, 373, 374, 375, 375, 376, 377, 377, 378, 379 +dw 379, 380, 381, 381, 382, 383, 383, 384, 385, 386, 386, 387, 388, 389, 390, 390 +dw 391, 392, 393, 394, 394, 395, 396, 397, 398, 399, 400, 401, 402, 402, 403, 404 +dw 405, 406, 407, 408, 409, 410, 411, 412, 413, 415, 416, 417, 418, 419, 420, 421 +dw 422, 423, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 437, 438, 439, 441 +dw 442, 443, 444, 446, 447, 448, 450, 451, 452, 454, 455, 457, 458, 459, 461, 462 +dw 464, 465, 466, 468, 469, 471, 472, 474, 475, 477, 478, 480, 481, 483, 484, 486 +dw 487, 489, 490, 492, 493, 495, 496, 498, 499, 501, 502, 504, 505, 507, 508, 510 \ No newline at end of file diff --git a/u2orig/MAIN.ASM b/u2orig/MAIN.ASM new file mode 100755 index 0000000..7b1a7b5 --- /dev/null +++ b/u2orig/MAIN.ASM @@ -0,0 +1,634 @@ + .386p + ifndef ??version +?debug macro + endm +publicdll macro name + public name + endm + endif + ?debug V 300h + ?debug S "MAIN.C" + ?debug C E9C789EC1A064D41494E2E43 + ?debug C E94019CA1815473A5C42435C494E434C5544455C535444494F2E48 + ?debug C E94019CA1815473A5C42435C494E434C5544455C5F444546532E48 + ?debug C E94019CA1816473A5C42435C494E434C5544455C5F4E46494C452E+ + ?debug C 48 + ?debug C E94019CA1815473A5C42435C494E434C5544455C5F4E554C4C2E48 + ?debug C E94019CA1814473A5C42435C494E434C5544455C4D4154482E48 + ?debug C E94019CA1815473A5C42435C494E434C5544455C434F4E494F2E48 + ?debug C E94019CA1813473A5C42435C494E434C5544455C444F532E48 + ?debug C E93587EB1A102E2E5C545745414B5C545745414B2E48 +MAIN_TEXT segment byte public use16 'CODE' +MAIN_TEXT ends +DGROUP group _DATA,_BSS + assume cs:MAIN_TEXT,ds:DGROUP +_DATA segment word public use16 'DATA' +d@ label byte +d@w label word +_DATA ends +_BSS segment word public use16 'BSS' +b@ label byte +b@w label word +_BSS ends +_DATA segment word public use16 'DATA' +_vmem label dword + db 0 + db 0 + db 0 + db 160 + ?debug C E947A5DC1A08505441552E505245 +_ptau label byte + db 0 + db 1 + db 1 + db 1 + db 1 + db 1 + db 2 + db 2 + db 3 + db 3 + db 4 + db 5 + db 6 + db 7 + db 8 + db 9 + db 10 + db 11 + db 12 + db 13 + db 14 + db 16 + db 17 + db 18 + db 20 + db 21 + db 23 + db 24 + db 25 + db 27 + db 28 + db 30 + db 31 + db 33 + db 35 + db 36 + db 38 + db 39 + db 40 + db 42 + db 43 + db 45 + db 46 + db 47 + db 49 + db 50 + db 51 + db 52 + db 53 + db 54 + db 55 + db 56 + db 57 + db 58 + db 59 + db 60 + db 60 + db 61 + db 61 + db 62 + db 62 + db 62 + db 62 + db 62 + db 63 + db 62 + db 62 + db 62 + db 62 + db 62 + db 61 + db 61 + db 60 + db 60 + db 59 + db 58 + db 57 + db 56 + db 55 + db 54 + db 53 + db 52 + db 51 + db 50 + db 49 + db 47 + db 46 + db 45 + db 43 + db 42 + db 40 + db 39 + db 38 + db 36 + db 35 + db 33 + db 32 + db 30 + db 28 + db 27 + db 25 + db 24 + db 23 + db 21 + db 20 + db 18 + db 17 + db 16 + db 14 + db 13 + db 12 + db 11 + db 10 + db 9 + db 8 + db 7 + db 6 + db 5 + db 4 + db 3 + db 3 + db 2 + db 2 + db 1 + db 1 + db 1 + db 1 + db 1 + db 1 + db 127 dup (0) +_l1 label word + db 144 + db 1 +_l2 label word + db 44 + db 1 +_l3 label word + db 32 + db 3 +_l4 label word + db 100 + db 0 +_k1 label word + db 244 + db 1 +_k2 label word + db 44 + db 1 +_k3 label word + db 132 + db 3 +_k4 label word + db 158 + db 2 +_m1 label word + db 244 + db 1 +_m2 label word + db 200 + db 0 +_m3 label word + db 144 + db 1 +_m4 label word + db 132 + db 3 +_n1 label word + db 188 + db 2 +_n2 label word + db 244 + db 1 +_n3 label word + db 132 + db 3 +_n4 label word + db 214 + db 1 +_DATA ends +MAIN_TEXT segment byte public use16 'CODE' + ?debug C E801064D41494E2E43C789EC1A + ?debug L 42 + assume cs:MAIN_TEXT +_main proc far + ?debug B + push bp + mov bp,sp + sub sp,22 + push si + push di + ?debug B + ?debug L 45 + mov dword ptr [bp-4],large 0 + mov dword ptr [bp-8],large 0 + ?debug L 46 + mov word ptr [bp-10],0 + ?debug L 48 + call far ptr _init_plz + ?debug L 50 + mov ax,seg _frame_count + mov es,ax + mov word ptr es:_frame_count,0 + jmp @1@1066 +@1@58: + ?debug L 53 + mov ax,seg _frame_count + mov es,ax + movsx eax,word ptr es:_frame_count + add dword ptr [bp-4],eax + inc dword ptr [bp-8] + ?debug L 54 + cmp word ptr [bp-10],37 + jne short @1@114 + push large 000140014h + push large 000140000h + call far ptr _tw_setrgbpalette + add sp,8 +@1@114: + ?debug L 56 + mov dx, 3c4h + ?debug L 57 + mov ax, 0a02h + ?debug L 58 + out dx, ax + ?debug L 60 + push word ptr DGROUP:_k4 + push word ptr DGROUP:_k3 + push word ptr DGROUP:_k2 + push word ptr DGROUP:_k1 + call far ptr _setplzparas + add sp,8 + ?debug L 61 + xor si,si + mov word ptr [bp-16],00000A000h +@1@254: + ?debug L 62 + push word ptr [bp-16] + push si + call far ptr _plzline + add sp,4 + ?debug L 61 + add word ptr [bp-16],12 + add si,2 + cmp si,350 + jl short @1@254 + ?debug L 63 + push word ptr DGROUP:_l4 + push word ptr DGROUP:_l3 + push word ptr DGROUP:_l2 + push word ptr DGROUP:_l1 + call far ptr _setplzparas + add sp,8 + ?debug L 64 + mov si,1 + mov word ptr [bp-18],00000A006h + jmp short @1@506 +@1@422: + ?debug L 65 + push word ptr [bp-18] + push si + call far ptr _plzline + add sp,4 + ?debug L 64 + add word ptr [bp-18],12 + add si,2 +@1@506: + cmp si,350 + jl short @1@422 + ?debug L 68 + mov dx, 3c4h + ?debug L 69 + mov ax, 0502h + ?debug L 70 + out dx, ax + ?debug L 72 + push word ptr DGROUP:_k4 + push word ptr DGROUP:_k3 + push word ptr DGROUP:_k2 + push word ptr DGROUP:_k1 + call far ptr _setplzparas + add sp,8 + ?debug L 73 + mov si,1 + mov word ptr [bp-20],00000A006h + jmp short @1@758 +@1@674: + ?debug L 74 + push word ptr [bp-20] + push si + call far ptr _plzline + add sp,4 + ?debug L 73 + add word ptr [bp-20],12 + add si,2 +@1@758: + cmp si,350 + jl short @1@674 + ?debug L 75 + push word ptr DGROUP:_l4 + push word ptr DGROUP:_l3 + push word ptr DGROUP:_l2 + push word ptr DGROUP:_l1 + call far ptr _setplzparas + add sp,8 + ?debug L 76 + xor si,si + mov word ptr [bp-22],00000A000h +@1@842: + ?debug L 77 + push word ptr [bp-22] + push si + call far ptr _plzline + add sp,4 + ?debug L 76 + add word ptr [bp-22],12 + add si,2 + cmp si,350 + jl short @1@842 + ?debug L 79 + cmp word ptr [bp-10],37 + jne short @1@1010 + push large 0 + push large 0 + call far ptr _tw_setrgbpalette + add sp,8 +@1@1010: + ?debug L 83 + call far ptr _kbhit + or ax,ax + je short @1@1066 + call far ptr _getch + mov word ptr [bp-10],ax +@1@1066: + ?debug L 51 + cmp word ptr [bp-10],27 + je short @@4 + jmp @1@58 +@@4: + ?debug L 85 + call far ptr _close_copper + ?debug L 86 + call far ptr _tw_closegraph + ?debug L 88 + mov eax,dword ptr [bp-4] + mov dword ptr [bp-14],eax + fild dword ptr [bp-14] + mov eax,dword ptr [bp-8] + mov dword ptr [bp-14],eax + fild dword ptr [bp-14] + fdiv + sub sp,8 + fstp qword ptr [bp-34] + push ds + push offset DGROUP:s@ + fwait + call far ptr _printf + add sp,12 + ?debug L 89 + pop di + pop si + leave + ret + ?debug C E60263680402F6FF0005636F756E740602F8FF00+ + ?debug C 0374696D0602FCFF00017904080192007B010406+ + ?debug C 00 + ?debug E + ?debug E +_main endp + ?debug L 91 + assume cs:MAIN_TEXT +_init_plz proc far + ?debug B + push bp + mov bp,sp + sub sp,2 + push si + ?debug B + ?debug L 141 + call far ptr _tw_opengraph + ?debug L 142 + push -17536 + call far ptr _tw_setstart + add sp,2 + ?debug L 144 + mov dx, 3d4h + ?debug L 145 + mov ax, 4009h + ?debug L 146 + out dx, ax + ?debug L 147 + mov ax, 3013h + ?debug L 148 + out dx, ax + ?debug L 149 + mov ax, a018h + ?debug L 150 + out dx, ax + ?debug L 151 + mov ax, 0f07h + ?debug L 152 + out dx, ax + ?debug L 155 + call far ptr _init_copper + ?debug L 158 + mov word ptr [bp-2],0 +@2@338: + mov al,byte ptr DGROUP:_ptau + cbw + mov si,ax + push ax + push ax + mov bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + push bx + call far ptr _tw_setrgbpalette + add sp,8 + inc word ptr [bp-2] + cmp word ptr [bp-2],64 + jl short @2@338 + ?debug L 159 + mov word ptr [bp-2],0 +@2@450: + mov bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov al,byte ptr DGROUP:_ptau + cbw + push ax + mov bx,63 + sub bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov ax,word ptr [bp-2] + add ax,64 + push ax + call far ptr _tw_setrgbpalette + add sp,8 + inc word ptr [bp-2] + cmp word ptr [bp-2],64 + jl short @2@450 + ?debug L 160 + mov word ptr [bp-2],0 +@2@562: + mov bx,63 + sub bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov al,byte ptr DGROUP:_ptau + cbw + push ax + mov ax,word ptr [bp-2] + add ax,128 + push ax + call far ptr _tw_setrgbpalette + add sp,8 + inc word ptr [bp-2] + cmp word ptr [bp-2],64 + jl short @2@562 + ?debug L 161 + mov word ptr [bp-2],0 +@2@674: + mov bx,word ptr [bp-2] + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov al,byte ptr DGROUP:_ptau+63 + cbw + push ax + mov al,byte ptr DGROUP:_ptau[bx] + cbw + push ax + mov ax,word ptr [bp-2] + add ax,192 + push ax + call far ptr _tw_setrgbpalette + add sp,8 + inc word ptr [bp-2] + cmp word ptr [bp-2],64 + jl short @2@674 + ?debug L 185 + pop si + leave + ret + ?debug C E601610402FEFF00 + ?debug E + ?debug E +_init_plz endp + ?debug C E9 + ?debug C FA15000000 +MAIN_TEXT ends +_DATA segment word public use16 'DATA' +s@ label byte + db '%le' + db 10 + db 0 +_DATA ends +MAIN_TEXT segment byte public use16 'CODE' +MAIN_TEXT ends + public _init_plz + public _main + public _n4 + public _n3 + public _n2 + public _n1 + public _m4 + public _m3 + public _m2 + public _m1 + public _k4 + public _k3 + public _k2 + public _k1 + public _l4 + public _l3 + public _l2 + public _l1 + public _ptau + public _vmem + extrn _setplzparas:far + extrn _plzline:far + extrn _frame_count:word + extrn _close_copper:far + extrn _init_copper:far + extrn _tw_setstart:far + extrn _tw_setrgbpalette:far + extrn _tw_closegraph:far + extrn _tw_opengraph:far + extrn _kbhit:far + extrn _getch:far + extrn _printf:far +_s@ equ s@ + ?debug C EA010C + ?debug C E31800000023040400 + ?debug C EC095F696E69745F706C7A181800 + ?debug C E31900000023040400 + ?debug C EC055F6D61696E191800 + ?debug C EC035F6E34040000 + ?debug C EC035F6E33040000 + ?debug C EC035F6E32040000 + ?debug C EC035F6E31040000 + ?debug C EC035F6D34040000 + ?debug C EC035F6D33040000 + ?debug C EC035F6D32040000 + ?debug C EC035F6D31040000 + ?debug C EC035F6B34040000 + ?debug C EC035F6B33040000 + ?debug C EC035F6B32040000 + ?debug C EC035F6B31040000 + ?debug C EC035F6C34040000 + ?debug C EC035F6C33040000 + ?debug C EC035F6C32040000 + ?debug C EC035F6C31040000 + ?debug C E31A0000011A02 + ?debug C EC055F707461751A0000 + ?debug C E31C0052001A04 + ?debug C E31B000400161C00 + ?debug C EC055F766D656D1B0000 + ?debug C E31D00000023040400 + ?debug C EB0C5F736574706C7A70617261731D00 + ?debug C E31E00000023040400 + ?debug C EB085F706C7A6C696E651E00 + ?debug C EB0C5F6672616D655F636F756E740400 + ?debug C E31F00000023040400 + ?debug C EB0D5F636C6F73655F636F707065721F00 + ?debug C E32000000023040400 + ?debug C EB0C5F696E69745F636F707065722000 + ?debug C E32100000023010400 + ?debug C EB0C5F74775F73657473746172742100 + ?debug C E32200000023010400 + ?debug C EB115F74775F73657472676270616C6574746522+ + ?debug C 00 + ?debug C E32300000023010400 + ?debug C EB0E5F74775F636C6F736567726170682300 + ?debug C E32400000023010400 + ?debug C EB0D5F74775F6F70656E67726170682400 + ?debug C E32500000023040400 + ?debug C EB065F6B626869742500 + ?debug C E32600000023040400 + ?debug C EB065F67657463682600 + ?debug C E32700000023040401 + ?debug C EB075F7072696E74662700 + ?debug C E60666706F735F740606000673697A655F740A06+ + ?debug C 00 + end + \ No newline at end of file diff --git a/u2orig/MAIN.C b/u2orig/MAIN.C new file mode 100755 index 0000000..bf421c4 --- /dev/null +++ b/u2orig/MAIN.C @@ -0,0 +1,13 @@ +#include "..\dis\dis.h" + +extern plz(); +extern vect(); + +main() { + dis_partstart(); + init_copper(); + initvect(); + plz(); + vect(); + close_copper(); + } \ No newline at end of file diff --git a/u2orig/PLZ.C b/u2orig/PLZ.C new file mode 100755 index 0000000..420736d --- /dev/null +++ b/u2orig/PLZ.C @@ -0,0 +1,219 @@ +#include +#include +#include +#include +#include "tweak.h" + +//#define DO_TABLES +//#define DPII (3.1415926535*2.0) + +#define LINELEN 41 +#define MAXY 280 +#define YADD 0 +#define XADD 0 +#define SINMASK 4095 +#define PLZSINI(p1,p2,p3,p4) *ptr++ = (psini[x*32+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+p4]*4+p3]) + (psini[x*32+16+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+32+p4]*4+p3])*256; + +extern int init_copper(); +extern int close_copper(); +extern int far frame_count; +extern int far cop_drop; +extern int far cop_plz; +extern int far cop_start; +extern char far * far cop_fadepal; +extern char far fadepal[768]; +extern far char * far cop_pal; +extern far int do_pal; + +extern int plzline(int y, int vseg); +extern int setplzparas(int c1, int c2, int c3, int c4); +extern int set_plzstart(int y); +extern char far psini[16384]; +extern int far lsini4[8192]; +extern int far lsini16[8192]; + +//int (* vmem)[LINELEN]=MK_FP(0x0a000,0); +//char psini[16384]= +//#include "psini.pre" +//char lsini[16384]= +//#include "lsini.pre" + +char ptau[256]= +#include "ptau.pre" + +int pals[6][768]; +int curpal=0; +int timetable[10]={64*6*2-45,64*6*4-45,64*6*5-45,64*6*6-45,64*6*7+90,0}; +int ttptr=0; + +int l1=1000, l2=2000, l3=3000, l4=4000; +int k1=3500, k2=2300, k3=3900, k4=3670; + +int il1=1000, il2=2000, il3=3000, il4=4000; +int ik1=3500, ik2=2300, ik3=3900, ik4=3670; + +int inittable[10][8]={{1000,2000,3000,4000,3500,2300,3900,3670}, + {1000,2000,4000,4000,1500,2300,3900,1670}, + {3500,1000,3000,1000,3500,3300,2900,2670}, + {1000,2000,3000,4000,3500,2300,3900,3670}, + {1000,2000,3000,4000,3500,2300,3900,3670}, + {1000,2000,3000,4000,3500,2300,3900,3670}}; + +plz(){ + register int x,y; + int *ptr; + long tim=0,count=0; + int ch=0,sync=2; + + while(dis_musplus()<0 && !dis_exit()); + dis_setmframe(0); + + init_plz(); + cop_drop=128; + cop_fadepal=pals[curpal++]; + + frame_count=0; + while(!dis_exit()) + { + tim+=frame_count; frame_count=0; count++; + if(dis_getmframe()>timetable[ttptr]) + { + memset(fadepal,0,768); + cop_drop=1; + cop_fadepal=pals[curpal++]; + ttptr++; + il1=inittable[ttptr][0]; + il2=inittable[ttptr][1]; + il3=inittable[ttptr][2]; + il4=inittable[ttptr][3]; + ik1=inittable[ttptr][4]; + ik2=inittable[ttptr][5]; + ik3=inittable[ttptr][6]; + ik4=inittable[ttptr][7]; + } + if(curpal==5 && cop_drop>64) break; + + asm mov dx, 3c4h + asm mov ax, 0a02h + asm out dx, ax + + setplzparas(k1,k2,k3,k4); + for(y=0;y +dw OFFSET plz_y&ccc +ENDM + +LABEL start_mask BYTE +REPT 200 + db 1111b, 1110b, 1100b, 1000b +ENDM +LABEL end_mask BYTE +REPT 200 + db 0001b, 0011b, 0111b, 1111b +ENDM + +PUBLIC C xx, C yy +PUBLIC C yy1, C xx1, C yy2, C xx2 +PUBLIC C ay1, C ay2, C ax1, C ax2 +PUBLIC C txx1, C txx2, C txy1, C txy2 +PUBLIC C tax1, C tax2, C tay1, C tay2 +PUBLIC C to, C from, C dseg, C ctau + +xx dw ? +yy dw ? +yy1 dd ? +xx1 dd ? +yy2 dd ? +xx2 dd ? +ay1 dd ? +ax1 dd ? +ay2 dd ? +ax2 dd ? +txx1 dd ? +txy1 dd ? +txx2 dd ? +txy2 dd ? +tax1 dd ? +tay1 dd ? +tax2 dd ? +tay2 dd ? +to dd 0a0000000h +from dd ? +dseg dw 0 +ctau dd ? + + +linecount dw ? + +ASSUME cs:lerssicode, ds:nothing, es:nothing + +PUBLIC c do_block + +PROC C do_block FAR + ARG ycount:word + + push es ds si di bp + + mov ax, [ycount] + mov [linecount], ax + cmp ax, 0d + je @@end + lds bx, [from] + les di, [to] + lgs si, [ctau] + mov fs, [dseg] + +@@doline: + cmp [yy], 0d + jl @@endline + cmp [yy], 134d + jge @@end ; y-clip + + mov bp, [word ctau] + mov ax, [Word xx2+2] + cmp ax, [gs:bp] + ja @@l7 + mov [gs:bp], ax ; x1.. +@@l7: shr ax, 2d + add di, ax + mov si, [Word xx1+2] + cmp si, [gs:bp+2] + jb @@l8 + mov [gs:bp+2], si ; x2.. +@@l8: shr si, 2d + sub si, ax ; si = bytes to copy + jb @@endline + jz @@singlebyte + mov bp, si + dec si + jz @@twobyte + + mov dx, 3c4h + mov ax, 0f02h + out dx, ax + + mov ebx, [txy1-2] ; xlo + mov ecx, [txx1-2] ; ylo + + movsx esi, si + mov eax, [txy2] + sub eax, [txy1] + cdq + idiv esi ; addy + mov ecx, eax + mov eax, [txx2] + sub eax, [txx1] + cdq + idiv esi ; addx + + mov edx, ecx ; look reg table + rol edx, 16d ; y_add + mov dh, dl ; yah + rol eax, 16d ; x_add + mov dl, al ; xah + test dl, 80h + jz @@l2 + dec dh +@@l2: + mov bh, [Byte txy1+2] ; txt y + mov bl, [Byte txx1+2] ; txt x + test si, 1d + jz @@l1 + + movzx si, [fs:bx] ; out odd byte + add ecx, eax + mov al, [ds:bx+si] + adc ebx, edx + adc bh, 0 + mov [es:bp+di-1],al + jmp [cs:jmp_tau+bp-2] + +@@l1: jmp [cs:jmp_tau+si] ; and jump to rept + +; e h l +; ax x_add data data +; bx ylo ty tx +; cx xlo - - +; dx y_add yah xah +; di - +; si sinus inc + + ALIGN 4 +IRP ccc, <200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1> + +plz_y&ccc&: + + movzx si, [fs:bx] + add ecx, eax + mov ah, [ds:bx+si] + adc ebx, edx + adc bh, 0 + + movzx si, [fs:bx] + add ecx, eax + mov al, [ds:bx+si] + adc ebx, edx + adc bh, 0 ; immediate = y_hi + + mov [es:di+ccc*2-1], ax ; output byte +ENDM +plz_y0: + +@@twobyte: + mov bh, [Byte txy2+2] ; txt y + mov bl, [Byte txx2+2] ; txt x + movzx si, [fs:bx] + mov cl, [ds:bx+si] + mov bh, [Byte txy1+2] ; txt y + mov bl, [Byte txx1+2] ; txt x + movzx si, [fs:bx] + mov ch, [ds:bx+si] + + mov bx, [Word xx2+2] + and bx, 3d + mov ah, [start_mask+bx] + mov al, 02 + mov dx, 3c4h + out dx, ax + mov [es:di], cl + + mov bx, [Word xx1+2] + and bx, 3d + mov ah, [end_mask+bx] + out dx, ax + mov [es:bp+di], ch + +@@endline: + add [Word to], 160d ; next line + mov di, [word to] + inc [yy] + add [word ctau], 4d + + mov eax, [ax1] + add [xx1], eax + mov eax, [ax2] + add [xx2], eax + mov eax, [tay1] + add [txy1], eax + mov eax, [tax1] + add [txx1], eax + mov eax, [tay2] + add [txy2], eax + mov eax, [tax2] + add [txx2], eax ; increment txt and line indexes + + dec [linecount] + jnz @@doline + +@@end: + pop bp di si ds es + ret + + +@@singlebyte: + mov bh, [Byte txy2+2] ; txt y + mov bl, [Byte txx2+2] ; txt x + movzx si, [fs:bx] + mov cl, [ds:bx+si] + + mov al, 02 + mov dx, 3c4h + mov bx, [Word xx2+2] + and bx, 3d + mov ah, [start_mask+bx] + mov bx, [Word xx1+2] + and bx, 3d + and ah, [end_mask+bx] + out dx, ax + mov [es:di], cl + + add [Word to], 160d ; next line + mov di, [word to] + inc [yy] + add [word ctau], 4d + + mov eax, [ax1] + add [xx1], eax + mov eax, [ax2] + add [xx2], eax + mov eax, [tay1] + add [txy1], eax + mov eax, [tax1] + add [txx1], eax + mov eax, [tay2] + add [txy2], eax + mov eax, [tax2] + add [txx2], eax ; increment txt and line indexes + + dec [linecount] + jnz @@doline + pop bp di si ds es + ret +ENDP + + +PUBLIC C shadepal + +PROC C shadepal + + ARG fpal:dword, ppal:dword, shd:word + + push si di ds es + + lds si, [ppal] + les di, [fpal] + mov dx, [shd] + mov cx, 192/16d +@@loop: + REPT 16 + lodsb + mul dl + shr ax, 6d + stosb + ENDM + loop @@loop + + pop es ds di si + ret + +ENDP + + +ycnt dw 0 + +PUBLIC C do_clear + +PROC C do_clear + + ARG vmem:dword, otau:dword, ntau:dword + + push si di ds es bp + + mov dx, 3c4h + mov ax, 0f02h + out dx, ax + + les dx, [vmem] + lds bx, [otau] ; dx:bx-> otau + lds si, [ntau] + sub si, bx ; dx:bx+si-> ntau + mov dl, [es:0] ; fill latches + mov [ycnt], 134d + xor ax, ax + +@@lineloop: + cmp [Word ds:bx], 640d + je @@nextline + + mov di, [Word ds:bx] + shr di, 2d + mov cx, [word ds:bx+si] + shr cx, 2d + sub cx, di + jb @@l1 + add di, dx + rep stosb +@@l1: + mov di, [Word ds:bx+si+2] + shr di, 2d + mov cx, [word ds:bx+2] + shr cx, 2d + sub cx, di + jb @@nextline + add di, dx + inc di + rep stosb + +@@nextline: + mov [Word ds:bx], 640d + mov [Word ds:bx+2], 0d + + add dx, 160d + add bx, 4d + sub [ycnt], 1d + jae @@lineloop + +; Maskaa p„„t... + + les di, [vmem] + lds si, [ntau] ; dx:bx-> ntau + mov cx, 134d + mov dx, 3c4h + mov ax, 0f02h +@@maskloop: + mov bx, [ds:si] + dec bx + mov ah, [end_mask+bx] + out dx, ax + shr bx, 2d + mov [es:bx+di], ch + + mov bx, [ds:si+2] + inc bx + mov ah, [start_mask+bx] + out dx, ax + shr bx, 2d + mov [es:bx+di], ch + +@@nextmask: + add si,4d + add di, 160d + loop @@maskloop + + pop bp es ds di si + ret +ENDP +ENDS + +END diff --git a/u2orig/PLZA.OBJ b/u2orig/PLZA.OBJ new file mode 100755 index 0000000..f2734ec Binary files /dev/null and b/u2orig/PLZA.OBJ differ diff --git a/u2orig/PLZFILL.C b/u2orig/PLZFILL.C new file mode 100755 index 0000000..ae73c18 --- /dev/null +++ b/u2orig/PLZFILL.C @@ -0,0 +1,186 @@ +#include +#include +#include +#include +#include "tweak.h" + +extern far do_line(char far *to, int dx, int dy, int cnt, char far *from, long txx1, long txy1, long txx2, long txy2, int dseg); +extern far do_block(int ycnt); +extern far do_clear(char far *vmem, int far *otau, int far *ntau); + +extern int acstau[256]; +int sini[2000]; +char (* far vmem)[160]=MK_FP(0x0a000,0); +extern char far kuva1[128][256]; +extern char far kuva2[128][256]; +extern char far kuva3[128][256]; +extern char far dist1[128][256]; +char far buu[1000]; +char sinx[128], siny[128]; +char pal[768]; + +int clrtau[8][256][2]; +int clrptr=0; + +initvect() { + int a,b,x,y,s,d=0,p=0,ch; + + for(a=0;a<1524;a++) + { + sini[a]=s=sin(a/1024.0*M_PI*4)*127; + s-=sini[a]; + } + +/* for(a=0;a<65;a++) for(b=0;b<256;b++) // chessboard + { x=1; if((a>>4)&1) x^=3; if((b>>5)&1) x^=3; kuva[a][b]=x; } + + pal[0*192+3*1]=pal[0*192+3*1+1]=pal[0*192+3*1+2]=40; + pal[0*192+3*2]=pal[0*192+3*2+1]=pal[0*192+3*2+2]=60; +*/ + for(a=1;a<32;a++) // must-sini-valk + { pal[0*192+a*3]=0; pal[0*192+a*3+1]=0; pal[0*192+a*3+2]=a*2; } + for(a=0;a<32;a++) + { pal[0*192+a*3+32*3]=a*2; pal[0*192+a*3+1+32*3]=a*2; pal[0*192+a*3+2+32*3]=63; } + + for(a=0;a<32;a++) // must-pun-kelt + { pal[1*192+a*3]=a*2; pal[1*192+a*3+1]=0; pal[1*192+a*3+2]=0; } + for(a=0;a<32;a++) + { pal[1*192+a*3+32*3]=63; pal[1*192+a*3+1+32*3]=a*2; pal[1*192+a*3+2+32*3]=0; } + + + for(a=0;a<32;a++) // must-orans-viol + { pal[2*192+a*3]=a; pal[2*192+a*3+1]=0; pal[2*192+a*3+2]=a*2/3; } + for(a=0;a<32;a++) + { pal[2*192+a*3+32*3]=31-a; pal[2*192+a*3+1+32*3]=a*2; pal[2*192+a*3+2+32*3]=21; } + + + for(y=0;y<64;y++) for(x=0;x<256;x++) + { + kuva1[y][x]=sini[(y*4+sini[x*2])&511]/4+32; + kuva2[y][x]=sini[(y*4+sini[x*2])&511]/4+32+64; + kuva3[y][x]=sini[(y*4+sini[x*2])&511]/4+32+128; + } + + for(y=0;y<128;y++) for(x=0;x<256;x++) + dist1[y][x]=sini[y*8]/3; + + for(a=0;a<8*256;a++) { clrtau[0][a][0]=640; clrtau[0][a][1]=0; } + } + +extern far char * to; +extern far char * from; +extern far int * ctau; +extern far int dseg; +extern far int xx, yy; +extern far long ay1,ay2,ax1,ax2,xx1,yy1,xx2,yy2; +extern far long txx1,txy1,tay1,tax1; +extern far long txx2,txy2,tay2,tax2; + +int kuvataus[]={FP_SEG(kuva1),FP_SEG(kuva2),FP_SEG(kuva3),FP_SEG(kuva1)}; +int disttaus[]={FP_SEG(dist1),FP_SEG(dist1),FP_SEG(dist1),FP_SEG(dist1)}; + +do_poly(x1,y1,x2,y2,x3,y3,x4,y4,color, dd) +int x1,y1,x2,y2,x3,y3,x4,y4,color, dd; + { + int a,b,c,d,n=0,m,s1,s2,d1,d2,dx1,dy1,dx2,dy2; + + struct points { + int x,y; } pnts[4],txt[4]={{64,4},{190,4},{190,60},{64,60}}; +// int x,y; } pnts[4],txt[4]={{1,1},{63,1},{63,63},{1,63}}; + + dd=(dd+1)&63; + + pnts[0].x=x1; pnts[0].y=y1; + pnts[1].x=x2; pnts[1].y=y2; + pnts[2].x=x3; pnts[2].y=y3; + pnts[3].x=x4; pnts[3].y=y4; + + for(n=0,a=1;a<4;a++) if(pnts[a].y +#include +#include +#include +#include +#include +#include "tweak.h" + +#define SX sinit[kx] +#define SY sinit[ky] +#define SZ sinit[kz] +#define CX kosinit[kx] +#define CY kosinit[ky] +#define CZ kosinit[kz] + +extern far char (* far vmem)[160]; +extern char far pal[768]; + +extern clear(); +extern init(); +extern shadepal(char far *fpal, char far *ppal, int shade); +extern init_copper(); +extern close_copper(); +extern int far cop_rotatev; +extern far int frame_count; +extern far char * far cop_pal; +extern far int do_pal; +extern far int cop_start; +extern far int cop_scrl; + +extern int do_poly(); +extern int getspl(int where); +extern int far sinit[1024]; +extern int far kosinit[1024]; + +char far fpal[768]; + +struct object { + char name[100]; + + int pnts; + struct points_3d { + int x; + int y; + int z; + int xx; + int yy; + int zz; + int xxx; + int yyy; + } point[256]; + + int faces; + struct polygon { + int p1; + int p2; + int p3; + int p4; + int p5; + int p6; + int n; + int color; + } pg[256]; + + int lines; + struct lines { + int p1; + int p2; + int n; + int col; + } lin[256]; + } object={ + "Cube", + 8, // points + { + {125,125,125}, + {125,-125,125}, + {-125,-125,125}, + {-125,125,125}, + {125,125,-125}, + {125,-125,-125}, + {-125,-125,-125}, + {-125,125,-125}, + }, + 6, // faces + { + {1,2,3,0,0,0,0,0}, + {7,6,5,4,0,0,0,0}, + {0,4,5,1,0,0,0,1}, + {1,5,6,2,0,0,0,2}, + {2,6,7,3,0,0,0,1}, + {3,7,4,0,0,0,0,2}} + }; + +struct polygons_to_draw { + int p; + int dis; + } ptodraw[256]; +int polys=0; + +int light_src[6]={0}; +int lls[6]={0}; + +int cxx, cxy, cxz, cyx, cyy, cyz, czx, czy, czz; +int kx=0,ky=0,kz=0,dis=320,tx=0,ty=-50; +int ls_kx=0,ls_ky=0,ls_kz=0,ls_x=0,ls_y=0,ls_z=128; +int page=0; +int frames=0; + +vect() + { + int c=0,a; + + tw_opengraph(); + + while(dis_musplus()<13 && !dis_exit()); frame_count=0; + while(!dis_exit()) + { + a=dis_musplus(); + if(a>=-4 && a<0) break; + swappage(); + while(frame_count<1); frames+=frame_count; frame_count=0; + cop_pal=fpal; do_pal=1; + + calculate(1); + draw(15); + clear(); + } +// tw_closegraph(); + } + +calculate(int k) + { + int a; + static int px=0,py=256; + + getspl(4*256+frames*4); + kx=kx&1023; + ky=ky&1023; + kz=kz&1023; + ls_kx=ls_kx&1023; + ls_ky=ls_ky&1023; + + ls_y=kosinit[ls_kx]>>8; + ls_x=(sinit[ls_kx]>>8)*(sinit[ls_ky]>>8)>>7; + ls_z=(sinit[ls_kx]>>8)*(kosinit[ls_ky]>>8)>>7; + + count_const(); + rotate(); + sort_faces(); + } + +count_const() + { + //matrix equations: + //X Y Z -> nX + //X Y Z -> nY + //X Y Z -> nZ + // + // 0=Ycos*Zcos 2=Ycos*Zsin 4=-Ysin + // 6=Xsin*Zcos*Ysin 8=Xsin*Ysin*Zsin 10=Ycos*Xsin + // -Xcos*Zsin +Xcos*Zcos + //12=Xcos*Zcos*Ysin 14=Xcos*Ysin*Zsin 16=Ycos*Xcos + // +Xsin*Zsin -Xsin*Zcos + + cxx=(long)CY*(long)CZ>>15+7; + cxy=(long)CY*(long)SZ>>15+7; + cxz=-(long)SY>>7; + + cyx=((long)SX*(long)CZ+16384L>>15)*(long)SY - (long)CX*(long)SZ>>15+7; + cyy=((long)SX*(long)SY+16384L>>15)*(long)SZ + (long)CX*(long)CZ>>15+7; + cyz=(long)CY*(long)SX>>15+7; + + czx=((long)CX*(long)CZ+16384L>>15)*(long)SY + (long)SX*(long)SZ>>15+7; + czy=((long)CX*(long)SY+16384L>>15)*(long)SZ - (long)SX*(long)CZ>>15+7; + czz=(long)CY*(long)CX>>15+7; + + } + +rotate() + { + int a,b,x,y,z,xx,yy,zz; + + for(a=0;a>1) + (y*cxy>>1) + (z*cxz>>1)>>7)+tx; + object.point[a].yy=yy=((x*cyx>>1) + (y*cyy>>1) + (z*cyz>>1)>>7)+ty; + object.point[a].zz=zz=((x*czx>>1) + (y*czy>>1) + (z*czz>>1)>>7)+dis; + +/* + 1000,1000,1000 + + x*256, y*213, / ( +*/ + + object.point[a].xxx=(xx*256L)/zz+160+160; + object.point[a].yyy=(yy*142L)/zz+66; + } + } + +sort_faces() + { + int a=0,b,c,x,y,z,p=0; + long ax,ay,az,bx,by,bz,kx,ky,kz,nx,ny,nz,s,l; + + while(a0) { a++; continue; } + + s=(ls_x*nx+ls_y*ny+ls_z*nz)/250000+32; + light_src[p]=s; + c=object.pg[a].color; + if(lls[p]!=light_src[p]) + { + shadepal(&fpal[c*64*3],&pal[c*64*3], light_src[p]); + lls[p]=light_src[p]; + } + + ptodraw[p++].p=a++; + } + polys=p; + } + + +draw() + { + int a=0,b,c,f,x,y,z; + long ax,ay,az,bx,by,bz,kx,ky,kz,nx,ny,nz,s; + + for(a=0;a