home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
prgramer
/
cursor
/
cursor.asm
< prev
next >
Wrap
Assembly Source File
|
1988-05-27
|
2KB
|
98 lines
INCLUDELIB doscalls.lib
.286
.model large
.stack
pushc MACRO var ;push macros
mov ax, var
push ax
ENDM
push_ptr MACRO var
push ds
mov ax, offset var
push ax
ENDM
key_status STRUC ;structure for kbd data
ascii_code db ?
scan_code db ?
char_status db ?
nls_shift db ?
shift_state dw ?
time_stamp dd ?
key_status ENDS
.data
cpu_mode dw 1 dup(?)
key_status_data key_status <>
message db 13,10
db 'Here Is The Large Cursor ...',13,10
db 'Now Press <ENTER> To Return To CMD.EXE '
lmessage dw $ - offset message
.code
EXTRN DosExit: far
EXTRN KBDCHARIN: far
EXTRN VioWrtTTY: far
EXTRN VioScrLock: far
EXTRN VioScrUnLock: far
EXTRN DOSPORTACCESS: far, DOSCLIACCESS: far
EXTRN large_cursor: far, DOSGETMACHINEMODE: far
set_cursor proc far
start:
push_ptr message ;push pointer
pushc lmessage ;push value
pushc 0 ;push handle
call far ptr VioWrtTTY ;system write to screen
push_ptr cpu_mode ;space for mode info
call far ptr DOSGETMACHINEMODE ;required call for I/O
call far ptr DOSCLIACCESS ;allow sti/cli
pushc 0 ;handle
pushc 0 ;get gate pass
pushc 03d4H ;CRTC ADDR
pushc 03d5H ;CRTC DATA
call far ptr DOSPORTACCESS ;open gate
call far ptr large_cursor ;call the I/O routine
pushc 0 ;handle
pushc 1 ;release gate pass
pushc 03d4H
pushc 03d5H
call far ptr DOSPORTACCESS ;close gate
push_ptr key_status_data ;pointer to kbd data
pushc 00 ;wait for char to arrive
pushc 00 ;handle
call far ptr KBDCHARIN ;call keyboard
xor ax,ax ;no_error exit
pushc 1 ;standard exit
pushc 0
call far ptr DosExit ;exit application
set_cursor endp
PUBLIC set_cursor
end start