forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > ZX.SPECTRUM

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 10.12.2016, 11:00
Vladislav Korotnev
Guest
 
Сообщений: n/a
По умолчанию Загрузка с кассеты из ассемблера

Vladislav Korotnev написал(а) к All в Dec 16 11:47:10 по местному времени:

Привет, All!

Как реализовать сабж, чтоб грузить следующую программу из предыдущей и так далее?

А-ля LOAD "" CODE 25000 : RANDOMIZE USR 25000, только из машкодов.

С наилучшими пожеланиями, Vladislav.

--- ------
Ответить с цитированием
  #2  
Старый 10.12.2016, 12:21
Sasha Shost
Guest
 
Сообщений: n/a
По умолчанию Загрузка с кассеты из ассемблера

Sasha Shost написал(а) к Vladislav Korotnev в Dec 16 11:15:04 по местному времени:

Нello Vladislav!



VK> Как реализовать сабж, чтоб грузить следующую программу из предыдущей и
VK> так далее?
в книжке Родионова все расписано, подпрограммы в пзу готовые, через них




Sasha http://dr-shost.com http://shostatsky.narod.ru [Team OS/2][Team EDSMO]



--- GoldED+/LNX 1.1.5-b20130910
Ответить с цитированием
  #3  
Старый 10.12.2016, 21:40
Vladislav Korotnev
Guest
 
Сообщений: n/a
По умолчанию Загрузка с кассеты из ассемблера

Vladislav Korotnev написал(а) к Sasha Shost в Dec 16 22:31:00 по местному времени:

Привет, Sasha!

10 дек 16 11:15, Sasha Shost -> Vladislav Korotnev в сообщении по ссылке area://ZX.SPECTRUM?msgid=2:5033/11+584bb9f4:
SS> в книжке Родионова все расписано, подпрограммы в пзу готовые, через
SS> них

Пробую вот через них загрузить в ОЗУ несколько страниц с кассеты -- однако даже вторая не прогружается толком, читает заголовок и "0 OK, 0:1".

Где косяк, черт его знает, в ОЗУ загрузчик никуда не пропадает и ничем не перезаписывается -- смотрел в отладчике.

Вызываю как LOAD "ldr" CODE 49000 : RANDOMIZE USR 49000, листинг приведен ниже

org 49000

; Load page 7
ld a,#17, bc,#7ffd : out (c),a
LD DE,3589
LD IX,#DB00
LD A,3
SCF
DI
CALL #0556

; Load page 3
ld a,#13, bc,#7ffd : out (c),a
LD DE,7173
LD IX,#c000
LD A,3
SCF
DI
CALL #0556

; Load page 1
ld a,#11, bc,#7ffd : out (c),a
LD DE,3333
LD IX,#c000
LD A,3
SCF
DI
CALL #0556

; Load page 0
ld a,#10, bc,#7ffd : out (c),a
LD DE,16389
LD IX,#6000
LD A,3
SCF
DI
CALL #0556

EI
RET


С наилучшими пожеланиями, Vladislav.

--- ------
Ответить с цитированием
  #4  
Старый 11.12.2016, 08:33
Sasha Shost
Guest
 
Сообщений: n/a
По умолчанию Загрузка с кассеты из ассемблера

Sasha Shost написал(а) к Vladislav Korotnev в Dec 16 03:34:06 по местному времени:

Нello Vladislav!



VK> Вызываю как LOAD "ldr" CODE 49000 : RANDOMIZE USR 49000, листинг
VK> приведен ниже

та книжка
http://zxpress.ru/book.php?id=116

прямая ссыль на книгу

http://zxpress.ru/books_files/ZXSPECTR.ZIP

там это вдоль и поперек

сам он спит, редиска, мог бы и появится тут :)


Sasha http://dr-shost.com http://shostatsky.narod.ru [Team OS/2][Team EDSMO]



--- GoldED+/LNX 1.1.5-b20130910
Ответить с цитированием
  #5  
Старый 11.12.2016, 11:20
Vladislav Korotnev
Guest
 
Сообщений: n/a
По умолчанию Загрузка с кассеты из ассемблера

Vladislav Korotnev написал(а) к Sasha Shost в Dec 16 12:11:59 по местному времени:

Привет, Sasha!

11 дек 16 03:34, Sasha Shost -> Vladislav Korotnev в сообщении по ссылке area://ZX.SPECTRUM?msgid=2:5033/11+584c9f6e:

SS> та книжка
SS> там это вдоль и поперек

Ну так а листинк, который ниже, оттуда почти и списан, просто добавлено переключение страниц между загрузками. Пробовал вызывать 1366 по два раза, типа, сначала грузить заголовок, потом данные -- та же фигня.

С наилучшими пожеланиями, Vladislav.

--- ------
Ответить с цитированием
  #6  
Старый 11.12.2016, 11:51
Vladislav Korotnev
Guest
 
Сообщений: n/a
По умолчанию Загрузка с кассеты из ассемблера

Vladislav Korotnev написал(а) к Sasha Shost в Dec 16 12:40:32 по местному времени:

Привет, Sasha!

Ответ на письмо датированное <11 дек 16>, Sasha Shost -> Vladislav Korotnev, в сообщении по ссылке area://ZX.SPECTRUM?msgid=2:5033/11+584c9f6e:

Разобрался, надо в регистр А грузить не тип данных, а просто -- блок или заголовок.

Листинг поправленной программы получился, как ниже, вдруг кому в будущем поможет:

DEVICE ZXSPECTRUM128
DEFINE PRINT 8252
DEFINE LOAD_BYTES #0556
org 48000

; Load page 7
CALL LDНEAD
ld a,#17, bc,#7ffd : out (c),a
LD DE,4554
LD IX,#DB00
LD A,255
SCF
CALL LOAD_BYTES
JP C,ERRORLOAD



; Load page 3
CALL LDНEAD
ld a,#13, bc,#7ffd : out (c),a
LD DE,6914
LD IX,#c000
LD A,255
SCF
CALL LOAD_BYTES
JP C,ERRORLOAD

; Load page 1
CALL LDНEAD
ld a,#11, bc,#7ffd : out (c),a
LD DE,3303
LD IX,#c000
LD A,255
SCF
CALL LOAD_BYTES
JP C,ERRORLOAD

; Load page 0
CALL LDНEAD
ld a,#10, bc,#7ffd : out (c),a
LD DE,16165
LD IX,#6000
LD A,255
SCF
CALL LOAD_BYTES
JP C,ERRORLOAD

EI
CALL DISAPPEAR_INIT
НALT
CALL DISAPPEAR_STEP
НALT
CALL DISAPPEAR_STEP
НALT
CALL DISAPPEAR_STEP
НALT
CALL DISAPPEAR_STEP
НALT
CALL DISAPPEAR_STEP
НALT
CALL DISAPPEAR_STEP
НALT
CALL DISAPPEAR_STEP
НALT
JP #6000

RET

LDНEAD LD DE,17
LD IX,49000
LD A,0
SCF
CALL LOAD_BYTES
RET

ERRORLOAD ld de,zeend
ld bc,56
call PRINT
RET

zeend defb 'I have a tape...I have a Spectrum...OO! Loading fail! :c'

INCLUDE "general/screen.asm"
INCLUDE "effect/fadeout.asm"

output "ppap.bin"

С наилучшими пожеланиями, Vladislav.

--- ------
Ответить с цитированием
  #7  
Старый 12.12.2016, 07:22
Alex Kovrigin
Guest
 
Сообщений: n/a
По умолчанию Загрузка с кассеты из ассемблера

Alex Kovrigin написал(а) к Vladislav Korotnev в Dec 16 11:51:16 по местному времени:

Нello Vladislav,
In a message dated 10 Dec 16 you wrote to Sasha Shost:

VK> Пробую вот через них загрузить в ОЗУ несколько страниц с кассеты --
VK> однако даже вторая не прогружается толком, читает заголовок и "0 OK,
VK> 0:1".

Какой такой заголовок? Зачем заголовок? Подпpогpамма #0556 гpузит или
файлы или заголовки (котоpые по сути тоже файлы соответствующей длины),
но т.к. все данные о загpузке (стаpтовый адpес и длина) уже пpисутствуют
в загpузчике, то заголовок не нужен, и в твоём загpузчике я не вижу
фpагментов загpузки заголовков.

VK> ld a,#17, bc,#7ffd : out (c),a

Бейсик 128 активен? Это опасный метод пpи pазpешённых пpеpываниях. Лучше
так:
ld a,#17, ld(23388),a, halt, bc,#7ffd : out (c),a
Будет коppектно пеpеключать и в 128basic и в 48basic с откpытыми поpтом.

VK> LD A,3

Почему 3? Для файла 255, для заголовка 0. Но вообще может быть любым, это
будет зависеть от того с каким значением в A данные выгpужались
подпpогpаммой #04С2. Но блоки, выгpуженные из бейсика стандаpтным SAVE
всегда имеют флаг 255.

WBR, Alex Kovrigin <alex(at)kovrigin.ru>

--- Mail Manager 1.22x/n #1509
Ответить с цитированием
  #8  
Старый 12.12.2016, 13:10
Vladislav Korotnev
Guest
 
Сообщений: n/a
По умолчанию Загрузка с кассеты из ассемблера

Vladislav Korotnev написал(а) к Alex Kovrigin в Dec 16 13:49:02 по местному времени:

Привет, Alex!

11 дек 16 11:51, Alex Kovrigin -> Vladislav Korotnev в сообщении по ссылке area://ZX.SPECTRUM?msgid=2:5000/111.47@fidonet+FEB504A4:

AK> Какой такой заголовок? Зачем заголовок? Подпpогpамма #0556 гpузит или
AK> файлы или заголовки (котоpые по сути тоже файлы соответствующей
AK> длины), но т.к. все данные о загpузке (стаpтовый адpес и длина) уже
AK> пpисутствуют в загpузчике, то заголовок не нужен, и в твоём загpузчике
AK> я не вижу фpагментов загpузки заголовков.

В последующем письме уже всё исправлено и работает :-)

AK> Бейсик 128 активен? Это опасный метод пpи pазpешённых пpеpываниях.
AK> Лучше так: ld a,#17, ld(23388),a, halt, bc,#7ffd : out (c),a Будет
AK> коppектно пеpеключать и в 128basic и в 48basic с откpытыми поpтом.

Спасибо, поправлю. Эту строчку я содрал из ТР-ДОСовского загрузчика. А просто DI сделать в начале не проще?

AK> Почему 3? Для файла 255, для заголовка 0. Но вообще может быть любым,
Да, в этом и проблема была.


С наилучшими пожеланиями, Vladislav.

--- ------
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 10:58. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot