; ; Strings (English) ; ; This file contains all text printed to the screen ; throughout the program -- header, main menu, crack ; log strings, error messages, &c. *All* printing of ; strings should be routed through PrintByID, which ; takes an ID (defined in enid.a) and eventually ; finds one of the starting addresses listed below, ; via the StringTableLow and StringTableHigh arrays. ; ; Strings can contain substitution strings, which ; are replaced by current values at runtime. Each ; substitution string is two bytes long. The first ; byte is always '%', which puts the print routine ; into substitution mode. The next byte controls ; which value is printed (see list below), then ; substitution mode ends automatically. Unknown ; substitution strings are silently ignored and ; produce no output. ; ; Substitution strings are case-sensitive. ; ; Supported substitution strings: ; %S destination (write) slot ; %D destination (write) drive ; %t current track (during read and patch) ; %s current sector (during read) ; ; In addition, it supports '%0' through '%9' ; for printing arbitrary hexadecimal values. ; These are stored in the gDisplayBytes array and ; can be set directly before calling PrintByID. ; ; Finally, strings can include other strings, ; using '@' followed by a raw byte (not ASCII) ; for the ID of the string to be included at ; that spot. String inclusion is recursive; ; included strings may include other strings. ; It's strings all the way down. ; ; Strings are printed on a 40-column screen with ; the normal text width behavior, i.e. printing ; a full 40 characters will move to the first ; column of the next line without the need to ; print a carriage return. ; ; Lowercase characters will be automatically ; converted to uppercase on machines that do ; not support lowercase by default. This is ; handled within PrintByID, so just define ; strings with lowercase here and don't worry ; about it. ; ; Inverse characters can be printed, but the ; syntax is strange; see .mainmenu. ; ; Mousetext can not be printed. ; ; All strings are null-terminated. ; !ct "lcase.ct" !source "strings/enid.a" StringTableLow ; must be kept in sync with constants in enid.a !byte <.header !byte <.mainmenu !byte <.progbar !byte <.reading !byte <.diskrwts !byte <.lockitup !byte <.sunburst !byte <.optimum !byte <.builtin !byte <.switch !byte <.slotanddrive !byte <.unformat !byte <.f7 !byte <.sync !byte <.optbad !byte <.passver !byte <.badblock !byte <.passcrack !byte <.passcrack0 !byte <.fail !byte <.fatal0000 !byte <.fatal220f !byte <.done !byte <.noslot6 !byte <.writeerr !byte <.writeioerr !byte <.writenodev !byte <.writeprot !byte <.othermli !byte <.canttrace !byte <.canceled !byte <.bademu !byte <.reset !byte <.modify !byte <.modifyto !byte <.dos33boot0 !byte <.prodosboot0 !byte <.pascalboot0 !byte <.mecc !byte <.sierra !byte <.a6bc95 !byte <.jmpbcf0 !byte <.rol1e !byte <.runhello !byte <.e7 !byte <.jmpbeca !byte <.bb03 !byte <.rps !byte <.nodiskin !byte <.diskvol !byte <.d5d5f7 !byte <.construct !byte <.datasoftb0 !byte <.datasoft !byte <.lsr6a !byte <.bcs08 !byte <.jmpb660 !byte <.protdos !byte <.decryptrwts !byte <.protserial !byte <.fbff !byte <.encoded44 !byte <.encoded53 !byte <.specdel !byte <.bytrack !byte <.a5count !byte <.restart !byte <.corrupter !byte <.eaboot0 !byte <.widetrack !byte <.protectioncheck !byte <.poke !byte <.bootcounter !byte <.milliken !byte <.jsr8b3 !byte <.daviddos !byte <.quickdos !byte <.diversidos !byte <.prontodos !byte <.beforedos !byte <.laureate !byte <.bbf9 !byte <.micrograms !byte <.cmpbne0 !byte <.ramdisk !byte <.d5timing !byte <.advint !byte <.dos32boot0 !byte <.bootwrite !byte <.rwtswrite !byte <.rdos !byte <.sra !byte <.muse !byte <.origin !byte <.volumename !byte <.dinkeydos !byte <.trillium !byte <.tamper !byte <.microfun !byte <.advent !byte <.gathering !byte <.davidson !byte <.rdos13 !byte <.ssi !byte <.aacount !byte <.infocom18 !byte <.toverify !byte <.sector13 !byte <.dakin5 !byte <.springboard !byte <.hallabs !byte <.holle !byte <.hoffman !byte <.diskvol0x !byte <.e7everywhere !byte <.choplifter !byte <.pdi !byte <.sve !byte <.cmpnopnop !byte <.tsr !byte <.idinfo !byte <.bar !byte <.found !byte <.tfound !byte <.bootloader !byte <.maybeunreadable !byte <.notthisdisk !byte <.rwts !byte <.reasons !byte <.protectiontrack !byte <.passport !byte <.bar9 !byte <.bar18 !byte <.space7 !byte <.builtinrwts !byte <.thedisk !byte <.timingbits !byte <.acceptsany !byte <.addressepilogue !byte <.writingto !byte <.targetdisk !byte <.targetfile !byte <.targetcffa !byte <.rw18 !byte <.x555 !byte <.erasingserialnumber !byte <.lockitupserial !byte <.protection !byte <.baudville !byte <.pfs !byte <.enlightenmentb0 !byte <.enlightenment !byte <.sfc !byte <.neosoft !byte <.probs5 !byte <.didatech !byte <.anychecksum !byte <.unexpected5and3 !byte <.jmp600 StringTableHigh ; must be kept in sync with constants in enid.a !byte >.header !byte >.mainmenu !byte >.progbar !byte >.reading !byte >.diskrwts !byte >.lockitup !byte >.sunburst !byte >.optimum !byte >.builtin !byte >.switch !byte >.slotanddrive !byte >.unformat !byte >.f7 !byte >.sync !byte >.optbad !byte >.passver !byte >.badblock !byte >.passcrack !byte >.passcrack0 !byte >.fail !byte >.fatal0000 !byte >.fatal220f !byte >.done !byte >.noslot6 !byte >.writeerr !byte >.writeioerr !byte >.writenodev !byte >.writeprot !byte >.othermli !byte >.canttrace !byte >.canceled !byte >.bademu !byte >.reset !byte >.modify !byte >.modifyto !byte >.dos33boot0 !byte >.prodosboot0 !byte >.pascalboot0 !byte >.mecc !byte >.sierra !byte >.a6bc95 !byte >.jmpbcf0 !byte >.rol1e !byte >.runhello !byte >.e7 !byte >.jmpbeca !byte >.bb03 !byte >.rps !byte >.nodiskin !byte >.diskvol !byte >.d5d5f7 !byte >.construct !byte >.datasoftb0 !byte >.datasoft !byte >.lsr6a !byte >.bcs08 !byte >.jmpb660 !byte >.protdos !byte >.decryptrwts !byte >.protserial !byte >.fbff !byte >.encoded44 !byte >.encoded53 !byte >.specdel !byte >.bytrack !byte >.a5count !byte >.restart !byte >.corrupter !byte >.eaboot0 !byte >.widetrack !byte >.protectioncheck !byte >.poke !byte >.bootcounter !byte >.milliken !byte >.jsr8b3 !byte >.daviddos !byte >.quickdos !byte >.diversidos !byte >.prontodos !byte >.beforedos !byte >.laureate !byte >.bbf9 !byte >.micrograms !byte >.cmpbne0 !byte >.ramdisk !byte >.d5timing !byte >.advint !byte >.dos32boot0 !byte >.bootwrite !byte >.rwtswrite !byte >.rdos !byte >.sra !byte >.muse !byte >.origin !byte >.volumename !byte >.dinkeydos !byte >.trillium !byte >.tamper !byte >.microfun !byte >.advent !byte >.gathering !byte >.davidson !byte >.rdos13 !byte >.ssi !byte >.aacount !byte >.infocom18 !byte >.toverify !byte >.sector13 !byte >.dakin5 !byte >.springboard !byte >.hallabs !byte >.holle !byte >.hoffman !byte >.diskvol0x !byte >.e7everywhere !byte >.choplifter !byte >.pdi !byte >.sve !byte >.cmpnopnop !byte >.tsr !byte >.idinfo !byte >.bar !byte >.found !byte >.tfound !byte >.bootloader !byte >.maybeunreadable !byte >.notthisdisk !byte >.rwts !byte >.reasons !byte >.protectiontrack !byte >.passport !byte >.bar9 !byte >.bar18 !byte >.space7 !byte >.builtinrwts !byte >.thedisk !byte >.timingbits !byte >.acceptsany !byte >.addressepilogue !byte >.writingto !byte >.targetdisk !byte >.targetfile !byte >.targetcffa !byte >.rw18 !byte >.x555 !byte >.erasingserialnumber !byte >.lockitupserial !byte >.protection !byte >.baudville !byte >.pfs !byte >.enlightenmentb0 !byte >.enlightenment !byte >.sfc !byte >.neosoft !byte >.probs5 !byte >.didatech !byte >.anychecksum !byte >.unexpected5and3 !byte >.jmp600 .passport !text "Passport ",$00 .header !text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2024-03-27",$00 .bar9 !text "_________",$00 .bar18 !text "@",s_bar9,"@",s_bar9,$00 .bar !text "@",s_bar18,"@",s_bar18,$00 .space7 !text " ",$00 .mainmenu !text "__","@",s_bar,"__",$8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D !text " @",s_space7,"@",s_space7 !scrxor $40,"V" !text "erify disk",$8D,$8D !text " @",s_space7,"@",s_space7 !scrxor $40,"C" !text "rack disk",$8D,$8D !text " @",s_space7,"@",s_space7 !scrxor $40,"Q" !text "uit",$8D,$8D,$8D,$8D,$8D,$8D,$8D,$8D !text "source: S6,D1@",s_space7,"target: " !scrxor $40,"S" !text "%S,D%D (",$00 .targetdisk !text "disk)",$00 .targetfile !text "file)",$00 .targetcffa !text "CFFA)",$00 .progbar !byte $8D !text " _@",s_bar,"_",$8D !text " " !scrxor $00," " !text "@",s_bar !scrxor $00," ",$8D,$8D,$8D,$00 .reading !text "Reading from S6,D1",$8D,$00 .writingto !text "Writing to ",$00 .diskrwts !text "Using disk's own RWTS",$8D,$00 .found !text "T%t,S%0 Found ",$00 .tfound !text "T%t Found ",$00 .bootloader !text "bootloader",$00 .maybeunreadable !text "might be unreadable",$00 .notthisdisk !text "@",s_passport,"does not work on this disk",$00 .rwts !text "T%t,S%0 RWTS ",$00 .reasons !text "Possible reasons:",$8D,$00 .protection !text "protection",$00 .protectioncheck !text "@",s_protection," check",$00 .protectiontrack !text "@",s_protection," track",$00 .builtinrwts !text "built-in RWTS",$00 .thedisk !text "The disk ",$00 .timingbits !text "timing bits ",$00 .acceptsany !text "accepts any value for the",$00 .addressepilogue !text "address epilogue ",$00 .nodiskin !text "- There is no disk in ",$00 .erasingserialnumber !text "T%t,S%0 Erasing serial number %1%2%3",$00 .lockitup !text "@",s_found,"Lock-It-Up @",s_protection,$8D !text "T00,S0A @",s_maybeunreadable,$8D,$00 .sunburst !text "@",s_found,"Sunburst disk",$8D !text "T11,S0F @",s_maybeunreadable,$8D,$00 .optimum !text "@",s_found,"Optimum Resource disk",$8D !text "T01,S0F @",s_maybeunreadable,$8D,$00 .builtin !text "Using @",s_builtinrwts,$8D,$00 .switch !text "T%t,S%s Switching to @",s_builtinrwts,$8D,$00 .slotanddrive !text "S%S,D%D",$8D,$00 .ramdisk !text "RAM disk",$8D,$00 .unformat !text "T%t is unformatted",$8D,$00 .f7 !text "@",s_tfound,"$F7F6EFEEAB @",s_protectiontrack,$8D,$00 .sync !text "@",s_tfound,"nibble count @",s_protectiontrack,$8D,$00 .optbad !text "T%t,S%s is unreadable (ignoring)",$8D,$00 .passver !text "Verification complete. @",s_thedisk,"is good.",$8D,$00 .passcrack !text "Crack complete. ",$00 .passcrack0 !byte $8D !text "@",s_thedisk,"was copied successfully, but",$8D !text "@",s_passport,"did not apply any patches.",$8D,$8D !text "@",s_reasons !text "- The source disk is not copy protected." !text "- The target disk works without patches." !text "- @",s_thedisk,"uses an unknown @",s_protection,",",$8D !text " and @",s_passport,"can not help any further.",$8D,$00 .fail !byte $8D !text "T%t,S%s Fatal read error",$8D,$8D,$00 .fatal0000 !text "@",s_fail !text "@",s_reasons !text "@",s_nodiskin,"S6,D1.",$8D !text "- It is not an Apple ][ disk.",$8D !text "- @",s_thedisk,"is unformatted.",$8D,$8D,$00 .fatal220f !byte $8D !text "@",s_notthisdisk,".",$8D,$8D !text "@",s_reasons !text "- This is not a 13- or 16-sector disk.",$8D !text "- @",s_thedisk,"modifies its RWTS in ways",$8D !text " that @",s_passport,"is not able to detect.",$8D,$8D,$00 .done !text "Press any key " !scrxor $40," ",$00 .noslot6 !text "@",s_passport,"requires a Disk II drive in S6.",$8D !text "Press any key to quit " !scrxor $40," ",$00 .writeerr !byte $8D !text "T%t Fatal write error",$8D,$8D,$00 ; ; MLI error $27 ; .writeioerr !text "@",s_reasons,$8D !text "@",s_nodiskin,"S%S,D%D.",$8D !text "- @",s_thedisk,"has bad sectors.",$8D !text "- @",s_thedisk,"is unformatted.",$8D,$8D,$00 ; ; MLI error $28 ; .writenodev !text "S%S,D%D does not exist.",$8D,$8D,$00 ; ; MLI error $2B ; .writeprot !text "@",s_thedisk,"in S%S,D%D is write-protected.",$8D,$8D,$00 ; ; other MLI error ; .othermli !text "MLI error $%0.",$8D !text "Please contact the developer.",$8D,$8D,$00 .canttrace !text "Unrecognized drive, tracing is disabled",$8D,$00 .canceled !text "Canceled at your request. ",$00 .bademu !byte 00 .reset !byte $8D !text "Press to resume.",$8D,$00 .modify !text "T%t,S%0,$%1: ",$00 .modifyto !text " -> ",$00 .dos33boot0 !text "@",s_found,"DOS 3.3 @",s_bootloader,$8D,$00 .dos32boot0 !text "@",s_found,"DOS 3.2 @",s_bootloader,$8D,$00 .prodosboot0 !text "@",s_found,"ProDOS @",s_bootloader,$8D,$00 .pascalboot0 !text "@",s_found,"Pascal @",s_bootloader,$8D,$00 .mecc !text "@",s_found,"MECC @",s_bootloader,$8D,$00 .sierra !text "@",s_found,"Sierra @",s_protectioncheck,$8D,$00 .a6bc95 !text "@",s_found,"A6BC95 @",s_protectioncheck,$8D,$00 .jmpbcf0 !text "@",s_rwts,"requires @",s_timingbits,"after",$8D !text "the first data epilogue by jumping to",$8D !text "$BCF0",$8D,$00 .rol1e !text "@",s_rwts,"accumulates @",s_timingbits,"in",$8D !text "$1E and checks its value later",$8D,$00 .runhello !text "T%t,S%0 Startup program executes a",$8D !text "@",s_protectioncheck," before running the real" !text "startup program",$8D,$00 .e7 !text "@",s_found,"E7 bitstream",$8D,$00 .jmpbeca !text "@",s_rwts,"requires extra nibbles and",$8D !text "@",s_timingbits,"after the data prologue by",$8D !text "jumping to $BECA",$8D,$00 .bb03 !text "@",s_found,"a self-decrypting",$8D !text "@",s_protectioncheck," at $BB03",$8D,$00 .rps !text "@",s_found,"RPS @",s_protectioncheck,$8D !text "Some sectors on T02 @",s_maybeunreadable,$8D,$00 .diskvol !text "@",s_rwts,"requires a non-standard",$8D !text "disk volume number",$8D,$00 .d5d5f7 !text "@",s_found,"D5D5F7 @",s_protectioncheck,$8D,$00 .construct !text "T01,S0F Reconstructing missing data",$8D,$00 .datasoftb0 !text "@",s_found,"Datasoft @",s_bootloader,$8D,$00 .datasoft !text "@",s_found,"Datasoft @",s_protectioncheck,$8D,$00 .lsr6a !text "@",s_rwts,"accepts $D4 or $D5 for the",$8D !text "first address prologue nibble",$8D,$00 .bcs08 !text "@",s_rwts,"accepts $DE or @",s_timingbits !text "for the first @",s_addressepilogue,"nibble",$8D,$00 .jmpb660 !text "@",s_rwts,"requires @",s_timingbits,"after",$8D !text "the data prologue by jumping to $B660",$8D,$00 .protdos !text "@",s_found,"encrypted RWTS, key=$%1",$8D,$00 .decryptrwts !text "T00 Decrypting RWTS before writing",$8D,$00 .protserial !text "@",s_erasingserialnumber,$8D,$00 .lockitupserial !text "@",s_erasingserialnumber,"%4%5",$00 .fbff !text "@",s_found,"FBFF @",s_protectioncheck,$8D,$00 .encoded44 !byte $8D !text "T00,S00 Fatal error",$8D,$8D !text "@",s_notthisdisk,",",$8D !text "because it uses a 4-and-4 encoding.",$8D,$8D,$00 .encoded53 !byte $8D !text "T00,S00 Fatal error",$8D,$8D !text "@",s_notthisdisk,",",$8D !text "because it uses a 5-and-3 encoding.",$8D,$8D,$00 .specdel !text "@",s_found,"DOS 3.3P @",s_bootloader,$8D,$00 .bytrack !text "@",s_rwts,"changes based on track",$8D,$00 .a5count !text "@",s_found,"A5 nibble count",$8D,$00 .restart !text "Restarting scan",$8D,$00 .corrupter !text "T%t,S%0 Protection check intentionally",$8D !text "destroys unauthorized copies",$8D,$00 .eaboot0 !text "@",s_tfound,"Electronic Arts @",s_bootloader,$8D,$00 .widetrack !text "@",s_tfound,"extra wide @",s_protectiontrack,$8D,$00 .poke !text "T%t,S%0 BASIC program POKEs @",s_protection,$8D !text "check into memory and CALLs it",$8D,$00 .bootcounter !text "T%t,S%0 Original disk destroys itself",$8D !text "after a limited number of boots",$8D,$00 .milliken !text "@",s_found,"Milliken @",s_protectioncheck,$8D !text "T02,S05 @",s_maybeunreadable,$8D,$00 .jsr8b3 !text "@",s_found,"JSR $08B3 @",s_bootloader,$8D,$00 .daviddos !text "@",s_found,"David-DOS @",s_bootloader,$8D,$00 .quickdos !text "@",s_found,"Quick-DOS @",s_bootloader,$8D,$00 .diversidos !text "@",s_found,"Diversi-DOS @",s_bootloader,$8D,$00 .prontodos !text "@",s_found,"Pronto-DOS @",s_bootloader,$8D,$00 .beforedos !text "T%t,S%0 Disk calls a @",s_protectioncheck,$8D !text "at $%1%2 before initializing DOS",$8D,$00 .laureate !text "@",s_found,"Laureate @",s_bootloader,$8D,$00 .bbf9 !text "@",s_found,"BBF9 @",s_protectioncheck,$8D,$00 .micrograms !text "@",s_found,"Micrograms @",s_bootloader,$8D,$00 .cmpbne0 !text "@",s_rwts,"@",s_acceptsany,$8D !text "first @",s_addressepilogue,"nibble",$8D,$00 .cmpnopnop !text "@",s_rwts,"@",s_acceptsany,$8D !text "second @",s_addressepilogue,"nibble",$8D,$00 .d5timing !text "@",s_rwts,"accepts $D5 + @",s_timingbits,$8D !text "as the entire address prologue",$8D,$00 .advint !text "@",s_found,"Adventure International",$8D !text "@",s_protectioncheck,$8D,$00 .bootwrite !text "T00,S00 Writing Standard Delivery",$8D !text "@",s_bootloader,$8D,$00 .rwtswrite !text "T00,S02 Writing @",s_builtinrwts,$8D,$00 .rdos !text "@",s_found,"RDOS 16-sector @",s_bootloader,$8D,$00 .sra !text "@",s_found,"SRA @",s_protectioncheck,$8D,$00 .muse !text "@",s_rwts,"doubles every sector ID",$8D,$00 .origin !text "@",s_rwts,"alters the sector ID if the" !text "@",s_addressepilogue,"contains @",s_timingbits,$8D,$00 .dakin5 !text "@",s_rwts,"XORs every sector ID",$8D,$00 .volumename !text "T%t,S%0 Volume name is ",$00 .dinkeydos !text "@",s_found,"Dinkey-DOS",$8D,$00 .trillium !text "@",s_found,"Trillium @",s_protectioncheck,$8D,$00 .tamper !text "@",s_found,"anti-tamper check",$8D,$00 .microfun !text "@",s_found,"Micro Fun @",s_protectioncheck,$00 .advent !text "@",s_found,"Interplay @",s_bootloader,$8D,$00 .gathering !text "Gathering per-file encryption keys",$8D,$00 .davidson !text "@",s_tfound,"Davidson & Associates disk",$8D,$00 .rdos13 !text "@",s_found,"RDOS 13-sector @",s_bootloader,$8D,$00 .ssi !text "@",s_found,"SSI @",s_protectioncheck,$8D,$00 .aacount !text "@",s_found,"AA nibble count",$8D,$00 .infocom18 !text "@",s_found,"Infocom 18-sector format",$8D,$00 .toverify !text "Switching to verify-only mode",$8D,$00 .sector13 !text "@",s_found,"13-sector format",$8D,$00 .springboard !text "@",s_rwts,"requires @",s_timingbits,"after",$8D !text "the @",s_addressepilogue,$8D,$00 .hallabs !text "@",s_found,"HAL Labs @",s_protectioncheck,$8D,$00 .holle !text "@",s_found,"Holle @",s_bootloader,$8D,$00 .hoffman !text "@",s_found,"Hoffman @",s_protectioncheck,$8D,$00 .diskvol0x !text "T%t,S%0 Disk requires volume number 0%1",$8D,$00 .e7everywhere !text "@",s_found,"E7 Everywhere @",s_protection,$8D,$00 .choplifter !text "Roland was here, but he left...",$8D,$00 .pdi !text "@",s_found,"PDI @",s_protectioncheck,$8D,$00 .sve !text "@",s_found,"SVE @",s_protectioncheck,$8D,$00 .tsr !text "@",s_found,"TSR @",s_bootloader,$8D,$00 .idinfo !text "T00,S01 Erasing site license information",$00 .badblock !text "@",s_found,"bad block @",s_protectioncheck,$00 .rw18 !text "@",s_found,"RW18-sector format",$8D,$00 .x555 !text "@",s_found,"5-5-5 spiral @",s_bootloader,$8D,$00 .baudville !text "@",s_found,"Baudville @",s_bootloader,$8D,$00 .pfs !text "@",s_found,"PFS @",s_protectioncheck,$8D,$00 .enlightenmentb0 !text "@",s_found,"Enlightenment @",s_bootloader,$8D,$00 .enlightenment !text "@",s_found,"flux timing @",s_protection,$8D,$00 .sfc !text "@",s_found,"SFC @",s_protectioncheck,$8D,$00 .neosoft !text "@",s_found,"Neosoft @",s_protectioncheck,$8D,$00 .probs5 !text "@",s_found,"PROBS5 @",s_protectioncheck,$8D,$00 .didatech !text "@",s_found,"Didatech disk",$8D !text "T02,S07 @",s_maybeunreadable,$8D,$00 .anychecksum !text "@",s_rwts,"@",s_acceptsany,$8D !text "address field checksum",$8D,$00 .unexpected5and3 !text "@",s_tfound,"5-and-3 @",s_protectiontrack,$8D,$00 .jmp600 !text "@",s_found,"JMP $0600 @",s_bootloader,$8D,$00