ZX-Ревю 1995 №2 1994 г.

Возвращаясь к напечатанному - Программа "OPEN 2".


       Программа "OPEN 2"
 -------------------------------
  (С) Кузьма Феськов,
               г. Абакан, 1995.
--------------------------------

    Эта программа  сделана по ана-  
 логии с программой "OPEN" (Андрея  
 Алексеева),    опубликованной   в  
 ZX-РЕВЮ-93, N1-2, стр.27, и может  
 быть  объединена с ней при помощи  
 MERGE.                             
                                    
    Все чаще  на  рынках продаются  
 дискеты с "экзотическими" загруз-  
 чиками "boot". Вот и мне попалась  
 одна из таких дискет. Все было бы  
 хорошо, если бы однажды этот boot  
 не дал ошибку: в результате прог-  
 раммы с диска оказались недоступ-  
 ными, так как ни один другой boot  
 кроме  "родного" не мог загрузить  
 эти программы.  Дело в том, что в  
 каталоге диска  изменены данные о  
 начале файла на диске:  стартовые  
 дорожка и сектор (boot их изменя-  
 ет при загрузке).                  
                                    
    Предлагаемая программа поможет  
 Вам восстановить исходные  данные  
 о начале файлов. Но сработает она  
 только в том случае,  если  длина  
 каждого файла  в секторах указана  
 правильно. После обработки  диска  
 этой программой,  Вы сможете заг-  
 ружать игры  другими  boot'ами  и  
 копировать их на другой диск.      
    Ниже приводится листинг  прог-  
 раммы:                             
                                    
     2 BORDER 1: PAPER 1: INK 3: C  
  LEAR 39999                        
     3 RESTORE : FOR a=40000 TO 40  
  012: READ b: POKE a,b: NEXT a: D  
  ATA 33,0,171,17,0,0,1,5,9,205,19  
  ,61,201                           
   100 CLS : PRINT #0;"Insert disk  
   and press any key": PAUSE 0      
   200 CLS : RANDOMIZE USR 4e4      
   245 GO SUB 2100                  
   300 PRINT #0;"Owerwrite track <  
  0> (Y/N) ?": PAUSE 0              
   310 IF INKEY$="y" OR INKEY$="Y"  
   THEN  POKE 40007,6: RANDOMIZE U  
  SR 4e4                            
   320 STOP                        
  2100 REM Start Trk & Sec         
  2110 LET a1=43790: LET a=43776:  
  LET trk=1: LET sec=0: POKE a1,se 
  c: POKE (a1+1),trk: LET a1=a1+2  
  2120 IF PEEK a=0 THEN  CLS : RET 
  URN                              
  2130 LET n$="": FOR a=a TO a+7:  
  LET n$=n$+CHR$ PEEK a: NEXT a: L 
  ET t$=CHR$ PEEK a: LET a=a+5: LE 
  T q=PEEK a: LET a=a+1: LET sec1= 
  PEEK a: LET a=a+1: LET tr=PEEK a 
  : LET a=a+1                      
  2140 CLS : PRINT AT 0,0;n$;AT 0, 
  9;t$;AT 2,0;"Track & Sector from 
   disk:"                          
  2150 PRINT AT 4,2;tr;TAB 10;sec1 
  ;AT 6,0;"Track & Sector really:" 
  2160 PRINT AT 8,2;trk;TAB 10;sec 
  2170 BEEP .1,20: PAUSE 50: FOR f 
  =1 TO q                          
  2180 LET sec=sec+1               
  2190 IF sec=16 THEN  LET trk=trk 
  +1: LET sec=0                    
  2200 PRINT AT 8,2;TAB 32;AT 8,2; 
  trk;TAB 10;sec                   
  2210 NEXT f                      
  2220 LET a1=a1+14: POKE a1,sec   
  2230 LET a1=a1+1: POKE a1,trk    
  2240 LET a1=a1+1                 
  2250 GO TO 2120                  
                                   
    И еще одно замечание.  Часто в 
 таких  "экзотических" загрузчиках 
 помимо порчи данных о начале фай- 
 ла  заменяют  еще  тип файла ("В" 
 или "С" на любой другой  символ). 
 С этим придется бороться вручную, 
 при   помощи    программы    типа 
 ДИСК-ДОКТОР. Задача немного упро- 
 щается тем,  что вероятнее всего, 
 Бейсик-загрузчик стоит первым.    
                                   
      Комментарий ИНФОРКОМА.       
                                   
    Автор назвал   эту   программу 
 "OPEN  2" по аналогии с опублико- 
 ванной   в   ZX-РЕВЮ-93,    N1-2, 
 стр.27,  он предлагает объединить 
 эти программы при помощи MERGE  и 
 использовать совместно.  Но мы бы 
 не советовали это делать. Указан- 
 ная   программа   "OPEN"  (Андрея 
 Алексеева)  при  расчете  истиной 
 длины  файла в секторах за основу 
 берет как раз разность  стартовых  
 секторов двух соседних файлов,  а  
 именно  эта  информация  искажена  
 "экзотическим"  boot'ом.  Так что  
 при совместной работе этих  прог-  
 рамм неизбежно  возникнет  ситуа-  
 ция, когда одни  данные  "восста-  
 навливаются" при помощи запорчен-  
 ных других данных,  в  результате  
 чего Вы рискуете навсегда распро-  
 щаться с   испорченным    диском.  
 Восстановление диска  после обра-  
 ботки защищающими программами это  
 всегда творческая проблема.  Поэ-  
 тому,  если  Вас  постигла  такая  
 неприятность, о которой повеству-  
 ет Кузьма, то во-первых надо ско-  
 пировать весь диск каким-либо ко-  
 пировщиком типа ДИСК  В  ДИСК,  а  
 затем,  уже с копией можно вытво- 
 рять все что  угодно.  И  первое, 
 что надо сделать, так это при по- 
 мощи ДИСК-ДОКТОРА попытаться  ра- 
 зобраться в том,  какие конкретно 
 данные каталога модифицированы, а 
 какие сохранены   без  изменения. 
 Здесь Вам  помогут  только   Ваши 
 знания и интуиция. И только после 
 того, как Вы разберетесь, хотя бы 
 предположительно  с  этим  делом, 
 надо решить,  какую же  программу 
 использовать  для попытки восста- 
 новления (при ошибке мы ничего не 
 теряем,  так как все операции вы- 
 полняем с копией дискеты).        



СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - Микросхемы и модули памяти.
Комьюнити - Беседа с Tiboh/Debris - программистом из Красноярска, долгие годы занимавшимся обработкой архивов спектрумовских программ.
Credits - Вот и вышел в свет первый номер минской компьютерной газеты PARADOX.
Part 7 - Technical forum.
Inferno - Ошибки в предыдущих номерах.

В этот день...   21 ноября