From: sparky4 Date: Mon, 15 Feb 2016 20:08:35 +0000 (-0600) Subject: wwwwwwwwwwww X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;h=fb13a19576c3a98c5239ff1df0a0d59614f96e32;p=plz.git wwwwwwwwwwww --- diff --git a/copper.as0 b/copper.as0 new file mode 100755 index 0000000..cbc118e --- /dev/null +++ b/copper.as0 @@ -0,0 +1,1178 @@ +.8087 + PUBLIC _frame_count + PUBLIC _cop_drop + PUBLIC _cop_pal + PUBLIC _do_pal + PUBLIC _cop_start + PUBLIC _cop_scrl + PUBLIC _cop_plz + PUBLIC _close_copper + PUBLIC _init_copper + PUBLIC _pompota + PUBLIC _moveplz + PUBLIC _fadepal + PUBLIC _cop_fadepal + EXTRN _k1:BYTE + EXTRN _k2:BYTE + EXTRN _k3:BYTE + EXTRN _k4:BYTE + EXTRN _l1:BYTE + EXTRN _l2:BYTE + EXTRN _l3:BYTE + EXTRN _l4:BYTE + EXTRN _il1:BYTE + EXTRN _il2:BYTE + EXTRN _il3:BYTE + EXTRN _il4:BYTE + EXTRN _ik1:BYTE + EXTRN _ik2:BYTE + EXTRN _ik3:BYTE + EXTRN _ik4:BYTE +DGROUP GROUP _DATA +COPPER_TEXT SEGMENT WORD PUBLIC USE16 'CODE' + ASSUME CS:COPPER_TEXT, DS:DGROUP, SS:DGROUP +_frame_count: + add byte ptr [bx+si],al +_cop_drop: + add byte ptr [bx+si],al +_cop_pal: + add byte ptr [bx+si],al +L$1: + add byte ptr [bx+si],al +_do_pal: + add byte ptr [bx+si],al +_cop_start: + DB 0 +L$2: + DB 0 +_cop_scrl: + add byte ptr [bx+si],al +_cop_plz: + add word ptr [bx+si],ax +_close_copper: .global + 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 + retf +_init_copper: .global + mov bx,7 + mov ax,1 + mov cx,offset copper1 + mov dx,COPPER_TEXT + int 0fcH + mov bx,7 + mov ax,2 + mov cx,offset copper2 + mov dx,COPPER_TEXT + int 0fcH + mov bx,7 + mov ax,0 + mov cx,offset copper3 + mov dx,COPPER_TEXT + int 0fcH + retf +copper1: + mov dx,3d4H + mov al,0dH + mov ah,byte ptr cs:_cop_start + out dx,ax + mov al,0cH + mov ah,byte ptr cs:L$2 + out dx,ax + mov dx,3c0H + mov al,33H + out dx,al + mov ax,word ptr cs:_cop_scrl + out dx,al + retf +copper2: + ;pusha + push AX + push CX + push DX + push BX + push SP + push BP + push SI + push DI + push ds + inc word ptr cs:_frame_count + cmp word ptr cs:_do_pal,0 + je L$3 + lds si,dword ptr cs:_cop_pal + mov cx,300H + mov dx,3c8H + mov al,0 + out dx,al + inc dx + ;rep outsb + movsb + movsb + mov word ptr cs:_do_pal,0 +L$3: + cmp word ptr cs:_cop_plz,0 + je L$4 + push cs + call near ptr _pompota + push cs + call near ptr _moveplz +L$4: + cmp word ptr cs:_cop_drop,0 + je L$5 + push cs + call near ptr L$14 +L$5: + pop ds + ;;;;popa + pop AX + pop CX + pop DX + pop BX + pop SP + pop BP + pop SI + pop DI + retf +copper3: + retf +L$6: + DB 0 +_pompota: + mov word ptr cs:0cH,4 + mov dx,3d4H + mov ax,3c18H + out dx,ax + mov ax,0f07H + out dx,ax + mov ax,3c18H + inc byte ptr cs:L$6 + test byte ptr cs:L$6,1 + je L$7 + mov word ptr cs:_cop_scrl,0 + mov ax,3d18H +L$7: + out dx,ax + retf +_moveplz: + ;;;;push ds + ;;;;push seg _k1 + ;;;;pop ds + add word ptr DGROUP:_k1,0fffdH + and word ptr DGROUP:_k1,0fffH + add word ptr DGROUP:_k2,0fffeH + and word ptr DGROUP:_k2,0fffH + add word ptr DGROUP:_k3,1 + and word ptr DGROUP:_k3,0fffH + add word ptr DGROUP:_k4,2 + and word ptr DGROUP:_k4,0fffH + add word ptr DGROUP:_l1,0ffffH + and word ptr DGROUP:_l1,0fffH + add word ptr DGROUP:_l2,0fffeH + and word ptr DGROUP:_l2,0fffH + add word ptr DGROUP:_l3,2 + and word ptr DGROUP:_l3,0fffH + add word ptr DGROUP:_l4,3 + and word ptr DGROUP:_l4,0fffH + pop ds + retf +L$8: + cmp al,0 + cmp al,0 + cmp al,0 + cmp al,0 + cmp ax,3e00H + add byte ptr [bx],bh + add byte ptr [bx+si],al + inc cx + add byte ptr [bp+si],al + inc sp + add byte ptr [bp],al + dec ax + add byte ptr [bp+si],cl + dec sp + add byte ptr [bp],cl + push cx + add byte ptr [si],dl + push di + add byte ptr [bp+si],bl + pop bp + add byte ptr [bx+si],ah + add byte ptr fs:[bx+si],ch + ;;;;insb + add byte ptr [bx+si],dh + je L$9 +L$9: + jns L$10 +L$10: + jge L$11 +L$11: + add byte ptr [bx+si],87H + add byte ptr -6e00H[si],cl + add byte ptr -6300H[bx],dl + add byte ptr -5800H[bp+si],ah + add byte ptr -4b00H[bp],ch + add byte ptr -3e00H[bp+di],bh + add cl,cl + add al,dl + add bh,dl + add dh,bl + add ch,ah + add ch,ch + add ch,dh + add ch,bh + add byte ptr [di],al + add word ptr [di],cx + add word ptr ds:[1f01H],dx + add word ptr [bx],sp + add word ptr [bx+si],si + add word ptr [bx+di],di + add word ptr 1[bp+di],ax + dec sp + add word ptr 1[bp],dx + ;;;;pusha + push AX + push CX + push DX + push BX + push SP + push BP + push SI + push DI + add word ptr 1[bp+si],bp + je L$12 + DB 7eH +L$12: + DD L$13 +L$13: + DB 1 +_fadepal: + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al + add byte ptr [bx+si],al +_cop_fadepal: + add byte ptr [bx+si],al + add byte ptr [bx+si],al +L$14: + inc word ptr cs:2 + cmp word ptr cs:_cop_drop,40H + ja L$15 + push bx + mov bx,word ptr cs:_cop_drop + shl bx,1 + add bx,offset L$8 + mov bx,word ptr cs:[bx] + mov dx,3d4H + mov al,18H + mov ah,bl + out dx,ax + mov al,7 + mov ah,bh + shl ah,1 + shl ah,1 + shl ah,1 + shl ah,1 + and ah,10H + or ah,0fH + out dx,ax + pop bx + retf +L$15: + cmp word ptr cs:_cop_drop,100H + jae L$19 + cmp word ptr cs:_cop_drop,80H + jae L$16 + cmp word ptr cs:_cop_drop,60H + ja L$19 +L$16: + mov word ptr cs:_cop_pal,offset _fadepal + mov word ptr cs:L$1,COPPER_TEXT + mov word ptr cs:_do_pal,1 + cmp word ptr cs:_cop_drop,41H + je L$18 + mov dx,3d4H + mov ax,3c18H + out dx,ax + mov ax,0f07H + out dx,ax + push ds + push si + push di + push cx + lds si,dword ptr cs:_cop_fadepal + mov di,offset _fadepal + mov cx,30H +L$17: + mov ax,word ptr [si] + add byte ptr cs:300H[di],al + adc byte ptr cs:[di],ah + mov ax,word ptr 2[si] + add byte ptr cs:301H[di],al + adc byte ptr cs:1[di],ah + mov ax,word ptr 4[si] + add byte ptr cs:302H[di],al + adc byte ptr cs:2[di],ah + mov ax,word ptr 6[si] + add byte ptr cs:303H[di],al + adc byte ptr cs:3[di],ah + mov ax,word ptr 8[si] + add byte ptr cs:304H[di],al + adc byte ptr cs:4[di],ah + mov ax,word ptr 0aH[si] + add byte ptr cs:305H[di],al + adc byte ptr cs:5[di],ah + mov ax,word ptr 0cH[si] + add byte ptr cs:306H[di],al + adc byte ptr cs:6[di],ah + mov ax,word ptr 0eH[si] + add byte ptr cs:307H[di],al + adc byte ptr cs:7[di],ah + mov ax,word ptr 10H[si] + add byte ptr cs:308H[di],al + adc byte ptr cs:8[di],ah + mov ax,word ptr 12H[si] + add byte ptr cs:309H[di],al + adc byte ptr cs:9[di],ah + mov ax,word ptr 14H[si] + add byte ptr cs:30aH[di],al + adc byte ptr cs:0aH[di],ah + mov ax,word ptr 16H[si] + add byte ptr cs:30bH[di],al + adc byte ptr cs:0bH[di],ah + mov ax,word ptr 18H[si] + add byte ptr cs:30cH[di],al + adc byte ptr cs:0cH[di],ah + mov ax,word ptr 1aH[si] + add byte ptr cs:30dH[di],al + adc byte ptr cs:0dH[di],ah + mov ax,word ptr 1cH[si] + add byte ptr cs:30eH[di],al + adc byte ptr cs:0eH[di],ah + mov ax,word ptr 1eH[si] + add byte ptr cs:30fH[di],al + adc byte ptr cs:0fH[di],ah + add di,10H + add si,20H + dec cx + jne L$17 + pop cx + pop di + pop si + pop ds + retf +L$18: + mov dx,3d4H + mov ax,9018H + out dx,ax + mov ax,1f07H + out dx,ax + push cs + call near ptr L$20 + retf +L$19: + mov word ptr cs:_cop_drop,0 + retf +L$20: + push ax + push ds + ;;;;push seg _k1 + pop ds + mov ax,word ptr DGROUP:_il1 + mov word ptr DGROUP:_l1,ax + mov ax,word ptr DGROUP:_il2 + mov word ptr DGROUP:_l2,ax + mov ax,word ptr DGROUP:_il3 + mov word ptr DGROUP:_l3,ax + mov ax,word ptr DGROUP:_il4 + mov word ptr DGROUP:_l4,ax + mov ax,word ptr DGROUP:_ik1 + mov word ptr DGROUP:_k1,ax + mov ax,word ptr DGROUP:_ik2 + mov word ptr DGROUP:_k2,ax + mov ax,word ptr DGROUP:_ik3 + mov word ptr DGROUP:_k3,ax + mov ax,word ptr DGROUP:_ik4 + mov word ptr DGROUP:_k4,ax + pop ds + pop ax + retf +COPPER_TEXT ENDS +_DATA SEGMENT WORD PUBLIC USE16 'DATA' +_DATA ENDS + END diff --git a/copper.asm b/copper.asm index cbc118e..c7a6209 100755 --- a/copper.asm +++ b/copper.asm @@ -1,1178 +1,300 @@ -.8087 - PUBLIC _frame_count - PUBLIC _cop_drop - PUBLIC _cop_pal - PUBLIC _do_pal - PUBLIC _cop_start - PUBLIC _cop_scrl - PUBLIC _cop_plz - PUBLIC _close_copper - PUBLIC _init_copper - PUBLIC _pompota - PUBLIC _moveplz - PUBLIC _fadepal - PUBLIC _cop_fadepal - EXTRN _k1:BYTE - EXTRN _k2:BYTE - EXTRN _k3:BYTE - EXTRN _k4:BYTE - EXTRN _l1:BYTE - EXTRN _l2:BYTE - EXTRN _l3:BYTE - EXTRN _l4:BYTE - EXTRN _il1:BYTE - EXTRN _il2:BYTE - EXTRN _il3:BYTE - EXTRN _il4:BYTE - EXTRN _ik1:BYTE - EXTRN _ik2:BYTE - EXTRN _ik3:BYTE - EXTRN _ik4:BYTE -DGROUP GROUP _DATA -COPPER_TEXT SEGMENT WORD PUBLIC USE16 'CODE' - ASSUME CS:COPPER_TEXT, DS:DGROUP, SS:DGROUP -_frame_count: - add byte ptr [bx+si],al -_cop_drop: - add byte ptr [bx+si],al -_cop_pal: - add byte ptr [bx+si],al -L$1: - add byte ptr [bx+si],al -_do_pal: - add byte ptr [bx+si],al -_cop_start: - DB 0 -L$2: - DB 0 -_cop_scrl: - add byte ptr [bx+si],al -_cop_plz: - add word ptr [bx+si],ax -_close_copper: .global - 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 - retf -_init_copper: .global - mov bx,7 - mov ax,1 - mov cx,offset copper1 - mov dx,COPPER_TEXT - int 0fcH - mov bx,7 - mov ax,2 - mov cx,offset copper2 - mov dx,COPPER_TEXT - int 0fcH - mov bx,7 - mov ax,0 - mov cx,offset copper3 - mov dx,COPPER_TEXT - int 0fcH - retf -copper1: - mov dx,3d4H - mov al,0dH - mov ah,byte ptr cs:_cop_start - out dx,ax - mov al,0cH - mov ah,byte ptr cs:L$2 - out dx,ax - mov dx,3c0H - mov al,33H - out dx,al - mov ax,word ptr cs:_cop_scrl - out dx,al - retf -copper2: - ;pusha - push AX - push CX - push DX - push BX - push SP - push BP - push SI - push DI - push ds - inc word ptr cs:_frame_count - cmp word ptr cs:_do_pal,0 - je L$3 - lds si,dword ptr cs:_cop_pal - mov cx,300H - mov dx,3c8H - mov al,0 - out dx,al - inc dx - ;rep outsb - movsb - movsb - mov word ptr cs:_do_pal,0 -L$3: - cmp word ptr cs:_cop_plz,0 - je L$4 - push cs - call near ptr _pompota - push cs - call near ptr _moveplz -L$4: - cmp word ptr cs:_cop_drop,0 - je L$5 - push cs - call near ptr L$14 -L$5: - pop ds - ;;;;popa - pop AX - pop CX - pop DX - pop BX - pop SP - pop BP - pop SI - pop DI - retf -copper3: - retf -L$6: - DB 0 -_pompota: - mov word ptr cs:0cH,4 - mov dx,3d4H - mov ax,3c18H - out dx,ax - mov ax,0f07H - out dx,ax - mov ax,3c18H - inc byte ptr cs:L$6 - test byte ptr cs:L$6,1 - je L$7 - mov word ptr cs:_cop_scrl,0 - mov ax,3d18H -L$7: - out dx,ax - retf -_moveplz: - ;;;;push ds - ;;;;push seg _k1 - ;;;;pop ds - add word ptr DGROUP:_k1,0fffdH - and word ptr DGROUP:_k1,0fffH - add word ptr DGROUP:_k2,0fffeH - and word ptr DGROUP:_k2,0fffH - add word ptr DGROUP:_k3,1 - and word ptr DGROUP:_k3,0fffH - add word ptr DGROUP:_k4,2 - and word ptr DGROUP:_k4,0fffH - add word ptr DGROUP:_l1,0ffffH - and word ptr DGROUP:_l1,0fffH - add word ptr DGROUP:_l2,0fffeH - and word ptr DGROUP:_l2,0fffH - add word ptr DGROUP:_l3,2 - and word ptr DGROUP:_l3,0fffH - add word ptr DGROUP:_l4,3 - and word ptr DGROUP:_l4,0fffH - pop ds - retf -L$8: - cmp al,0 - cmp al,0 - cmp al,0 - cmp al,0 - cmp ax,3e00H - add byte ptr [bx],bh - add byte ptr [bx+si],al - inc cx - add byte ptr [bp+si],al - inc sp - add byte ptr [bp],al - dec ax - add byte ptr [bp+si],cl - dec sp - add byte ptr [bp],cl - push cx - add byte ptr [si],dl - push di - add byte ptr [bp+si],bl - pop bp - add byte ptr [bx+si],ah - add byte ptr fs:[bx+si],ch - ;;;;insb - add byte ptr [bx+si],dh - je L$9 -L$9: - jns L$10 -L$10: - jge L$11 -L$11: - add byte ptr [bx+si],87H - add byte ptr -6e00H[si],cl - add byte ptr -6300H[bx],dl - add byte ptr -5800H[bp+si],ah - add byte ptr -4b00H[bp],ch - add byte ptr -3e00H[bp+di],bh - add cl,cl - add al,dl - add bh,dl - add dh,bl - add ch,ah - add ch,ch - add ch,dh - add ch,bh - add byte ptr [di],al - add word ptr [di],cx - add word ptr ds:[1f01H],dx - add word ptr [bx],sp - add word ptr [bx+si],si - add word ptr [bx+di],di - add word ptr 1[bp+di],ax - dec sp - add word ptr 1[bp],dx - ;;;;pusha - push AX - push CX - push DX - push BX - push SP - push BP - push SI - push DI - add word ptr 1[bp+si],bp - je L$12 - DB 7eH -L$12: - DD L$13 -L$13: - DB 1 -_fadepal: - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al - add byte ptr [bx+si],al -_cop_fadepal: - add byte ptr [bx+si],al - add byte ptr [bx+si],al -L$14: - inc word ptr cs:2 - cmp word ptr cs:_cop_drop,40H - ja L$15 - push bx - mov bx,word ptr cs:_cop_drop - shl bx,1 - add bx,offset L$8 - mov bx,word ptr cs:[bx] - mov dx,3d4H - mov al,18H - mov ah,bl - out dx,ax - mov al,7 - mov ah,bh - shl ah,1 - shl ah,1 - shl ah,1 - shl ah,1 - and ah,10H - or ah,0fH - out dx,ax - pop bx - retf -L$15: - cmp word ptr cs:_cop_drop,100H - jae L$19 - cmp word ptr cs:_cop_drop,80H - jae L$16 - cmp word ptr cs:_cop_drop,60H - ja L$19 -L$16: - mov word ptr cs:_cop_pal,offset _fadepal - mov word ptr cs:L$1,COPPER_TEXT - mov word ptr cs:_do_pal,1 - cmp word ptr cs:_cop_drop,41H - je L$18 - mov dx,3d4H - mov ax,3c18H - out dx,ax - mov ax,0f07H - out dx,ax - push ds - push si - push di - push cx - lds si,dword ptr cs:_cop_fadepal - mov di,offset _fadepal - mov cx,30H -L$17: - mov ax,word ptr [si] - add byte ptr cs:300H[di],al - adc byte ptr cs:[di],ah - mov ax,word ptr 2[si] - add byte ptr cs:301H[di],al - adc byte ptr cs:1[di],ah - mov ax,word ptr 4[si] - add byte ptr cs:302H[di],al - adc byte ptr cs:2[di],ah - mov ax,word ptr 6[si] - add byte ptr cs:303H[di],al - adc byte ptr cs:3[di],ah - mov ax,word ptr 8[si] - add byte ptr cs:304H[di],al - adc byte ptr cs:4[di],ah - mov ax,word ptr 0aH[si] - add byte ptr cs:305H[di],al - adc byte ptr cs:5[di],ah - mov ax,word ptr 0cH[si] - add byte ptr cs:306H[di],al - adc byte ptr cs:6[di],ah - mov ax,word ptr 0eH[si] - add byte ptr cs:307H[di],al - adc byte ptr cs:7[di],ah - mov ax,word ptr 10H[si] - add byte ptr cs:308H[di],al - adc byte ptr cs:8[di],ah - mov ax,word ptr 12H[si] - add byte ptr cs:309H[di],al - adc byte ptr cs:9[di],ah - mov ax,word ptr 14H[si] - add byte ptr cs:30aH[di],al - adc byte ptr cs:0aH[di],ah - mov ax,word ptr 16H[si] - add byte ptr cs:30bH[di],al - adc byte ptr cs:0bH[di],ah - mov ax,word ptr 18H[si] - add byte ptr cs:30cH[di],al - adc byte ptr cs:0cH[di],ah - mov ax,word ptr 1aH[si] - add byte ptr cs:30dH[di],al - adc byte ptr cs:0dH[di],ah - mov ax,word ptr 1cH[si] - add byte ptr cs:30eH[di],al - adc byte ptr cs:0eH[di],ah - mov ax,word ptr 1eH[si] - add byte ptr cs:30fH[di],al - adc byte ptr cs:0fH[di],ah - add di,10H - add si,20H - dec cx - jne L$17 - pop cx - pop di - pop si - pop ds - retf -L$18: - mov dx,3d4H - mov ax,9018H - out dx,ax - mov ax,1f07H - out dx,ax - push cs - call near ptr L$20 - retf -L$19: - mov word ptr cs:_cop_drop,0 - retf -L$20: - push ax - push ds - ;;;;push seg _k1 - pop ds - mov ax,word ptr DGROUP:_il1 - mov word ptr DGROUP:_l1,ax - mov ax,word ptr DGROUP:_il2 - mov word ptr DGROUP:_l2,ax - mov ax,word ptr DGROUP:_il3 - mov word ptr DGROUP:_l3,ax - mov ax,word ptr DGROUP:_il4 - mov word ptr DGROUP:_l4,ax - mov ax,word ptr DGROUP:_ik1 - mov word ptr DGROUP:_k1,ax - mov ax,word ptr DGROUP:_ik2 - mov word ptr DGROUP:_k2,ax - mov ax,word ptr DGROUP:_ik3 - mov word ptr DGROUP:_k3,ax - mov ax,word ptr DGROUP:_ik4 - mov word ptr DGROUP:_k4,ax - pop ds - pop ax - retf -COPPER_TEXT ENDS -_DATA SEGMENT WORD PUBLIC USE16 'DATA' -_DATA ENDS - END + 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/copper.err b/copper.err new file mode 100755 index 0000000..f4821ca --- /dev/null +++ b/copper.err @@ -0,0 +1,4 @@ +copper.asm(236): Error! E065: Operator is expected +copper.asm(254): Error! E065: Operator is expected +copper.asm(256): Error! E043: Jump out of range +copper.asm(265): Error! E043: Jump out of range diff --git a/copper.o b/copper.o deleted file mode 100755 index 86dedcf..0000000 Binary files a/copper.o and /dev/null differ diff --git a/plz.o b/plz.o deleted file mode 100755 index f7e08d3..0000000 Binary files a/plz.o and /dev/null differ diff --git a/tweak.o b/tweak.o deleted file mode 100755 index 28da850..0000000 Binary files a/tweak.o and /dev/null differ