aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2021-04-13 16:18:36 -0400
committerB. Watson <yalhcru@gmail.com>2021-04-14 00:31:13 -0400
commit65e6bb6bae08be492d76b00b661108afc4ad93be (patch)
tree9d3fdc4c26856967dc35bbb5e0ae28e84439027a
parent044dbba1f59389d0ff73ab77d546cfbb53fdebd2 (diff)
downloadtaipan-65e6bb6bae08be492d76b00b661108afc4ad93be.tar.gz
Save 43 bytes (8326 free)
-rw-r--r--console.s13
-rw-r--r--taipan.c53
2 files changed, 40 insertions, 26 deletions
diff --git a/console.s b/console.s
index 009fc7f..00e0f10 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, _cblankto, _backspace, _cprint_pipe, _cprint_bang, _cspace, _cputc_s, _comma_space, _cprint_colon_space, _cprint_question_space, _cprint_period, _cprint_taipan_prompt, _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, _plus_or_space, _gotox0y22, _gotox0y3, _gotox0y, _cputc0, _set_orders
.export _rvs_on, _rvs_off
.importzp tmp3 ; ditto
@@ -233,8 +233,17 @@ _plus_or_space:
stx ROWCRS
jmp _cputc
+; extern void gotox0y22(void);
+_gotox0y22:
+ lda #22
+ .byte $2c
+
+; extern void gotox0y3(void);
+_gotox0y3:
+ lda #3
+
; extern void gotox0y(char y);
- _gotox0y:
+_gotox0y:
sta ROWCRS
lda #0
sta COLCRS
diff --git a/taipan.c b/taipan.c
index 98e136d..283c4c8 100644
--- a/taipan.c
+++ b/taipan.c
@@ -134,6 +134,11 @@ extern void __fastcall__ cspaces(unsigned char count);
this saves 208 bytes! */
extern void __fastcall__ gotox0y(char y);
+/* replacing all gotox0y(3) and gotox0y(22) calls with these
+ save us 43 bytes. */
+extern void __fastcall__ gotox0y3(void); /* same as gotoxy(0,3) */
+extern void __fastcall__ gotox0y22(void); /* same as gotoxy(0,22) */
+
/* each prints one specific character */
extern void crlf(void);
extern void cspace(void);
@@ -1120,7 +1125,7 @@ char sea_battle(char id, int num_ships) {
set_orders();
if(!orders) {
turbo = 0;
- gotox0y(3);
+ gotox0y3();
clrtoeol();
cprint_taipan_comma();
// cputs("what shall we do??\n(Fight, Run, Throw cargo)");
@@ -1129,7 +1134,7 @@ char sea_battle(char id, int num_ships) {
while(!orders) set_orders();
- gotox0y(3);
+ gotox0y3();
clrtoeol();
gotox0y(4);
clrtoeol();
@@ -1143,14 +1148,14 @@ char sea_battle(char id, int num_ships) {
ok = 3;
ik = 1;
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("Aye, we'll fight 'em");
print_msg(M_aye_fight);
cprint_taipan_period();
set_orders();
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("We're firing on 'em");
print_msg(M_were_firing);
@@ -1215,7 +1220,7 @@ char sea_battle(char id, int num_ships) {
tjsleep(10);
}
}
- gotox0y(3);
+ gotox0y3();
clrtoeol();
if(sk > 0) {
// cputs("Sunk ");
@@ -1240,7 +1245,7 @@ char sea_battle(char id, int num_ships) {
num_ships -= ran;
fight_stats(num_ships, orders);
- gotox0y(3);
+ gotox0y3();
clrtoeol();
cprintuint(ran);
// cputs(" ran away");
@@ -1268,7 +1273,7 @@ char sea_battle(char id, int num_ships) {
set_orders();
}
} else if ((orders == 1) && (guns == 0)) {
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("We have no guns");
print_msg(M_we_have_no_guns);
@@ -1281,7 +1286,7 @@ char sea_battle(char id, int num_ships) {
total = 0;
turbo = 0;
- gotox0y(3);
+ gotox0y3();
// cputs("You have the following on board");
print_msg(M_you_have_on_board);
cprint_colon_space();
@@ -1345,7 +1350,7 @@ char sea_battle(char id, int num_ships) {
clrtoeol();
if(total > 0) {
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("Let's hope we lose 'em");
print_msg(M_hope_we_lose_em);
@@ -1366,7 +1371,7 @@ char sea_battle(char id, int num_ships) {
set_orders();
} else {
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("There's nothing there");
print_msg(M_nothing_there);
@@ -1379,7 +1384,7 @@ char sea_battle(char id, int num_ships) {
if((orders == 2) || (orders == 3)) {
if(orders == 2) {
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("Aye, we'll run");
print_msg(M_aye_run);
@@ -1389,7 +1394,7 @@ char sea_battle(char id, int num_ships) {
ok += ik++;
if(randi()%ok > randi()%num_ships) {
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("We got away from 'em");
print_msg(M_we_got_away);
@@ -1401,7 +1406,7 @@ char sea_battle(char id, int num_ships) {
timed_getch();
num_ships = 0;
} else {
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("Couldn't lose 'em.");
print_msg(M_couldnt_lose_em);
@@ -1413,7 +1418,7 @@ char sea_battle(char id, int num_ships) {
num_ships -= lost;
fight_stats(num_ships, orders);
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("But we escaped from ");
print_msg(M_but_we_escaped);
@@ -1442,7 +1447,7 @@ char sea_battle(char id, int num_ships) {
}
if(num_ships > 0) {
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("They're firing on us");
print_msg(M_theyre_firing);
@@ -1454,7 +1459,7 @@ char sea_battle(char id, int num_ships) {
fight_stats(num_ships, orders);
plus_or_space(num_ships > num_on_screen);
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("We've been hit");
print_msg(M_weve_been_hit);
@@ -1476,7 +1481,7 @@ char sea_battle(char id, int num_ships) {
guns--;
hold += 10;
fight_stats(num_ships, orders);
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("The buggers hit a gun");
print_msg(M_buggers_hit_gun);
@@ -1541,7 +1546,7 @@ char sea_battle(char id, int num_ships) {
if(orders == 1) {
fight_stats(num_ships, orders);
- gotox0y(3);
+ gotox0y3();
clrtoeol();
// cputs("We got 'em all");
print_msg(M_we_got_em_all);
@@ -2102,7 +2107,7 @@ void final_stats(void)
chline(31);
cputc(3); // lower right corner
- gotox0y(22);
+ gotox0y22();
// cputs("Play again? ");
print_msg(M_play_again);
choice = yngetc(0);
@@ -2185,7 +2190,7 @@ void transfer(void) {
unsigned long amount = 0;
if(have_no_cargo()) {
- gotox0y(22);
+ gotox0y22();
clrtobot();
// cputs("You have no cargo");
print_msg(M_you_have_no_cargo);
@@ -2925,7 +2930,7 @@ int port_choices(void) {
cprintulong(price[3]);
*/
- gotox0y(22);
+ gotox0y22();
clrtobot();
#ifdef BIGNUM
@@ -3094,7 +3099,7 @@ void name_firm(void) {
# pragma code-name (push, "HIGHCODE")
#endif
char what_do_you_wish_me_to(char buy_or_sell) {
- gotox0y(22);
+ gotox0y22();
clrtobot();
// cputs("What ");
print_msg(M_what);
@@ -3124,7 +3129,7 @@ void buy(void) {
// cputs(" You can ");
print_msg(M_spc_you_can_spc);
rvs_off();
- gotox0y(22);
+ gotox0y22();
how_much();
// cputs(item[choice]);
print_msg(item[choice]);
@@ -3175,7 +3180,7 @@ void sell(void) {
choice = what_do_you_wish_me_to(0);
for (;;) {
- gotox0y(22);
+ gotox0y22();
clrtobot();
how_much();