|
|
| version 1.3, 2003/10/18 01:21:58 | version 1.4, 2003/11/12 00:55:38 |
|---|---|
| Line 59 static BOOL d88trk_flushdata(D88TRK trk) | Line 59 static BOOL d88trk_flushdata(D88TRK trk) |
| goto dtfd_err2; | goto dtfd_err2; |
| } | } |
| file_close(fh); | file_close(fh); |
| trk->write = FALSE; | |
| dtfd_exit: | dtfd_exit: |
| return(SUCCESS); | return(SUCCESS); |
| Line 230 static void drvflush(FDDFILE fdd) { | Line 231 static void drvflush(FDDFILE fdd) { |
| trk = &d88trk; | trk = &d88trk; |
| if (trk->fdd == fdd) { | if (trk->fdd == fdd) { |
| d88trk_flushdata(trk); | d88trk_flushdata(trk); |
| trk->fdd = NULL; | |
| } | } |
| } | } |
| Line 629 static void endoftrack(UINT fmtsize, BYT | Line 631 static void endoftrack(UINT fmtsize, BYT |
| FDDFILE fdd = fddfile + fdc.us; | FDDFILE fdd = fddfile + fdc.us; |
| D88SEC d88sec; | |
| FILEH hdl; | FILEH hdl; |
| int i; | int i; |
| UINT trk; | UINT trk; |
| Line 643 static void endoftrack(UINT fmtsize, BYT | Line 646 static void endoftrack(UINT fmtsize, BYT |
| ptr = 0; | ptr = 0; |
| for (i=0; i<(int)sectors; i++) { | for (i=0; i<(int)sectors; i++) { |
| STOREINTELWORD(((D88SEC)(&d88trk.buf[ptr]))->sectors, sectors); | d88sec = (D88SEC)(d88trk.buf + ptr); |
| ptr += LOADINTELWORD(((D88SEC)(&d88trk.buf[ptr]))->size); | STOREINTELWORD(d88sec->sectors, sectors); |
| ptr += LOADINTELWORD(d88sec->size); | |
| ptr += sizeof(_D88SEC); | ptr += sizeof(_D88SEC); |
| } | } |
| Line 652 static void endoftrack(UINT fmtsize, BYT | Line 656 static void endoftrack(UINT fmtsize, BYT |
| if (hdl == FILEH_INVALID) { | if (hdl == FILEH_INVALID) { |
| return; | return; |
| } | } |
| lastpointer = file_seek(hdl, 0, 2); | lastpointer = file_seek(hdl, 0, FSEEK_END); |
| fpointer = fdd->inf.d88.ptr[trk]; | fpointer = fdd->inf.d88.ptr[trk]; |
| if (fpointer == 0) { | if (fpointer == 0) { |
| for (i=trk; i>=0; i--) { // 新規トラック | for (i=trk; i>=0; i--) { // 新規トラック |
| Line 683 static void endoftrack(UINT fmtsize, BYT | Line 687 static void endoftrack(UINT fmtsize, BYT |
| STOREINTELDWORD(fdd->inf.d88.head.trackp[trk], fpointer); | STOREINTELDWORD(fdd->inf.d88.head.trackp[trk], fpointer); |
| file_seek(hdl, fpointer, 0); | file_seek(hdl, fpointer, 0); |
| file_write(hdl, d88trk.buf, fmtsize); | file_write(hdl, d88trk.buf, fmtsize); |
| file_seek(hdl, 0, 0); | file_seek(hdl, 0, FSEEK_SET); |
| file_write(hdl, &fdd->inf.d88.head, sizeof(fdd->inf.d88.head)); | file_write(hdl, &fdd->inf.d88.head, sizeof(fdd->inf.d88.head)); |
| file_close(hdl); | file_close(hdl); |
| // TRACEOUT(("fmt %d %d", fpointer, fmtsize)); | |
| } | } |
| Line 696 BOOL fdd_formatinit_d88(void) { | Line 701 BOOL fdd_formatinit_d88(void) { |
| formatsec = 0; | formatsec = 0; |
| formatpos = 0; | formatpos = 0; |
| formatwrt = 0; | formatwrt = 0; |
| drvflush(NULL); | drvflush(fddfile + fdc.us); |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| return(FAILURE); | return(FAILURE); |