#pragma noroot /* (C) 1998, 1999 Kelvin W Sherlock * * 1WSW sucks * */ #define sfFileTypeEntriesLength 0x0001 #include #include #include #include #include "pd.h" #pragma optimize -1 #pragma lint -1 /* * present a dialog box & send all selected files to the the printer * * * */ // allow all files to be selected SFTypeList2 List = { 1, { 0xC000, 0, 0 } }; //Word LList[] = {1, 0xc000, 0, 0, 0 }; MultiReplyRecord Reply; void DoOpen(void) { Word i; //'volatile' prevents wrongly optimizing by O/C // (the inline assembly confuses it) fileEntryRec *volatile p; Word count; GSString255 *tmp; SFMultiGet2 ( 0x78, 0x2b, 0, (Ref)"\pSelect files to dump:", NULL, // filterproc &List, &Reply); if (count = Reply.good) { //asm { brk 0xea } HLock((Handle)Reply.namesHandle); p = *((fileEntryRec **)Reply.namesHandle); asm //move past the header (word) { lda #2 clc adc

fileType != 0x0f) { tmp = __P2GSMalloc(&p->nameLength); if (tmp) { do_it(tmp); free(tmp); } } asm // move to the next entry { ldy #6 // offset to prefix byte; lda [p],y // pstring - length of string and #0xff // strip it clc // +2 for ftype, +4 for aux + 1 for length byte adc #7 adc