version1 [00] checksum=8441 len=000013dc " vs10" encode-string " name" property " VIGRA,vs10" model " display" device-type -1 value g300-addr \ 08 00 -1 value csr-addr \ 08 02 -1 value membytes \ 08 04 -1 value hres \ 08 06 -1 value vres \ 08 08 -1 value lines \ 08 0a -1 value vs10-addr \ 08 0c -1 value vs10-switch \ 08 0e -1 value border \ 08 10 -1 value vs10-bottom \ 08 12 offset16 100000 constant vs10-frame-size \ 08 14 : vs10-video-map \ 08 16 my-address to vs10-addr vs10-addr 400000 + 700 map-low to g300-addr vs10-addr 600000 + 20 map-low to csr-addr vs10-addr 800000 + vs10-frame-size map-low to frame-buffer-adr ; : vs10-video-unmap \ 08 17 frame-buffer-adr vs10-frame-size free-virtual csr-addr 20 free-virtual g300-addr 700 free-virtual ; : set-g300-reg \ 08 18 g300-addr + l! ; : set-csr-reg \ 08 19 csr-addr + l! ; : vs10-video-off \ 08 1a 1 8 set-csr-reg ; : vs10-video-on \ 08 1b 0 8 set-csr-reg ; : vs10-blink-screen \ 08 1c vs10-video-off 20 ms vs10-video-on ; : vs10-sync-neg-vga \ 08 1d 0 c set-csr-reg ; : vs10-sync-pos-vga \ 08 1e 1 c set-csr-reg ; : vs10-sync-neg-rs170 \ 08 1f 2 c set-csr-reg ; : vs10-sync-pos-rs170 \ 08 20 3 c set-csr-reg ; : vs10-sel-osc0 \ 08 21 0 0 set-csr-reg 10 ms ; : vs10-sel-osc1 \ 08 22 1 0 set-csr-reg 10 ms ; : vs10-sel-osc2 \ 08 23 2 0 set-csr-reg 10 ms ; : vs10-sel-osc3 \ 08 24 3 0 set-csr-reg 10 ms ; : vs10-sw0 \ 08 25 vs10-sel-osc0 csr-addr 1c + l@ ; : vs10-sw1 \ 08 26 vs10-sel-osc1 csr-addr 1c + l@ ; : vs10-sw2 \ 08 27 vs10-sel-osc2 csr-addr 1c + l@ ; : vs10-sw3 \ 08 28 vs10-sel-osc3 csr-addr 1c + l@ ; : vs10-dip-switch \ 08 29 vs10-sw3 1 and 8 * vs10-sw2 1 and 4 * vs10-sw1 1 and 2 * vs10-sw0 1 and + + + to vs10-switch ; : vs10-write-enable \ 08 2a 1 csr-addr 18 + l! ; : vs10-write-inhibit \ 08 2b 0 csr-addr 18 + l! ; : vs10-g300-reset \ 08 2c 1 csr-addr 4 + l! 10 ms 0 csr-addr 4 + l! ; : vs10-mem-init \ 08 2d 500 ce * to border vs10-addr 800000 500 332 * + + border map-low to vs10-bottom vs10-bottom border 0 fill vs10-bottom border free-virtual ; : g300-640 \ 08 2e 0 g300-addr 580 + l! c g300-addr 484 + l! c g300-addr 488 + l! a0 g300-addr 48c + l! 3c g300-addr 490 + l! 60 g300-addr 494 + l! 4 g300-addr 498 + l! 4e g300-addr 49c + l! 3c0 g300-addr 4a0 + l! c8 g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1f5 g300-addr 4ac + l! b g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-800-56 \ 08 2f 0 g300-addr 580 + l! 9 g300-addr 484 + l! 20 g300-addr 488 + l! c8 g300-addr 48c + l! 48 g300-addr 490 + l! 7c g300-addr 494 + l! 4 g300-addr 498 + l! 26 g300-addr 49c + l! 4b0 g300-addr 4a0 + l! 100 g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1f3 g300-addr 4ac + l! d g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-800-60 \ 08 30 0 g300-addr 580 + l! 10 g300-addr 484 + l! 16 g300-addr 488 + l! c8 g300-addr 48c + l! 44 g300-addr 490 + l! 7a g300-addr 494 + l! 8 g300-addr 498 + l! 20 g300-addr 49c + l! 4b0 g300-addr 4a0 + l! 108 g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1f3 g300-addr 4ac + l! d g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-800-72 \ 08 31 0 g300-addr 580 + l! f g300-addr 484 + l! 10 g300-addr 488 + l! c8 g300-addr 48c + l! 46 g300-addr 490 + l! 74 g300-addr 494 + l! c g300-addr 498 + l! 60 g300-addr 49c + l! 4b0 g300-addr 4a0 + l! 104 g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1f3 g300-addr 4ac + l! d g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-1024 \ 08 32 0 g300-addr 580 + l! 8 g300-addr 484 + l! 2c g300-addr 488 + l! 100 g300-addr 48c + l! 5a g300-addr 490 + l! 96 g300-addr 494 + l! 8 g300-addr 498 + l! 2e g300-addr 49c + l! 600 g300-addr 4a0 + l! 14c g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1ec g300-addr 4ac + l! 14 g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-1024i \ 08 33 0 g300-addr 580 + l! f g300-addr 484 + l! 28 g300-addr 488 + l! 100 g300-addr 48c + l! 5c g300-addr 490 + l! a2 g300-addr 494 + l! c g300-addr 498 + l! 42 g300-addr 49c + l! 600 g300-addr 4a0 + l! 148 g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1ec g300-addr 4ac + l! 14 g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-1152h \ 08 34 0 g300-addr 580 + l! c g300-addr 484 + l! 34 g300-addr 488 + l! 120 g300-addr 48c + l! 65 g300-addr 490 + l! a7 g300-addr 494 + l! 10 g300-addr 498 + l! 32 g300-addr 49c + l! 708 g300-addr 4a0 + l! 16e g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1e3 g300-addr 4ac + l! 1d g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-1152l \ 08 35 0 g300-addr 580 + l! 10 g300-addr 484 + l! 34 g300-addr 488 + l! 120 g300-addr 48c + l! 64 g300-addr 490 + l! b8 g300-addr 494 + l! 8 g300-addr 498 + l! 32 g300-addr 49c + l! 708 g300-addr 4a0 + l! 178 g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1e3 g300-addr 4ac + l! 1d g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-1280-60 \ 08 36 0 g300-addr 580 + l! d g300-addr 484 + l! 36 g300-addr 488 + l! 140 g300-addr 48c + l! 6d g300-addr 490 + l! bd g300-addr 494 + l! a g300-addr 498 + l! 38 g300-addr 49c + l! 800 g300-addr 4a0 + l! 1a6 g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1e3 g300-addr 4ac + l! 1d g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-1280-67 \ 08 37 0 g300-addr 580 + l! e g300-addr 484 + l! 38 g300-addr 488 + l! 140 g300-addr 48c + l! 74 g300-addr 490 + l! c8 g300-addr 494 + l! 10 g300-addr 498 + l! 36 g300-addr 49c + l! 800 g300-addr 4a0 + l! 198 g300-addr 4a4 + l! 0 g300-addr 4a8 + l! 1e3 g300-addr 4ac + l! 1d g300-addr 4b0 + l! ff g300-addr 500 + l! ; : g300-clut \ 08 38 ffffff g300-addr 0 + l! b44164 g300-addr 4 + l! ff g300-addr 8 + l! ffff g300-addr c + l! ff00 g300-addr 10 + l! ffff00 g300-addr 14 + l! ff0000 g300-addr 18 + l! ff00ff g300-addr 20 + l! 0 g300-addr 3fc + l! ; : vs10-init-0 \ 08 39 vs10-sync-neg-vga vs10-sel-osc0 vs10-g300-reset 25 680 set-g300-reg g300-640 18 494 set-g300-reg 160021 580 set-g300-reg 280 to hres 1e0 to vres 1e0 to lines ; : vs10-init-1 \ 08 3a vs10-sync-neg-vga vs10-sel-osc2 vs10-g300-reset 29 680 set-g300-reg g300-800-56 12 494 set-g300-reg 160021 580 set-g300-reg 320 to hres 258 to vres 258 to lines ; : vs10-init-2 \ 08 3b vs10-sync-pos-vga vs10-sel-osc2 vs10-g300-reset 29 680 set-g300-reg g300-800-56 12 494 set-g300-reg 160021 580 set-g300-reg 320 to hres 258 to vres 258 to lines ; : vs10-init-3 \ 08 3c vs10-sync-neg-vga vs10-sel-osc2 vs10-g300-reset 30 680 set-g300-reg g300-1024 10 494 set-g300-reg 160021 580 set-g300-reg 400 to hres 300 to vres 300 to lines ; : vs10-init-4 \ 08 3d vs10-sync-neg-rs170 vs10-sel-osc2 vs10-g300-reset 30 680 set-g300-reg g300-1024 160021 580 set-g300-reg 400 to hres 300 to vres 300 to lines ; : vs10-init-5 \ 08 3e vs10-sync-neg-rs170 vs10-sel-osc2 vs10-g300-reset 30 680 set-g300-reg g300-1024 160001 580 set-g300-reg 400 to hres 300 to vres 300 to lines ; : vs10-init-6 \ 08 3f vs10-sync-neg-rs170 vs10-sel-osc0 vs10-g300-reset 2e 680 set-g300-reg g300-1024i 160021 580 set-g300-reg 400 to hres 300 to vres 300 to lines ; : vs10-init-7 \ 08 40 vs10-sync-neg-rs170 vs10-sel-osc0 vs10-g300-reset 35 680 set-g300-reg g300-1152h 160021 580 set-g300-reg 480 to hres 384 to vres 384 to lines ; : vs10-init-8 \ 08 41 vs10-sync-neg-rs170 vs10-sel-osc0 vs10-g300-reset 31 680 set-g300-reg g300-1152h 160021 580 set-g300-reg 480 to hres 384 to vres 384 to lines ; : vs10-init-9 \ 08 42 vs10-sync-neg-rs170 vs10-sel-osc3 vs10-g300-reset 34 680 set-g300-reg g300-1152l 160021 580 set-g300-reg 480 to hres 384 to vres 384 to lines ; : vs10-init-a \ 08 43 vs10-sync-neg-vga vs10-sel-osc2 vs10-g300-reset 29 680 set-g300-reg g300-800-60 20 494 set-g300-reg 160021 580 set-g300-reg 320 to hres 258 to vres 258 to lines ; : vs10-init-b \ 08 44 vs10-sync-neg-vga vs10-sel-osc0 vs10-g300-reset 2a 680 set-g300-reg g300-800-72 1e 494 set-g300-reg 160021 580 set-g300-reg 320 to hres 258 to vres 258 to lines ; : vs10-init-c \ 08 45 vs10-sync-neg-vga vs10-sel-osc2 vs10-g300-reset 3b 680 set-g300-reg g300-1280-60 1a 494 set-g300-reg 160021 580 set-g300-reg 500 to hres 332 to vres 400 to lines ; : vs10-init-d \ 08 46 vs10-sync-neg-rs170 vs10-sel-osc2 vs10-g300-reset 3b 680 set-g300-reg g300-1280-60 160021 580 set-g300-reg 500 to hres 332 to vres 400 to lines ; : vs10-init-e \ 08 47 vs10-sync-neg-rs170 vs10-sel-osc2 vs10-g300-reset 3b 680 set-g300-reg g300-1280-60 160001 580 set-g300-reg 500 to hres 332 to vres 400 to lines ; : vs10-init-f \ 08 48 vs10-sync-neg-rs170 vs10-sel-osc1 vs10-g300-reset 37 680 set-g300-reg g300-1280-67 160021 580 set-g300-reg 500 to hres 332 to vres 400 to lines ; : vs10-timing-init \ 08 49 case 0 of vs10-init-0 endof 1 of vs10-init-1 endof 2 of vs10-init-2 endof 3 of vs10-init-3 endof 4 of vs10-init-4 endof 5 of vs10-init-5 endof 6 of vs10-init-6 endof 7 of vs10-init-7 endof 8 of vs10-init-8 endof 9 of vs10-init-9 endof a of vs10-init-a endof b of vs10-init-b endof c of vs10-init-c endof d of vs10-init-d endof e of vs10-init-e endof vs10-init-f endcase ; : init-vs10 \ 08 4a vs10-dip-switch vs10-switch vs10-timing-init ; : vs10-init \ 08 4b init-vs10 g300-clut ; : vs10-install \ 08 4c vs10-mem-init vs10-video-map default-font set-font frame-buffer-adr encode-int " address" property hres to membytes membytes vres hres char-width / vres char-height / fb8-install ['] vs10-blink-screen to blink-screen ['] vs10-video-on to reset-screen ; : vs10-selftest \ 08 4d vs10-video-map vs10-video-off 20 ms vs10-video-on vs10-video-unmap ; : vs10-remove \ 08 4e vs10-video-off vs10-video-unmap ; : vs10-probe \ 08 4f vs10-video-map vs10-init vs10-video-unmap vs10-addr 200000 + my-space encode-phys 8000 encode-int encode+ vs10-addr 400000 + my-space encode-phys encode+ 700 encode-int encode+ vs10-addr 600000 + my-space encode-phys encode+ 20 encode-int encode+ vs10-addr 800000 + my-space encode-phys encode+ vs10-frame-size encode-int encode+ " reg" property 5 sbus-intr>cpu encode-int 0 encode-int encode+ " intr" property 8 encode-int " depth" property hres encode-int " width" property lines encode-int " height" property hres encode-int " linebytes" property ['] vs10-install is-install ['] vs10-remove is-remove ['] vs10-selftest is-selftest ; vs10-probe end0