Shoot ... Again
n°14Par Dominique Pessan
|
Vous aimez la plongée sous-marine ? ( au moins sur Oric) ? Alors, transférons SCUBADIVE sur disquette! Etat des lieux. Ce jeu est composé de trois modules. #501 - #567 :Chargeur BASIC #400 - # 960 :Mise en place d'octets entre #B7C6 et#BADB, mais aussi entre #59 et #10F (?) #400 - #3400 :Le jeu lui même La méthode utilisée. Le premier module est un chargeur BASIC dont l'originalité est de s'auto-transporter en #8500. ( Pour ne pas être écrasé par les fichiers qu'il charge). Nous allons le remplacer par un chargeur à nous. Le deuxième module utilise la page quatre. Mon idée de base était de sauvegarder non pas le module, mais les zones mémoires sur lesquelles il est intervenu ( après l'avoir lancé). Ca marche presque... Le jeu se lance, puis se bloque. Cela vient probablement de la zone en page zéro, mais j'ignore pourquoi et je dois bien l'avouer, je n'ai rien compris. La solution classique devant une difficulté trop grosse étant de la contourner, voici le principe (bestial) que j'ai retenu.
1 - Charger le module (#400-#960) en #500 2 - Sauver la page 4 (DOS) en #B00 3 - Décaler le module en #400 4 - Le lancer 5 - Restaurer le DOS en page 4 (#B00-#BFF®#400)
On peut alors charger le troisième module. 1 - Charger le module en #500 2 - Le décaler en #400 3 - Lancer le jeu ( JMP$400 ) La routine de transfert de bloc utilisée, nous a déjà servi et est désassemblée dans l'article "Le trident de Neptune". Je ne donne ici, que le listing BASIC correspondant. Ceux qui souhaitent utiliser un moniteur assembleur se reporteront à l'article précédent et adapteront les adresses. La marche à suivre. 1 - Entrez le listing suivant: 10 IF DEEK(#9A)=#501 THEN GOSUB100:RUN |
100 FOR I=DEEK(#9A)-1TODEEK(#9C): POKEI+#8000,PEEK(I):NEXT
2 - SAVE"SCUBA",AUTO 3 - Entrez le listing suivant: ( sauvegardez le si vous voulez)
![]()
10A=#0A61:F=#0AAB:L=100:REPEAT:FOR A=A TO A+15:READ C$ 4 - RUN 5 - SAVE"PROV1",A#A61,E#AAB 6 - Entrez le listing suivant: ( sauvegardez le si vous voulez) 10A=#3501:F=#351B:L=100:REPEAT:FOR A=A TO A+15:READ C$ 7 - RUN 8 - SAVE"PROV2",A#3501,E#351B 9 - LOAD"STOP ( Utilitaire de blocage ) Insérez votre cassette de jeu dans le magnétophone 10-CLOAD"" 11-CALL#E76A:CALL#E4AC:DOKE#2AB,#A60: DOKE#2A9,#500: CALL#E4E0:CALL#E93D 12-LOAD"PROV1 13-SAVE"SCUBA1",A#500,E#AAB,T#A61 14-CALL#E76A:CALL#E4AC:DOKE#2AB,#3500:DOKE#2A9,#500: CALL#E4E0:CALL#E93D 15-LOAD"PROV2 16-SAVE"SCUBA2",A#500,E#351B,T#3501
Voilà, c'est presque fini, il ne vous reste plus qu'a essayer votre nouvelle version du jeu et faire un peu de ménage sur votre disquette en effacant les fichiers PROVisoires devenus inutiles.
C'est tout, bonne plongée et à bientôt... |
