home *** CD-ROM | disk | FTP | other *** search
/ Emulator Universe CD / emulatoruniversecd1998.iso / CPC / Utils / CPCtape / CPC2PCR.BAS < prev    next >
Encoding:
BASIC Source File  |  1997-04-05  |  1.4 KB  |  38 lines

  1. 10 DEFINT a-z:MODE 2:TRACK=&A000+10:SECT=&A000+12:ADR=&A000+6
  2. 20 PRINT"CPC2PC (restore part) v1.0 (c)1997 Stra
  3. 30 INPUT"Disk number ";discnumber
  4. 40 PRINT"Data or Vendor format ? ";
  5. 50 a$=UPPER$(INKEY$)
  6. 60 IF a$="D"THEN format=&C0:PRINT"DATA":GOTO 90
  7. 70 IF a$="V"THEN format=&40:PRINT"VENDOR":GOTO 90
  8. 80 GOTO 50
  9. 90 INPUT"INSERT !BLANK! DESTINATION DISK...THEN PRESS [RETURN]",a$
  10. 100 |TAPE.IN:MEMORY &1FFF:a=&A000
  11. 110 READ d$:IF d$<>"fin"THEN POKE a,VAL("&"+d$):a=a+1:GOTO 110
  12. 120 DATA 0e,07,cd,0f,b9,21,00,40,11,00,00,0e,00,cd,4e,c6,0e,00,c3,0f,b9,01,FF,00,2a,00,7a,c5,1a,2f,4f,13,1a,2f,47,13,09,c1,0b,78,fe,ff,20,ef,22,00,7a,c9,fin
  13. 130 FOR pt=0 TO 39 STEP 5
  14. 140 file$="DISK"+HEX$(discnumber,2)+HEX$(pt,2)+".TRK"
  15. 150 PRINT"Reading file : "file$
  16. 160 LOAD file$,&2000
  17. 170 ch0a=PEEK(&7A01):ch0b=PEEK(&7A00)
  18. 180 POKE &7A00,0
  19. 190 POKE &7A01,0
  20. 200 adresse=&2000
  21. 210 FOR p=pt TO pt+4
  22. 220 PRINT"Writing track :"p"/";
  23. 230 FOR s=format+1 TO format+9
  24. 240 POKE TRACK,p
  25. 250 POKE SECT,s
  26. 260 POKE ADR,adresse MOD 256
  27. 270 POKE ADR+1,adresse/256
  28. 280 PRINT" "HEX$(s);
  29. 290 CALL &A015,adresse 'calcul du checksum
  30. 300 CALL &A000 'ecrire secteur
  31. 310 adresse=adresse+512
  32. 320 NEXT s
  33. 330 PRINT
  34. 340 NEXT p
  35. 350 ch1a=(NOT PEEK(&7A01))AND 255:ch1b=(NOT PEEK(&7A00))AND 255
  36. 360 IF ch0a<>ch1a OR ch0b<>ch1b THEN PRINT"! Checksum Error ! "HEX$(ch0a,2)+HEX$(ch0b,2)"<>"HEX$(ch1a,2)+HEX$(ch1b,2) ELSE PRINT"* CERTIFIED * Checksum OK..."HEX$(ch0a,2)+HEX$(ch0b,2)
  37. 370 NEXT pt
  38.