From 5559e82d685ecd7da2d44e008552ae93c7243008 Mon Sep 17 00:00:00 2001 From: dschmenk Date: Sat, 24 Aug 2013 12:50:44 -0700 Subject: [PATCH] Update client code and some formatting changes --- src/A2PI.PO | Bin 143360 -> 143360 bytes src/a2lib.c | 130 ++++++++++++------------- src/a2mon.c | 274 ++++++++++++++++++++++++++-------------------------- 3 files changed, 202 insertions(+), 202 deletions(-) diff --git a/src/A2PI.PO b/src/A2PI.PO index 14c70cc4c76f23969627e7ada55a540abcbff5f7..4bc246bb2b312c81cefd61805f92c7da25f25b55 100755 GIT binary patch delta 945 zcmZ8gO-$2J9N*T_7D3bgMMR8R4IvV}c=F@QWte) zlsE;&T~g~@44o;NlNI6GMopF&rV(Ah(P;bc@V z0NQ0_0pYBr+GQclF6Ii;NPaILD1g2OftM+_ik_-?NO9Xt+qlxk(TyN^%w z@tT02Q0v8Aef($^rYt}X_i7Jqp9O7O8s73d!U7|Ah`2k**YWwet{`u;6H~)9PP(+M zInXag6VPv_VF+z9ej$uZpf+U!xpKRh#K=xCKLc4c36N#X^b)`oR8?S}s-A3hqgj~z z>qbeyhbZfxh5bn&^#vbS=S`&`KPnH4Zw0E8DjF5SPfgGsNpVs7DE3Hk<=%Q#T~5?G zC_|HNo3yQbRYWP!I(Gv7sRCE7jIGz6h(o@*lk?ceA7p*(XdFfo(9E|=5jb7dbV1#4 zRm9BbyoGQy_61>*q#vFB3}Zj;yOg&4cms5H zC8#Yvmgr;Ydy5j?a6NKigVIpdvVF5iw>VG+Y>(=A!_vqVmbg|pGYuqfW`L~A=RtMQ c^mcZSCrv$fSjYck_o_Wk|Cvbtan@Y?2Zx>05dZ)H delta 947 zcmZ8fPiWI%6mOd~$=rnGvCS!nK}9wcVK+T_7{Y{jP&^FrAf6OFh#&|e>vWZE`VF_} zNzl)3L!;~Lte{hbc5Sw1ZIiEQW)T!B&LKLbI+=oszHIekNZy~{%X{zlz4wL6VyG;} zxS+pQs|jxN7vtN5bE;&eD07_*DLJNVq>a?j!Ns+?WYKku0!>fR7|~?@d*o2>#*{th zQll_ON2b$8nv{~}KR1DQi?<@$#)LZ>W)n#E!<{_}M(5Z_!*abP=1I(%pR z4xzI}hkCWNo%2L{J>PX?+IAFXSZULmQ8ISXRj~D(fjViW71w#GxHdv5`-S0@W|w&)t<%+!*X*BdmwCQu}=KJy9YHxpBtL=WLVIBVV)R3rh&`=$pA66 zrVm@&4QLgJ32X2{oNb`>6TI2RU{t_ASI`WEMLiL&T@XeEGsEt8j+s!|LDwrKnS$;dnZJ*o4wS1duV!&- z*ALmUfW5bDU~egR#Rl4dWMU;GJ9)N-%);c48j=Oth-h>c)@FgVuf&AbP(BBharKsb zPeOXgXfe!gOTX5gw%_Tqe~nz!lV1tlC1Y&6zgsBR2ERG9Wu#* zehE!Xj^)M_YzB^tXO$^vX+FB^DD@5>Vq9b~5O4T= zIv^I^)op9tmB~hL^}{1EykY-fZ^gU5JPAa;1-jJdl6jTYMFy3_pqv490L&p)AJJCb zPW7%gx-G> 8; - readpkt[3] = count; - readpkt[4] = count >> 8; - write(fd, readpkt, 5); - read(fd, buffer, count); - read(fd, readpkt, 2); - return ((unsigned char)readpkt[0] == 0x9E); + char readpkt[8]; + readpkt[0] = 0x90; // read + readpkt[1] = address; + readpkt[2] = address >> 8; + readpkt[3] = count; + readpkt[4] = count >> 8; + write(fd, readpkt, 5); + read(fd, buffer, count); + read(fd, readpkt, 2); + return ((unsigned char)readpkt[0] == 0x9E); } int a2write(int fd, int address, int count, char *buffer) { - char writepkt[8]; - writepkt[0] = 0x92; // write - writepkt[1] = address; - writepkt[2] = address >> 8; - writepkt[3] = count; - writepkt[4] = count >> 8; - write(fd, writepkt, 5); - write(fd, buffer, count); - read(fd, writepkt, 2); - return ((unsigned char)writepkt[0] == 0x9E); + char writepkt[8]; + writepkt[0] = 0x92; // write + writepkt[1] = address; + writepkt[2] = address >> 8; + writepkt[3] = count; + writepkt[4] = count >> 8; + write(fd, writepkt, 5); + write(fd, buffer, count); + read(fd, writepkt, 2); + return ((unsigned char)writepkt[0] == 0x9E); } int a2call(int fd, int address, int *result) { - char callpkt[4]; - callpkt[0] = 0x94; // call - callpkt[1] = address; - callpkt[2] = address >> 8; - write(fd, callpkt, 3); - read(fd, callpkt, 2); - if (result) - *result = (unsigned char)callpkt[1]; - return ((unsigned char)callpkt[0] == 0x9E); + char callpkt[4]; + callpkt[0] = 0x94; // call + callpkt[1] = address; + callpkt[2] = address >> 8; + write(fd, callpkt, 3); + read(fd, callpkt, 2); + if (result) + *result = (unsigned char)callpkt[1]; + return ((unsigned char)callpkt[0] == 0x9E); } diff --git a/src/a2mon.c b/src/a2mon.c index b1232c7..e241798 100755 --- a/src/a2mon.c +++ b/src/a2mon.c @@ -2,149 +2,149 @@ void prbytes(int address, int count, char *data) { - int i; - - printf("%04X:", address); - for (i = 0; i < count; i++) - printf(" %02X", (unsigned char)data[i]); - printf("\n"); + int i; + + printf("%04X:", address); + for (i = 0; i < count; i++) + printf(" %02X", (unsigned char)data[i]); + printf("\n"); } -void exec(int fd, int cmd, int *address, int value, char *data, int *index) +void a2exec(int fd, int cmd, int *address, int value, char *data, int *index) { - int a, c; - - switch (cmd) - { - case 0x00: - if (value != -1) - *address = value; - break; - case 0x90: /* read */ - if (value < *address) - value = *address; - for (a = *address; a <= value; a += 16) - { - c = a + 16 > value ? value - a + 1 : 16; - a2read(fd, a, c, data); - prbytes(a, c, data); - } - *address = value + 1; - break; - case 0x92: /* write */ - if (*index) - a2write(fd, *address, *index, data); - *address += *index; - *index = 0; - break; - case 0x94: /* call */ - a2call(fd, *address, NULL); - break; - } + int a, c; + + switch (cmd) + { + case 0x00: + if (value != -1) + *address = value; + break; + case 0x90: /* read */ + if (value < *address) + value = *address; + for (a = *address; a <= value; a += 16) + { + c = a + 16 > value ? value - a + 1 : 16; + a2read(fd, a, c, data); + prbytes(a, c, data); + } + *address = value + 1; + break; + case 0x92: /* write */ + if (*index) + a2write(fd, *address, *index, data); + *address += *index; + *index = 0; + break; + case 0x94: /* call */ + a2call(fd, *address, NULL); + break; + } } int parsestr(int fd, char *cmdstr) { - char databuf[1024]; - static int addr = 0; - int index = 0; - int parseval = -1; - int cmd =0 ; - - while (1) - { - switch (*cmdstr) - { - case ':': /* write bytes */ - exec(fd, cmd, &addr, parseval, databuf, &index); - cmd = 0x92; - parseval = -1; - break; - case '.': /* read address range */ - exec(fd, cmd, &addr, parseval, databuf, &index); - cmd = 0x90; - parseval = -1; - break; - case 'R': /* run */ - case 'r': - exec(fd, cmd, &addr, parseval, databuf, &index); - cmd = 0x94; - break; - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - *cmdstr -= 'a' - 'A'; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - *cmdstr -= 'A' - '9' - 1; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (parseval == -1) - parseval = 0; - parseval = parseval * 16 + *cmdstr - '0'; - break; - case ' ': - if (parseval != -1) - { - if (cmd == 0x92) - databuf[index++] = parseval; - else - exec(fd, cmd, &addr, parseval, databuf, &index); - parseval = -1; - } - break; - case '\n': - case '\0': - if (parseval != -1) - { - if (cmd == 0x92) - databuf[index++] = parseval; - else if (cmd == 0) - { - addr = parseval; - cmd = 0x90; - } - } - exec(fd, cmd, &addr, parseval, databuf, &index); - return 1; - break; - case 'Q': - case 'q': - return 0; - default: - return 1; - } - cmdstr++; - } - return 1; + char databuf[1024]; + static int addr = 0; + int index = 0; + int parseval = -1; + int cmd =0 ; + + while (1) + { + switch (*cmdstr) + { + case ':': /* write bytes */ + a2exec(fd, cmd, &addr, parseval, databuf, &index); + cmd = 0x92; + parseval = -1; + break; + case '.': /* read address range */ + a2exec(fd, cmd, &addr, parseval, databuf, &index); + cmd = 0x90; + parseval = -1; + break; + case 'R': /* run */ + case 'r': + a2exec(fd, cmd, &addr, parseval, databuf, &index); + cmd = 0x94; + break; + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + *cmdstr -= 'a' - 'A'; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + *cmdstr -= 'A' - '9' - 1; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (parseval == -1) + parseval = 0; + parseval = parseval * 16 + *cmdstr - '0'; + break; + case ' ': + if (parseval != -1) + { + if (cmd == 0x92) + databuf[index++] = parseval; + else + a2exec(fd, cmd, &addr, parseval, databuf, &index); + parseval = -1; + } + break; + case '\n': + case '\0': + if (parseval != -1) + { + if (cmd == 0x92) + databuf[index++] = parseval; + else if (cmd == 0) + { + addr = parseval; + cmd = 0x90; + } + } + a2exec(fd, cmd, &addr, parseval, databuf, &index); + return 1; + break; + case 'Q': + case 'q': + return 0; + default: + return 1; + } + cmdstr++; + } + return 1; } int main(int argc, char **argv) { - char instr[256]; - int pifd = a2open(argc > 1 ? argv[1] : "127.0.0.1"); - if (pifd < 0) - { - perror("Unable to connect to Apple II Pi"); - exit(EXIT_FAILURE); - } - while (fgets(instr, 254, stdin) != NULL) - { - if (!parsestr(pifd, instr)) - break; - } - a2close(pifd); - return EXIT_SUCCESS; + char instr[256]; + int pifd = a2open(argc > 1 ? argv[1] : "127.0.0.1"); + if (pifd < 0) + { + perror("Unable to connect to Apple II Pi"); + exit(EXIT_FAILURE); + } + while (fgets(instr, 254, stdin) != NULL) + { + if (!parsestr(pifd, instr)) + break; + } + a2close(pifd); + return EXIT_SUCCESS; } \ No newline at end of file