Index du Forum
IDENTIFICATION SERVEUR : 10.0.97.1 - CLIENT : 54.162.227.37

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

SuperPILOT (Apple, 1983)

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
qkumba



Inscrit le: 29 Jan 2012
Messages: 174

MessagePosté le: Jeu 07 Jan 2016, 3:16    Sujet du message: SuperPILOT (Apple, 1983) Répondre en citant

This title is a programming language intended for schools, allowing teachers to create lessons easily. It includes turtle graphics, among other things.

Attempting to copy the disk shows that tracks $0C and $0D have read errors.
The copied disk just hangs after accessing track $0C. Digging into the access, we find this code is changing the disk read routine:

Code:
A6F6     LDA     $C083
A6F9     LDY     #$01
A6FB     LDA     $D55C,Y
A6FE     STA     $A724,Y
A701     LDA     $A71F,Y
A704     STA     $D55C,Y
A707     DEY
A708     BPL     $A6FB
A70A     LDY     #$02
A70C     LDA     $D37A,Y
A70F     STA     $A726,Y
A712     LDA     $A721,Y
A715     STA     $D37A,Y
A718     DEY
A719     BPL     $A70C
A71B     LDA     $C08B
A71E     RTS


The changes are small but powerful. The first change is that the first line of:

Code:
D55C     LDA     #0 ;zero checksum
D55E     STA     $CF


is changed to:

Code:
D55C     LDA     $46


so the checksum seed comes from another location, and is not zero.
The second change is that:

Code:
D37A     CMP     #$AA
D37C     BNE     $D380


is changed to

Code:
D37A     JMP     $BF6B


which looks like this:

Code:
BF6B     EOR     #$AB
BF6D     EOR     $CD
BF6F     PHA
BF70     LSR
BF71     PLA
BF72     ROL
BF73     CMP     #$04
BF75     ROL
BF76     STA     $46
BF78     RTS


which is also the source of the checksum seed. So the checksum depends on something from the sector address epilogue.
That's not nice. Some of the sectors are readable directly, and some of them are not.

Anyway, we can capture the data after they are read in, put the decoded sectors onto the tracks, and then change the STAs to LDAs so that they don't change the read routines. We have to capture both tracks since they use the same technique. Then the disk boots.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com