'===========================================================================
' Subject: BSAVE/BLOAD IN 4 PLANES            Date: 12-31-96 (09:02)       
'  Author: Hans Lunsing                       Code: QB, QBasic, PDS        
'  Origin: Tika Carr (t.carr@juno.com)      Packet: EGAVGA.ABC
'===========================================================================
'BSAVE/BLOAD the entire screen in screen mode 12 (640 x 480, 16 colors)

DECLARE SUB Save640 (File$)
DECLARE SUB Load640 (File$)

'---- Circles written by Tika Carr ----
RANDOMIZE (-TIMER)
File$ = "640t"
SCREEN 12
CLS
FOR i = 1 TO 50
  x = INT(RND * 639) + 1: y = INT(RND * 479) + 1
  r = INT(RND * 50) + 1: c = INT(RND * 15) + 1
  CIRCLE (x, y), r, c
  pc = INT(RND * 15) + 1
  PAINT (x, y), pc, c
NEXT
'---- End Circles ----

Save640 File$
CLS
PRINT "Press any key to load picture..."
p$ = INPUT$(1)
CLS
Load640 File$
p$ = INPUT$(1)
SCREEN 0, 0, 0: COLOR 7, 0: CLS : END

SUB Load640 (File$)
DEF SEG = &HA000
OUT &H3C4, 2: OUT &H3C5, 1: BLOAD File$ + ".BLU", 0      'bitplane 0
OUT &H3C4, 2: OUT &H3C5, 2: BLOAD File$ + ".GRN", 0      'bitplane 1
OUT &H3C4, 2: OUT &H3C5, 4: BLOAD File$ + ".RED", 0      'bitplane 2
OUT &H3C4, 2: OUT &H3C5, 8: BLOAD File$ + ".INT", 0      'bitplane 3
OUT &H3C4, 2: OUT &H3C5, 16
DEF SEG
END SUB

SUB Save640 (File$)
DEF SEG = &HA000
OUT &H3CE, 4: OUT &H3CF, 0: BSAVE File$ + ".BLU", 0, 38400'bitplane 0 (blue)
OUT &H3CE, 4: OUT &H3CF, 1: BSAVE File$ + ".GRN", 0, 38400'bitplane 1 (green)
OUT &H3CE, 4: OUT &H3CF, 2: BSAVE File$ + ".RED", 0, 38400'bitplane 2 (red)
OUT &H3CE, 4: OUT &H3CF, 3: BSAVE File$ + ".INT", 0, 38400'bitplane 3 (intens.)
OUT &H3CE, 4: OUT &H3CF, 0
DEF SEG
END SUB
