home *** CD-ROM | disk | FTP | other *** search
- ' +----------------------------------------------------------------------+
- ' | |
- ' | PBClone Copyright (c) 1990-1991 Thomas G. Hanlin III |
- ' | |
- ' +----------------------------------------------------------------------+
-
- DECLARE FUNCTION Floppies2% ()
- DECLARE FUNCTION GetHGA% ()
- DECLARE FUNCTION PCDat$ ()
- DECLARE FUNCTION PCType2% ()
-
- DECLARE SUB CalcAttr (BYVAL Foreground%, BYVAL Background%, Attr%)
- DECLARE SUB Equipment (Memory%, Parallel%, Serial%, Game%)
- DECLARE SUB ExtMem (Kbytes%)
- DECLARE SUB GetCRT (ColorDisplay%)
- DECLARE SUB GetDOSv (MajorVersion%, MinorVersion%)
- DECLARE SUB GetEGA (DisplayType%, KBytes%)
- DECLARE SUB GetLIMM (TotalPages%, FreePages%)
- DECLARE SUB GetLIMV (MajorVersionNum%, MinorVersionNum%)
- DECLARE SUB GetVGA (IsVGA%)
- DECLARE SUB GetXMSm (LargestBlock&, TotalBlocks&)
- DECLARE SUB GetXMSv (MajorVersionNum%, MinorVersionNum%)
- DECLARE SUB NumProc (ProcType%)
- DECLARE SUB Processor (CPU%)
- DECLARE SUB WindowManager (TopRow%, LeftCol%, BottomRow%, RightCol%, Frame%, Fore%, Back%, Grow%, Shade%, TFore%, Title$, Page%, Fast%)
- DECLARE SUB XQPrint (St$, BYVAL Row%, BYVAL Column%, BYVAL Attr%, BYVAL Page%, BYVAL Fast%)
-
- DEFINT A-Z
-
-
- ' ----- Pick the colors to use -----------------------------------------------
-
-
- GetCRT Colour
-
- IF Colour THEN
- CalcAttr 7, 1, Attr
- ELSE
- CalcAttr 7, 0, Attr
- END IF
-
-
- ' ----- Clear the screen and pop up the window -------------------------------
-
-
- CLS
-
- Fore = 15
- IF Colour THEN
- Back = 1
- ELSE
- Back = 0
- END IF
- Frame = 1
- Grow = 15
- Shade = 0
- Title$ = "PBClone Demo"
- WindowManager 2, 2, 23, 77, Frame, Fore, Back, Grow, Shade, 10, Title$, 0, 1
-
-
- ' ----- Add a text note inside the window ------------------------------------
-
-
- Row = 3
- XQPrint "This is an admittedly trivial demo for the PBClone library. I'll", Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint "improve it drastically in later versions. However, for now it will", Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint "provide an example of how to access the PBClone routines.", Row, 3, Attr, 0, 1
- Row = Row + 2
-
-
- ' ----- Display processor and coprocessor types ------------------------------
-
-
- Processor CPU
- NumProc NDP
- SELECT CASE CPU
- CASE 1: St$ = "8088"
- CASE 2: St$ = "80186"
- CASE 3: St$ = "80286"
- CASE 4: St$ = "80386"
- CASE ELSE: St$ = "80?86"
- END SELECT
- SELECT CASE NDP
- CASE 1: St$ = St$ + " w/ 8087"
- CASE 2: St$ = St$ + " w/ 80287"
- CASE 3: St$ = St$ + " w/ 80387"
- CASE ELSE
- END SELECT
- XQPrint "Processor: " + St$, Row, 3, Attr, 0, 1
- Row = Row + 1
-
-
- ' ----- Display DOS version --------------------------------------------------
-
-
- GetDOSv MajorV, MinorV
- DOSv$ = STR$(MajorV) + "." + RIGHT$("0" + STR$(MinorV), 2)
- IF MajorV > 9 THEN
- St$ = " OS/2 Compatibility Box"
- ELSE
- St$ = ""
- END IF
- XQPrint "DOS version: " + DOSv$ + St$, Row, 3, Attr, 0, 1
- Row = Row + 1
-
-
- ' ----- Display basic equipment info -----------------------------------------
-
-
- Equipment Memory, Parallel, Serial, Game
- XQPrint "Base memory: " + STR$(Memory) + " Kbytes", Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint "Parallel ports: " + STR$(Parallel), Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint "Serial ports: " + STR$(Serial), Row, 3, Attr, 0, 1
- Row = Row + 1
- REM we'll leave out game ports, since that's not always reliable
-
- XQPrint "Floppy drives: " + STR$(Floppies2), Row, 3, Attr, 0, 1
- Row = Row + 1
-
-
- ' ----- Display video adapter type -------------------------------------------
-
-
- GetVGA IsVGA
- GetEGA EGA, Memory
- IF IsVGA THEN
- St$ = "VGA"
- ELSEIF EGA THEN
- St$ = "EGA"
- ELSEIF Colour THEN
- St$ = "CGA"
- ELSE
- IF GetHGA% THEN
- St$ = "Hercules"
- ELSE
- St$ = "MDA"
- END IF
- END IF
- XQPrint "Display: " + St$, Row, 3, Attr, 0, 1
- Row = Row + 1
-
-
- ' ----- Display BIOS date and type -------------------------------------------
-
-
- XQPrint "ROM BIOS date: " + PCDat$, Row, 3, Attr, 0, 1
- Row = Row + 1
-
- SELECT CASE PCType2
- CASE 251, 254, 255: St$ = "PC/XT"
- CASE 253: St$ = "PCjr"
- CASE 252: St$ = "PC AT": ATtype = -1
- CASE 250: St$ = "PS/2 Model 30"
- CASE 249: St$ = "PC Convertible"
- CASE 248: St$ = "PS/2 Model 70 or 80": ATtype = -1
- CASE 45, 154: St$ = "Compaq Portable"
- CASE ELSE: St$ = "unknown"
- END SELECT
- XQPrint "Computer type: " + St$, Row, 3, Attr, 0, 1
- Row = Row + 1
-
-
- ' ----- Display extended and expanded memory info ----------------------------
-
-
- IF ATtype THEN
- ExtMem Memory
- XQPrint "Extended memory (BIOS): " + STR$(Memory) + " Kbytes", Row, 3, Attr, 0, 1
- Row = Row + 1
- END IF
-
- IF ATtype THEN
- GetXMSv MajorV, MinorV
- GetXMSm LargeBlock&, TotalFree&
- IF MajorV OR MinorV THEN
- St$ = STR$(MajorV) + "." + RIGHT$("0" + STR$(MinorV), 2)
- XQPrint "Extended memory (XMS):", Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint " Version: " + St$, Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint " Free : " + STR$(TotalFree&) + " Kbytes", Row, 3, Attr, 0, 1
- Row = Row + 1
- END IF
- END IF
-
- GetLIMM TotalPages, FreePages
- IF TotalPages THEN
- GetLIMV MajorV, MinorV
- St$ = STR$(MajorV) + "." + RIGHT$("0" + STR$(MinorV), 2)
- XQPrint "Expanded memory:", Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint " Version: " + St$, Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint " Total : " + STR$(TotalPages * 16) + " Kbytes", Row, 3, Attr, 0, 1
- Row = Row + 1
- XQPrint " Free : " + STR$(FreePages * 16) + " Kbytes", Row, 3, Attr, 0, 1
- Row = Row + 1
- END IF
-
-
- ' ----- Make sure the DOS prompt doesn't get in the way ----------------------
-
-
- LOCATE 24, 1, 1
-