Function 10h    TopView API Function Calls                      (TopView) 

entry AH 00h PAUSE Give Up CPU Time

return 00h after other processes run

01h GETMEM allocate "system" memory

BX number of bytes to allocate

return ES:DI pointer to block of memory

02h PUTMEM deallocate "system" memory

ES:DI pointer to previously allocated block

return block freed

03h PRINTC display character/attribute on screen

BH attribute

BL character

DX segment of object handle for window

note BX=0 does not display anything, it only

positions the hardware cursor

10h unknown

AL 04h thru 12h

return TopView - unimplemented in DV 2.0x

pops up "Programming error" window in DV 2.0x

11h unknown

12h unknown

Function 10h TopView API Function Calls (TopView)

entry AH 13h GETBIT define a 2nd-level interrupt handler

ES:DI pointer to FAR service routine

return BX bit mask indicating which bit was

allocated

0 if no more bits available

14h FREEBIT undefine a 2nd-level interrupt handler

BX bit mask from int 15/AH 13h

15h SETBIT schedule one or more 2nd-level interrupts

BX bit mask for interrupts to post

return indicated routines will be called at next ???

16h ISOBJ verify object handle

ES:DI possible object handle

return BX -1 if ES:DI is a valid object handle

0 if ES:DI is not

17h TopView - unimplemented in DV 2.00

return pops up "Programming Error" window in DV 2.00

Function 10h TopView API Function Calls (TopView)

entry AH 18h LOCATE Find Window at a Given Screen Location

BH column

BL row

ES segment of object handle for ?

(0 = use default)

return ES segment of object handle for window

which is visible at the indicated

position

19h SOUND Make Tone

BX frequency in Hertz

CX duration in clock ticks (18.2 ticks/sec)

return immediately, tone continues to completion

note If another tone is already playing, the new tone

does not start until completion of the previous

one. In DV 2.00, it is possible to enqueue

about 32 tones before the process is blocked

until a note completes.

In DV 2.00, the lowest tone allowed is 20 Hz

1Ah OSTACK Switch to Task's Internal Stack

return stack switched

Function 10h TopView API Function Calls (TopView)

entry AH 1Bh BEGINC Begin Critical Region

return task-switching temporarily disabled

note Will not task-switch until END CRITICAL REGION

(AH=1Ch) is called

1Ch ENDC End Critical Region

return task-switching enabled

1Dh STOP STOP TASK

ES segment of object handle for task to be stopped

(= handle of main window for that task)

return indicated task will no longer get CPU time

note At least in DV 2.00, this function is ignored

unless the indicated task is the current task.

1Eh START Start Task

ES segment of object handle for task to be started

(== handle of main window for that task)

return Indicated task is started up again

Function 10h TopView API Function Calls (TopView)

entry AH 1Fh DISPEROR Pop-Up Error Window

BX bit fields:

0-12 number of characters to display

13,14 which mouse button may be pressed to

remove window

00 either

01 left

10 right

11 either

15 beep if 1

DS:DI pointer to text of message

CH width of error window (0 = default)

CL height of error window (0 = default)

DX segment of object handle

return BX status:

1 left button pressed

2 right button pressed

27 ESC key pressed

note Window remains on-screen until ESC or indicated

mouse button is pressed

20h TopView - unimplemented in DV 2.0x

return pops up "Programming Error" window in DV 2.0x

Function 10h TopView API Function Calls (TopView)

entry AH 21h PGMINT Interrupt Another Task

BX segment of object handle for task to interrupt

DX:CX address of FAR routine to jump to next time

task is run

return nothing?

note The current ES, DS, SI, DI, and BP are passed

to the FAR routine

22h GETVER Get Version

BX 00h

return BX nonzero, TopView or compatible loaded

BH minor version

BL major version

notes TaskView returns BX = 0001h

DESQview 2.0 returns BX = 0A01h

Function 10h TopView API Function Calls (TopView)

entry AH 23h POSWIN Position Window

BX segment of object handle for parent window

within which to position the window (0 = full

screen)

CH # columns to offset from position in DL

CL # rows to offset from position in DL

DL bit flags

0,1 horizontal position

00 current

01 center

10 left

11 right

2,3 vertical position

00 current

01 center

10 top

11 bottom

4 don't redraw screen if set

5-7 not used

ES segment of object handle for window to be

positioned

return nothing

Function 10h TopView API Function Calls (TopView)

entry AH 24h GETBUF Get Virtual Screen Information

BX segment of object handle for window (0=default)

return CX size of virtual screen in bytes

DL 0 or 1, unknown

ES:DI address of virtual screen

25h USTACK Switch Back to User's Stack

return stack switched back

note Call only after int 15h,fn1Ah

26h-2Ah DesQview (TopView?) - unimplemented in DV 2.0x

return pops up "Programming Error" window in DV 2.0x

2Bh POSTTASK Awaken Task DesQview 2.0 (TopView?)

BX segment of object handle for task

return nothing

2Ch Start New Application in New Process

DesQview 2.0 (TopView?)

ES:DI pointer to contents of .PIF/.DVP file

BX size of .PIF/.DVP info

return BX segment of object handle for new task

Function 10h TopView API Function Calls (TopView)

entry AH 2Dh Keyboard Mouse Control DesQview 2.0

BL subfunction

00h determine whether using keyboard mouse

01h turn keyboard mouse on

02h turn keyboard mouse off

return (calling BL was 00h)

BL 0 using real mouse

1 using keyboard mouse