mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-10-01 21:56:43 +00:00
EDIT: Fixed logical to physical bank mapping. Fixed spinner() buf overrun.
This commit is contained in:
parent
01fec5cb2c
commit
5e0d173a9b
22
apps/edit.c
22
apps/edit.c
@ -4,8 +4,9 @@
|
|||||||
// Bobbi July-Aug 2020
|
// Bobbi July-Aug 2020
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// TODO: Change all sprintf() to snprintf()
|
||||||
// TODO: Don't save files *without asking* on quit or save all
|
// TODO: Don't save files *without asking* on quit or save all
|
||||||
// TODO: Some weird bugs on my //e with 192KB
|
// TODO: Weird file loading bug from /DATA....
|
||||||
// TODO: File picker!!
|
// TODO: File picker!!
|
||||||
// TODO: Bug - cursor down at EOF succeeds when it should fail
|
// TODO: Bug - cursor down at EOF succeeds when it should fail
|
||||||
// TODO: Search options - ignore case, complete word.
|
// TODO: Search options - ignore case, complete word.
|
||||||
@ -701,11 +702,7 @@ void copyaux(char *src, char *dst, uint16_t len, uint8_t dir) {
|
|||||||
* Physical banks start at 0 and may be non-contiguous.
|
* Physical banks start at 0 and may be non-contiguous.
|
||||||
*/
|
*/
|
||||||
uint8_t bank_log_to_phys(uint8_t l) {
|
uint8_t bank_log_to_phys(uint8_t l) {
|
||||||
uint8_t i;
|
return banktbl[l];
|
||||||
for (i = 1; i < 1+8*16; ++i)
|
|
||||||
if (banktbl[i] == l - 1)
|
|
||||||
return i - 1;
|
|
||||||
show_error("Bad bank"); // Should never happen
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -757,13 +754,14 @@ uint8_t open_new_aux_bank(uint8_t partnum) {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Spinner while loading / saving
|
* Spinner while loading / saving
|
||||||
|
* TODO: THIS IS NOT REALLY SAFE IF FILENAME IS TOO LONG!!!!!!!
|
||||||
*/
|
*/
|
||||||
void spinner(uint32_t sz, uint8_t saving) {
|
void spinner(uint32_t sz, uint8_t saving) {
|
||||||
static char chars[] = "|/-\\";
|
static char chars[] = "|/-\\";
|
||||||
static char buf[40] = "";
|
static char buf[80] = "";
|
||||||
static uint8_t i = 0;
|
static uint8_t i = 0;
|
||||||
gotoxy(0, PROMPT_ROW);
|
gotoxy(0, PROMPT_ROW);
|
||||||
sprintf(buf, "%s '%s': %c [%lu]",
|
snprintf(buf, 80, "%s '%s': %c [%lu]",
|
||||||
(saving ? "Saving" : "Opening"), filename, chars[(i++) % 4], sz);
|
(saving ? "Saving" : "Opening"), filename, chars[(i++) % 4], sz);
|
||||||
revers(1);
|
revers(1);
|
||||||
cprintf("%s", buf);
|
cprintf("%s", buf);
|
||||||
@ -1735,6 +1733,7 @@ search:
|
|||||||
* Final byte is $ff terminator
|
* Final byte is $ff terminator
|
||||||
*/
|
*/
|
||||||
void avail_aux_banks(void) {
|
void avail_aux_banks(void) {
|
||||||
|
uint8_t i; //DEBUG
|
||||||
__asm__("sta $c009"); // Store in ALTZP
|
__asm__("sta $c009"); // Store in ALTZP
|
||||||
__asm__("ldy #$7f"); // Maximum valid bank
|
__asm__("ldy #$7f"); // Maximum valid bank
|
||||||
findbanks:
|
findbanks:
|
||||||
@ -1774,6 +1773,13 @@ done:
|
|||||||
__asm__("lda #$ff");
|
__asm__("lda #$ff");
|
||||||
__asm__("inx");
|
__asm__("inx");
|
||||||
__asm__("sta %v,x", banktbl); // Terminator
|
__asm__("sta %v,x", banktbl); // Terminator
|
||||||
|
|
||||||
|
// DEBUG
|
||||||
|
i = 0;
|
||||||
|
cprintf("banktbl: ");
|
||||||
|
while (banktbl[i] != 0xff)
|
||||||
|
cprintf("%02x", banktbl[i++]);
|
||||||
|
cgetc();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user