Você está na página 1de 4

; BIOS EGA/MONOchrome graphics interface routines for FORTRAN

;
; Copyright (c) 1986-1997 Kevin G. Rhoads. All rights reserved.
;
;
;
include forframe.mac
;
;
DATA
segment
PUBLIC 'DATA' USE16
DATA
ends
dgroup
group
DATA
code
segment
'CODE' PUBLIC USE16
assume cs:code,ds:dgroup,es:dgroup,ss:dgroup
;
;
monogr
proc
far
public
monogr
save
mov
ax,0Fh
int
10h
restore
ret
db
'(c) 1986-1993 Kevin G. Rhoads, all rights reser
ved.'
monogr
endp
;
monotx
proc
far
public
monotx
save
mov
ax,07h
int
10h
restore
ret
db
'(c) 1986-1993 Kevin G. Rhoads, all rights reser
ved.'
monotx
endp
;
cls
proc
far
clears
label
far
clearscreen
label
far
public
cls,clears,clearscreen
save
mov
ah,0fh
int
10h
mov
ah,0
int
10h
mov
dx,0
mov
ah,0
restore
ret
db
'(c) 1986-1993 Kevin G. Rhoads, all rights reser
ved.'
cls
endp
;
pixelmap
proc
near
; row in bx; col in ax; mashes cx, dx
mov
cx,050h
mul
cx
mov
cx,bx

shr
shr
shr
and
add
mov
shr
ret
db

bx,1
bx,1
bx,1
cx,07h
bx,ax ;byte offset in bx
ax,080H
ax,cl ;bit position set in ax

'(c) 1986-1993 Kevin G. Rhoads,


ved.'
pixelmap
endp
;
;
pixelon
proc
near
; row in bx, col in ax; es assumed = a000
call
pixelmap
or
byte ptr es:[bx],al
ret
db
'(c) 1986-1993 Kevin G. Rhoads,
ved.'
pixelon
endp
;
pixeloff
proc
near
; row in bx, col in ax; es assumed = a000
call
pixelmap
not
ax
and
byte ptr es:[bx],al
ret
db
'(c) 1986-1993 Kevin G. Rhoads,
ved.'
pixeloff
endp
;
pixelxor
proc
near
; row in bx, col in ax; es assumed = a000
call
pixelmap
xor
byte ptr es:[bx],al
ret
db
'(c) 1986-1993 Kevin G. Rhoads,
ved.'
pixelxor
endp
;
;
pixon
proc
far
public
pixon
save
les
bx,dword ptr ss:[bp+argtwo2]
mov
ax,word ptr es:[bx]
les
bx,dword ptr ss:[bp+argone2]
mov
bx,word ptr es:[bx]
mov
cx,0a000H
mov
es,cx
call
pixelon
restore
ret
8
db
'(c) 1986-1993 Kevin G. Rhoads,
ved.'
pixon
endp
;
pixoff
proc
far
public
pixoff

all rights reser

all rights reser

all rights reser

all rights reser

all rights reser

save
les
mov
les
mov
mov
mov
call
restore
ret
db
ved.'
pixoff
;
pixxor

bx,dword ptr ss:[bp+argtwo2]


ax,word ptr es:[bx]
bx,dword ptr ss:[bp+argone2]
bx,word ptr es:[bx]
cx,0a000H
es,cx
pixeloff
8
'(c) 1986-1993 Kevin G. Rhoads, all rights reser

endp
proc
public
save
les
mov
les
mov
mov
mov
call
restore
ret
db

far
pixxor
bx,dword ptr ss:[bp+argtwo2]
ax,word ptr es:[bx]
bx,dword ptr ss:[bp+argone2]
bx,word ptr es:[bx]
cx,0a000H
es,cx
pixelxor
8
'(c) 1986-1993 Kevin G. Rhoads, all rights reser

ved.'
pixxor
endp
;
;
writepixel
proc
near
; al = color, cx = col, dl = row
mov
ah,0ch
int
10h
ret
db
'(c) 1986-1993 Kevin G. Rhoads, all rights reser
ved.'
writepixel
endp
;
wripix
proc
far
; call wripix(row,col,color)
public
wripix
save
les
bx,dword ptr ss:[bp+argone3]
mov
cx,word ptr es:[bx]
les
bx,dword ptr ss:[bp+argtwo3]
mov
dx,word ptr es:[bx]
les
bx,dword ptr ss:[bp+argthree3]
mov
al,byte ptr es:[bx]
mov
bx,0
mov
ah,0ch
int
10h
restore
ret
12
db
'(c) 1986-1993 Kevin G. Rhoads, all rights reser
ved.'
wripix
endp
;
pixval
proc
far

; ivalue = pixval(row,col) -- declare as int*2 or int*4


public
pixval
save
les
bx,dword ptr ss:[bp+argtwo2]
mov
cx,word ptr es:[bx]
les
bx,dword ptr ss:[bp+argone2]
mov
dx,word ptr es:[bx]
mov
bx,0
mov
ah,0dh
int
10h
mov
dx,0
mov
ah,dh
restore
ret
8
db
'(c) 1986-1993 Kevin G. Rhoads, all rights reser
ved.'
pixval
endp
;
code
ends
end

Você também pode gostar