aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2011-10-13 01:37:51 +0000
committerDimitri Sokolyuk <demon@dim13.org>2011-10-13 01:37:51 +0000
commit4bb33e7e8cf081cc9836785841f9a962a64d526c (patch)
tree0ca5b302bd9fd47dd3871ee476cf662916e7263a
parent3a3629d5a687723d72fef3c464d4ef6e8587034e (diff)
simplify output
-rw-r--r--bootloader/bootloader.c55
1 files changed, 30 insertions, 25 deletions
diff --git a/bootloader/bootloader.c b/bootloader/bootloader.c
index 3e9999e..8d34000 100644
--- a/bootloader/bootloader.c
+++ b/bootloader/bootloader.c
@@ -37,35 +37,40 @@ transfer(int fd, struct page *p, int pages, int pagesize)
fprintf(stderr, "\nwriting: ");
for (n = 0; n < pages; n++) {
- if (n < GUARDPAGE)
- fprintf(stderr, "%c", ".o"[p[n].dirty]);
- else {
+ if (n >= GUARDPAGE) {
fprintf(stderr, "x");
continue;
}
- if (p[n].dirty) {
- put('@', fd);
- put(n, fd);
- sum = n;
- for (off = 0; off < pagesize; off++) {
- put(p[n].data[off], fd);
- sum += p[n].data[off];
- }
- put(sum, fd);
- switch (get(fd)) {
- case '.':
- break; /* success, next page */
- case '!':
- n--; /* error stay on the same page */
- fprintf(stderr, "E");
- break;
- default:
- if (!maxerr--)
- goto fubar;
- fprintf(stderr, "\ngarbage on the line, retry\n");
- return transfer(fd, p, pages, pagesize);
- }
+ if (!p[n].dirty) {
+ fprintf(stderr, ".");
+ continue;
+ }
+
+ put('@', fd);
+ put(n, fd);
+ sum = n;
+ for (off = 0; off < pagesize; off++) {
+ put(p[n].data[off], fd);
+ sum += p[n].data[off];
+ }
+ put(sum, fd);
+ switch (get(fd)) {
+ case '.':
+ fprintf(stderr, "o");
+ maxerr = 0;
+ break; /* success, next page */
+ case '!':
+ n--; /* error stay on the same page */
+ fprintf(stderr, "E");
+ if (!maxerr--)
+ goto fubar;
+ break;
+ default:
+ if (!maxerr--)
+ goto fubar;
+ fprintf(stderr, "\ngarbage on the line, retry\n");
+ return transfer(fd, p, pages, pagesize);
}
}