1
( Setup for Ken Boak's VGA shield, which uses an FT812 )
15
\ H and Vsync parameters start at GD.REG_HCYCLE, VCYCLE
16
\ and are ordered: HCYCLE HOFFSET HSIZE HSYNC0 HSYNC1
18
: setsync ( visible sync back whole REG -- )
27
: hs GD.REG_HCYCLE setsync ;
28
: vs GD.REG_VCYCLE setsync ;
30
: pll ( pll -- ) \ set PLL clock multiplier
32
13000000 * GD.REG_FREQUENCY GD.!
35
: pclk ( pclk -- ) \ common register settings for EVITA display
42
\ H/V timing parameters order: visible sync back whole
44
: res create , does> @ GD.setcustom ;
45
:noname 5 pll 1024 136 160 1344 hs 768 6 29 806 vs 1 pclk ;
46
:noname 3 pll 800 128 88 1056 hs 600 4 23 628 vs 1 pclk ;
47
:noname 4 pll 640 96 48 800 hs 480 2 33 542 vs 2 pclk ;
48
res 640x480 res 800x600 res 1024x768
50
1024x768 \ default resolution
52
: GD.calibrate ; ( there is no touch screen )
60
0 0 $00ff00 1024 768 $ff0000 GD.cmd_gradient
62
1024 32 - 768 32 - GD.SCISSORSIZE
67
256 i 100 * 484 + GD.SCISSORXY
68
256 i 100 * 484 + $000000
69
768 i 100 * 484 + $0000ff i 8 * lshift
76
r@ 3600 / 12 mod ( hours )
77
r@ 60 / 60 mod ( minutes )
83
GD.wh s>d <# #s 2drop 'x' hold s>d #s #>
85
512 404 0 GD.OPT_CENTER s" Hello world" GD.cmd_text
92
128 48 * 2* constant NB \ bytes in 1024x768 text mode
97
0 GD.TEXTVGA 1024 768 GD.cmd_setbitmap
113
: .3 ( u -- ) \ print as 3-digit decimal
114
s>d <# # # # '.' hold #s #> type space
117
: sync \ wait until REG_FRAMES changes
120
dup GD.REG_FRAMES GD.c@ xor
130
GD.REG_ID GD.@ hex2. cr
133
GD.wh swap 0 .r 'x' emit . cr
135
." Measured core freq. "
142
." Measured frame rate "