| 47th Byte #01 |
|
Как переделывать игры - подпрограммы работающие с лентой.

╔════════════════════════════════════════════════════╗
║ ║
║ ░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ║
║ ░ █ █ ▀▀▀▀▀▄ ▒ ║
║ ░ █ █ █ ▓ ▓ ▓ ▓ ▒ ║
║ ░ █ █ █ ▓▓▓ ▓▓▓ ▓▓▓ ▓ ▓ ▓▓▓ ▓▓ ▒ ║
║ ░ ▀▀▀▀▄ █ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▒ ║
║ ░ █ █ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓▓▓ ▒ ║
║ ░ █ █ ▓▓ ▓ ▓ ▓▓▓ ▓▓▓ ▓▓ ▓ ▒ ║
║ ░ ▓ ▓▓ ▒ ║
║ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ▓▓ ▒ ║
║ ║
╚════════════════════════════════════════════════════╝
* СПЕЦИАЛЬНЫЙ ВЫПУСК *
К А К П Е Р Е Д Е Л Ы В А Т Ь И Г Р Ы
ЧАСТЬ ПЕРВАЯ.
1. ПОДПРОГРАММЫ, РАБОТАЮЩИЕ С ЛЕНТОЙ.
1.1 Загрузка.
Программа загрузки блока кодов с магнитофона может иметь
приблизительно такой вид:
...
LOADER LD IX,HEAD ; В IX-адрес загрузки
LD DE,#11 ; В DE-длина заголовка
XOR A ; В А-0 для заголовка и #FF для тела файла
SCF ; Установка CARRY-флага
CALL #0556 ; Вызов подпрограммы ПЗУ ,осуществляющей
; загрузку блока кодов.
JP NC,NNNN ; Переход по адресу NNNN в случае ошибки.
CALL NNNN ; Тут может быть вызов подпрограммы, кото-
; рая проверяет только что загруженный за-
; головок файла.
; Если коды отгружаются без хэдера, то этого блока мо-
; жет не быть.
;-----------------------------------------------------
LD IX,START; (*) Начальный адрес.
LD DE,LENG ; (*) Длина.
LD A,#FF ;
SCF ; Загрузка тела
CALL #0556 ; файла
JP NC,NNNN ;
..... ;
RET ;
; Звездами (*)помечены необходимые нам ад-
; реса размещения сохраняемого блока.
; Их нужно запомнить.
Подпрограмма #0556 прерывается при нажатии на BREAK. Для пре-
дотвращения этого изменяют программу вызова процедуры:
LOAD_C LD IX,START; Длина и адрес передаются так же.
LD DE,LENG ;
LD A,NN ;
SCF ;
INC D ;
EX AF,AF' ;
DEC D ;
DI ;
LD A,15 ;
OUT (254),A;
CALL #0561 ;
LD A,7 ;
OUT (254),A;
EI ;
RET ;
Эту процедуру обычно оформляют в виде подпрограммы:
LD IX,START
LD DE,LENG
LD A,FLAG
CALL LOAD_C
......
1.2 Запись.
Подпрограмма записи выглядит так:
SAVE LD IX,HEAD ; Параметры - такие же, как в LOADER'e.
LD DE,#11 ;
LD A,0 ;
CALL #04C2 ;
LD IX,START;
LD DE,LENG ;
LD A,#FF ;
CALL #04C2 ;
RET ;
Если заменить CALL #04C2 на CALL #04C6, то не будет прерывания
по BREAK.
Другие статьи номера:
Как переделывать игры - подпрограммы работающие с лентой. |
Как переделывать игры - поиск подпрограмм работающих с лентой. |
Как переделывать игры - подпрограммы работы с диском. |
Похожие статьи:
В этот день... 1 марта
ACNews #67,
Sinc Re-Stared #03,
Cossackos #01,
Life #03,
Spectrum Magazine #03,
Screamergy #03,
Promised Land #04,
IzhNews #0D,
TargeT #10,
IzhNews #0D,
ACNews #07,
Polesse #18,
Dni-Pro #01,
C-Net Week #22,
Demo or Die #01,
ZX Club #07,
Sorrow News #01,
Depth #02,
Gorodok #04,
Adventurer #06,
Buzz #01,
ZX News #03,
Emulate #05,
Speccy #04,
ZX Format #03,
Realtime #02,
Adventurer #02,
Spectrofon #03,
Spectrum News #01,
ZX Revija #03