DECLARE SUB logo () : DECLARE SUB TextMode () : DECLARE SUB GraphicsMode () : DECLARE SUB DefaultMode () : DECLARE SUB GraphicsDemo () : DECLARE SUB MemoryDump () : DECLARE SUB attributes () : DECLARE SUB Diversion () : DECLARE SUB Fill () : DECLARE _
SUB k () : DECLARE SUB machine () : DECLARE SUB PrintxDemo () : DECLARE SUB train () : DECLARE SUB VgaSetDefaultReg () : DECLARE SUB VgaViewReg () : DECLARE SUB Window1 () : DECLARE SUB Window2 () : DECLARE SUB Window3 () : DECLARE SUB _
PrintMainMenu () : DECLARE SUB Copyright () : DECLARE SUB Pause (n!) : DECLARE SUB configure () : DECLARE SUB MemoryScroll () : DECLARE SUB DBox (Msg$, f$) : DECLARE SUB dec (n) : DECLARE SUB inc (n) : DECLARE SUB VGARead16ColReg (ColorReg$) : _
DECLARE SUB VGAReadFile (File$, RGB$) : DECLARE SUB VGAReadPalReg (palette$) : DECLARE SUB VGASet16ColReg (RGB$) : DECLARE SUB VGASet1ColReg (reg!, red!, green!, blue!)
IF y < 108 THEN Printt CHR$(y - 17), 6, 24, 79: 'capital letter
inc y: LOOP
END SELECT
Pause 250
ERASE c%: ERASE ccc%
END SUB
REM $STATIC
SUB MemoryDump STATIC
'Share flags so MemoryScroll can turn this off, monitor to restore it
SHARED Trap1, Trap2
'MDump determines which monitor this sub prints to (0/MDA 1/CGA)
'Monitor determines which monitor the rest of the program is using (0/MDA...)
'initialize flags the first time thru
IF Trap1 + Trap2 = 0 THEN Trap2 = 1: cr$ = CHR$(13)
'Toggle the flag
SWAP Trap1, Trap2
IF Trap1 = 0 THEN PLAY OFF: EXIT SUB
CALL KLS: Prnt "This uses the routine 'Dump1' to do a debug-style memory dump. The area currently being viewed is that of the keyboard buffer. Press keys not used by the main menu to see it change. Press any key to continue....." _
: CALL k
PLAY ON
PLAY "MB T120 L16 N0"
ON PLAY(1) GOSUB MemDump: ' MemDump is at the end of the