diff options
| author | B. Watson <urchlay@slackware.uk> | 2026-04-24 03:54:01 -0400 |
|---|---|---|
| committer | B. Watson <urchlay@slackware.uk> | 2026-04-24 03:54:01 -0400 |
| commit | 715964c0b5ab8a2bc2b8ae8b7935e9ea0088e332 (patch) | |
| tree | 8d61003fadc3d3c7761394c517c4488c2b63743d /font_dl.asm | |
| parent | 2ce1d0d8a2e7f79e1bb008836a4dca48adba867e (diff) | |
| download | fujinet-chat-715964c0b5ab8a2bc2b8ae8b7935e9ea0088e332.tar.gz | |
Dynamic screens. Still a bit flaky, but actually does work to some degree.
Diffstat (limited to 'font_dl.asm')
| -rw-r--r-- | font_dl.asm | 110 |
1 files changed, 39 insertions, 71 deletions
diff --git a/font_dl.asm b/font_dl.asm index f89e682..31e80f8 100644 --- a/font_dl.asm +++ b/font_dl.asm @@ -2,87 +2,24 @@ *= $3400 .incbin "font.dat" -; shoehorn the transmit & receive buffers here - *= $3800 -rx_buf ; 512 bytes - *= $3a00 -tx_buf ; 512 bytes - *= $3c00 -scr_vis_buf ; not used yet - - *= $4000 -; screen RAM starts at the XE bankswitching window! -; 7 double-height screens, 50 lines each. -scr0_top - *= * + 1000 -scr1_top - *= * + 1000 -scr2_top - *= * + 1000 -edbox_only_dlist - -; can't cross a 4K boundary... - *= $5000 -scr3_top - *= * + 1000 -scr4_top - *= * + 1000 -scr5_top - *= * + 1000 -scr6_top - - *= $6000 -scr0_bot - *= * + 1000 -scr1_bot - *= * + 1000 -scr2_bot - *= * + 1000 - - *= $7000 -scr3_bot - *= * + 1000 -scr4_bot - *= * + 1000 -scr5_bot - *= * + 1000 -scr6_bot - - *= * + 1000 -dlist_top - *= * + 48 -dlist_bot - *= * + 48 - - *= dlist_top ; used when scrolled up - .byte $70, $70, $30 ; 2 8-line blanks, 1 4-line blank - .byte $42 ; LMS GR.0 -dl_top_lms - .word scr0_top - .byte $02, $02, $02, $02, $02, $02, $02, $02 - .byte $02, $02, $02, $02, $02, $02, $02, $02 - .byte $02, $02, $02, $02, $02, $02, $02, $02 ; 24 GR.0 lines - .byte $41 ; JVB - .word dlist_top - - *= dlist_bot ; used when not scrolled up + *= $3360 +dlist_vis .byte $70, $70, $30 ; 2 8-line blanks, 1 4-line blank .byte $42 ; LMS GR.0 dl_bot_lms - .word scr0_bot + .word scr_vis_buf .byte $02, $02, $02, $02, $02, $02, $02, $02 .byte $02, $02, $02, $02, $02, $02, $02, $02 .byte $02, $02, $02, $02, $02, $02 ; 22 GR.0 lines .byte $00 .byte $42 ; LMS GR.0 dl_status_lms - .word scr0_bot+920 ; line 23 + .word status_box ; line 23 .byte $06 ; one GR.1 line .byte $41 ; JVB - .word dlist_bot -topbot_dlist_done + .word dlist_vis - *= edbox_only_dlist +edbox_only_dlist .byte $70, $70, $30 ; 2 8-line blanks, 1 4-line blank .byte $70, $70, $70, $70, $70, $70, $70, $70 .byte $42 @@ -90,8 +27,39 @@ topbot_dlist_done .byte $02, $02, $02, $02, $02 .byte $00 .byte $42 - .word $a798 ; status_box from addrs.c + .word status_box ; status_box from addrs.c .byte $06 ; GR.1 .byte $41 .word edbox_only_dlist -edbox_dlist_done + +status_box + .rept 60 + .byte 0 + .endr + +status_box_end = status_box + 60 + +; $3400 - $37ff is the font! + +; shoehorn the transmit & receive buffers here + *= $3800 +rx_buf ; 512 bytes + *= $3a00 +tx_buf ; 512 bytes + *= $3c00 +scr_vis_buf ; not used yet + *= $3fa0 +end_marker ; a line_t (42 bytes) + .byte <end_marker ; points to + .byte >end_marker ; itself! + .byte $fe ; inverse ~ + .rept 39 + .byte 0 ; rest of the line is nulls (look like spaces) + .endr + + *= $4000 +; screen RAM starts at the XE bankswitching window! +scr_main_mem + + *= $7fff +scr_main_mem_end |
