#1
|
|||
|
|||
Загрузка с кассеты из ассемблера
Vladislav Korotnev написал(а) к All в Dec 16 11:47:10 по местному времени:
Привет, All! Как реализовать сабж, чтоб грузить следующую программу из предыдущей и так далее? А-ля LOAD "" CODE 25000 : RANDOMIZE USR 25000, только из машкодов. С наилучшими пожеланиями, Vladislav. --- ------ |
#2
|
|||
|
|||
Загрузка с кассеты из ассемблера
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
|
|||
|
|||
Загрузка с кассеты из ассемблера
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
|
|||
|
|||
Загрузка с кассеты из ассемблера
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
|
|||
|
|||
Загрузка с кассеты из ассемблера
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
|
|||
|
|||
Загрузка с кассеты из ассемблера
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
|
|||
|
|||
Загрузка с кассеты из ассемблера
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
|
|||
|
|||
Загрузка с кассеты из ассемблера
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. --- ------ |