Mercurial > hvf > hvf-old
changeset 468:55668d7e8374
build: CCW gen revamp
Hopefully, this fixes it for good.
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Mon, 11 Apr 2011 23:00:16 -0400 |
parents | 25199ff67309 |
children | abc313b3597e |
files | build/ccw_gen.c |
diffstat | 1 files changed, 25 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/build/ccw_gen.c Mon Apr 11 23:00:13 2011 -0400 +++ b/build/ccw_gen.c Mon Apr 11 23:00:16 2011 -0400 @@ -117,11 +117,11 @@ " .byte 0x02, 0x%02X, 0x%02X, 0x%02X\n" " .byte 0x%02X, 0x00, 0x00, 0x50\n"; -static char *pad_ccw = +static char *nop_ccw = "\n" -"# PAD-CCW %d\n" -" .byte 0x00, 0x00, 0x00, 0x00\n" -" .byte 0x00, 0x00, 0x00, 0x00\n"; +"# NOP-CCW %d\n" +" .byte 0x03, 0x00, 0x00, 0x08\n" +" .byte 0x60, 0x00, 0x00, 0x01\n"; #define ADDR(x) (((x)[0]<<16) | \ ((x)[1]<<8) | \ @@ -222,32 +222,31 @@ card = 2; i = 0; j = 1; - while(1) { - if (i % 10 == 1) { - if (j>data_cards) - break; - printf(card_head, card++); - } + + printf(psw_tail, ADDR(ccw_addr), ADDRS(ccw_addr), CHAIN, + ADDR(ccw_addr), ADDRS(ccw_addr)); + printf(pad); + __add(ccw_addr, 80); - if (i == 0) { - printf(psw_tail, ADDR(ccw_addr), ADDRS(ccw_addr), CHAIN, - ADDR(ccw_addr), ADDRS(ccw_addr)); - printf(pad); - } else if (i<=(data_cards+9)/10) { - printf(cp_ccw, i+2, ADDRS(ccw_addr)); - } else if (j<=data_cards) { - printf(data_ccw, j, ADDRS(addr), - (j == data_cards) ? 0 : CHAIN); - __add(addr, 80); - j++; - } else { - printf(pad_ccw, j-data_cards); - j++; - } + for(i=0; i<=((data_cards+9)/10) + (((data_cards+9)/10)+9)/10 - 2; i++) { + printf(cp_ccw, i+3, ADDRS(ccw_addr)); + __add(ccw_addr, 80); + } - __add(ccw_addr, 80); + while (i % 10) { + printf(nop_ccw, i); i++; } + for(i=1; i<=data_cards; i++) { + printf(data_ccw, i, ADDRS(addr), + (i == data_cards) ? 0 : CHAIN); + + __add(addr, 80); + } + + return 0; + + printf(card_head, card++); return 0; }