$CPU 8086 ' make compatible with XT systems $LIB ALL OFF ' turn off all PowerBASIC libraries $ERROR ALL OFF ' turn off all PowerBASIC error checking $OPTIMIZE SIZE ' optimize for smaller code $COMPILE UNIT ' compile to a UNIT (.PBU) '$COMPILE EXE ' compile to a UNIT (.PBU) DEFINT A-Z ' Required for all numeric functions, forces PB to not ' include floating point in UNIT (makes it smaller) '/*------------------------------------------------------------------*/ DECLARE FUNCTION GETSCREEN() AS STRING DECLARE SUB PUTSCREEN(BYVAL X AS STRING) DECLARE SUB MDELAY(COUNT AS WORD) DECLARE FUNCTION GETVIDEOSEGMENT() AS INTEGER '/*------------------------------------------------------------------*/ $CODE SEG "MLIB5" '/*------------------------------------------------------------------*/ ' DSCREEND(SCREEN$) ' Display Screen format D. ' Display Screen by moving old screen out from middle, top and bottom. ' SCREEN$ = Mem (binary) screen to display. ' Returns old screen. ' EXAMPLE: OLD$ = DSCREEND(SCREEN$) '/*------------------------------------------------------------------*/ FUNCTION DSCREEND(TEMP$) PUBLIC AS STRING R$ = GETSCREEN '/*-13---------------------------------------------------------------*/ A$=TEMP$ Row%=CSRLIN Col%=POS(0) DEF SEG=GETVIDEOSEGMENT O$=PEEK$(0,4000) R%=14 I%=0 L$=LEFT$(O$,2080) R$=RIGHT$(O$,1920) WHILE R%>0 INCR I% DECR R% IF R%=0 THEN EXIT FUNCTION P%=((R%-1)*160)+1 X%=2080-(I%*160) IF X%>0 THEN L$=RIGHT$(L$,X%) ELSE L$="" Y%=1920-(I%*160) IF Y%>0 THEN R$=LEFT$(R$,1920-(I%*160)) ELSE R$="" POKE$ 0,L$+MID$(A$,P%,((I%*160)*2)-160)+R$ CALL MDELAY(30) WEND LOCATE Row%,Col% FUNCTION = R$ END FUNCTION '/*------------------------------------------------------------------*/ ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' TD$ = GETMEM("c:\code\mapper\APOGEE.MEM") ' T2$ = GETMEM("c:\code\mapper\VMESAM.MEM") ' PUTSCREEN T2$ ' Y$ = GETKEY ' T$ = DSCREEND(TD$) ' Y$ = GETKEY '/*------------------------------------------------------------------*/