From fb13a19576c3a98c5239ff1df0a0d59614f96e32 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 15 Feb 2016 14:08:35 -0600 Subject: [PATCH] wwwwwwwwwwww --- copper.as0 | 1178 +++++++++++++++++++++++++++++++++++++++++ copper.asm | 1478 +++++++++++----------------------------------------- copper.err | 4 + copper.o | Bin 7619 -> 0 bytes plz.o | Bin 5309 -> 0 bytes tweak.o | Bin 537 -> 0 bytes 6 files changed, 1482 insertions(+), 1178 deletions(-) create mode 100755 copper.as0 create mode 100755 copper.err delete mode 100755 copper.o delete mode 100755 plz.o delete mode 100755 tweak.o 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 86dedcfbfd1a2c7bc22c360baf35c00f3e322e96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7619 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 z zP*HCUbfe+WfaNlDS5r4~ir#}m5kbT$j5Q=9OZ#o)qkf?V8ZYAJ82>Bs&c$9b8i4HHIVIPyLw;w^yPs3rF zMg8ek8bq^c2+hU+Ji47W&??+l*5OQjkT#M+*|eP&(i4Nsp48n7ag=nTt~~rd#OUa zk1ECWv`xI9UJ@(mWwDxk;_Gxme1kp_>*;gx0DU1Ir0>K-6fM0)!*Sd?q(-Wj-X??Y zL+-%Y{A}sTd0_sz5a*>=y1Sy+@PCQkX4`r0(~er(`7TfWq*s-1H@VYD9Rxp(MeJG- zyH?a^!e^OqQ5Jlr<#dg%6fZ{jYnJ+QRWKRRmZGG3AuBO2J^FKEb-OaWy zwMF-g>h9ef64JrV%meYuuBia;awPUb|ChbekNH}xfuPFfzt^2gNR}2g67hN+V5MMcOG0AY}e zFtDRu3SAj=6`*Akr==Ex2a0{nvV}u0F?17oQeme$yem!y-K6Vttv`{24|QVaPC`2F z^wOsaYwL5wgf?r7qN`o;DQDJ(1Rp|d&+PeT_uw<#H<2m<$tXY^3se@s&w#uT@*>DQ za{;=q0(I{A-H?9^`Bi3#;M;w?91=vQ6?O(g2Qzp=TkVR|icULc>TGAUuYUgqc z=AM4;2pJ2v)?MFxuju&kmC(kk8De+c+Jb@kL{}VThnj7daKW-&3fU?em*IT7>*3ER z?#~#YO98SBIDHnJz7UG#T(J`I@4$oPt!_hyy?_q*>Z?qi%i$lFm1cgv>T$w!t&j_y z3+$|ht}kG_ba^*!xRhSGr`gt?h9$QDc!~e@$n!g|^ZXd!&>pDRgCy7og;DM?q$UH< zZ2-hKID>ENfZD@RV^@2B$1L$Yw6__%(R5KC3a97Ifk$nFA(n5d!|6S)B@J`9|LW7| zx+dlQE0A_=Umn0cE+*B@>D_E?3^Ybp><1Bo1XgS zdJ3Ng00SCC9(4%1?wJt@4Pgk-Z@##C9}#^xSf#z%b|D1fh6|0+PU-BrK!f&O%x{Dp zwelq7DgOtjU?3~UFlpDvbe(@H2RR6!VgYI>0NspdC7uTWb}OR!F#yK}!|6#O;fF9> z9;M2YZ;{mTiliKK`CBJoG;7P{@z9}P<=;a-s$X;KiQj34Z;izbMW_AdKp{Us_(YPn z+oAGOvF`V@PIr{v(>2pny^mhfzeBP?rD($+sl@Ou9X7m26XZWpf!s>v@}KF5{1+N- z{E*feKc+)QKQ$YV)5x$BlofW8J_`FA{Wa_q=}e!{c+-Zh`!RRty_qim&>`UB?JQiI zuYFRBLf40OjG%qM#A-$25UofWrWMH}cu`~>r4@-|v?6JoRwP>l?K9JQZLmz77%Y=+ z2$solT3KXG2$qS7!7?d1SSF|N^>lyYPZ8+pt!5JRoxj5n&2~kg!^*b+9rt{PSmAI*pxy)!E-KIOIA|&Vzx0gPD6^CfS~gN5z=4krHhyBHSq9WwrJd|)R-!{^nzt}yQqVR*ko z{PFu8oIqOG;C*k}xA?fI$mm$#(;#yKc5pxpiU`_ug85yS+rM2WncsEXc-L{_UFRF1 zBB?o?3}-mP7|#TTG47e5#lXPGS5h9IUyz!YUX)mnVH6K^gdk9)IJKlGJ*gluC$*#` zH6G|)g(>Pl#mqoyRt7-^1qNFNC15D1F@!T{GDI_IF(ff)Go&&YF=Q~T?crtMiciW+ pk5A4|NsVVH?%-l*n4g!Qnp