; ****************************************************************************

; testBG -- test the VDC-BG routines that implement an 80 column BG screen

; within the extra RAM available on a 64K VDC RAM system.

;

; Robert A. Knop Jr., Usenet Hacking Mag Issue #3

; ****************************************************************************

;.if Pass1

;.noeqin

.include geosSym

.include 128sym

.include geosMac

;.eqin

;.endif

Start:

jsr InitVDC ;Make sure we're set up for 64K VDC

LoadW RecoverVector,VDCRecRect ;Point to our new Recover Routine

LoadB dispBufferOn,ST_WR_FORE ;Write only to FG screen

LoadW r0,$2000

LoadW r1,BACK_SCR_BASE

LoadB r2L,$c7

jsr FillRam ;Fill the 40-col BG screen with $c7

LoadW r0,$2000 ;Later, use the debugger, or write a short

LoadW r1,SCREEN_BASE ; routine to make sure this memory is untouched

LoadB r2L,$d9 ;Fill the 40-col FG screen with $d9

jsr FillRam

lda #$00

jsr SetPattern ;Set pattern to all 0's

jsr i_Rectangle ;Clear the screen

.byte 0,199

.word 0,639

lda #$01

jsr SetPattern ;Set pattern to all 1's

jsr i_Rectangle ;And draw a block

.byte 50,150

.word 80,255

LoadW r3,0

LoadW r4,639

LoadB r2L,0

LoadB r2H,199

jsr VDCImpRect ;Imprint whole screen to BG

lda #$00

jsr SetPattern

jsr i_Rectangle ;clear a subset of rectangle

.byte 80,120

.word 120,180

jsr Wait

LoadW r3,121

LoadW r4,179

LoadB r2L,81

LoadB r2H,119

jsr VDCRecRect ;Recover all but a thin (1 pix) border

jsr Wait

LoadW r3,120

LoadW r4,180

LoadB r2L,80

LoadB r2H,120

jsr VDCRecRect ;Recover whole cleared region

jsr Wait

LoadW r0,JunkBox

jsr DoDlgBox ;Call a dialog box to show that the

jsr Wait ; recovery after that works.

jmp EnterDeskTop

JunkBox: .byte DEF_DB_POSö2

.byte DBTXTSTR

.byte TXT_LN_X,TXT_LN_1_Y

.word LookMa

.byte OK

.byte DBI_X_1,DBI_Y_2

.byte NULL

LookMa: .byte "Look, Ma, a dialog box!",0

Wait: jsr i_PutString

.word 0

.byte 190

.byte "Click to continue.....",0

10$ lda $dc01 ;Read mouse directly

and #%00010000 ;Check the firebutton

bne 10$

lda #$00

jsr SetPattern

jsr i_Rectangle

.byte 180,199

.word 0,639

rts