/* Video terminal, not a serial tty */
#define CONFIG_VT
-/* We want the 8x8 font */
-#define CONFIG_FONT8X8
-#define CONFIG_FONT8X8SMALL
+/* We don't need a font: We will use the ROM font */
+#undef CONFIG_FONT8X8
+#undef CONFIG_FONT8X8SMALL
/* We have 1 bank at C000 with 6 possible pages to map.
Our choice should be CONFIG_BANK_FIXED, but we are.
#undef CONFIG_BANK_FIXED
-/* 6 16K banks, 1 is for kernel needs */
-#define MAX_MAPS 5
-#define MAP_SIZE 0x4000U
+/* We have two mappings from our 128K of memory */
+#define MAX_MAPS 2
+#define MAP_SIZE 0x8000U
/* Banks as reported to user space */
#define CONFIG_BANKS 1
; zx128 vt primitives
;
- .module zx128
+ .module zxvideo
; exported symbols
.globl _plot_char
.globl _clear_across
.globl _do_beep
- .globl _fontdata_8x8
-
.area _VIDEO
; colors are ignored everywhere for now
call videopos
+ ;
+ ; TODO: Map char 0x60 to a grave accent bitmap rather
+ ; than fudging with a quote
+ ;
+
ld b, #0 ; calculating offset in font table
ld a, c
+ cp #0x60
+ jr nz, nofiddle
+ ld a, #0x27
+nofiddle:
+ or a ; clear carry
rla
rl b
rla
rl b
ld c, a
- ld hl, #_fontdata_8x8 - 256
+ ld hl, #0x3C00 ; ROM font
add hl, bc ; hl points to first byte of char data
+
; printing
ld c, #8
plot_char_loop: