home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_GEN / XLIB40.ZIP / EXAMP1.ASM < prev    next >
Assembly Source File  |  1993-12-17  |  2KB  |  41 lines

  1.                .MODEL        LARGE,PASCAL
  2.                .386P
  3.  
  4.                INCLUDE        XLIB.INC       ;Include XLIB public symbols
  5.                INCLUDELIB     XLIB.LIB       ;Link with XLIB.LIB
  6.  
  7.                .STACK         1024
  8.                .CODE
  9.                .STARTUP
  10.  
  11.                CALL           INITXLIB       ;Initialize XLIB
  12.                OR             EAX,EAX        ;EAX = 0 if successful
  13.                JZ             INITDONE
  14.                .EXIT          0              ;Initialization failed
  15.                                              ;Be sure to link with /CPARM:1
  16. INITDONE:      PUSHD          OFFSET DEMOPROC
  17.                CALL           CALLPM         ;Execute DEMOPROC in protected
  18.                .EXIT          0
  19.  
  20. ;Protected-mode routines must be placed in following segment:
  21. TSEG           SEGMENT PARA PUBLIC USE32 'CODE'
  22.                ASSUME CS:TSEG, SS:TSEG, DS:TSEG, ES:TSEG, FS:DSEG, GS:DGROUP
  23.  
  24. ;Protected-mode routine to print message to the screen using DOS function.
  25. DEMOPROC       PROC NEAR
  26.                MOV            EBX,OFFSET PMMSG
  27.                MOV            AH,02H
  28. MSGLOOP:       MOV            DL,CS:[EBX]    ;32-bit offset!!!!!
  29.                OR             DL,DL
  30.                JZ             EXIT
  31.                INT            21H            ;Print character with DOS
  32.                INC            EBX
  33.                JMP            MSGLOOP
  34. EXIT:          RET                           ;Go back to real or V86 mode
  35. PMMSG          DB  "In 32-bit protected mode!!!  "
  36.                DB  "Returning to real mode.",10,13,0
  37. DEMOPROC       ENDP
  38.  
  39. TSEG           ENDS
  40.                END
  41.