level 7
;***************************************************************************;;* SNOW 256B intro - another try for DB'00 ... probably last one ? *;;* 256B intro by Ped / 7GODS, http://7gods.rulez.sk, mailto:[email protected] *;;* HOVER DAMN SLOW ... sends my P133 down to knees under 13 FPS *;;* ... but, it's for_size optimalisation, not for_speed, ok ?! *;;***************************************************************************;; tasm /m9 snowshow.asm; tlink /t /x snowshow.obj .386code SEGMENT use16 ASSUME cs:code,ds:code,es:code ORG 100hCOLOR1 EQU 32COLOR2 EQU 53COLOR3 EQU 52RECTNUM EQU 9start: MOV ax,13h INT 10h MOV
bp
,0a000h ; handy number, really! :) MOV es,bp; flash screen "effect" .. well, i had about 22B free, so I added this shit MOV al,134start_loop: XOR di,di DEC cx ; cx = 65535 (at least in second+ pass) PUSH ax CALL WaitforRetrace POP ax DEC ax REP STOSB JNZ start_loop; real intro starts here ..; init screen MOV dx,1 MOV bx,320 MOV cl,RECTNUM; 9 = 1001 *InitSI ; pf == 1 (test cl,1101b); 8 = 1000 ; pf == 0 .; 7 = 0111 *InitSI ; pf == 1 .; 6 = 0110 ; pf == 0 .; 5 = 0101 *InitSI ; pf == 1; 4 = 0100 ; pf == 0; 3 = 0011 ; pf == 0; 2 = 0010 ; pf == 1 ! -> special test needed: zf = 1 !; 1 = 0001 ; pf == 0scrinit_loop1: TEST cl,00Dh ; 1101b JZ scrinit_loop1_NoInitSI ; cx == 2 JNP scrinit_loop1_NoInitSI ; cx == 1, 3, 4, 6, 8, eh, cool ?! :); don't ask me, how much brainstorming cost me this 7B long test for {9,7,5} MOV si,OFFSET screeninitdatascrinit_loop1_NoInitSI: CALL Rectang LOOP scrinit_loop1
2008年05月01日 12点05分