Compare commits

...

3 Commits

Author SHA1 Message Date
Bobbi Webber-Manners d8d532fd72 Bump up version number to 2.1.14 2022-09-13 20:13:21 -04:00
Bobbi Webber-Manners 7c402facc7 attacher.c: Turn off optimizer for inline asm. 2022-09-13 20:08:50 -04:00
Bobbi Webber-Manners 7bb47d4b85 email.c: Turn off optimizer for inline asm 2022-09-13 20:05:12 -04:00
3 changed files with 33 additions and 15 deletions

View File

@ -397,14 +397,10 @@ void file_ui_draw_all(uint16_t first, uint16_t selected, uint16_t entries) {
}
/*
* Perform ProDOS MLI ON_LINE call to
* write all online volume names into iobuf[]
* Return the number of entries
* Asm code for online()
*/
uint16_t online(void) {
uint16_t entries = 0;
struct tabent *entry;
uint8_t i, j, len;
#pragma optimize (push, off)
void onlineasm(void) {
__asm__("lda #$00"); // All devices
__asm__("sta mliparam + 1");
__asm__("lda #<%v", iobuf); // iobuf LSB
@ -415,6 +411,19 @@ uint16_t online(void) {
__asm__("lda #$c5"); // ON_LINE
__asm__("ldx #$02"); // Two parms
__asm__("jsr callmli");
}
#pragma optimize (pop)
/*
* Perform ProDOS MLI ON_LINE call to
* write all online volume names into iobuf[]
* Return the number of entries
*/
uint16_t online(void) {
uint16_t entries = 0;
struct tabent *entry;
uint8_t i, j, len;
onlineasm();
entry = (struct tabent*)iobuf;
for (i = 0; i < 16; ++i) {
len = iobuf[256 + i * 16] & 0x0f;

View File

@ -925,6 +925,21 @@ void sanitize_filename(char *s) {
enum aux_ops {FROMAUX, TOAUX};
/*
* Asm code for copyaux()
*/
#pragma optimize (push, off)
void copyauxasm(enum aux_ops dir) {
if (dir == TOAUX)
__asm__("sec"); // Copy main->aux
else
__asm__("clc"); // Copy aux->main
__asm__("sta $c000"); // Turn off 80STORE
__asm__("jsr $c311"); // AUXMOVE
__asm__("sta $c001"); // Turn on 80STORE
}
#pragma optimize (pop)
/*
* Aux memory copy routine
*/
@ -935,13 +950,7 @@ void copyaux(char *src, char *dst, uint16_t len, enum aux_ops dir) {
*a1 = src;
*a2 = src + len - 1; // AUXMOVE moves length+1 bytes!!
*a4 = dst;
if (dir == TOAUX)
__asm__("sec"); // Copy main->aux
else
__asm__("clc"); // Copy aux->main
__asm__("sta $c000"); // Turn off 80STORE
__asm__("jsr $c311"); // AUXMOVE
__asm__("sta $c001"); // Turn on 80STORE
copyauxasm(dir);
}
/*

View File

@ -6,7 +6,7 @@
#include <stdint.h>
#define PROGNAME "emai//er v2.1.13"
#define PROGNAME "emai//er v2.1.14"
// Configuration params from EMAIL.CFG
char cfg_server[40]; // IP of POP3 server