summaryrefslogtreecommitdiffstats
path: root/qemu/roms/SLOF/slof/fs/fbuffer.fs
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/SLOF/slof/fs/fbuffer.fs')
-rw-r--r--qemu/roms/SLOF/slof/fs/fbuffer.fs266
1 files changed, 0 insertions, 266 deletions
diff --git a/qemu/roms/SLOF/slof/fs/fbuffer.fs b/qemu/roms/SLOF/slof/fs/fbuffer.fs
deleted file mode 100644
index 47046087d..000000000
--- a/qemu/roms/SLOF/slof/fs/fbuffer.fs
+++ /dev/null
@@ -1,266 +0,0 @@
-\ *****************************************************************************
-\ * Copyright (c) 2004, 2008 IBM Corporation
-\ * All rights reserved.
-\ * This program and the accompanying materials
-\ * are made available under the terms of the BSD License
-\ * which accompanies this distribution, and is available at
-\ * http://www.opensource.org/licenses/bsd-license.php
-\ *
-\ * Contributors:
-\ * IBM Corporation - initial implementation
-\ ****************************************************************************/
-
-#include "terminal.fs"
-#include "display.fs"
-
-\ \\\\\\\\\\\\\\ Global Data
-
-0 VALUE frame-buffer-adr
-0 VALUE screen-height
-0 VALUE screen-width
-0 VALUE screen-depth
-0 VALUE screen-line-bytes
-0 VALUE window-top
-0 VALUE window-left
-
-0 VALUE .sc
-
-: screen-#rows ( -- rows )
- .sc IF
- screen-height char-height /
- ELSE
- true to .sc
- s" screen-#rows" eval
- false to .sc
- THEN
-;
-
-: screen-#columns ( -- columns )
- .sc IF
- screen-width char-width /
- ELSE
- true to .sc
- s" screen-#columns" eval
- false to .sc
- THEN
-;
-
-\ \\\\\\\\\\\\\\ Structure/Implementation Dependent Methods
-
-
-\ \\\\\\\\\\\\\\ Implementation Independent Methods (Depend on Previous)
-\ *
-\ *
-
-: fb8-background inverse? ;
-: fb8-foreground inverse? invert ;
-
-: fb8-lines2bytes ( #lines -- #bytes ) char-height * screen-line-bytes * ;
-: fb8-columns2bytes ( #columns -- #bytes ) char-width * screen-depth * ;
-: fb8-line2addr ( line# -- addr )
- char-height * window-top + screen-line-bytes *
- frame-buffer-adr + window-left screen-depth * +
-;
-
-: fb8-erase-block ( addr len ) fb8-background rfill ;
-
-
-0 VALUE .ab
-CREATE bitmap-buffer 400 4 * allot
-
-: active-bits ( -- new ) .ab dup 8 > IF 8 - to .ab 8 ELSE
- char-width to .ab ?dup 0= IF recurse THEN
- THEN ;
-
-: fb8-char2bitmap ( font-height font-addr -- bitmap-buffer )
- bitmap-buffer >r
- char-height rot 0> IF r> char-width 2dup fb8-erase-block + >r 1- THEN
-
- r> -rot char-width to .ab
- ( fb-addr font-addr font-height )
- fontbytes * bounds ?DO
- i c@ active-bits 0 ?DO
- dup 80 and IF fb8-foreground ELSE fb8-background THEN
- ( fb-addr fbyte colr ) 2 pick ! 1 lshift
- swap screen-depth + swap
- LOOP drop
- LOOP drop
- bitmap-buffer
-;
-
-\ \\\\\\\\\\\\\\ Exported Interface:
-\ *
-\ * IEEE 1275: Frame buffer support routines
-\ *
-
-: fb8-draw-logo ( line# addr width height -- ) ." fb8-draw-logo ( " .s ." )" cr
- 2drop 2drop
-;
-
-: fb8-toggle-cursor ( -- )
- line# fb8-line2addr column# fb8-columns2bytes +
- char-height 2 - screen-line-bytes * +
- 2 0 ?DO
- dup char-width screen-depth * invert-region
- screen-line-bytes +
- LOOP drop
-;
-
-: fb8-draw-character ( char -- )
- >r default-font over + r@ -rot between IF
- 2swap 3drop r> >font fb8-char2bitmap ( bitmap-buf )
- line# fb8-line2addr column# fb8-columns2bytes + ( bitmap-buf fb-addr )
- char-height 0 ?DO
- 2dup char-width screen-depth * mrmove
- screen-line-bytes + >r char-width screen-depth * + r>
- LOOP 2drop
- ELSE 2drop r> 3drop THEN
-;
-
-: fb8-insert-lines ( n -- )
- fb8-lines2bytes >r line# fb8-line2addr dup dup r@ +
- #lines line# - fb8-lines2bytes r@ - rmove
- r> fb8-erase-block
-;
-
-: fb8-delete-lines ( n -- )
- fb8-lines2bytes >r line# fb8-line2addr dup dup r@ + swap
- #lines fb8-lines2bytes r@ - dup >r rmove
- r> + r> fb8-erase-block
-;
-
-: fb8-insert-characters ( n -- )
- line# fb8-line2addr column# fb8-columns2bytes + >r
- #columns column# - 2dup >= IF
- nip dup 0> IF fb8-columns2bytes r> ELSE r> 2drop EXIT THEN
- ELSE
- fb8-columns2bytes swap fb8-columns2bytes tuck -
- over r@ tuck + rot char-height 0 ?DO
- 3dup rmove
- -rot screen-line-bytes tuck + -rot + swap rot
- LOOP
- 3drop r>
- THEN
- char-height 0 ?DO
- dup 2 pick fb8-erase-block screen-line-bytes +
- LOOP
- 2drop
-;
-
-: fb8-delete-characters ( n -- )
- line# fb8-line2addr column# fb8-columns2bytes + >r
- #columns column# - 2dup >= IF
- nip dup 0> IF fb8-columns2bytes r> ELSE r> 2drop EXIT THEN
- ELSE
- fb8-columns2bytes swap fb8-columns2bytes tuck -
- over r@ + 2dup + r> swap >r rot char-height 0 ?DO
- 3dup rmove
- -rot screen-line-bytes tuck + -rot + swap rot
- LOOP
- 3drop r> over -
- THEN
- char-height 0 ?DO
- dup 2 pick fb8-erase-block screen-line-bytes +
- LOOP
- 2drop
-;
-
-: fb8-reset-screen ( -- ) ( Left as no-op by design ) ;
-
-: fb8-erase-screen ( -- )
- frame-buffer-adr screen-height screen-line-bytes * fb8-erase-block
-;
-
-: fb8-invert-screen ( -- )
- frame-buffer-adr screen-height screen-line-bytes * invert-region
-;
-
-: fb8-blink-screen ( -- ) fb8-invert-screen fb8-invert-screen ;
-
-: fb8-install ( width height #columns #lines -- )
- 1 to screen-depth
- 2swap to screen-height to screen-width
- screen-width to screen-line-bytes
- screen-#rows min to #lines
- screen-#columns min to #columns
- screen-height char-height #lines * - 2/ to window-top
- screen-width char-width #columns * - 2/ to window-left
- ['] fb8-toggle-cursor to toggle-cursor
- ['] fb8-draw-character to draw-character
- ['] fb8-insert-lines to insert-lines
- ['] fb8-delete-lines to delete-lines
- ['] fb8-insert-characters to insert-characters
- ['] fb8-delete-characters to delete-characters
- ['] fb8-erase-screen to erase-screen
- ['] fb8-blink-screen to blink-screen
- ['] fb8-invert-screen to invert-screen
- ['] fb8-reset-screen to reset-screen
- ['] fb8-draw-logo to draw-logo
-;
-
-: fb-install ( width height #columns #lines depth -- )
- >r
- fb8-install
- r> to screen-depth
- screen-width screen-depth * to screen-line-bytes
-;
-
-
-\ Install display related FCODE evaluator tokens
-: fb8-set-tokens ( -- )
- ['] is-install 0 11C set-token
- ['] is-remove 0 11D set-token
- ['] is-selftest 0 11E set-token
-
- ['] #lines 0 150 set-token
- ['] #columns 0 151 set-token
- ['] line# 0 152 set-token
- ['] column# 0 153 set-token
- ['] inverse? 0 154 set-token
- ['] inverse-screen? 0 155 set-token
- ['] draw-character 0 157 set-token
- ['] reset-screen 0 158 set-token
- ['] toggle-cursor 0 159 set-token
- ['] erase-screen 0 15A set-token
- ['] blink-screen 0 15B set-token
- ['] invert-screen 0 15C set-token
- ['] insert-characters 0 15D set-token
- ['] delete-characters 0 15E set-token
- ['] insert-lines 0 15F set-token
- ['] delete-lines 0 160 set-token
- ['] draw-logo 0 161 set-token
- ['] frame-buffer-adr 0 162 set-token
- ['] screen-height 0 163 set-token
- ['] screen-width 0 164 set-token
- ['] window-top 0 165 set-token
- ['] window-left 0 166 set-token
- \ ['] foreground-color 0 168 set-token \ 16-color extension - n/a
- \ ['] background-color 0 169 set-token \ 16-color extension - n/a
- ['] default-font 0 16A set-token
- ['] set-font 0 16B set-token
- ['] char-height 0 16C set-token
- ['] char-width 0 16D set-token
- ['] >font 0 16E set-token
- ['] fontbytes 0 16F set-token
-
- ['] fb8-draw-character 0 180 set-token
- ['] fb8-reset-screen 0 181 set-token
- ['] fb8-toggle-cursor 0 182 set-token
- ['] fb8-erase-screen 0 183 set-token
- ['] fb8-blink-screen 0 184 set-token
- ['] fb8-invert-screen 0 185 set-token
- ['] fb8-insert-characters 0 186 set-token
- ['] fb8-delete-characters 0 187 set-token
- ['] fb8-insert-lines 0 188 set-token
- ['] fb8-delete-lines 0 189 set-token
- ['] fb8-draw-logo 0 18A set-token
- ['] fb8-install 0 18B set-token
-;
-fb8-set-tokens
-
-
-\ \\\\\\\\\\\\ Debug Stuff \\\\\\\\\\\\\\\\
-
-: fb8-dump-bitmap cr char-height 0 ?do char-width 0 ?do dup c@ if ." @" else ." ." then 1+ loop cr loop drop ;
-
-: fb8-dump-char >font -b swap fb8-char2bitmap fb8-dump-bitmap ;