============================================ DUMP-ROM.FD - (c) Daniel Coulom - Avril 2008 ============================================ Utilitaires pour dumper les roms - des ordinateurs THOMSON - des cartouches MEMO5 - des cartouches MEMO7 - des controleurs Chaque utilitaire fonctionne uniquement pour les ordinateurs et les roms indiques. Avant de lancer une extraction, verifiez la place disponible sur la disquette, en particulier pour la rom du TO9. A defaut de lecteur de disquette, les fichiers sont ecrits sur cassette. Malgre le soin apporte a cette compilation, des erreurs peuvent subsister. Merci de les signaler a l'auteur: danielcoulom@gmail.com ----------------------------------------- MO5ROM.BAS DUMP ROM MO5-MO5E ----------------------------------------- 10 PRINT"Sauvegarde ROM MO5-MO5E" 11 PRINT"Appuyez sur une touche..." 15 A$=INPUT$(1) 20 SAVEM"MO5ROM",&HC000,&HFFFF,&HC000 ----------------------------------------- MO6ROM.BAS DUMP ROM MO5NR-MO6-PC128 ----------------------------------------- 10 PRINT"Sauvegarde ROM MO6-MO5NR-PC128" 11 PRINT"Appuyez sur une touche..." 15 A$=INPUT$(1):CLEAR,&H5EFF:A=&H5EFF 20 P$="B6A7C0F6A7E4340684DFB7A7C0C4EF" 21 P$=P$+"F7A7DD8E0000108EA000EC83EDA3" 22 P$=P$+"8CC00026F73506B7A7C0F7A7DD39" 30 FORI=1TOLEN(P$)STEP2:A=A+1 40 POKEA,VAL("&H"+MID$(P$,I,2)):NEXT 50 A=&H6000:B=&H9FFF:X=&H5F00 51 EXECX:SCREEN,,6:SAVEM"MO6ROM0",A,B,A 60 POKE&H5F08,&H8A:POKE&H5F09,&H20 61 EXECX:SCREEN,,6:SAVEM"MO6ROM1",A,B,A 70 POKE&H5F0D,&HCA:POKE&H5F0E,&H10 71 POKE&H5F13,&HF0:POKE&H5F1E,&HB0 72 EXECX:SCREEN,,6:SAVEM"MO6ROM3",A,B,A 80 POKE&H5F08,&H84:POKE&H5F09,&HDF 81 EXECX:SCREEN,,6:SAVEM"MO6ROM2",A,B,A 5F00 B6A7C0 LDA $A7C0 5F03 F6A7E4 LDB $A7E4 5F06 3406 PSHS B,A 5F08 84DF ANDA #$DF 5F0A B7A7C0 STA $A7C0 5F0D C4EF ANDB #$EF 5F0F F7A7DD STB $A7DD 5F12 8E0000 LDX #$0000 5F15 108EA000 LDY #$A000 5F19 EC83 LDD ,--X 5F1B EDA3 STD ,--Y 5F1D 8CC000 CMPX #$C000 5F20 26F7 BNE $5F19 5F22 3506 PULS A,B 5F24 B7A7C0 STA $A7C0 5F27 F7A7DD STB $A7DD 5F2A 39 RTS ----------------------------------------- TO7ROM.BAS DUMP ROM T9000-TO7-TO7/70 ----------------------------------------- 10 PRINT"Sauvegarde ROM TO7-TO7/70" 11 PRINT"Appuyez sur une touche..." 15 A$=INPUT$(1) 20 SAVEM"TO7ROM",&HE800,&HFFFF,&HE800 ----------------------------------------- TO8ROM.BAS DUMP ROM TO8-TO8D-TO9+ ----------------------------------------- 10 PRINT"Sauvegarde ROM TO8-TO8D-TO9+" 11 PRINT"Appuyez sur une touche..." 15 A$=INPUT$(1):CLEAR,&H9EFF:A=&H9EFF 20 P$="B70000B6E7C3340284EFB7E7C3" 21 P$=P$+"8E4000108EE000EC83EDA38C" 22 P$=P$+"000026F73502B7E7C3B7000139" 30 FORI=1TOLEN(P$)STEP2:A=A+1 40 POKEA,VAL("&H"+MID$(P$,I,2)):NEXT 50 A=&HA000:B=&HDFFF:C=&HC000:X=&H9F00 51 EXECX:SAVEM"TO8ROMB0",A,B,A 60 POKE&H9F02,&H01 61 EXECX:SAVEM"TO8ROMB1",A,B,A 70 POKE&H9F02,&H02 71 EXECX:SAVEM"TO8ROMB2",A,B,A 80 POKE&H9F02,&H03 81 EXECX:SAVEM"TO8ROMB3",A,B,A 90 POKE&H9F0E,&H00:POKE&H9F19,&HE0 91 EXECX:SAVEM"TO8ROMS0",C,B,C 93 POKE&H9F08,&H8A:POKE&H9F09,&H10 94 EXECX:SAVEM"TO8ROMS1",C,B,C 9F00 B70000 STA $0000 9F03 B6E7C3 LDA $E7C3 9F06 3402 PSHS A 9F08 84EF ANDA #$EF 9F0A B7E7C3 STA $E7C3 9F0D 8E4000 LDX #$4000 9F10 108EE000 LDY #$E000 9F14 EC83 LDD ,--X 9F16 EDA3 STD ,--Y 9F18 8C0000 CMPX #$0000 9F1B 26F7 BNE $9F14 9F1D 3502 PULS A 9F1F B7E7C3 STA $E7C3 9F22 B70001 STA $0001 9F25 39 RTS ----------------------------------------- TO9ROM.BAS DUMP ROM TO9 ----------------------------------------- 10 PRINT"Sauvegarde ROM TO9" 11 PRINT"Appuyez sur une touche..." 15 A$=INPUT$(1):CLEAR,&H7FFF:A=&H7FFF 20 P$="B6E7C3340284CF8A00B7E7C3B70000" 21 P$=P$+"8E4000108EE000EC83EDA38C" 22 P$=P$+"000026F73502B7E7C3B7000039" 30 FORI=1TOLEN(P$)STEP2:A=A+1 40 POKEA,VAL("&H"+MID$(P$,I,2)):NEXT 50 A=&HA000:B=&HDFFF:E=&HE000:X=&H8000 51 SAVEM"TO9ROMB0",0,&H3FFF,0 55 POKE&H8008,0:POKE&H800E,1 56 EXECX:SAVEM"TO9ROMB1",A,B,A 60 POKE&H8008,0:POKE&H800E,2 61 EXECX:SAVEM"TO9ROMB2",A,B,A 65 POKE&H8008,0:POKE&H800E,3 66 EXECX:SAVEM"TO9ROMB3",A,B,A 70 POKE&H8008,16:POKE&H800E,0 71 EXECX:SAVEM"TO9ROMF0",A,B,A 75 POKE&H8008,16:POKE&H800E,1 76 EXECX:SAVEM"TO9ROMF1",A,B,A 80 POKE&H8008,32:POKE&H800E,0 81 EXECX:SAVEM"TO9ROMP0",A,B,A 85 POKE&H8008,32:POKE&H800E,1 86 EXECX:SAVEM"TO9ROMP1",A,B,A 90 SAVEM"TO9ROMS0",E,&HFFFF,E 8000 B6E7C3 LDA $E7C3 8003 3402 PSHS A 8005 84CF ANDA #$CF 8007 8A00 ORA #$00 8009 B7E7C3 STA $E7C3 800C B70000 STA $0000 800F 8E4000 LDX #$4000 8012 108EE000 LDY #$E000 8016 EC83 LDD ,--X 8018 EDA3 STD ,--Y 801A 8C0000 CMPX #$0000 801D 26F7 BNE $8016 801F 3502 PULS A 8021 B7E7C3 STA $E7C3 8024 B70000 STA $0000 8027 39 RTS ----------------------------------------- MO6MEMO5.BAS DUMP ROM MEMO5 sur un MO6-MO5NR-PC128 ----------------------------------------- 10 PRINT"Copie banques MEMO5 sur MO6" 11 PRINT"Tapez le nombre de banques "; 12 PRINT"(1 a 4)" 13 PRINT"ou une autre touche "; 14 PRINT"pour sortir..." 15 CLEAR,&H4FFF:A=&H4FFF 17 A$=INPUT$(1) 18 IF(A$<"1")OR(A$>"4")THENEND 20 P$="B6A7E4340284DFB7A7DDB6BFFC" 21 P$=P$+"8EB000108E6000EC81EDA1" 22 P$=P$+"8CBFFC260430043124" 23 P$=P$+"8CF00026EE3502B7A7DD39" 30 FORI=1TOLEN(P$)STEP2 31 A=A+1:POKEA,VAL("&H"+MID$(P$,I,2)) 32 NEXT:X=&H5000:A=&H6000:B=&H9FFF 40 IFA$<"1"THENEND 42 EXECX:SCREEN,,6:SAVEM"MEMO5B0",A,B,A 50 IFA$<"2"THENEND 51 POKE&H500C,&HFD 52 EXECX:SCREEN,,6:SAVEM"MEMO5B1",A,B,A 60 IFA$<"3"THENEND 61 POKE&H500C,&HFE 62 EXECX:SCREEN,,6:SAVEM"MEMO5B2",A,B,A 70 IFA$<"4"THENEND 71 POKE&H500C,&HFF 72 EXECX:SCREEN,,6:SAVEM"MEMO5B3",A,B,A 5000 B6A7E4 LDA $A7E4 5003 3402 PSHS A 5005 84DF ANDA #$DF 5007 B7A7DD STA $A7DD 500A B6BFFC LDA $BFFC 500D 8EB000 LDX #$B000 5010 108E6000 LDY #$6000 5014 EC81 LDD ,X++ 5016 EDA1 STD ,Y++ 5018 8CBFFC CMPX #$BFFC 501B 2604 BNE $5021 501D 3004 LEAX $04,X 501F 3124 LEAY $04,Y 5021 8CF000 CMPX #$F000 5024 26EE BNE $5014 5026 3502 PULS A 5028 B7A7DD STA $A7DD 502B 39 RTS ----------------------------------------- TO8MEMO7.BAS DUMP ROM MEMO7 sur un TO8-TO8D-TO9+ ----------------------------------------- 10 PRINT"Copie banques MEMO7 sur TO8" 11 PRINT"Tapez le nombre de banques "; 12 PRINT"(1 a 4)" 13 PRINT"ou une autre touche "; 14 PRINT"pour sortir..." 15 CLEAR,&H8FFF:A=&H8FFF 17 A$=INPUT$(1) 18 IF(A$<"1")OR(A$>"4")THENEND 20 P$="B6E7C3340284FBB7E7C3B70000" 21 P$=P$+"8E4000108EE000EC83EDA3" 22 P$=P$+"8C000026F73502B7E7C3B7000039" 30 FORI=1TOLEN(P$)STEP2 31 A=A+1:POKEA,VAL("&H"+MID$(P$,I,2)) 32 NEXT:X=&H9000:A=&HA000:B=&HDFFF 40 IFA$<"1"THENEND 42 EXECX:SAVEM"MEMO7B0",A,B,A 50 IFA$<"2"THENEND 51 POKE&H900C,1 52 EXECX:SAVEM"MEMO7B1",A,B,A 60 IFA$<"3"THENEND 61 POKE&H900C,2 62 EXECX:SAVEM"MEMO7B2",A,B,A 70 IFA$<"4"THENEND 71 POKE&H900C,3 72 EXECX:SAVEM"MEMO7B3",A,B,A 9000 B6E7C3 LDA $E7C3 9003 3402 PSHS A 9005 84FB ANDA #$FB 9007 B7E7C3 STA $E7C3 900A B70000 STA $0000 900D 8E4000 LDX #$4000 9010 108EE000 LDY #$E000 9014 EC83 LDD ,--X 9016 EDA3 STD ,--Y 9018 8C0000 CMPX #$0000 901B 26F7 BNE $9014 901D 3502 PULS A 901F B7E7C3 STA $E7C3 9022 B70000 STA $0000 9025 39 RTS ----------------------------------------- TO9MEMO7.BAS DUMP ROM MEMO7 sur un TO9 ----------------------------------------- 10 PRINT"Copie banques MEMO7 sur TO9" 11 PRINT"Tapez le nombre de banques "; 12 PRINT"(1 a 4)" 13 PRINT"ou une autre touche "; 14 PRINT"pour sortir..." 15 CLEAR,&H8FFF:A=&H8FFF 17 A$=INPUT$(1) 18 IF(A$<"1")OR(A$>"4")THENEND 20 P$="B6E7C334028A30B7E7C3B70000" 21 P$=P$+"8E4000108EE000EC83EDA3" 22 P$=P$+"8C000026F73502B7E7C3B7000039" 30 FORI=1TOLEN(P$)STEP2 31 A=A+1:POKEA,VAL("&H"+MID$(P$,I,2)) 32 NEXT:X=&H9000:A=&HA000:B=&HDFFF 40 IFA$<"1"THENEND 42 EXECX:SAVEM"MEMO7B0",A,B,A 50 IFA$<"2"THENEND 51 POKE&H900C,1 52 EXECX:SAVEM"MEMO7B1",A,B,A 60 IFA$<"3"THENEND 61 POKE&H900C,2 62 EXECX:SAVEM"MEMO7B2",A,B,A 70 IFA$<"4"THENEND 71 POKE&H900C,3 72 EXECX:SAVEM"MEMO7B3",A,B,A 9000 B6E7C3 LDA $E7C3 9003 3402 PSHS A 9005 8A30 ORA #$30 9007 B7E7C3 STA $E7C3 900A B70000 STA $0000 900D 8E4000 LDX #$4000 9010 108EE000 LDY #$E000 9014 EC83 LDD ,--X 9016 EDA3 STD ,--Y 9018 8C0000 CMPX #$0000 901B 26F7 BNE $9014 901D 3502 PULS A 901F B7E7C3 STA $E7C3 9022 B70000 STA $0000 9025 39 RTS ----------------------------------------- CD90351.BAS DUMP ROM CD90-351 sur MO5,MO6,TO7,TO7/70 ----------------------------------------- 10 PRINT"Sauvegarde ROM CD90-351" 11 PRINT"Tapez 1 SUR MO5, MO6, PC128" 12 PRINT"Tapez 2 SUR TO7, TO770" 13 PRINT"Autre touche pour sortir..." 15 A$=INPUT$(1) 16 IF(A$<"1")OR(A$>"2")THENEND 17 IFA$="1"THENA=&HA000 18 IFA$="2"THENA=&HE000 19 B=A+&H7BF:C=A+&H7D8 20 POKEC,0:SAVEM"CD351B0",A,B,A 30 POKEC,1:SAVEM"CD351B1",A,B,A 40 POKEC,2:SAVEM"CD351B2",A,B,A 50 POKEC,3:SAVEM"CD351B3",A,B,A ----------------------------------------- CD90640.BAS DUMP ROM CD90-640 sur MO5,MO6,TO7,TO7/70 ----------------------------------------- 10 PRINT"Sauvegarde ROM CD90-640" 11 PRINT"Tapez 1 SUR MO5, MO6, PC128" 12 PRINT"Tapez 2 SUR TO7, TO770" 13 PRINT"Autre touche pour sortir..." 15 A$=INPUT$(1) 16 IF(A$<"1")OR(A$>"2")THENEND 17 IFA$="1"THENA=&HA000 18 IFA$="2"THENA=&HE000 20 B=A+&H7BF:SAVEM"CD90640",A,B,A ----------------------------------------- CQ90028.BAS DUMP ROM CQ90-028 sur MO5,MO6,TO7,TO7/70 ----------------------------------------- 10 PRINT"Sauvegarde ROM CD90-640" 11 PRINT"Tapez 1 SUR MO5, MO6, PC128" 12 PRINT"Tapez 2 SUR TO7, TO770" 13 PRINT"Autre touche pour sortir..." 15 A$=INPUT$(1) 16 IF(A$<"1")OR(A$>"2")THENEND 17 IFA$="1"THENA=&HA000 18 IFA$="2"THENA=&HE000 20 B=A+&H7BF:SAVEM"CQ90028",A,B,A