From fdc075517b50afa6cdf1c83d523d112fb79e8abc Mon Sep 17 00:00:00 2001 From: sparky4 Date: Fri, 11 Aug 2017 14:13:16 -0500 Subject: [PATCH] dots for a simple port but damn it! --- dots/a | Bin 0 -> 13440 bytes dots/asm.asm | 251 +++++++++++++++++++++++++++++++++++++++ dots/asm.c | 0 dots/asm.h | 0 dots/clink.inc | 41 +++++++ dots/cut | 86 ++++++++++++++ dots/dots.c | 291 ++++++++++++++++++++++++++++++++++++++++++++++ dots/dots.lnk | 6 + dots/dots.meh | 255 ++++++++++++++++++++++++++++++++++++++++ dots/dots.obj | Bin 0 -> 7513 bytes dots/dp_prefs | Bin 0 -> 324 bytes dots/face.c | 26 +++++ dots/face.exe | Bin 0 -> 29250 bytes dots/face.inc | 1 + dots/main.c | 291 ++++++++++++++++++++++++++++++++++++++++++++++ dots/makefile | 48 ++++++++ dots/makefile.old | 24 ++++ dots/sin1024.inc | 33 ++++++ plzpart/makefile | 133 +++++++++++++++++++++ 19 files changed, 1486 insertions(+) create mode 100755 dots/a create mode 100755 dots/asm.asm create mode 100755 dots/asm.c create mode 100755 dots/asm.h create mode 100755 dots/clink.inc create mode 100755 dots/cut create mode 100755 dots/dots.c create mode 100755 dots/dots.lnk create mode 100755 dots/dots.meh create mode 100755 dots/dots.obj create mode 100755 dots/dp_prefs create mode 100755 dots/face.c create mode 100755 dots/face.exe create mode 100755 dots/face.inc create mode 100755 dots/main.c create mode 100755 dots/makefile create mode 100755 dots/makefile.old create mode 100755 dots/sin1024.inc create mode 100755 plzpart/makefile diff --git a/dots/a b/dots/a new file mode 100755 index 0000000000000000000000000000000000000000..d01757e036f8906013fa844617c30311433d9a26 GIT binary patch literal 13440 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 literal 0 HcmV?d00001 diff --git a/dots/asm.asm b/dots/asm.asm new file mode 100755 index 0000000..16b8e52 --- /dev/null +++ b/dots/asm.asm @@ -0,0 +1,251 @@ +include clink.inc +code SEGMENT para public 'CODE' +ASSUME cs:code + +.386 + +MAXDOTS equ 1024 + +BOTTOM equ 8000 + +public _gravitybottom +_gravitybottom dw BOTTOM + +public _bpmin,_bpmax +_bpmin dw 30000 +_bpmax dw -30000 + +public _gravity +_gravity dw 0 + +public _dotnum +_dotnum dw 0 + +public _gravityd +_gravityd dw 16 + +dw -1280 +dw -960 +dw -640 +dw -320 +public _rows +_rows dw 200 dup(0) + +public _dot +_dot LABEL WORD +dot dw MAXDOTS dup(0,0,0,0,0,0,0,0) ;x,y,z,oldposshadow,oldpos,-,-,- + +public _rotsin,_rotcos +_rotsin dw 0 +_rotcos dw 0 + +public _bgpic +_bgpic dw 0,0 + +public _depthtable1,_depthtable2,_depthtable3,_depthtable4 +_depthtable1 dd 128 dup(0) +_depthtable2 dd 128 dup(0) +_depthtable3 dd 128 dup(0) +_depthtable4 dd 128 dup(0) + +public _drawdots +_drawdots PROC FAR + CBEG + mov ax,0a000h + mov es,ax + mov ax,cs + mov ds,ax + mov fs,cs:_bgpic[2] + mov cx,cs:_dotnum + mov si,OFFSET dot +@@loo: +@@1: push cx + + mov ax,ds:[si+0] ;X + imul ds:_rotsin + mov ax,ax + mov cx,dx + mov ax,ds:[si+4] ;Z + imul ds:_rotcos + sub ax,bx + sub dx,cx + mov bp,dx + add bp,9000 + + mov ax,ds:[si+0] ;X + imul ds:_rotcos + mov bx,ax + mov cx,dx + mov ax,ds:[si+4] ;Z + imul ds:_rotsin + add ax,bx + adc dx,cx + shrd ax,dx,8 + sar dx,8 + + mov bx,ax + mov cx,dx + shrd ax,dx,3 + sar dx,3 + add ax,bx + adc dx,cx + + idiv bp + add ax,160 + push ax + cmp ax,319 + ja @@2 + + ;shadow + + xor ax,ax + mov dx,8 + idiv bp + add ax,100 + cmp ax,199 + ja @@2 + mov bx,ax + shl bx,1 + mov bx,ds:_rows[bx] + pop ax + add bx,ax + push ax + + mov di,ds:[si+6] + mov ax,fs:[di] + mov es:[di],ax + mov ax,87+87*256 + mov word ptr es:[bx],ax + mov ds:[si+6],bx + + ;ball + + mov ax,ds:_gravity + add ds:[si+14],ax + mov ax,ds:[si+2] ;Y + add ax,ds:[si+14] + cmp ax,ds:_gravitybottom + jl @@4 + push ax + mov ax,ds:[si+14] + neg ax + imul cs:_gravityd + sar ax,4 + mov ds:[si+14],ax + pop ax + add ax,ds:[si+14] +@@4: mov ds:[si+2],ax + cwd + shld dx,ax,6 + shl ax,6 + idiv bp + add ax,100 + cmp ax,199 + ja @@3 + mov bx,ax + shl bx,1 + mov bx,ds:_rows[bx] + pop ax + add bx,ax + + mov di,ds:[si+8] + mov eax,fs:[di] + mov es:[di],eax + add di,320 + mov eax,fs:[di] + mov es:[di],eax + add di,320 + mov eax,fs:[di] + mov es:[di],eax +; add di,320 +; mov eax,fs:[di] +; mov es:[di],eax + shr bp,6 + and bp,not 3 + + cmp bp,cs:_bpmin + jge @@t1 + mov cs:_bpmin,bp +@@t1: cmp bp,cs:_bpmax + jle @@t2 + mov cs:_bpmax,bp +@@t2: + mov ax,word ptr ds:_depthtable1[bp] + mov word ptr es:[bx+1],ax + mov eax,ds:_depthtable2[bp] + mov dword ptr es:[bx+320],eax + mov ax,word ptr ds:_depthtable3[bp] + mov word ptr es:[bx+641],ax + mov ds:[si+8],bx + +@@z: pop cx + add si,16 + loop @@1oo +@@0: CEND + +@@2: mov di,ds:[si+8] + mov eax,fs:[di] + mov es:[di],eax + add di,320 + mov eax,fs:[di] + mov es:[di],eax + add di,320 + mov eax,fs:[di] + mov es:[di],eax + mov di,ds:[si+6] + mov ds:[si+6],ax + mov ax,fs:[di] + mov es:[di],ax + pop bx + pop cx + add si,16 + loop @@1 + jmp @@0 +@@3: mov di,ds:[si+8] + mov eax,fs:[di] + mov es:[di],eax + add di,320 + mov eax,fs:[di] + mov es:[di],eax + add di,320 + mov eax,fs:[di] + mov es:[di],eax + pop bx + pop cx + add si,16 + loop @@1 + jmp @@0 +_drawdots ENDP + +PUBLIC _setpalette +_setpalette PROC FAR + push bp + mov bp,sp + push si + push di + push ds + mov si,[bp+6] + mov ds,[bp+8] + mov dx,3c8h + mov al,0 + out dx,al + inc dx + mov cx,768 + rep outsb + pop ds + pop di + pop si + pop bp + ret +_setpalette ENDP + +_face LABEL WORD +public _face +include face.inc +dw 30000,30000,30000 + +PUBLIC _sin1024 +include sin1024.inc + +code ENDS +END diff --git a/dots/asm.c b/dots/asm.c new file mode 100755 index 0000000..e69de29 diff --git a/dots/asm.h b/dots/asm.h new file mode 100755 index 0000000..e69de29 diff --git a/dots/clink.inc b/dots/clink.inc new file mode 100755 index 0000000..3d5effb --- /dev/null +++ b/dots/clink.inc @@ -0,0 +1,41 @@ +FIXWORD MACRO ;go to word boundary + if ($-start) mod 1 + db 0 + endif + ENDM + +CDS MACRO + mov ax,cs + mov ds,ax + ENDM + +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 + +CBEG0 MACRO ;C/Assembler procedure begin, minimal + push bp + mov bp,sp + ENDM + +CEND0 MACRO ;C/Assembler procedure end, minimal + pop bp + ret + ENDM + +movpar MACRO reg,par ;loads parameter [par(0..)] to register [reg] + mov reg,[bp+par*2+6] + ENDM + diff --git a/dots/cut b/dots/cut new file mode 100755 index 0000000..0dd2c9c --- /dev/null +++ b/dots/cut @@ -0,0 +1,86 @@ + #if 0 + switch(mode=c) + { + case 0: + for(a=0;a +#include +#include +#include +#include +#include +#include "../dis/dis.h" + +extern int face[]; + +extern int bpmin,bpmax; + +extern char *bgpic; +extern int rotsin,rotcos; +extern int rows[]; +extern long depthtable1[]; +extern long depthtable2[]; +extern long depthtable3[]; +extern long depthtable4[]; + +extern int dotnum; + +extern void drawdots(void); + +char far *vram=(char far *)0xa0000000L; + +char pal[768]; +char pal2[768]; + +extern sin1024[]; + +int isin(int deg) +{ + return(sin1024[deg&1023]); +} + +int icos(int deg) +{ + return(sin1024[(deg+256)&1023]); +} + +extern struct +{ + int x; + int y; + int z; + int old1; + int old2; + int old3; + int old4; + int yadd; +} dot[]; + +extern int gravity; +extern int gravitybottom; +extern int gravityd; + +void setborder(unsigned char color) +{ + _asm + { + mov dx,3dah + in al,dx + mov dx,3c0h + mov al,11h+32 + out dx,al + mov al,color + out dx,al + } +} + +int cols[]={ +0,0,0, +4,25,30, +8,40,45, +16,55,60}; +int dottaul[1024]; + +int main(int argc,char *argv[]) +{ + int timer=30000; + int dropper,repeat; + int frame=0; + int rota=-1*64; + int fb=0; + int rot=0,rots=0; + int a,b,c,d,i,j,mode; + int grav,gravd; + int f=0; + dis_partstart(); + dotnum=512; + for(a=0;a15) c=15; + c=15-c; + depthtable1[a]=0x202+0x04040404*c; + depthtable2[a]=0x02030302+0x04040404*c; + depthtable3[a]=0x202+0x04040404*c; + //depthtable4[a]=0x02020302+0x04040404*c; + } + bgpic=halloc(64000L,1L); + memcpy(bgpic,vram,64000); + a=0; + for(b=64;b>=0;b--) + { + for(c=0;c<768;c++) + { + a=pal[c]-b; + if(a<0) a=0; + pal2[c]=a; + } + dis_waitb(); + dis_waitb(); + outp(0x3c8,0); + for(c=0;c<768;c++) outp(0x3c9,pal2[c]); + } + + while(!dis_exit() && frame<2450) + { + //setborder(0); + repeat=dis_waitb(); + if(frame>2300) setpalette(pal2); + //setborder(1); + if(dis_indemo()) + { + a=dis_musplus(); + if(a>-4 && a<0) break; + } + while(repeat--) + { + frame++; + if(frame==500) f=0; + i=dottaul[j]; + j++; j%=dotnum; + if(frame<500) + { + dot[i].x=isin(f*11)*40; + dot[i].y=icos(f*13)*10-dropper; + dot[i].z=isin(f*17)*40; + dot[i].yadd=0; + } + else if(frame<900) + { + dot[i].x=icos(f*15)*55; + dot[i].y=dropper; + dot[i].z=isin(f*15)*55; + dot[i].yadd=-260; + } + else if(frame<1700) + { + a=sin1024[frame&1023]/8; + dot[i].x=icos(f*66)*a; + dot[i].y=8000; + dot[i].z=isin(f*66)*a; + dot[i].yadd=-300; + } + else if(frame<2360) + { + /* + a=rand()/128+32; + dot[i].y=8000-a*80; + b=rand()&1023; + a+=rand()&31; + dot[i].x=sin1024[b]*a/3+(a-50)*7; + dot[i].z=sin1024[(b+256)&1023]*a/3+(a-40)*7; + dot[i].yadd=300; + if(frame>1640 && !(frame&31) && grav>-2) grav--; + */ + dot[i].x=rand()-16384; + dot[i].y=8000-rand()/2; + dot[i].z=rand()-16384; + dot[i].yadd=0; + if(frame>1900 && !(frame&31) && grav>0) grav--; + } + else if(frame<2400) + { + a=frame-2360; + for(b=0;b<768;b+=3) + { + c=pal[b+0]+a*3; + if(c>63) c=63; + pal2[b+0]=c; + c=pal[b+1]+a*3; + if(c>63) c=63; + pal2[b+1]=c; + c=pal[b+2]+a*4; + if(c>63) c=63; + pal2[b+2]=c; + } + } + else if(frame<2440) + { + a=frame-2400; + for(b=0;b<768;b+=3) + { + c=63-a*2; + if(c<0) c=0; + pal2[b+0]=c; + pal2[b+1]=c; + pal2[b+2]=c; + } + } + if(dropper>4000) dropper-=100; + rotcos=icos(rot)*64; rotsin=isin(rot)*64; + rots+=2; + if(frame>1900) + { + rot+=rota/64; + rota--; + } + else rot=isin(rots); + f++; + gravity=grav; + gravityd=gravd; + } + drawdots(); + } + if(!dis_indemo()) + { + _asm mov ax,3h + _asm int 10h + } + return(0); +} diff --git a/dots/dots.lnk b/dots/dots.lnk new file mode 100755 index 0000000..69615a8 --- /dev/null +++ b/dots/dots.lnk @@ -0,0 +1,6 @@ +debug dwarf all +option stack=32768 +system dos +file dots.obj +name dots.exe +option map=dots.meh diff --git a/dots/dots.meh b/dots/dots.meh new file mode 100755 index 0000000..c5864b4 --- /dev/null +++ b/dots/dots.meh @@ -0,0 +1,255 @@ +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: 17/08/11 14:12:27 +Executable Image: dots.exe +creating a DOS executable +Error! E2028: _sin1024 is an undefined reference +Error! E2028: dis_partstart_ is an undefined reference +Error! E2028: _dotnum is an undefined reference +Error! E2028: _dot is an undefined reference +Error! E2028: _gravitybottom is an undefined reference +Error! E2028: _rows is an undefined reference +Error! E2028: _depthtable1 is an undefined reference +Error! E2028: _depthtable2 is an undefined reference +Error! E2028: _depthtable3 is an undefined reference +Error! E2028: _bgpic is an undefined reference +Error! E2028: dis_waitb_ is an undefined reference +Error! E2028: dis_exit_ is an undefined reference +Error! E2028: setpalette_ is an undefined reference +Error! E2028: dis_indemo_ is an undefined reference +Error! E2028: dis_musplus_ is an undefined reference +Error! E2028: _rotcos is an undefined reference +Error! E2028: _rotsin is an undefined reference +Error! E2028: _gravity is an undefined reference +Error! E2028: _gravityd is an undefined reference +Error! E2028: drawdots_ is an undefined reference + + + +------------+ + | Groups | + +------------+ + +Group Address Size +===== ======= ==== + +DGROUP 01b9:0000 00008ee0 + + + + +--------------+ + | Segments | + +--------------+ + +Segment Class Group Address Size +======= ===== ===== ======= ==== + +dots_TEXT CODE AUTO 0000:0000 0000092e +_TEXT CODE AUTO 0000:0930 00001255 +FAR_DATA FAR_DATA AUTO 01b8:0005 00000000 +_NULL BEGDATA DGROUP 01b9:0000 00000020 +_AFTERNULL BEGDATA DGROUP 01bb:0000 00000002 +CONST DATA DGROUP 01bb:0002 00000000 +CONST2 DATA DGROUP 01bb:0002 00000000 +_DATA DATA DGROUP 01bc:0000 0000006e +XIB DATA DGROUP 01c2:000e 00000000 +XI DATA DGROUP 01c2:000e 00000012 +XIE DATA DGROUP 01c4:0000 00000000 +YIB DATA DGROUP 01c4:0000 00000000 +YI DATA DGROUP 01c4:0000 00000006 +YIE DATA DGROUP 01c4:0006 00000000 +STRINGS DATA DGROUP 01c4:0006 00000000 +DATA DATA DGROUP 01c4:0006 00000000 +_BSS BSS DGROUP 01c4:0006 00000e1c +STACK STACK DGROUP 02a7:0000 00008000 + + + +----------------+ + | Memory Map | + +----------------+ + +* = unreferenced symbol ++ = symbol only referenced locally + +Address Symbol +======= ====== + +Module: dots.obj(/dos/z/plz/dots/dots.c) +0000:0000+ isin_ +0000:0026+ icos_ +0000:004e+ setborder_ +0000:0082 main_ +01b9:0030+ _vram +01b9:0034+ _cols +01b9:00b6+ _dottaul +01b9:08b6+ _pal2 +01b9:0bb6+ _pal +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(stk086.asm) +0000:0935 __STK +0000:0955* __STKOVERFLOW_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(rand.c) +0000:0972 rand_ +0000:09b4* srand_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(i4m.asm) +0000:09d8 __I4M +0000:09d8 __U4M +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(haloc.c) +0000:0a05 halloc_ +0000:0aae* hfree_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(cstart) +01b9:0000* __nullarea +01b9:0052* __ovlflag +01b9:0053* __intno +01b9:0054* __ovlvec +0000:0ab6 _cstart_ +0000:0b89* _Not_Enough_Memory_ +0000:0cbb __exit_ +0000:0cd8 __do_exit_with_msg__ +0000:0d31 __GETDS +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(cmodel.asm) +0000:0d3c _big_code_ +0000:0d3c* CodeModelMismatch +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(argcv.c) +01b9:0eb6 __argv +01b9:0eba ___argv +01b9:0ebe __argc +01b9:0ec0 ___argc +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(xmsg.c) +0000:0d3c* __exit_with_msg_ +0000:0d41 __fatal_runtime_error_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(crwdata) +01b9:0058 __curbrk +01b9:0060 __STACKLOW +01b9:0062 __STACKTOP +01b9:0064 __cbyte +01b9:0066 __child +01b9:0068 __no87 +01b9:0075 ___FPE_handler +01b9:005a __psp +01b9:0069 __get_ovl_stack +01b9:006d __restore_ovl_stack +01b9:0071 __close_ovl_file +01b9:0079 __LpCmdLine +01b9:007d __LpPgmName +01b9:005c __osmajor +01b9:005d __osminor +01b9:005e __osmode +01b9:005f __HShift +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(pia.asm) +0000:0d63 __PIA +0000:0d5c* __PIS +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(cmain086.c) +0000:0d7a __CMain +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(initrtns.c) +0000:0ddb __InitRtns +0000:0ddb* __FInitRtns +0000:0e36 __FiniRtns +0000:0e36* __FFiniRtns +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(uselfn.c) +01b9:0082 ___uselfn +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(dosseg) +0000:0e9a __DOSseg__ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(initargv.c) +0000:1098 __Init_Argv_ +0000:10fa __Fini_Argv_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(enterdb.c) +0000:1124 __EnterWVIDEO_ +01b9:0084+ ___WD_Present +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(___argc.c) +01b9:0ec6 ____Argv +01b9:0eca ____Argc +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(amblksiz.c) +01b9:0086 __amblksiz +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(exit.c) +0000:1148+ __null_int23_exit_ +0000:1149 exit_ +0000:1161* _exit_ +01b9:0088+ ___int23_exit +01b9:008c+ ___FPE_handler_exit +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(sgdef086) +01b9:009e __Start_XI +01b9:00b0 __End_XI +01b9:00b0 __Start_YI +01b9:00b6 __End_YI +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(nmalloc.c) +0000:117c _nmalloc_ +01b9:0090 ___nheapbeg +01b9:0092 ___MiniHeapRover +01b9:0094 ___LargestSizeB4MiniHeapRover +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(fmalloc.c) +0000:1253* _fmalloc_ +0000:1253 malloc_ +01b9:0096+ ___fheap +01b9:0098 ___fheapRover +01b9:009a ___LargestSizeB4Rover +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(histsplt.c) +01b9:0ecc ___historical_splitparms +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(ffree.c) +0000:1365* _ffree_ +0000:1365 free_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(mem.c) +0000:13b0 __MemAllocator +0000:147a __MemFree +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(nmemneed.c) +0000:15e6 __nmemneed_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(grownear.c) +0000:166e __LastFree_ +0000:16e8 __ExpandDGROUP_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(growseg.c) +0000:17f9 __GrowSeg_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(allocseg.c) +0000:18e9 __AllocSeg_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(fmemneed.c) +0000:1980 __fmemneed_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(heapgrow.c) +0000:1983* _heapgrow_ +0000:1983* _fheapgrow_ +0000:1984 _nheapgrow_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(nfree.c) +0000:19fb _nfree_ +01b9:0ece+ ___MiniHeapFreeRover +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(heapen.c) +0000:1af6* _heapenable_ +01b9:009c ___heap_enabled +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(sbrk.c) +0000:1b07 __brk_ +0000:1b6e* sbrk_ +Module: /dos/fdos/watcom2/lib286/dos/clibl.lib(errno.c) +0000:1b7e* __get_errno_ptr_ +01b9:0ed0 _errno + + + +---------------------------+ + | Unresolved References | + +---------------------------+ + +Undefined Symbol Referenced by +================ ============= + +_sin1024 dots.obj(/dos/z/plz/dots/dots.c) +dis_partstart_ dots.obj(/dos/z/plz/dots/dots.c) +_dotnum dots.obj(/dos/z/plz/dots/dots.c) +_dot dots.obj(/dos/z/plz/dots/dots.c) +_gravitybottom dots.obj(/dos/z/plz/dots/dots.c) +_rows dots.obj(/dos/z/plz/dots/dots.c) +_depthtable1 dots.obj(/dos/z/plz/dots/dots.c) +_depthtable2 dots.obj(/dos/z/plz/dots/dots.c) +_depthtable3 dots.obj(/dos/z/plz/dots/dots.c) +_bgpic dots.obj(/dos/z/plz/dots/dots.c) +dis_waitb_ dots.obj(/dos/z/plz/dots/dots.c) +dis_exit_ dots.obj(/dos/z/plz/dots/dots.c) +setpalette_ dots.obj(/dos/z/plz/dots/dots.c) +dis_indemo_ dots.obj(/dos/z/plz/dots/dots.c) +dis_musplus_ dots.obj(/dos/z/plz/dots/dots.c) +_rotcos dots.obj(/dos/z/plz/dots/dots.c) +_rotsin dots.obj(/dos/z/plz/dots/dots.c) +_gravity dots.obj(/dos/z/plz/dots/dots.c) +_gravityd dots.obj(/dos/z/plz/dots/dots.c) +drawdots_ dots.obj(/dos/z/plz/dots/dots.c) + + + +--------------------+ + | Libraries Used | + +--------------------+ + +/dos/fdos/watcom2/lib286/dos/clibl.lib diff --git a/dots/dots.obj b/dots/dots.obj new file mode 100755 index 0000000000000000000000000000000000000000..7735faf2c2b0fb2c4f268088103328aacdb6e05a GIT binary patch literal 7513 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 literal 0 HcmV?d00001 diff --git a/dots/dp_prefs b/dots/dp_prefs new file mode 100755 index 0000000000000000000000000000000000000000..f76dcd530974f25aa42d32b31dbc7a823ccab667 GIT binary patch literal 324 zcmWe&U}X6Jp8*6|!6YLin1T`w96$y)vIrLTPKG+iFKh)2PAb{XAR2_lRTw_>sWE&A z{?G71NRshHACvyQn;i@vK=_;Bk=r0T{5``5klG!JM{fK6VEEt&#H`4>EJf2Zj$yKo`5ZF&vm8pv?GEr~UkG=4;II z+;xtQ?2pt|0L8B9wx8bvq}KrLPhu}%xCLY*VqVFzeO literal 0 HcmV?d00001 diff --git a/dots/face.c b/dots/face.c new file mode 100755 index 0000000..7012189 --- /dev/null +++ b/dots/face.c @@ -0,0 +1,26 @@ +#include + +char buf[1024]; + +main() +{ + FILE *f1; + int a,b,c=0; + float x,y,z; + f1=fopen("face.asc","rt"); + while(!feof(f1)) + { + fgets(buf,1024,f1); + fgets(buf,1024,f1); + if(!memcmp(buf,"Vertex ",7)) + { + if(c) + { + sscanf(buf,"Vertex %i: X: %f Y: %f Z: %f",&a,&x,&y,&z); + printf("dw %i,%i,%i\n",(int)(x*1000),-(int)(z*1000),(int)(y*1000)); + } + else c=1; + } + } + fclose(f1); +} diff --git a/dots/face.exe b/dots/face.exe new file mode 100755 index 0000000000000000000000000000000000000000..419e4495e5d9f2d2c2f61bfbf3b5be29d67e443f GIT binary patch literal 29250 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 +#include +#include +#include +#include +#include +#include "..\dis\dis.h" + +extern int face[]; + +extern int bpmin,bpmax; + +extern char *bgpic; +extern int rotsin,rotcos; +extern int rows[]; +extern long depthtable1[]; +extern long depthtable2[]; +extern long depthtable3[]; +extern long depthtable4[]; + +extern int dotnum; + +extern void drawdots(void); + +char far *vram=(char far *)0xa0000000L; + +char pal[768]; +char pal2[768]; + +extern sin1024[]; + +int isin(int deg) +{ + return(sin1024[deg&1023]); +} + +int icos(int deg) +{ + return(sin1024[(deg+256)&1023]); +} + +extern struct +{ + int x; + int y; + int z; + int old1; + int old2; + int old3; + int old4; + int yadd; +} dot[]; + +extern int gravity; +extern int gravitybottom; +extern int gravityd; + +void setborder(int color) +{ + _asm + { + mov dx,3dah + in al,dx + mov dx,3c0h + mov al,11h+32 + out dx,al + mov al,color + out dx,al + } +} + +int cols[]={ +0,0,0, +4,25,30, +8,40,45, +16,55,60}; +int dottaul[1024]; + +main(int argc,char *argv[]) +{ + int timer=30000; + int dropper,repeat; + int frame=0; + int rota=-1*64; + int fb=0; + int rot=0,rots=0; + int a,b,c,d,i,j,mode; + int grav,gravd; + int f=0; + dis_partstart(); + dotnum=512; + for(a=0;a15) c=15; + c=15-c; + depthtable1[a]=0x202+0x04040404*c; + depthtable2[a]=0x02030302+0x04040404*c; + depthtable3[a]=0x202+0x04040404*c; + //depthtable4[a]=0x02020302+0x04040404*c; + } + bgpic=halloc(64000L,1L); + memcpy(bgpic,vram,64000); + a=0; + for(b=64;b>=0;b--) + { + for(c=0;c<768;c++) + { + a=pal[c]-b; + if(a<0) a=0; + pal2[c]=a; + } + dis_waitb(); + dis_waitb(); + outp(0x3c8,0); + for(c=0;c<768;c++) outp(0x3c9,pal2[c]); + } + + while(!dis_exit() && frame<2450) + { + //setborder(0); + repeat=dis_waitb(); + if(frame>2300) setpalette(pal2); + //setborder(1); + if(dis_indemo()) + { + a=dis_musplus(); + if(a>-4 && a<0) break; + } + while(repeat--) + { + frame++; + if(frame==500) f=0; + i=dottaul[j]; + j++; j%=dotnum; + if(frame<500) + { + dot[i].x=isin(f*11)*40; + dot[i].y=icos(f*13)*10-dropper; + dot[i].z=isin(f*17)*40; + dot[i].yadd=0; + } + else if(frame<900) + { + dot[i].x=icos(f*15)*55; + dot[i].y=dropper; + dot[i].z=isin(f*15)*55; + dot[i].yadd=-260; + } + else if(frame<1700) + { + a=sin1024[frame&1023]/8; + dot[i].x=icos(f*66)*a; + dot[i].y=8000; + dot[i].z=isin(f*66)*a; + dot[i].yadd=-300; + } + else if(frame<2360) + { + /* + a=rand()/128+32; + dot[i].y=8000-a*80; + b=rand()&1023; + a+=rand()&31; + dot[i].x=sin1024[b]*a/3+(a-50)*7; + dot[i].z=sin1024[(b+256)&1023]*a/3+(a-40)*7; + dot[i].yadd=300; + if(frame>1640 && !(frame&31) && grav>-2) grav--; + */ + dot[i].x=rand()-16384; + dot[i].y=8000-rand()/2; + dot[i].z=rand()-16384; + dot[i].yadd=0; + if(frame>1900 && !(frame&31) && grav>0) grav--; + } + else if(frame<2400) + { + a=frame-2360; + for(b=0;b<768;b+=3) + { + c=pal[b+0]+a*3; + if(c>63) c=63; + pal2[b+0]=c; + c=pal[b+1]+a*3; + if(c>63) c=63; + pal2[b+1]=c; + c=pal[b+2]+a*4; + if(c>63) c=63; + pal2[b+2]=c; + } + } + else if(frame<2440) + { + a=frame-2400; + for(b=0;b<768;b+=3) + { + c=63-a*2; + if(c<0) c=0; + pal2[b+0]=c; + pal2[b+1]=c; + pal2[b+2]=c; + } + } + if(dropper>4000) dropper-=100; + rotcos=icos(rot)*64; rotsin=isin(rot)*64; + rots+=2; + if(frame>1900) + { + rot+=rota/64; + rota--; + } + else rot=isin(rots); + f++; + gravity=grav; + gravityd=gravd; + } + drawdots(); + } + if(!dis_indemo()) + { + _asm mov ax,3h + _asm int 10h + } + return(0); +} diff --git a/dots/makefile b/dots/makefile new file mode 100755 index 0000000..53048b3 --- /dev/null +++ b/dots/makefile @@ -0,0 +1,48 @@ +MEMORYMODE=l +# symbolic debug for wsample/wprof/wd +D_FLAGS=-d1+ + +# stacksize +STKSIZ=32768 +#STKSIZ=24576#40960 + +# +# compile flags +# +S_FLAGS=-sg -st -of+ -zu -zdf -zff -zgf -k$(STKSIZ) +Z_FLAGS=-zk0 -zc#### -zp4 -ei# -zm +O_FLAGS=-opnr -oe=24 -oil+ -outback -ohm +T_FLAGS=-bt=dos -wx -m$(MEMORYMODE) -0 -fpi87 $(D_FLAGS) -fo=.obj## -e=65536 + +DBUGFLAGS=-fm=$^&.meh -fd=$^& $(D_FLAGS) +CPPFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1 -DSTACKSIZE=$(STKSIZ) + +AFLAGS=$(T_FLAGS) +CFLAGS=$(T_FLAGS) -wo -i"$(DOSLIBDIR)" $(O_FLAGS) $(S_FLAGS) $(Z_FLAGS) +LFLAGS=-l=dos $(S_FLAGS) $(DBUGFLAGS) +#asm_f = /ML /m2 /s /JJUMPS +#c_f = /AL /c /W3 + +#.asm.obj : +# tasm $(asm_f) $< +# +#.c.obj : +# cl /qc $(c_f) $< + +.c.obj: + *wcl $(CFLAGS) $(extra_$^&_obj_opts) $(CPPFLAGS) -c $[@ +.asm.obj: + *wcl $(AFLAGS) $(extra_$^&_obj_opts) -c $[@ +.obj.exe : + *wcl $(LFLAGS) $(extra_$^&_exe_opts)$< -fe=$@ + +# link /E $(objs),dots.exe,nul; +# copy dots.exe ..\main\data\minvball.exe + +DOTSOBJS=dots.obj ../dis/disc.obj# asm.obj + +all : dots.exe + +dots.exe : $(DOTSOBJS) + +#asm.asm : face.inc diff --git a/dots/makefile.old b/dots/makefile.old new file mode 100755 index 0000000..945ebad --- /dev/null +++ b/dots/makefile.old @@ -0,0 +1,24 @@ +all : dots.exe face.exe + +face.exe : face.c + cl /qc /AL face.c + face > face.inc + +objs=main.obj asm.obj ..\dis\disc.obj + +asm_f = /ML /m2 /s /JJUMPS +c_f = /AL /c /W3 + +.asm.obj : + tasm $(asm_f) $< + +.c.obj : + cl /qc $(c_f) $< + +dots.exe : $(objs) + link /E $(objs),dots.exe,nul; + copy dots.exe ..\main\data\minvball.exe + +asm.asm : face.inc + + diff --git a/dots/sin1024.inc b/dots/sin1024.inc new file mode 100755 index 0000000..6614fbe --- /dev/null +++ b/dots/sin1024.inc @@ -0,0 +1,33 @@ +_sin1024 LABEL WORD +dw 0,1,3,4,6,7,9,10,12,14,15,17,18,20,21,23,25,26,28,29,31,32,34,36,37,39,40,42,43,45,46,48 +dw 49,51,53,54,56,57,59,60,62,63,65,66,68,69,71,72,74,75,77,78,80,81,83,84,86,87,89,90,92,93,95,96 +dw 97,99,100,102,103,105,106,108,109,110,112,113,115,116,117,119,120,122,123,124,126,127,128,130,131,132,134,135,136,138,139,140 +dw 142,143,144,146,147,148,149,151,152,153,155,156,157,158,159,161,162,163,164,166,167,168,169,170,171,173,174,175,176,177,178,179 +dw 181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,211 +dw 212,213,214,215,216,217,217,218,219,220,221,221,222,223,224,225,225,226,227,227,228,229,230,230,231,232,232,233,234,234,235,235 +dw 236,237,237,238,238,239,239,240,241,241,242,242,243,243,244,244,244,245,245,246,246,247,247,247,248,248,249,249,249,250,250,250 +dw 251,251,251,251,252,252,252,252,253,253,253,253,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255 +dw 256,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,254,254,254,254,253,253,253,253,252,252,252,252,251,251,251 +dw 251,250,250,250,249,249,249,248,248,247,247,247,246,246,245,245,244,244,244,243,243,242,242,241,241,240,239,239,238,238,237,237 +dw 236,235,235,234,234,233,232,232,231,230,230,229,228,227,227,226,225,225,224,223,222,221,221,220,219,218,217,217,216,215,214,213 +dw 212,211,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182 +dw 181,179,178,177,176,175,174,173,171,170,169,168,167,166,164,163,162,161,159,158,157,156,155,153,152,151,149,148,147,146,144,143 +dw 142,140,139,138,136,135,134,132,131,130,128,127,126,124,123,122,120,119,117,116,115,113,112,110,109,108,106,105,103,102,100,99 +dw 97,96,95,93,92,90,89,87,86,84,83,81,80,78,77,75,74,72,71,69,68,66,65,63,62,60,59,57,56,54,53,51 +dw 49,48,46,45,43,42,40,39,37,36,34,32,31,29,28,26,25,23,21,20,18,17,15,14,12,10,9,7,6,4,3,1 +dw 0,-1,-3,-4,-6,-7,-9,-10,-12,-14,-15,-17,-18,-20,-21,-23,-25,-26,-28,-29,-31,-32,-34,-36,-37,-39,-40,-42,-43,-45,-46,-48 +dw -49,-51,-53,-54,-56,-57,-59,-60,-62,-63,-65,-66,-68,-69,-71,-72,-74,-75,-77,-78,-80,-81,-83,-84,-86,-87,-89,-90,-92,-93,-95,-96 +dw -97,-99,-100,-102,-103,-105,-106,-108,-109,-110,-112,-113,-115,-116,-117,-119,-120,-122,-123,-124,-126,-127,-128,-130,-131,-132,-134,-135,-136,-138,-139,-140 +dw -142,-143,-144,-146,-147,-148,-149,-151,-152,-153,-155,-156,-157,-158,-159,-161,-162,-163,-164,-166,-167,-168,-169,-170,-171,-173,-174,-175,-176,-177,-178,-179 +dw -181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-207,-208,-209,-210,-211,-211 +dw -212,-213,-214,-215,-216,-217,-217,-218,-219,-220,-221,-221,-222,-223,-224,-225,-225,-226,-227,-227,-228,-229,-230,-230,-231,-232,-232,-233,-234,-234,-235,-235 +dw -236,-237,-237,-238,-238,-239,-239,-240,-241,-241,-242,-242,-243,-243,-244,-244,-244,-245,-245,-246,-246,-247,-247,-247,-248,-248,-249,-249,-249,-250,-250,-250 +dw -251,-251,-251,-251,-252,-252,-252,-252,-253,-253,-253,-253,-254,-254,-254,-254,-254,-254,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255 +dw -256,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-254,-254,-254,-254,-254,-254,-253,-253,-253,-253,-252,-252,-252,-252,-251,-251,-251 +dw -251,-250,-250,-250,-249,-249,-249,-248,-248,-247,-247,-247,-246,-246,-245,-245,-244,-244,-244,-243,-243,-242,-242,-241,-241,-240,-239,-239,-238,-238,-237,-237 +dw -236,-235,-235,-234,-234,-233,-232,-232,-231,-230,-230,-229,-228,-227,-227,-226,-225,-225,-224,-223,-222,-221,-221,-220,-219,-218,-217,-217,-216,-215,-214,-213 +dw -212,-211,-211,-210,-209,-208,-207,-206,-205,-204,-203,-202,-201,-200,-199,-198,-197,-196,-195,-194,-193,-192,-191,-190,-189,-188,-187,-186,-185,-184,-183,-182 +dw -181,-179,-178,-177,-176,-175,-174,-173,-171,-170,-169,-168,-167,-166,-164,-163,-162,-161,-159,-158,-157,-156,-155,-153,-152,-151,-149,-148,-147,-146,-144,-143 +dw -142,-140,-139,-138,-136,-135,-134,-132,-131,-130,-128,-127,-126,-124,-123,-122,-120,-119,-117,-116,-115,-113,-112,-110,-109,-108,-106,-105,-103,-102,-100,-99 +dw -97,-96,-95,-93,-92,-90,-89,-87,-86,-84,-83,-81,-80,-78,-77,-75,-74,-72,-71,-69,-68,-66,-65,-63,-62,-60,-59,-57,-56,-54,-53,-51 +dw -49,-48,-46,-45,-43,-42,-40,-39,-37,-36,-34,-32,-31,-29,-28,-26,-25,-23,-21,-20,-18,-17,-15,-14,-12,-10,-9,-7,-6,-4,-3,-1 diff --git a/plzpart/makefile b/plzpart/makefile new file mode 100755 index 0000000..e70bb5b --- /dev/null +++ b/plzpart/makefile @@ -0,0 +1,133 @@ +# +# 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 -- 2.39.5