From f7481c4eaf95e176dd0a736ed1af46b6dd06a2b0 Mon Sep 17 00:00:00 2001
From: "B. Watson" <yalhcru@gmail.com>
Date: Wed, 7 Apr 2021 15:35:30 -0400
Subject: Make port status updates smoother

---
 console.s |  9 ++++++++-
 taipan.c  | 16 +++++++++-------
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/console.s b/console.s
index af044d2..809d0c2 100644
--- a/console.s
+++ b/console.s
@@ -2,7 +2,7 @@
 
  .include "atari.inc"
  .include "conio/mul40.s"
- .export _clrtobot, _clrtoeol, _clr_screen, _clrtoline, _cspaces, _cblank, _backspace, _cprint_pipe, _cprint_bang, _cspace, _cputc_s, _comma_space, _cprint_colon_space, _cprint_question_space, _cprint_period, _cprint_taipan_prompt, _crlf, _plus_or_space, _gotox0y, _cputc0, _set_orders
+ .export _clrtobot, _clrtoeol, _clr_screen, _clrtoline, _cspaces, _cblank, _cblankto, _backspace, _cprint_pipe, _cprint_bang, _cspace, _cputc_s, _comma_space, _cprint_colon_space, _cprint_question_space, _cprint_period, _cprint_taipan_prompt, _crlf, _plus_or_space, _gotox0y, _cputc0, _set_orders
  .export _rvs_on, _rvs_off
 
  .importzp tmp3       ; ditto
@@ -86,6 +86,13 @@ clrloop:
 done:
  rts
 
+_cblankto:
+ sec
+ sbc COLCRS
+ beq done
+ bcs _cblank
+ rts
+
 _cspaces:
  sta tmp3
 @lp:
diff --git a/taipan.c b/taipan.c
index a221e6d..bb81eb1 100644
--- a/taipan.c
+++ b/taipan.c
@@ -149,6 +149,8 @@ extern void cprint_taipan_prompt(void);
 /* our own clr_screen(), don't use conio's clrscr() */
 extern void clr_screen(void);
 
+extern void __fastcall__ cblankto(unsigned char dest);
+
 /* avoid calling/linking conio's revers() function. This saves us
 	49 bytes (2 per call to revers(), plus these functions are smaller
 	than conio's revers() because they return void) */
@@ -614,7 +616,7 @@ bignum(big0) = BIG_0;
 	0..999999      stet
 	1M..10M-1      1.23 Million
 	10M..100M-1    10.2 Million, 100 Million
-	100M..1B-1     100 Million, 999 Billion
+	100M..1M-1     100 Million, 999 Million
 	1B..10B-1      1.23 Billion
 	10B..100B-1    10.2 Billion, 100 Billion
 	100B..1T-1     100 Billion
@@ -1735,17 +1737,17 @@ void port_stats(void)
 
 	gotoxy(21, 4);
 	in_use = warehouse_in_use();
-	cblank(5);
 	cprintuint(in_use);
+	cblankto(26);
 
 	gotoxy(21, 6);
-	cblank(5);
 	cprintuint(10000 - in_use);
+	cblankto(26);
 
 	for(i = 0; i < 4; ++i) {
 		gotoxy(12, i + 3);
-		cblank(5);
 		cprintuint(hkw_[i]);
+		cblankto(18);
 	}
 
 	/*
@@ -1808,12 +1810,12 @@ void port_stats(void)
 	cprintuint(year);
 
 	gotoxy(30, 6);
-	cblank(10);
 	rvs_on(); 
 	if(port == 4 || port == 5) cspace();
 	// cputs(location[port]); 
 	print_msg(location[port]); 
 	rvs_off(); 
+	clrtoeol();
 
 	gotoxy(28, 9);
 	clrtoeol();
@@ -1826,16 +1828,16 @@ void port_stats(void)
 	cprintuint(status);
 
 	gotoxy(6, 14);
-	cblank(14);
 	cprintfancy(cash);
+	cblankto(20);
 
 	gotoxy(26, 14);
-	cblank(13);
 #ifdef BIGNUM
 	cprintfancy_big(bank);
 #else
 	cprintfancy(bank);
 #endif
+	clrtoeol();
 }
 
 void mchenry(void) {
-- 
cgit v1.2.3