add support for B4BB RWTS swapper in BASIC [fixes SocMate Analogies Games]

This commit is contained in:
4am 2021-04-19 10:19:57 -04:00
parent 40c3a97cf0
commit 46b2019ba1
12 changed files with 50 additions and 1068 deletions

View File

@ -378,14 +378,12 @@ b4bbcompare
ldx #$01 ; track
;;ldy #$00 ; sector
.all
stx gTrack
sty gSector
lda #$00
sta gAddress
lda #$0C
adc #BASEPAGE
sta gAddress+1
jsr ReadSector ; read sector so we can look for 'JMP $B4BB' marker
jsr ReadSectorXY ; read sector so we can look for 'JMP $B4BB' marker
bcs _b4bbexit
lda #$0C
ldx #$84
@ -400,14 +398,17 @@ b4bbcompare
.dos32b
ldy #$09 ; sector
.allb
stx gTrack
sty gSector
jsr ReadSector ; read sector to get address prologue 3 for rest of disk
jsr ReadSectorXY ; read sector to get address prologue 1 for rest of disk
bcs _b4bbexit
lda #$0C
adc #BASEPAGE
sta x0+2
x0 lda $FFC2 ; high byte modified at runtime (above)
cmp #$D5 ; some disks lie and manually set the prologue later
bne b4bbmodify ; passport-test-suite/SocMate Analogies Games.woz [Z=1] here
lda #TRUE
sta gPossibleB4BBBasic
lda #$BB
b4bbmodify
sta $FFFF ; modified at runtime (high byte in Inspect1, low byte above)
lda #$DE
@ -518,12 +519,10 @@ xHarvey
ldx #$00
stx gAddress
inx
stx gTrack
inx
stx gSector
ldx #$09
stx gAddress+1
jsr ReadSector ; read T01S01 into $900
ldy #$02
lda #$09
sta gAddress+1
jsr ReadSectorXY ; read T01,S02 into $0900
bcs .exit
lda #$09
ldx #$32

View File

@ -68,6 +68,10 @@
; set in IDBootloader() after reading T00,S00
FIRSTFILTER
;gPossibleB4BBBasic
!byte FALSE ; 0=true, 1=false
; reset before each operation
; set in xB4BB() after tracing DOS 3.3-shaped RWTS
;gPossibleWoodbury
!byte FALSE ; 0=true, 1=false
; reset before each operation

View File

@ -115,9 +115,10 @@ gIsDiversi = gIsPhoenix-$01 ; byte
gIsTSR = gIsDiversi-$01 ; byte
gPossibleMECCSwapper = gIsTSR-$01 ; byte
gPossibleWoodbury = gPossibleMECCSwapper-$01 ; byte
gPossibleB4BBBasic = gPossibleWoodbury-$01 ; byte
;LASTFILTER ; add new gIs* above this line
;gIsInfocom18 is a special case whose ID is not in the regular inspection path
gIsInfocom18 = gPossibleWoodbury-$01 ; byte
gIsInfocom18 = gPossibleB4BBBasic-$01 ; byte
;gIs13Sector is a special case whose ID is not in the regular inspection path
gIs13Sector = gIsInfocom18-$01 ; byte
;gMECCFastloadType is a special case integer whose default value cannot be #FALSE

View File

@ -16,14 +16,13 @@ IDMilliken
; already identified a marker on T00,S01 that strongly
; suggests the presence of this routine, so it's worth
; doing an extra disk read here to be sure)
lda #$00
sta gTrack
lda #$0A
sta gSector
ldx #$00
ldy #$0A
tya
clc
adc #BASEPAGE
sta gAddress+1
jsr ReadSector
jsr ReadSectorXY
bcs .exit
IDMilliken1

View File

@ -15,17 +15,16 @@
!zone {
IDVolumeName
; read T00,S0B (volume key block)
lda #$00
sta gTrack
sta cmp1
lda #$0B
sta gSector
ldx #$00
stx cmp1
ldy #$0B
tya
sta gDisplayBytes
clc
adc #BASEPAGE
sta gAddress+1
sta cmp1+1
jsr ReadSector
jsr ReadSectorXY
bcs .error
lda gIsPascal

View File

@ -814,6 +814,7 @@ _applyToAll
!source "patchers/tsr.a" ; T04 && gIsTSR only
!source "patchers/woodbury.a" ; gPossibleWoodbury only
!source "patchers/leisure.a" ; gIsProDOS && T22 only
!source "patchers/b4bbbasic.a" ; gPossibleB4BBBasic only
.checkPatchCount
lda gPatchCount

19
src/patchers/b4bbbasic.a Normal file
View File

@ -0,0 +1,19 @@
;-------------------------------
; #B4BBBASIC
; RWTS swapper in BASIC
;
; tested on
; - SocMate Analogies Games
;-------------------------------
lda gPossibleB4BBBasic
bne +
ldy #$07
jsr SearchTrack
!byte $B9,$34,$37,$34 ; 'POKE 47445,' in Applesoft BASIC (POKE opcode is $B9)
!byte $34,$35,$2C
bcs + ; passport-test-suite/SocMate Analogies Games.woz [C=0] matches
ldy #$01
jsr modify
!byte $B2 ; change POKE opcode to REM
+

View File

@ -8,6 +8,9 @@
; C clear if read was successful
; C set if read failed
;-------------------------------
ReadSectorXY
stx gTrack
sty gSector
ReadSector
;
; Lots of custom RWTS routines need these zero page locations

View File

@ -338,7 +338,7 @@ StringTableHigh
.passport
!text "Passport ",$00
.header
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2021-04-18",$00
!text "@",s_passport,"by 4am@",s_space7,"@",s_space7," 2021-04-19",$00
.bar9
!text "_________",$00
.bar18

View File

@ -1,349 +0,0 @@
* Finnish translation by Jorma Honkanen
*
* Main menu keys
* (should match the text in :mainmenu below)
* (these are NOT case-sensitive)
*
k_verify = "T"
k_demuffin = "M"
k_crack = "P"
k_slot = "S"
k_quit = "L"
* <Esc> will also quit
* Verify = T/arkista
* Demuffin = M/uunna levyke
* Crack = P/oista suojaus
* Slot = Liitin, Slot - but not to be changed!
* Quit = L/opeta
*
* String IDs
* (pass in accumulator to PrintByID)
*
s_header = $00
s_mainmenu = $01
s_progbar = $02
s_reading = $03
s_diskrwts = $04
s_bb00 = $05
s_sunburst = $06
s_optimum = $07
s_builtin = $08
s_switch = $09
s_writing = $0A
s_unformat = $0B
s_f7 = $0C
s_sync = $0D
s_optbad = $0E
s_pass = $0F
s_passdemuf = $10
s_passcrack = $11
s_passcrack0 = $12
s_fail = $13
s_fatal0000 = $14
s_fatal220f = $15
s_done = $16
s_noslot6 = $17
s_writeerr = $18
s_writeioerr = $19
s_writenodev = $1A
s_writeprot = $1B
s_othermli = $1C
s_canttrace = $1D
s_canceled = $1E
s_bademu = $1F
s_reset = $20
s_modify = $21
s_modifyto = $22
s_dosb0 = $23
s_prodosb0 = $24
s_pascalb0 = $25
s_meccb0 = $26
s_sierra = $27
s_a6bc95 = $28
s_jmpbcf0 = $29
s_rol1e = $2A
s_runhello = $2B
s_e7 = $2C
s_jmpb4bb = $2D
s_jmpb400 = $2E
s_jmpbeca = $2F
s_jsrbb03 = $30
s_thunder = $31
s_jmpae8e = $32
s_diskvol = $33
s_d5d5f7 = $34
s_meccm7 = $35
STRINGCOUNT = $36
StringTable
da :header
da :mainmenu
da :progbar
da :reading
da :diskrwts
da :bb00
da :sunburst
da :optimum
da :builtin
da :switch
da :writing
da :unformat
da :f7
da :sync
da :optbad
da :passver
da :passdemuf
da :passcrack
da :passcrack0
da :fail
da :fatal0000
da :fatal220f
da :done
da :noslot6
da :writeerr
da :writeioerr
da :writenodev
da :writeprot
da :othermli
da :canttrace
da :canceled
da :bademu
da :reset
da :modify
da :modifyto
da :dosboot0
da :prodosboot0
da :pascalboot0
da :meccboot0
da :sierra
da :a6bc95
da :jmpbcf0
da :rol1e
da :runhello
da :e7
da :jmpb4bb
da :jmpb400
da :jmpbeca
da :jsrbb03
da :thunder
da :jmpae8e
da :diskvol
da :d5d5f7
da :meccm7
*
* Text 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.
*
:header
ASC "Passport / 4am 20160712-fi"00
:mainmenu
ASC "________________________________________"8D8D8D8D8D8D8D
ASC " "
INV "T"
ASC "arkista levyke"8D8D
ASC " "
INV "M"
ASC "uunna levyke"8D8D
ASC " "
INV "P"
ASC "oista suojaus levykkeelt{"8D8D
ASC " "
INV "L"
ASC "opeta"8D8D8D8D8D8D8D
ASC "alkuper{inen: S6,D1 kohde: "
INV "S"
ASC "%S,D%D"00
:progbar
HEX 8D
ASC " ______________________________________"8D
ASC " "
INV " "
ASC "____________________________________"
INV " "8D8D8D00
:reading
ASC "Luetaan S6,D1"8D00
:diskrwts
ASC "K{ytet{{n levykkeen omaa RWTS:{{"8D00
:bb00
ASC "T00,S05 L|ysi $BB00 suojaustarkastuksen"8D
ASC "T00,S0A voi olla lukukelvoton"8D00
:sunburst
ASC "T00,S04 L|ysi Sunburst levykkeen"8D
ASC "T11,S0F voi olla lukukelvoton"8D00
:optimum
ASC "T00,S00 L|ysi Optimum Resource levykkeen"8D
ASC "T01,S0F voi olla lukukelvoton"8D00
:builtin
ASC "K{ytt{{ sis{{nrakennettua RWTS:{{"8D00
:switch
ASC "Vaihtaa sis{{nrakennettuun RWTS:{{n"8D00
:writing
ASC "Kirjoittaa S%S,D%D"8D00
:unformat
ASC "T%t on alustamaton"8D00
:f7
ASC "T%t L|ysi $F7F6EFEEAB suojauksen"8D00
:sync
ASC "T%t L|ysi Nibble Count suojauksen"8D00
:optbad
ASC "T%t,S%s on lukukelvoton (ei v{litet{)"8D00
:passver
ASC "Varmistus on valmis. Levyke on luettavissa."00
:passdemuf
ASC "Siirto valmis."8D00
:passcrack
ASC "Suojauksen poisto valmis."8D00
:passcrack0
HEX 8D
ASC "Levyke kopioitiin onnistuneesti, mutta"8D
ASC "Passport ei lis{nnyt korjauksia."8D8D
ASC "Mahdollisia syit{:"8D
ASC "- Alkuper{inen levyke ei ole kopiosuojattu."
ASC "- Kohdelevyke toimii ilman korjauksia."
ASC "- Levyke k{ytt{{ tuntematonta suojausta,"8D
ASC " ja Passport ei voi auttaa."00
:fail
HEX 8D
ASC "T%t,S%s Vakava luku virhe"8D00
:fatal0000
HEX 8D
ASC "Mahdollisia syit{:"8D
ASC "- Ei levykett{ asemassa S6,D1."8D
ASC "- Levyke ei ole Apple ][ levyke."8D
ASC "- Levyke on DOS 3.2 (13 sektoria)."8D
ASC "- Levyke on alustamaton."8D00
:fatal220f
HEX 8D
ASC "Passport ei toimi t{m{n levykkeen kanssa."8D8D
ASC "Mahdollisia syit{:"8D
ASC "- Levyke ei ole 16-sektorin levyke."8D
ASC "- Levyke muuntaa RWTS:{{ tavoilla"8D
ASC " joita Passport ei pysty havaitsemaan."8D00
:done
HEX 8D
ASC "Paina jotain n{pp{int{ jatkaaksesi "
FLS " "00
:noslot6
ASC "Passport vaatii Disk II aseman S6."8D
ASC "Paina jotain n{pp{int{ lopettaaksesi "
FLS " "00
:writeerr
HEX 8D
ASC "T%t Vakava kirjoitus virhe"8D8D00
*
* MLI error $27
*
:writeioerr
ASC "Mahdollisia syit{:"8D
ASC "- Ei levykett{ S%S,D%D."8D
ASC "- Levykkeell{ on huonoja sektoreita."8D
ASC "- Levyke on alustamaton."8D8D00
*
* MLI error $28
*
:writenodev
ASC "S%S,D%D ei ole olemassa."8D00
*
* MLI error $2B
*
:writeprot
ASC "Levyke S%S,D%D on kirjoitussuojattu."8D00
*
* other MLI error
*
:othermli
ASC "MLI virhe $%0."8D
ASC "Ota yhteytt{ ohjelman kehitt{j{{n."8D00
:canttrace
ASC "Tunnistamaton asema, j{ljitt{minen on poistettu"8D00
:canceled
ASC "Keskeytetty pyynn|st{si."8D00
:bademu
HEX 8D
ASC "VAROITUS! K{yt{t Passport-ohjelmaa"8D
ASC "emulaattorilla joka ei asianmukaisesti"8D
ASC "tue levyke asemia. Passport yritt{{"8D
ASC "kiert{{ t{m{n, mutta jotkut levykkeet"8D
ASC "voivat olla lukukelvottomia."8D8D00
:reset
HEX 8D
ASC "Paita <Ctrl-Reset> jatkaaksesi."8D00
:modify
ASC "T%t,S%0,$%1: "00
:modifyto
ASC " -> "00
:dosboot0
ASC "T00,S00 L|ysi DOS 3.3 k{ynnistyslataajan"8D00
:prodosboot0
ASC "T00,S00 L|ysi ProDOS k{ynnistyslataajan"8D00
:pascalboot0
ASC "T00,S00 L|ysi Pascal k{ynnistyslataajan"8D00
:meccboot0
ASC "T00,S00 L|ysi MECC M8 k{ynnistyslataajan"8D00
:sierra
ASC "T%t,S%0 L|ysi Sierra suojaustarkastuksen"8D00
:a6bc95
ASC "T%t,S%0 L|ysi A6BC95 suojaustarkastuksen"8D00
:jmpbcf0
ASC "T00,S03 RWTS vaatii ajoitus bitin ensimm{isen"
ASC "data epilogin j{lkeen hypp{{m{ll{"8D
ASC "$BCF0."8D00
:rol1e
ASC "T00,S03 RWTS kokoaa ajoitus bittej{"8D
ASC "$1E ja tarkistaa niiden arvot my|hemmin."8D00
:runhello
ASC "T%t,S%0 Aloitusohjelma ajaa suojaus"8D
ASC "tarkastuksen ennen oikean aloitus ohjeman"
ASC "ajamista."8D00
:e7
ASC "T%t,S%0 L|ysi E7 bittivirran"8D00
:jmpb4bb
ASC "T00,S0C Levyke kutsuu suojaus tarkastusta"
ASC "$B4BB ennen DOS:in alustamista."8D00
:jmpb400
ASC "T00,S01 Levyke kutsuu suojaus tarkastusta"
ASC "$B400 ennen DOS:in alustamista."8D00
:jmpbeca
ASC "T00,S02 RWTS vaatii ylim{{r{isen nibblen ja"8D
ASC "ajoitus bitin ennen data prologia"8D
ASC "hypp{{m{ll{ $BECA."8D00
:jsrbb03
ASC "T00,S05 L|ysi itsepurkautuvan"8D
ASC "suojaustarkastuksen $BB03."8D00
:thunder
ASC "T00,S03 RWTS laskee ajoitus bittej{ ja"8D
ASC "tarkistaa ne my|hemmin."8D00
:jmpae8e
ASC "T00,S0D Levyke kutsuu suojaus tarkastusta"
ASC "$AE8E DOS:in alustamisen j{lkeen."8D00
:diskvol
ASC "T00,S08 RWTS vaatii ep{standardin"8D
ASC "levyke numeroinnin."8D00
:d5d5f7
ASC "T%t,S%0 L|ysi D5D5F7 suojaustarkastuksen"8D00
:meccm7
ASC "T00,S00 L|ysi MECC M7 k{ynnistyslataajan"8D00

View File

@ -1,343 +0,0 @@
* French translation by Antoine Vignau
*
* Main menu keys
* (should match the text in :mainmenu below)
* (these are NOT case-sensitive)
*
k_verify = "V"
k_demuffin = "D"
k_crack = "C"
k_slot = "S"
k_quit = "Q"
* <Esc> will also quit
*
* String IDs
* (pass in accumulator to PrintByID)
*
s_header = $00
s_mainmenu = $01
s_progbar = $02
s_reading = $03
s_diskrwts = $04
s_bb00 = $05
s_sunburst = $06
s_optimum = $07
s_builtin = $08
s_switch = $09
s_writing = $0A
s_unformat = $0B
s_f7 = $0C
s_sync = $0D
s_optbad = $0E
s_pass = $0F
s_passdemuf = $10
s_passcrack = $11
s_passcrack0 = $12
s_fail = $13
s_fatal0000 = $14
s_fatal220f = $15
s_done = $16
s_noslot6 = $17
s_writeerr = $18
s_writeioerr = $19
s_writenodev = $1A
s_writeprot = $1B
s_othermli = $1C
s_canttrace = $1D
s_canceled = $1E
s_bademu = $1F
s_reset = $20
s_modify = $21
s_modifyto = $22
s_dosb0 = $23
s_prodosb0 = $24
s_pascalb0 = $25
s_meccb0 = $26
s_sierra = $27
s_a6bc95 = $28
s_jmpbcf0 = $29
s_rol1e = $2A
s_runhello = $2B
s_e7 = $2C
s_jmpb4bb = $2D
s_jmpb400 = $2E
s_jmpbeca = $2F
s_jsrbb03 = $30
s_thunder = $31
s_jmpae8e = $32
s_diskvol = $33
s_d5d5f7 = $34
s_meccm7 = $35
STRINGCOUNT = $36
StringTable
da :header
da :mainmenu
da :progbar
da :reading
da :diskrwts
da :bb00
da :sunburst
da :optimum
da :builtin
da :switch
da :writing
da :unformat
da :f7
da :sync
da :optbad
da :passver
da :passdemuf
da :passcrack
da :passcrack0
da :fail
da :fatal0000
da :fatal220f
da :done
da :noslot6
da :writeerr
da :writeioerr
da :writenodev
da :writeprot
da :othermli
da :canttrace
da :canceled
da :bademu
da :reset
da :modify
da :modifyto
da :dosboot0
da :prodosboot0
da :pascalboot0
da :meccboot0
da :sierra
da :a6bc95
da :jmpbcf0
da :rol1e
da :runhello
da :e7
da :jmpb4bb
da :jmpb400
da :jmpbeca
da :jsrbb03
da :thunder
da :jmpae8e
da :diskvol
da :d5d5f7
da :meccm7
*
* Text 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
* %s current sector
*
* 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.
*
:header
ASC "Passport par 4am 20160712-fr"00
:mainmenu
ASC "________________________________________"8D8D8D8D8D8D8D
ASC " "
INV "V"
ASC "{rifier"8D8D
ASC " "
INV "D"
ASC "{muffiniser"8D8D
ASC " "
INV "C"
ASC "racker"8D8D
ASC " "
INV "Q"
ASC "uitter"8D8D8D8D8D8D8D
ASC "source: S6,D1 destination: "
INV "S"
ASC "%S,D%D"00
:progbar
HEX 8D
ASC " ______________________________________"8D
ASC " "
INV " "
ASC "____________________________________"
INV " "8D8D8D00
:reading
ASC "Lecture depuis S6,D1"8D00
:diskrwts
ASC "Utilisation de la RWTS de la disquette"8D00
:bb00
ASC "V{rif. de protection en $BB00 d{tect{e"8D
ASC "P00,S0A probablement illisible"8D00
:sunburst
ASC "Disquette Sunburst d{tect{e"8D
ASC "P11,S0F probablement illisible"8D00
:optimum
ASC "Disquette Optimum Resource d{tect{e"8D
ASC "P01,S0F probablement illisible"8D00
:builtin
ASC "Utilisation de la RWTS int{gr{e"8D00
:switch
ASC "Bascule vers la RWTS int{gr{e"8D00
:writing
ASC "Ecriture vers S%S,D%D"8D00
:unformat
ASC "P%t non format{e"8D00
:f7
ASC "Protection $F7F6EFEEAB d{tect{e P%t"8D00
:sync
ASC "Protection Nibble count d{tect{e P%t"8D00
:optbad
ASC "P%t,S%s n'est pas lisible (ignor{)"8D00
:passver
ASC "V{rif. termin{e. Disquette lisible."8D00
:passdemuf
ASC "D{muffin termin{."8D00
:passcrack
ASC "Crack termin{."8D00
:passcrack0
HEX 8D
ASC "La disquette a {t{ copi{e avec succ}s"8D
ASC "mais Passport ne l'a pas modifi{e."8D8D
ASC "Causes possibles :"8D
ASC "- Disquette source non prot{g{e."8D
ASC "- Disquette destination fonctionnelle."8D
ASC "- La disquette utilise une protection"8D
ASC " inconnue non g{r{e par Passport."00
:fail
HEX 8D
ASC "Erreur fatale de lecture P%t,S%s"8D00
:fatal0000
HEX 8D
ASC "Causes possibles :"8D
ASC "- Pas de disquette en S6,D1."8D
ASC "- Disquette non Apple ][."8D
ASC "- Disquette uniquement DOS 3.2."8D
ASC "- Disquette non format{e."8D00
:fatal220f
HEX 8D
ASC "Passport ne peut g{rer cette disquette."8D8D
ASC "Causes possibles :"8D
ASC "- Disquette non 16-secteurs."8D
ASC "- Disquette modifie sa RWTS et"8D
ASC " Passport ne peut pas le d{tecter."8D00
:done
HEX 8D
ASC "Pressez une touche pour continuer "
FLS " "00
:noslot6
ASC "Passport requiert un Disk II en S6."8D
ASC "Pressez une touche pour quitter "
FLS " "00
:writeerr
HEX 8D
ASC "Erreur fatale d'{criture P%t"8D8D00
*
* MLI error $27
*
:writeioerr
ASC "Causes possibles :"8D
ASC "- Pas de disquette en S%S,D%D."8D
ASC "- Secteurs illisibles sur la disquette."8D
ASC "- La disquette n'est pas format{e."8D8D00
*
* MLI error $28
*
:writenodev
ASC "S%S,D%D n'existe pas."8D00
*
* MLI error $2B
*
:writeprot
ASC "Disque en S%S,D%D prot{g{ en {criture."8D00
*
* other MLI error
*
:othermli
ASC "Erreur MLI $%0."8D
ASC "Veuillez contacter le d{veloppeur."8D00
:canttrace
ASC "Lecteur inconnu, trace d{sactiv{e"8D00
:canceled
ASC "Op{ration annul{e @ votre demande."8D00
:bademu
HEX 8D
ASC "ATTENTION ! Vous utilisez Passport avec"8D
ASC "un {mulateur qui ne g}re pas bien les"8D
ASC "lecteurs de disquettes. Passport tentera"
ASC "de contourner le probl}me mais certaines"
ASC "disquettes ne seront pas lisibles."8D8D00
:reset
HEX 8D
ASC "Pressez <Ctrl-Reset> pour continuer."8D00
:modify
ASC "P%t,S%0,$%1: "00
:modifyto
ASC " -> "00
:dosboot0
ASC "P00,S00 Secteur de boot DOS 3.3 trouv{"8D00
:prodosboot0
ASC "P00,S00 Secteur de boot ProDOS trouv{"8D00
:pascalboot0
ASC "P00,S00 Secteur de boot Pascal trouv{"8D00
:meccboot0
ASC "P00 Secteur de boot MECC M8 trouv{"8D00
:sierra
ASC "P%t,S%0 V{rif. de prot. Sierra trouv{e"8D00
:a6bc95
ASC "P%t,S%0 V{rif. de prot. A6BC95 trouv{e"8D00
:jmpbcf0
ASC "P00,S03 La RWTS requiert un bit de"8D
ASC "timing apr}s le premier {pilogue du"8D
ASC "champ de donn{es en sautant @ $BCF0."8D00
:rol1e
ASC "P00,S03 La RWTS met les bits de timing"8D
ASC "en $1E et v{rifie la valeur plus tard."8D00
:runhello
ASC "P%T,S%0 Le programme de d{marrage"8D
ASC "v{rifie la protection avant d'ex{cuter"8D
ASC "le vrai programme de d{marrage."8D00
:e7
ASC "P%t,S%0 Flux de bits E7 trouv{"8D00
:jmpb4bb
ASC "P00,S0C Le disque v{rifie la protection"8D
ASC "en $B4BB avant d'initialiser le DOS."8D00
:jmpb400
ASC "P00,S01 Le disque v{rifie la protection"8D
ASC "en $B400 avant d'initialiser le DOS."8D00
:jmpbeca
ASC "P00,S02 La RWTS requiert des nibbles"8D
ASC "suppl{mentaires et des bits de timing"8D
ASC "apr}s le prologue de donn{es en $BECA."8D00
:jsrbb03
ASC "P00,S05 V{rification de protection"8D
ASC "auto-d{chiffrable trouv{e en $BB03."8D00
:thunder
ASC "P00,S03 La RWTS compte les bits de"8D
ASC "timing et les v{rifie plus tard."8D00
:jmpae8e
ASC "P00,S0D Le disque v{rifie la protection"8D
ASC "en $AE8E apr}s l'initialisation du DOS."8D00
:diskvol
ASC "P00,S08 La RWTS requiert un num{ro de"8D
ASC "volume de disque non standard."8D00
:d5d5f7
ASC "P%t,S%0 V{rif. de prot. D5D5F7 trouv{e"8D00
:meccm7
ASC "P00 Secteur de boot MECC M7 trouv{"8D00
* asc "1234567890123456789012345678901234567890"

View File

@ -1,351 +0,0 @@
* Italian translation by Marco Verpelli
*
* Main menu keys
* (should match the text in :mainmenu below)
* (these are NOT case-sensitive)
*
k_verify = "V"
k_demuffin = "D"
k_crack = "C"
k_slot = "S"
k_quit = "F"
* <Esc> will also quit
*
* String IDs
* (pass in accumulator to PrintByID)
*
s_header = $00
s_mainmenu = $01
s_progbar = $02
s_reading = $03
s_diskrwts = $04
s_bb00 = $05
s_sunburst = $06
s_optimum = $07
s_builtin = $08
s_switch = $09
s_writing = $0A
s_unformat = $0B
s_f7 = $0C
s_sync = $0D
s_optbad = $0E
s_pass = $0F
s_passdemuf = $10
s_passcrack = $11
s_passcrack0 = $12
s_fail = $13
s_fatal0000 = $14
s_fatal220f = $15
s_done = $16
s_noslot6 = $17
s_writeerr = $18
s_writeioerr = $19
s_writenodev = $1A
s_writeprot = $1B
s_othermli = $1C
s_canttrace = $1D
s_canceled = $1E
s_bademu = $1F
s_reset = $20
s_modify = $21
s_modifyto = $22
s_dosb0 = $23
s_prodosb0 = $24
s_pascalb0 = $25
s_meccb0 = $26
s_sierra = $27
s_a6bc95 = $28
s_jmpbcf0 = $29
s_rol1e = $2A
s_runhello = $2B
s_e7 = $2C
s_jmpb4bb = $2D
s_jmpb400 = $2E
s_jmpbeca = $2F
s_jsrbb03 = $30
s_thunder = $31
s_jmpae8e = $32
s_diskvol = $33
s_d5d5f7 = $34
s_meccm7 = $35
STRINGCOUNT = $36
StringTable
da :header
da :mainmenu
da :progbar
da :reading
da :diskrwts
da :bb00
da :sunburst
da :optimum
da :builtin
da :switch
da :writing
da :unformat
da :f7
da :sync
da :optbad
da :passver
da :passdemuf
da :passcrack
da :passcrack0
da :fail
da :fatal0000
da :fatal220f
da :done
da :noslot6
da :writeerr
da :writeioerr
da :writenodev
da :writeprot
da :othermli
da :canttrace
da :canceled
da :bademu
da :reset
da :modify
da :modifyto
da :dosboot0
da :prodosboot0
da :pascalboot0
da :meccboot0
da :sierra
da :a6bc95
da :jmpbcf0
da :rol1e
da :runhello
da :e7
da :jmpb4bb
da :jmpb400
da :jmpbeca
da :jsrbb03
da :thunder
da :jmpae8e
da :diskvol
da :d5d5f7
da :meccm7
*
* Text 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.
*
:header
ASC "Passport di 4am 20160712-it"00
:mainmenu
ASC "________________________________________"8D8D8D8D8D8D8D
ASC " "
INV "V"
ASC "erifica il disco"8D8D
ASC " "
INV "D"
ASC "emuffin (copia)"8D8D
ASC " "
INV "C"
ASC "ura il disco"8D8D
ASC " "
INV "F"
ASC "ine"8D8D8D8D8D8D8D
ASC "originale: S6,D1 copia: "
INV "S"
ASC "%S,D%D"00
:progbar
HEX 8D
ASC " ______________________________________"8D
ASC " "
INV " "
ASC "____________________________________"
INV " "8D8D8D00
:reading
ASC "Leggo dallo S6,D1"8D00
:diskrwts
ASC "Uso la RWTS letta dal disco"8D00
:bb00
ASC "T00,S05 Trovata protezione $BB00"8D
ASC "T00,S0A potrebbe essere illeggibile"8D00
:sunburst
ASC "T00,S04 Trovato disco della Sunburst"8D
ASC "T11,S0F potrebbe essere illeggibile"8D00
:optimum
ASC "T00,S00 Trovato disco della"8D
ASC "Optimum Resource"8D
ASC "T01,S0F potrebbe essere illegibile"8D00
:builtin
ASC "Uso la RWTS incorporata"8D00
:switch
ASC "Passo alla RWTS incorporata"8D00
:writing
ASC "Scrivo sullo S%S,D%D"8D00
:unformat
ASC "La T%t non e' formattata"8D00
:f7
ASC "T%t Trovata protezione $F7F6EFEEAB"8D00
:sync
ASC "T%t Trovata protezione conteggio nibble"8D00
:optbad
ASC "T%t,S%s e' illeggibile (ignorata)"8D00
:passver
ASC "Verifica completata. Il disco e' buono."8D00
:passdemuf
ASC "Demuffin (copia) completata."8D00
:passcrack
ASC "Cura completata."8D00
:passcrack0
HEX 8D
ASC "Il disco e' stato copiato con successo,"8D
ASC "ma Passport non ha applicato modifiche."8D8D
ASC "Possibili cause:"8D
ASC "- L'originale non era protetto da copia."
ASC "- La copia funziona senza modifiche."8D
ASC "- L'originale usa una protezione non"8D
ASC " conosciuta e Passport non puo' essere"8D
ASC " di ulteriore aiuto."00
:fail
HEX 8D
ASC "T%t,S%s Errore grave in lettura"8D00
:fatal0000
HEX 8D
ASC "Possibili cause:"8D
ASC "- Non e' inserito un disco nello S6,D1."8D
ASC "- Non e' un disco Apple ][."8D
ASC "- Il disco e' solo per DOS 3.2."8D
ASC "- Il disco non e' formattato."8D00
:fatal220f
HEX 8D
ASC "Passport non funziona con questo disco."8D8D
ASC "Possibili cause:"8D
ASC "- Questo non e' un disco a 16 settori."8D
ASC "- Il disco ha una RWTS modificata in"8D
ASC " un modo che Passport non e' in grado"8D
ASC " di identificare."8D00
:done
HEX 8D
ASC "Premere un tasto per continuare "
FLS " "00
:noslot6
ASC "Passport richiede un drive Disk II."8D
ASC "nello S6."8D
ASC "Premere un tasto per finire "
FLS " "00
:writeerr
HEX 8D
ASC "T%t Errore grave in scrittura"8D8D00
*
* MLI error $27
*
:writeioerr
ASC "Possibili cause:"8D
ASC "- Non e' inserito un disco nello S%S,D%D."8D
ASC "- Il disco ha dei settori danneggiati."8D
ASC "- Il disco non e' formattato."8D8D00
*
* MLI error $28
*
:writenodev
ASC "Lo S%S,D%D non esiste."8D00
*
* MLI error $2B
*
:writeprot
ASC "Il disco nello S%S,D%D e' protetto da"8D
ASC "scrittura."8D00
*
* other MLI error
*
:othermli
ASC "Errore MLI $%0."8D
ASC "Per favore contattate lo sviluppatore."8D00
:canttrace
ASC "Drive non riconosciuto, tracciamento"8D
ASC "disabilitato."8D00
:canceled
ASC "Cancellato come hai richiesto."8D00
:bademu
HEX 8D
ASC "ATTENZIONE! Stai eseguendo Passport con"8D
ASC "un emulatore che non supporta a pieno i"8D
ASC "floppy drivers. Passport cerchera' di"8D
ASC "rimediare a questa mancanza, ma certi"8D
ASC "dischi risulteranno illeggibili."8D8D00
:reset
HEX 8D
ASC "Premere <Ctrl-Reset> per continuare."8D00
:modify
ASC "T%t,S%0,$%1: "00
:modifyto
ASC " -> "00
:dosboot0
ASC "T00,S00 Trovato bootloader DOS 3.3"8D00
:prodosboot0
ASC "T00,S00 Trovato bootloader ProDOS"8D00
:pascalboot0
ASC "T00,S00 Trovato bootloader Pascal"8D00
:meccboot0
ASC "T00 Trovato bootloader MECC M8"8D00
:sierra
ASC "T%t,S%0 Trovata protezione Sierra"8D00
:a6bc95
ASC "T%t,S%0 Trovata protezione A6BC95"8D00
:jmpbcf0
ASC "T00,S03 La RWTS richiede un timing bit"8D
ASC "dopo il primo epologo dati via salto a"8D
ASC "$BCF0."8D00
:rol1e
ASC "T00,S03 La RWTS accumula timing bits"8D
ASC "in $1E e dopo ne controlla il valore."8D00
:runhello
ASC "T%t,S%0 Il programma di avvio esegue"8D
ASC "un controllo di protezione prima di"8D
ASC "lanciare il vero programma di avvio."8D00
:e7
ASC "T%t,S%0 Trovato bitstream E7"8D00
:jmpb4bb
ASC "T00,S0C Il disco chiama un controllo"8D
ASC "di protezione a $B4BB prima di"8D
ASC "inizializzare il DOS."8D00
:jmpb400
ASC "T00,S01 il disco chiama un controllo"8D
ASC "di protezione a $B400 prima di"
ASC "inizializzare il DOS."8D00
:jmpbeca
ASC "T00,S02 La RWTS richiede sia nibbles"8D
ASC "extra che timing bits dopo il prologo"8D
ASC "dati via salto a $BECA."8D00
:jsrbb03
ASC "T00,S05 Trovato un controllo di"8D
ASC "protezione con auto-decodifica a $BB03."8D00
:thunder
ASC "T00,S03 La RWTS conta i timing bits e"8D
ASC "dopo li controlla."8D00
:jmpae8e
ASC "T00,S0D Il disco chiama un controllo"8D
ASC "di protezione a $AE8E dopo aver"8D
ASC "inizializzato il DOS."8D00
:diskvol
ASC "T00,S08 La RWTS richiede un disco con"8D
ASC "un numero di volume non standard."8D00
:d5d5f7
ASC "T%t,S%0 Trovata protezione D5D5F7"8D00
:meccm7
ASC "T00 Trovato bootloader MECC M7"8D00