level 7
.model tiny;AZM the smurf.code;.486;256 byte intro by Akos Fekete (Chut);;compiled by: Tasm, TlinkoEQUoffsetsEQUshortCOLOREQU0Fh;color of linesCOORDMACROx,y;set cursor positionDB((y*2)/3)+((y*2)/3)+1;x=0..319DB(x*4)/5;y=0..199ENDMNLINEMACROa,f,l;a=quarter (0..3)DB(f*4+a)*10+l*2;f=vector in quarter (0..5)ENDM;l=length (0..4)END_OF_DATASEQUDB 1ORG0100hAZM:MOVAL,13hINT10H;change video mode: 320x200/8PUSH0A000hPOPESMOVSI,o LINESRELOAD:LODSBSHRAL,1JNCs LINEJZs EXITCBWIMULBP,AX,6;Y coordLODSBIMULBX,AX,5;X coordJMPs RELOADLINE:AAM5MOVCX,0102hADDCL,AL; ( 0 1 2 3 4 )SHRCX,CL;CL=64,32,16,8,4NEWPIXEL:PUSHAX;packed stepping codesMOVDI,BPSHRDI,2IMULDI,DI,320MOVDX,BXSHRDX,2ADDDI,DX;DI=current video positionSHRAX,2;AL two upper bit -> vector rotationMOVDX,03FEhADDDL,AH;DH=d.X (-2..3) DL=d.Y (3)ROTATE:XCHGDL,DHNEGDLSUBAL,40hJNCs ROTATEMOVAL,DHCBWADDBX,AX;X=X+d.XXCHGAX,DXCBWADDBP,AX;Y=Y+d.YMOVAL,COLORSTOSBPUSHACBWINT1AhMOVDI,DXWAITFORTICK:INT1Ah;55ms waitingCMPDI,DXJEs WAITFORTICKINAL,60h;check key to abortDECAXPOPAPOPAXJZs EXITLOOPNEWPIXELJMPs RELOADEXIT:CBW;AX=0INT16h;waiting for a keystrokeMOVAX,3INT10h;set text modeRET;go back to OSLINES:COORD210,123;LEFT EYE + NOSENLINE1,1,2NLINE1,2,2NLINE1,2,3NLINE1,4,2NLINE0,0,2NLINE0,4,3NLINE3,0,3NLINE3,2,2NLINE3,4,2NLINE3,5,3NLINE2,0,2NLINE3,2,4NLINE0,4,2NLINE3,0,2NLINE3,2,2NLINE3,3,3NLINE3,5,3NLINE2,1,3NLINE2,3,2NLINE1,0,2NLINE1,1,2NLINE1,2,2COORD168,117;LEFT EYE 2NLINE3,0,4NLINE3,1,4NLINE3,2,4NLINE3,4,3NLINE2,0,4NLINE2,2,3COORD193,104;RIGHT EYENLINE0,4,4NLINE3,0,4NLINE3,2,3NLINE3,2,4NLINE3,3,3NLINE3,5,3NLINE2,0,4COORD203,112;RIGHT EYE 2NLINE3,2,3NLINE3,5,3COORD160,147;MOUTHNLINE0,4,3NLINE2,4,4NLINE3,4,3NLINE3,3,1NLINE3,2,1NLINE3,1,2NLINE3,1,3NLINE2,4,2NLINE2,5,2NLINE1,0,2NLINE1,1,2NLINE1,2,3NLINE1,3,3NLINE1,4,3NLINE0,1,3NLINE0,2,3NLINE0,3,2NLINE0,4,3COORD170,172;TONGUENLINE3,1,2NLINE3,2,3NLINE3,4,2NLINE2,1,3COORD243,138;CHIN + EAR + BROWNLINE2,1,3NLINE2,2,2NLINE2,4,2NLINE1,0,1NLINE1,1,1NLINE1,2,0NLINE1,3,2NLINE1,1,2NLINE1,2,2NLINE1,3,1NLINE1,5,2NLINE0,0,3NLINE0,3,2NLINE3,0,2NLINE3,1,2NLINE3,2,2NLINE3,2,3NLINE3,3,2NLINE1,3,3NLINE0,3,2NLINE0,4,1NLINE0,5,2NLINE3,0,3NLINE3,1,2NLINE3,2,1NLINE3,2,2NLINE3,3,2NLINE3,4,2NLINE2,1,3COORD116,162;EAR2NLINE1,3,2NLINE1,1,2NLINE2,0,2NLINE3,3,2COORD69,155;CAPNLINE0,1,1NLINE0,2,1NLINE0,3,1NLINE0,4,1NLINE0,5,1NLINE3,0,2NLINE3,1,0NLINE3,2,0NLINE3,3,1NLINE3,4,2NLINE2,0,3NLINE2,2,3NLINE2,4,3NLINE1,0,2NLINE1,1,1NLINE1,2,1NLINE1,2,3NLINE1,4,3COORD242,102;CAP2NLINE0,1,2NLINE0,0,3NLINE1,4,3NLINE1,3,2NLINE1,3,2NLINE1,2,1NLINE1,2,2NLINE1,1,2COORD202,61;CAP3NLINE2,1,2END_OF_DATASENDAZM
2008年05月01日 13点05分