-.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\r
+ MODEL huge\r
+ 8087\r
+\r
+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\r
+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\r
+\r
+CODESEG\r
+\r
+PUBLIC C frame_count, C init_copper, C close_copper, C cop_drop, C cop_pal, C do_pal\r
+PUBLIC C cop_scrl, C cop_start, C cop_plz\r
+\r
+frame_count dw 0\r
+cop_drop dw 0\r
+cop_pal dd 0\r
+do_pal dw 0\r
+cop_start dw 0\r
+cop_scrl dw 0\r
+cop_plz dw 1\r
+\r
+PROC close_copper\r
+\r
+ mov bx, 7\r
+ mov ax, 0\r
+ mov cx, 0\r
+ mov dx, 0\r
+ int 0fch\r
+\r
+ mov bx, 7\r
+ mov ax, 1\r
+ mov cx, 0\r
+ mov dx, 0\r
+ int 0fch\r
+\r
+ mov bx, 7\r
+ mov ax, 2\r
+ mov cx, 0\r
+ mov dx, 0\r
+ int 0fch\r
+\r
+ ret\r
+ENDP\r
+\r
+PROC init_copper\r
+\r
+ mov bx, 7\r
+ mov ax, 1\r
+ mov cx, OFFSET copper1\r
+ mov dx, SEG copper1\r
+ int 0fch\r
+\r
+ mov bx, 7\r
+ mov ax, 2\r
+ mov cx, OFFSET copper2\r
+ mov dx, SEG copper2\r
+ int 0fch\r
+\r
+ mov bx, 7\r
+ mov ax, 0\r
+ mov cx, OFFSET copper3\r
+ mov dx, SEG copper3\r
+ int 0fch\r
+\r
+ ret\r
+ENDP\r
+\r
+PROC copper1\r
+\r
+ mov dx, 03d4h\r
+ mov al, 0dh\r
+ mov ah, [Byte cs:cop_start]\r
+ out dx, ax\r
+ mov al, 0ch\r
+ mov ah, [Byte cs:cop_start+1]\r
+ out dx, ax\r
+\r
+ mov dx, 3c0h\r
+ mov al, 33h\r
+ out dx, al\r
+ mov ax, [cs:cop_scrl]\r
+ out dx, al\r
+\r
+ retf\r
+ENDP\r
+\r
+PROC copper2\r
+\r
+ ;pusha\r
+ push AX\r
+ push CX\r
+ push DX\r
+ push BX\r
+ push SP\r
+ push BP\r
+ push SI\r
+ push DI\r
+\r
+ push ds\r
+\r
+ inc [cs:frame_count]\r
+\r
+ cmp [cs:do_pal], 0d\r
+ je @@no_pal\r
+ lds si, [cs:cop_pal]\r
+ mov cx, 768d\r
+ mov dx, 3c8h\r
+ mov al, 0d\r
+ out dx, al\r
+ inc dx\r
+ ;rep outsb\r
+ movsb\r
+ movsb\r
+ mov [cs:do_pal], 0d\r
+@@no_pal:\r
+ cmp [cs:cop_plz], 0d\r
+ je @@l3\r
+ call pompota\r
+ call moveplz\r
+@@l3:\r
+ cmp [cs:cop_drop], 0d\r
+ je @@l1\r
+ call do_drop\r
+@@l1:\r
+ pop ds\r
+ ;popa\r
+ pop AX\r
+ pop CX\r
+ pop DX\r
+ pop BX\r
+ pop SP\r
+ pop BP\r
+ pop SI\r
+ pop DI\r
+\r
+ retf\r
+ENDP\r
+\r
+PROC copper3\r
+ retf\r
+ENDP\r
+\r
+pompi db 0\r
+\r
+PUBLIC C pompota\r
+\r
+PROC pompota\r
+\r
+ mov [cs:cop_scrl], 4d\r
+ mov dx, 3d4h\r
+ mov ax, 3c18h\r
+ out dx, ax\r
+ mov ax, 0f07h\r
+ out dx, ax ; 8th bit\r
+ mov ax, 3c18h\r
+ inc [cs:pompi]\r
+ test [cs:pompi], 1d\r
+ jz @@l1\r
+ mov [cs:cop_scrl], 0d\r
+ mov ax, 3d18h\r
+@@l1:\r
+ out dx, ax\r
+ ret\r
+ENDP\r
+\r
+PUBLIC C moveplz\r
+\r
+PROC moveplz\r
+\r
+ push ds\r
+ ;;;;push SEG k1\r
+ pop ds\r
+\r
+ add [ds:k1], -3d\r
+ and [ds:k1], 4095d\r
+ add [ds:k2], -2d\r
+ and [ds:k2], 4095d\r
+ add [ds:k3], 1d\r
+ and [ds:k3], 4095d\r
+ add [ds:k4], 2d\r
+ and [ds:k4], 4095d\r
+\r
+ add [ds:l1], -1d\r
+ and [ds:l1], 4095d\r
+ add [ds:l2], -2d\r
+ and [ds:l2], 4095d\r
+ add [ds:l3], 2d\r
+ and [ds:l3], 4095d\r
+ add [ds:l4], 3d\r
+ and [ds:l4], 4095d\r
+\r
+ pop ds\r
+ ret\r
+ENDP\r
+\r
+LABEL dtau Word\r
+ccc=0\r
+cccc=0\r
+REPT 65 ; 43=dy*512/dt\r
+ dw ccc*ccc/4*43/128+60\r
+ccc=ccc+1\r
+ENDM\r
+\r
+PUBLIC C fadepal\r
+fadepal db 768*2 dup(?)\r
+\r
+PUBLIC C cop_fadepal\r
+cop_fadepal dd 0\r
+\r
+PROC do_drop\r
+\r
+ inc [cs:cop_drop]\r
+ cmp [cs:cop_drop], 64d\r
+ ja @@over\r
+\r
+ push bx\r
+ mov bx, [cs:cop_drop]\r
+ shl bx, 1d\r
+ add bx, OFFSET dtau\r
+\r
+ mov bx, [cs:bx]\r
+ mov dx, 3d4h\r
+ mov al, 18h ; linecompare\r
+ mov ah, bl\r
+ out dx, ax\r
+ mov al, 07h\r
+ mov ah, bh\r
+ shl ah, 1d\r
+ shl ah, 1d\r
+ shl ah, 1d\r
+ shl ah, 1d\r
+ and ah, 10h\r
+ or ah, 0fh\r
+ out dx, ax ; 8th bit\r
+\r
+ pop bx\r
+ ret\r
+\r
+@@over:\r
+ cmp [cs:cop_drop], 256d\r
+ jae end_\r
+ cmp [cs:cop_drop], 128\r
+ jae @@lll\r
+ cmp [cs:cop_drop], 64+32d\r
+ ja end_\r
+\r
+@@lll: mov [Word cs:cop_pal], OFFSET fadepal\r
+ mov [Word cs:cop_pal+2], SEG fadepal\r
+ mov [do_pal], 1d\r
+\r
+ cmp [cs:cop_drop], 65\r
+ je l5\r
+\r
+ mov dx, 3d4h\r
+ mov ax, 3c18h\r
+ out dx, ax\r
+ mov ax, 0f07h\r
+ out dx, ax ; 8th bit\r
+\r
+ push ds\r
+ push si\r
+ push di\r
+ push cx\r
+\r
+ lds si, [cs:cop_fadepal]\r
+ mov di, OFFSET fadepal\r
+ mov cx, 768/16d\r
+@@l4:\r
+ ccc=0\r
+ REPT 16\r
+ mov ax, [ds:si+ccc*2]\r
+ add [cs:di+ccc+768], al\r
+ adc [cs:di+ccc], ah\r
+ ccc=ccc+1\r
+ ENDM\r
+ add di, 16d\r
+ add si, 32d\r
+ dec cx\r
+ jnz @@l4\r
+\r
+ pop cx\r
+ pop di\r
+ pop si\r
+ pop ds\r
+ ret\r
+l5:\r
+ mov dx, 3d4h\r
+ mov ax, 9018h\r
+ out dx, ax\r
+ mov ax, 1f07h\r
+ out dx, ax ; 8th bit\r
+\r
+ call initpparas\r
+ ret\r
+end_:\r
+ mov [cs:cop_drop], 0d\r
+ ret\r
+ENDP\r
+\r
+PROC initpparas\r
+ push ax\r
+ push ds\r
+ ;;;;push SEG k1\r
+ pop ds\r
+\r
+ mov ax, [ds:il1]\r
+ mov [ds:l1], ax\r
+ mov ax, [ds:il2]\r
+ mov [ds:l2], ax\r
+ mov ax, [ds:il3]\r
+ mov [ds:l3], ax\r
+ mov ax, [ds:il4]\r
+ mov [ds:l4], ax\r
+\r
+ mov ax, [ds:ik1]\r
+ mov [ds:k1], ax\r
+ mov ax, [ds:ik2]\r
+ mov [ds:k2], ax\r
+ mov ax, [ds:ik3]\r
+ mov [ds:k3], ax\r
+ mov ax, [ds:ik4]\r
+ mov [ds:k4], ax\r
+\r
+ pop ds\r
+ pop ax\r
+ ret\r
+ENDP\r
+\r
+END\r
+\r