Author: wmb Date: 2009-10-27 11:35:37 +0100 (Tue, 27 Oct 2009) New Revision: 1433
Modified: dev/via/unichrome/unichrome.fth dev/via/unichrome/vgamodes.fth Log: OLPC trac 9472 - graphics mode 12 is now working on the XO-1.5 display.
Modified: dev/via/unichrome/unichrome.fth =================================================================== --- dev/via/unichrome/unichrome.fth 2009-10-27 03:47:17 UTC (rev 1432) +++ dev/via/unichrome/unichrome.fth 2009-10-27 10:35:37 UTC (rev 1433) @@ -132,7 +132,7 @@ \ width height htotal hsync hsyncend vtotal vsync vsyncend --pll-- misc --vckpll--- create mode12-entry \ 640 w, 480 w, 800 w, 672 w, 768 w, 525 w, 490 w, 492 w, hex 05 04 35 e3 pll, 00 00 00 00 pll, decimal - 640 w, 480 w, 800 w, 656 w, 752 w, 525 w, 490 w, 492 w, hex 03 90 54 e3 pll, 04 10 97 00 pll, decimal + 640 w, 480 w, 800 w, 672 w, 768 w, 525 w, 490 w, 492 w, hex 03 90 54 e3 pll, 04 10 97 00 pll, decimal
\ Standard timings according to http://www.epanorama.net/documents/pc/vga_timing.html: \ 640(width)+8(border)=648(hblank) 648(hblank)+8(frontporch)=656(hsync) @@ -146,7 +146,7 @@
: find-timing-table ( width height -- error? ) \ Mode12 check - depth 4 = if 2drop mode12-entry to res-entry false exit then ( width height ) + over d# 640 = depth 4 = and if 2drop mode12-entry to res-entry false exit then ( width height )
\ Text mode 3 check dup d# 400 = if 2drop mode3-entry to res-entry false exit then ( width height ) @@ -271,6 +271,7 @@ : bytes>chars ( bytes -- chars ) 3 >> ; : chars>bytes 3 << ; : pixels>bytes ( pixels -- bytes ) + depth 4 = if 2/ exit then depth d# 24 = if d# 32 else depth then * ( bits ) 3 >> ( bytes ) ;
@@ -297,33 +298,29 @@
: legacy-settings ( -- ) \ Some EGA legacy mode settings + 00 00 seq! \ Reset sequencer + mode-3? if 00 else 01 then 01 seq! \ 8/9 timing (0 for mode 3) + mode-3? if 03 else 0f then 02 seq! \ Enable map planes 0 and 1 (3 for mode 3) + 00 03 seq! \ Character map select + mode-3? if 02 else 06 then 04 seq! \ Extended memory present (2 for mode 3) 03 00 seq! \ Release reset bits - mode-3? if 00 else 01 then - 01 seq! \ 8/9 timing (0 for mode 3) - mode-3? if 03 else 0f then - 02 seq! \ Enable map planes 0 and 1 (3 for mode 3) - 00 03 seq! \ Character map select - mode-3? if 02 else 0e then - 04 seq! \ Extended memory present (2 for mode 3) - 0d 0a crt! \ Cursor start (text mode) - 0e 0b crt! \ Cursor end (text mode) + + mode-3? if 0d else 00 then 0a crt! \ Cursor start (text mode) + mode-3? if 0e else 00 then 0b crt! \ Cursor end (text mode) 00 0e crt! \ Cursor loc (text mode) 00 0f crt! \ Cursor loc (text mode) - mode-3? if 60 else mode-12? if 70 else 10 then then - 11 crt! \ Refreshes per line, disable vertical interrupt (60 in mode 3, 70 in mode 12) - mode-12? if 63 else 23 then - 17 crt! \ address wrap, sequential access, not CGA compat mode (63 in mode 12) + mode-3? mode-12? or if 60 else 00 then f0 11 crt-mask \ Refreshes per line, disable vert intr + mode-12? if 63 else 23 then 17 crt! \ address wrap, sequential access, not CGA compat mode
- - 04 0e crt! \ Make the register dump match the snapshots - 60 0f crt! - 01 49 crt! +\ 04 0e crt! \ Make the register dump match the snapshots +\ 60 0f crt! +\ 01 49 crt! ;
: general-init ( -- ) 1e seq@ 1 or 1e seq! \ ROC ECK 00 20 seq! \ max queuing number (but manual recommends 4) - 10 22 seq! \ (display queue request expire number) + 14 22 seq! \ (display queue request expire number) 40 34 seq! \ not documented 01 3b seq! \ not documented 38 40 seq! \ ECK freq @@ -340,17 +337,15 @@ \ SRs set in romreset: 35-38,39,4c,68,6d-6f,78,f3
: tune-fifos ( -- ) - mode-3? mode-12? or if 0c else 20 then - 3f 16 seq-mask \ FIFO threshold (VX855 value) (value is c in modes 3 and 12) - mode-3? mode-12? or if 1f else 7f then - ff 17 seq-mask \ FIFO depth (VX855 value) (value is 1f in modes 3 and 12) - 60 ff 18 seq-mask \ Display Arbiter (VX855 value) + mode-3? mode-12? or if 0c else 20 then 3f 16 seq-mask \ FIFO threshold (VX855 value) + 1f 17 seq! \ FIFO depth (VX855 value) + 4e 18 seq! \ Display Arbiter (VX855 value)
18 21 seq! \ (typical request track FIFO number channel 0 1f 50 seq! \ FIFO - 81 51 seq! \ FIFO + 81 51 seq! \ FIFO - 81 enable Northbridge FIFO 00 57 seq! \ FIFO - 08 58 seq! \ FIFO + 08 58 seq! \ Display FIFO low threshold select 20 66 seq! \ request kill 20 67 seq! \ request kill 20 69 seq! \ request kill @@ -389,8 +384,8 @@ \ Starting address : start1! ( offset -- ) lbsplit 3 and 3 48 crt-mask 34 crt! 0d crt! 0c crt! ;
-: vsync1! 1- dup 10 crt! dup 6 >> 04 07 crt-mask dup 2 >> 80 07 crt-mask 9 >> 02 35 crt-mask ; -: vsyncend1! 1- 0f 11 crt-mask ; +: vsync1! dup 10 crt! dup 6 >> 04 07 crt-mask dup 2 >> 80 07 crt-mask 9 >> 02 35 crt-mask ; +: vsyncend1! 0f 11 crt-mask ;
: vblank1! 1- dup 15 crt! dup 5 >> 08 07 crt-mask dup 4 >> 20 09 crt-mask 7 >> 08 35 crt-mask ; : vblankend1! 1- 16 crt! ; @@ -450,8 +445,8 @@
: vtotal1@ 06 crt@ 07 crt@ 1 and 8 << or 07 crt@ 20 and 4 << or 35 crt@ 1 and d# 10 << or 2+ ; : vdisplay1@ 12 crt@ 07 crt@ 2 and 7 << or 07 crt@ 40 and 3 << or 35 crt@ 4 and 8 << or 1+ ; -: vsync1@ 10 crt@ 07 crt@ 4 and 6 << or 07 crt@ 80 and 2 << or 35 crt@ 2 and 9 << or 1+ ; -: vsyncend1@ 11 crt@ 0f and vsync1@ 1- 0f after-start 1+ ; +: vsync1@ 10 crt@ 07 crt@ 4 and 6 << or 07 crt@ 80 and 2 << or 35 crt@ 2 and 9 << or ; +: vsyncend1@ 11 crt@ 0f and vsync1@ 0f after-start ; : vblank1@ 15 crt@ 07 crt@ 8 and 5 << or 09 crt@ 20 and 4 << or 35 crt@ 8 and 7 << or 1+ ; : vblankend1@ 16 crt@ vblank1@ 1- ff after-start 1+ ;
@@ -462,6 +457,7 @@
: bpp1@ ( -- depth ) 15 seq@ fe and case + 0 of 4 endof 22 of 8 endof b6 of d# 16 endof ae of d# 32 endof @@ -476,6 +472,7 @@
: bpp2! ( depth -- ) case + 4 of 00 endof 8 of 00 endof d# 16 of 40 endof d# 32 of c0 endof @@ -504,16 +501,14 @@ 0 20 grf! 0 21 grf! 0 22 grf! ; : init-attr-regs ( -- ) - \ AT6 is 6 not 14, AT8-f is 8-f, not 38-3f (different intensities) - 10 0 do i i attr! loop - mode-3? if 0c else 01 then - 10 attr! \ mode control (0c for text mode 3) - 00 11 attr! \ overscan color - 0f 12 attr! \ color plane enable - mode-3? if 08 else 00 then - 13 attr! \ horizontal pixel pan - (08 for text mode 3) - 00 14 attr! \ high bits of color palette index + " "(00 01 02 03 04 05 14 07 38 39 3a 3b 3c 3d 3e 3f 01 00 0f 00 00)" + 0 do ( adr ) dup c@ i attr! 1+ loop drop
+ mode-3? if + 0c 10 attr! \ mode control + 08 13 attr! \ horizontal pixel pan + then + palette-on ;
@@ -529,8 +524,9 @@ \ 01 df 01 seq-mask \ 00 03 seq!
- mode-3? if 02 else a2 then e2 15 seq-mask \ (22 for mode 3, for 6-bit LUT) + mode-3? mode-12? or if 00 else a2 then e2 15 seq-mask depth case + 4 of 00 endof 8 of 00 endof d# 16 of 14 endof d# 24 of 0c endof @@ -572,7 +568,7 @@
\ Max scan line value 0 mode-3? if 0f else 00 then 1f 9 crt-mask - 1f 14 crt! \ Underline location + mode-3? if 1f else 00 then 14 crt! \ Underline location
vblank vblank1! vblankend vblankend1! @@ -581,18 +577,18 @@ \ 00 32 crt! \ HSYNC delay, SYNC drive, gamma, end blanking, etc Already set c8 33 crt-clr \ Gamma, interlace, prefetch, HSYNC shift
+ width pixels>bytes to /scanline \ Offset - mode-3? if + mode-3? mode-12? or if \ d# 512 d# 320 else - width pixels>bytes to /scanline /scanline then hoffset1!
\ fetch count - hdisplay pixels>bytes mode-3? if 2* then hfetch1! + hdisplay mode-3? mode-12? or if 2* else pixels>bytes then hfetch1! ;
: set-primary-mode ( -- ) @@ -610,10 +606,10 @@
\ 08 33 crt-set \ Enable CRT prefetch (VESA BIOS doesn't set this)
- depth 8 <> set-gamma \ No gamma for 8bpp palette mode + depth 8 > set-gamma \ No gamma for 4bpp mode or 8bpp palette mode
- mode-3? if vpll else pll then set-vclk use-ext-clock - mode-3? if 02 47 crt-set then \ LCD simultaneous mode backdoor register for 8/9 Dot Clocks + mode-3? mode-12? or if vpll else pll then set-vclk use-ext-clock + mode-3? mode-12? or if 02 47 crt-set then \ LCD simultaneous mode backdoor register for 8/9 Dot Clocks
\ 01 6b crt-clr \ Appears to be reserved RO bit
@@ -638,8 +634,8 @@ : hblankend2! 1- dup 53 crt! dup 5 >> 38 54 crt-mask 5 >> 40 5d crt-mask ;
\ unichrome omits bit 11, which goes in CR5D[7] -: hsync2! 1- dup 56 crt! dup 2 >> c0 54 crt-mask dup 3 >> 80 5c crt-mask 4 >> 80 5d crt-mask ; -: hsyncend2! 1- dup 57 crt! 2 >> 40 5c crt-mask ; +: hsync2! dup 56 crt! dup 2 >> c0 54 crt-mask dup 3 >> 80 5c crt-mask 4 >> 80 5d crt-mask ; +: hsyncend2! dup 57 crt! 2 >> 40 5c crt-mask ;
: vtotal2! 1- dup 58 crt! 8 >> 07 5d crt-mask ; : vdisplay2! 1- dup 59 crt! 5 >> 38 5d crt-mask ; @@ -660,8 +656,8 @@ : hdisplay2@ 51 crt@ 55 crt@ 4 >> 7 and 8 << or 1+ ; : hblank2@ 52 crt@ 54 crt@ 7 and 8 << or 1+ ; : hblankend2@ 53 crt@ 54 crt@ 3 >> 7 and 8 << or 5d crt@ 6 >> 1 and d# 11 << or 1+ ; -: hsync2@ 56 crt@ 54 crt@ 6 >> 3 and 8 << or 5c crt@ 7 >> 1 and d# 10 << or 5d crt@ 7 >> 1 and d# 11 << or 1+ ; -: hsyncend2@ 57 crt@ 5c crt@ 6 >> 1 and 8 << or hsync2@ 1ff invert and or dup hsync2@ < if 200 + then 1+ ; +: hsync2@ 56 crt@ 54 crt@ 6 >> 3 and 8 << or 5c crt@ 7 >> 1 and d# 10 << or 5d crt@ 7 >> 1 and d# 11 << or ; +: hsyncend2@ 57 crt@ 5c crt@ 6 >> 1 and 8 << or hsync2@ 1ff after-start ;
: vtotal2@ 58 crt@ 5d crt@ 7 and 8 << or 1+ ; : vdisplay2@ 59 crt@ 5d crt@ 3 >> 7 and 8 << or 1+ ; @@ -677,22 +673,22 @@ : qdepth@ ( -- depth ) 68 crt@ f0 and 4 >> ; \ Unused bits in regs 94 and 95 too
: simultaneous-mode-3? ( -- flag ) height d# 400 = ; +: simultaneous-mode-12? ( -- flag ) depth 4 = ; : set-pitch2 ( -- ) \ Offset - distance from one scanline to the next in the memory array width pixels>bytes to /scanline
\ I'm unsure how the 808 is calculated for simultaneous mode 3, but the \ value is what BIOS uses. It might not matter. - simultaneous-mode-3? if d# 808 else /scanline then hoffset2! + simultaneous-mode-3? simultaneous-mode-12? or if d# 808 else /scanline then hoffset2!
\ fetch count - number of bytes to fetch from memory for each scanline \ If this smaller than hdisplay, the last data replicates horizontally to the right - width - simultaneous-mode-3? if 8 + 4 * then - pixels>bytes hfetch2! + width simultaneous-mode-3? simultaneous-mode-12? or if 8 + 4 * else pixels>bytes then hfetch2! ; : set-secondary-vga-mode ( mode -- ) depth case + 4 of 00 endof 8 of 00 endof d# 16 of 40 endof d# 24 of 80 endof @@ -971,7 +967,7 @@
0 value bias : timing-scale ( value -- value' ) - simultaneous-mode-3? if \ Can't use mode-3? here because res-entry isn't pointing to mode3-entry + simultaneous-mode-3? simultaneous-mode-12? or if \ Can't use mode-3? here because res-entry isn't pointing to mode3-entry \ Ratio of VCK to LCDCK, from known settings for those clocks d# 338 d# 569 else @@ -979,7 +975,7 @@ then */ ; -\ For 640x400 (text mode 3) and 640x480x4 (graphics mode 3) where you need IGA1 for its VGA-ness +\ For 640x400 (text mode 3) and 640x480x4 (graphics mode 12) where you need IGA1 for its VGA-ness : expanded ( -- ) set-mode-timing set-panel-timing @@ -1017,11 +1013,10 @@
scale-lcd
- d# 808 hoffset2! \ For mode 3; not sure how it's calculated +\ d# 808 hoffset2! \ For mode 3; not sure how it's calculated (scale-lcd sets it via set-pitch2) \ width pixels>bytes hoffset2! \ This is better for testing as it preserves the pitch the text renderer uses \ mode hdisplay pixels>bytes d# 400 + hoffset2! \ Panel-specific fudge factor - study !!!
- mode vpll set-vclk panel pll set-lcdck
@@ -1332,9 +1327,9 @@ ATR 0 1 2 3 4 5 14 7 38 39 3a 3b 3c 3d 3e 3f c 0 f 8 0 SEQ 3 0 3 0 2 GRF 0 0 0 0 0 10 e 0 ff - 0 1 2 3 4 5 6 7 8 9 a b c d e f -C00 5f 4f 50 82 55 81 bf 1f 0 4f d e 0 0 1 40 htotal1:800 hdisplay1:640 hblank1:648 hblend1:280?? hsync:680 -C10 9c 6e 8f 28 1f 96 b9 a3 ff hfetch1: hoffset1: 28=>320 vsync: 19c = 412 (not subtracted) + 0 1 2 3 4 5 6 7 8 9 a b c d e f vtotal1:449 vdisplay1:400 vblank1:407 vblankend1:442 +C00 5f 4f 50 82 55 81 bf 1f 0 4f d e 0 0 1 40 htotal1:800 hdisplay1:640 hblank1:648 hblend1:280?? hsync:680,776 +C10 9c 6e 8f 28 1f 96 b9 a3 ff hfetch1: hoffset1: 28=>320 vsync: 19c = 413 vsyncend1: 415 C30 8 0 11 0 0 0 1 34 d3 19 e7 2 8 64 20 b C40 0 0 0 90 0 0 0 2 0 C50 d7 af af d7 24 c4 b6 be 8f 83 83 8f 9b 1b 84 6e htotal2: 1240 @@ -1350,7 +1345,7 @@ CE0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d CF0 0 0 0 92 0 0 0 c0 0 a 0 0 0 -S10 1 78 8 0 0 0 4c 1f 4e 7f 0 f0 54 0 31 hfetch1: 54 => 1360 ?? secondary_dpy_clk is on (rx1b) +S10 1 78 8 0 0 0 4c 1f 4e 7f 0 f0 54 0 31 hfetch1: 54 => 1280 secondary_dpy_clk is on (rx1b) S20 0 18 14 3d c 0 0 ff ff S30 0 6 11 1d c 20 ff
@@ -1365,6 +1360,99 @@ SA8 0 0 80 80 0 0 0 0 G20 0 0 0
+ok 12 set-vesa-mode mode 12 640x480x4 +ok .dpy +ATR 0 1 2 3 4 5 14 7 38 39 3a 3b 3c 3d 3e 3f 1 0 f 0 0 +SEQ 3 1 f 0 6 +GRF 0 0 0 0 0 0 5 f ff + 0 1 2 3 4 5 6 7 8 9 a b c d e f vtotal:525 vdisplay1:480 vblank1:488 vblankend:517 +C00 5f 4f 50 82 54 80 b 3e 0 40 0 0 0 0 0 0 htotal1:800 hdisplay1:640 hblank1:648 hblend:280?? hsync:672,768 +C10 ea 6c df 28 0 e7 4 e3 ff hfetch1: hoffset1: 28=>320 vsync1: 1ea = 491 vsyncend1: 493 +C30 8 0 11 0 0 0 1 34 d3 3c e6 2 8 64 20 b +C40 0 0 0 90 0 0 0 2 0 +C50 d7 af af d7 24 c4 b6 be 8f 83 83 8f 9b 1b 84 6e htotal2: 1240 + hfetch2: 836 hoffset2: 808 htotals: 57=>736 - this matches the vck/lcdck ratio WRT htotal2 of 1240 +C60 5c 72 0 0 0 a2 65 0 f0 0 48 e 0 57 5b 8e !! CR6b[3] simultaneous mode, [2] IGA2 off secondary_dpy_off + (6a:80) hblankends: 5b=>736 +C70 83 33 83 8f 33 85 3f 22 22 ab 1 2 3 4 7 a hscale: 0t2184 (639*4096/1199) +C80 d 13 16 19 1c 1d 1e 1f e1 0 1 5d 2b 0 b5 1 +C90 10 1f 0 0 8 11 0 10 0 0 0 1b 0 0 0 0 +CA0 0 0 c8 0 8 c3 f9 8b 1 0 0 0 0 0 0 0 +CD0 0 0 2b 0 c0 0 0 0 0 0 0 0 0 0 0 0 +CE0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 +CF0 0 0 0 92 0 0 0 c0 0 a 0 0 0 +S10 1 78 c 0 0 0 4c 1f 4e 7f 0 f0 54 0 31 hfetch1: 54 => 1280 +S20 0 18 14 3d c 0 0 ff ff +S30 0 6 11 1d 4 20 ff +S40 38 40 30 ff 97 10 4 69 84 3 9f 8c 5 30 0 5f +S50 1f 0 0 ff 0 0 ff 0 6 df 0 51 21 f0 0 0 +S60 0 0 0 40 20 d 20 20 80 20 0 0 0 80 1 0 +S70 20 0 f 0 1f 1f 0 0 86 8 10 0 c8 0 0 0 +SA8 0 0 80 80 0 0 0 0 +G20 0 0 0 +ok + +--- Attempted mode 12 -------- +ATR 0 1 2 3 4 5 14 7 38 39 3a 3b 3c 3d 3e 3f 1 0 f 0 0 +SEQ 3 1 f 0 6 +GRF 0 0 0 0 0 0 5 f ff + 0 1 2 3 4 5 6 7 8 9 a b c d e f +C00 5f 4f 50 82 54 80 b 3e 0 40 0 0 0 0 0 0 +C10 ea 6c df 28 0 e7 4 e3 ff +C30 8 0 11 20 0 10 1 34 fd 96 ff 1 8 74 0 0 +C40 0 0 0 80 0 0 0 2 0 +C50 d7 af af d7 24 44 b5 bd 8f 83 83 8f 9b 1b 88 6a +C60 34 51 0 0 0 a2 65 50 f0 0 48 8 0 57 5b 8e +C70 83 33 83 8f bb 89 3b 21 21 af 1 2 3 4 7 a +C80 d 13 16 19 1c 1d 1e 1f 60 0 1 ca ca ca ca 11 +C90 11 0 0 0 8 11 0 10 0 0 0 1b 0 0 0 2 +CA0 0 0 c8 0 3 0 0 8b 1 0 0 0 0 0 0 0 +CD0 0 0 c8 0 0 0 0 0 0 0 0 0 0 0 0 0 +CE0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 +CF0 0 0 0 80 0 0 0 c0 0 a 0 d 0 +S10 1 78 0 0 0 0 4c 1f 4e 7f 38 f0 54 0 31 +S20 0 18 14 3d c 0 0 ff ff +S30 c 6 11 1d 4 20 ff +S40 38 b0 10 ff 97 10 4 79 88 4 9f c 5 30 0 5f +S50 1f 81 0 ff 0 0 ff 0 8 df 0 51 21 0 0 0 +S60 0 0 0 0 20 0 20 20 e0 20 0 0 0 e0 1 0 +S70 20 4 f 33 1f 1f 0 0 e0 8 10 0 c8 0 0 0 +SA8 0 0 80 80 0 0 0 0 +G20 0 0 0 +---------------- + +Mode 112 - 640x480x8 +ok 112 set-linear-mode +ok .dpy +ATR 0 1 2 3 4 5 14 7 38 39 3a 3b 3c 3d 3e 3f 1 0 f 0 0 +SEQ 3 1 f 0 e +GRF 0 0 0 0 0 0 5 f ff + 0 1 2 3 4 5 6 7 8 9 a b c d e f +C00 5f 4f 4f 83 52 9e b 3e 0 40 0 0 0 0 0 0 +C10 e9 1b df 50 0 df c e3 ff +C30 8 0 11 26 0 10 1 34 d3 3c e6 2 8 64 20 b +C40 0 0 0 90 0 0 0 0 0 +C50 d7 af af d7 24 c4 b6 be 8f 83 83 8f 9b 1b 84 6e +C60 69 72 0 0 0 a0 40 c1 f0 0 c8 0 0 57 5b 8e +C70 83 33 83 8f 33 85 3f 22 22 ab 1 2 3 4 7 a +C80 d 13 16 19 1c 1d 1e 1f e1 0 1 5d 2b 0 b5 1 +C90 10 1f 0 0 8 11 0 10 0 0 0 1b 0 0 0 0 +CA0 0 0 c8 0 8 c3 f9 8b 1 0 0 0 0 0 0 0 +CD0 0 0 2b 0 c0 0 0 0 0 0 0 0 0 0 0 0 +CE0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 0 0 +CF0 0 0 0 92 0 0 0 c0 0 a 0 d 0 +S10 1 78 c 0 0 22 4c 1f 4e 7f 8 f0 2c 0 31 +S20 0 18 14 3d c 0 0 ff ff +S30 0 6 11 1d c 20 ff +S40 38 40 30 ff 8d 10 5 69 84 3 9f 8c 5 30 0 5f +S50 1f 0 0 ff 0 0 ff 0 8 5f 0 51 21 f0 0 0 +S60 0 0 0 40 20 d 20 20 80 20 0 0 0 80 1 0 +S70 20 0 f 0 1f 1f 0 0 86 8 10 0 c8 0 0 0 +SA8 0 0 80 80 0 0 0 0 +G20 0 0 0 +ok + + Mode 115 - 800x600x32 ok .dpy ATR 0 1 2 3 4 5 14 7 38 39 3a 3b 3c 3d 3e 3f 1 0 f 0 0 @@ -1900,4 +1988,5 @@
9d8c85 => 56.199 a79084 => 37.362 ratio .6648 + [then]
Modified: dev/via/unichrome/vgamodes.fth =================================================================== --- dev/via/unichrome/vgamodes.fth 2009-10-27 03:47:17 UTC (rev 1432) +++ dev/via/unichrome/vgamodes.fth 2009-10-27 10:35:37 UTC (rev 1433) @@ -86,4 +86,11 @@ set-primary-mode expanded ; +: graphics-mode12 + olpc-crt-on \ Restore power to IGA1, as we need it for VGA modes + graphics-mode12 \ The base VGA version; sets up the font and stuff + d# 640 d# 480 4 set-resolution + set-primary-mode + expanded +; warning !