ZX Light #0C
17 мая 2000 |
![]() |

(с) EraserAREAsoft 2000 Существует такая прога как Global commander v1.31. Это очень прикольный ко- мандир, но он имеет один злостный глюк - во время копирования если вся информация не умещается в буфер, то на диск приёмник будет записана только та часть, которая влезла в буфер. Причём в принимающем ката- логе будут записаны имена всех копируемых файлов, включая не yместившиеся в буфер. Аналогичная ситуация и с операцией MOVE. Об исправлении этого глючка и пойдёт сегодня рассказ. Для исправления GC потребуется pacnako- вать кодовый блок с ядром командира. Затем внести в него такие изменения: 1. #5F26 CALL #6620 2. #6620 DI XOR A LD (#707B),A OR B RET 3. #6627 DEFB #31,#50 DEFB "`?` - HELP" 4. #6576 LD HL,#6627 Затем записать исправленный блок на диск и упаковать. После чего упакованный блок можно вставлять обратно в командир так же как и вытаскивали. Исправленная таким образом версия ко- мандира уже довольно давно гуляет по стра- не. Отличить её от глюкавой можно по над- писи: `?` - HELP вместо Press `?` to help ---------------------------------- А сейчас очередная доработка самого крутого ассемблера Alasm v4.1. На этот раз мы его переделаем для работы на Scorpion`е с памятью 1024 килобайта (расширение через 6,7 бит порта #1FFD - схема этого расшире- ния находится в разделе "Железяки". Проблема работы Alasm`а на ZS-1024 заключается в том, что невозможно запихать драйвер памяти на все 64 странички в отве- денные для этого 26 байт (максимум можно сделать драйвер на 32 странички). Тем бо- лее, что часть этих самых байтов заняты подпрограммой запуска ассемблера из бейси- ка. Но не всё так страшно как может пока- заться на первый взгляд. B приложении вы найдёте драйвер в формате Alasm`а и гото- вый драйвер. Но для того, что бы этот дры- вер заработал надо внести некоторые изме- нения в тело Alasm`а. Вот листинг этой до- работки. #BFE0 LD D,А ;сохраняем номер страницы AND #30 ;выделяем 2 бита RLA ;переносим их в б,7 бит RLA LD L,А ;сохраняем резултaт вращения LD А,D ;берем сохраненный номер страницы AND 8 ;выделяем еще один бит RLA ;вращаем - он пойдет в 4 бит 0R L ;объеденяеm с пред. результатом LD L,А ;опять сохраняем LD А,D ;снова берем номер страницы AND 7 ;выделяем три младших бита 0R L ;объединяем все в кучу JP #803F ;переход собственно на дрывер B результате этих манипуляций на вход драйвера будет приходить код страницы поч- ти готовый для выдачи в порт. Надо будет только разделить, какие биты в какой порт кидать. Вот формат кода страницы: :) ABxCxPAG ABC - биты выдаваемые в порт #1FFD, соот- ветственно AB - 6,7 бит, а С - 4 бит (стандартный скорпионовский) порта. Этими только разделить, какие биты в какой порт кидать. Вот формат кода страницы: :) ABxCxPAG ABC - биты выдаваемые в порт #1FFD, соот- ветственно AB - 6,7 бит, а С - 4 бит (стандартный скорпионовский) порта. Этими битами выбирается номер сегмента метровой памяти. 3 бита - 8 сегментов по 128 кБ PAG - биты выдаваемые в порт #7FFD - ими выбирается номер странички в каждом сег- менте. Таким образом можно переделать ALASM под любой стандарт расширения памяти - да- же самый извращенный. ---------------------------------------- На этом позвольте откланяться. До следующих "Мелочей".![]()
![]()
![]()
Other articles:
|
|
|
|
|
|
|
|
|
Similar articles:
В этот день... 1 April
Info Guide #13,
ACNews #50,
Avro News #01,
ACNews #47,
ACNews #40,
ACNews #29,
Black Metall #01,
ACNews #16,
Adventurer #13,
Polesse #19,
Subliminal Extacy #03,
ZX Pilot #37,
Always #03,
Born Dead #0G,
Odyssey paper #08,
Optron #26,
City #08,
Zodiac #02,
Polesse #05,
Nicron #108,
X-Magazine #10,
Nicron #82,
Energy #01,
Sorrow News #03,
Sorrow News #02,
Proton #27,
Think #08,
Wallpaper #01,
Spectrum Progress #03,
Spectrum Expert #02,
Micro #01,
X-Files #02,
Gorodok #05,
Deja Vu #04,
Anecdotes #01,
X-Files #02,
Maximum #35,
Impulse #01,
Spectrofun #01,
Faultless #07,
Breeze #06,
Nicron #27,
Echo #03,
Oberon #01,
Spectrofon #19,
On-Line #30,
Sinclair Town #01,
Sinclair Classic #04,
Spectrofon #04