home *** CD-ROM | disk | FTP | other *** search
- ; ASMIFS.ASM
-
- ; Thomas H.
-
- .model large
-
- public _ifsx ,_ifsy,_ifsdx,_ifsdy,_ifslen,_ifslev,_asmifs
- public _drawpage32, _movebak32, _skheight, _writepage32, _blanker
- public _onestrip
-
- .code
-
- EVEN
-
- _ifsx dw ?
- _ifsy dw ?
- _ifsdx dw ?
- _ifsdy dw ?
- _ifslen dw ?
- _skheight dw 7*257
- _writepage32 dd ?
- calls dw offset line1,offset line1, offset line1, offset line1
- dw offset line1,offset line1, offset line1, offset line0
- _ifslev db ?
-
- .386
-
- ; ***** MOVEBAK32 *****
-
- _movebak32 proc far
-
- mov dl,200
- ned32: mov cx,64
- rep movsd
- add si,64
- dec dl
- jnz ned32
- retf
-
- _movebak32 endp
-
- ; ***** TEGNSKJERM32 *****
-
- _drawpage32 proc far
-
- mov dl,200
- ned322: mov cx,64
- rep movsd
- add di,64
- dec dl
- jnz ned322
- retf
-
- _drawpage32 endp
-
- ; ***** ASMIFS *****
-
- _asmifs proc far
- mov ax,_ifslen
- or ah,ah
- jz glemdet
- mov cx,_ifsx
- mov dx,_ifsy
- mov bl,_ifslev
- mov al,bl
- add al,128
- xor bh,bh
- add bx,bx
- add bx,offset calls
- jmp [cs:bx]
- glemdet:
- retf
- _asmifs endp
-
- ; ***** LINE0 *****
-
- line0 proc near
- nextline0:
- mov bl,ch
- mov bh,dh
- mov byte ptr[bx],al
- add bx,[cs:_skheight]
- or byte ptr[bx],64
- add cx,_ifsdx
- add dx,_ifsdy
- dec ah
- jne nextline0
- mov _ifsx,cx
- mov _ifsy,dx
- retf
- line0 endp
-
- ; ***** LINE1 *****
-
- line1 proc near
- mov bl,ah
- mov ah,al
- mov bp,ax
- mov ah,bl
- nextline1:
- mov bl,ch
- mov bh,dh
- mov [bx],bp
- mov [bx+256],bp
- add bx,[cs:_skheight]
- or word ptr[bx],64+256*64
- or word ptr[bx+256],64+256*64
- add cx,_ifsdx
- add dx,_ifsdy
- dec ah
- jne nextline1
- mov _ifsx,cx
- mov _ifsy,dx
- retf
- line1 endp
-
- ; ***** BLANKER *****
-
- _blanker proc far
- les di,_writepage32
- xor eax,eax
- mov cx,dx
- shl cx,6
- rep stosd
- retf
-
- _blanker endp
-
- ; ***** ONESTRIP *****
-
- _onestrip proc far
-
- mov cx,64
- rep movsd
- retf
- _onestrip endp
-
- end
-