ZXNet эхоконференция «code.zx»


тема: RUN BASIC FILE



от: Aleksandr Majorov
кому: Vyacheslav Kalinin
дата: 03 Apr 2000

Хаюшки, Vyacheslav!

Как-то 24-03-00 примерно в 21:44:00 некто Vyacheslav Kalinin сообщил(а/о)
для All о том, что "RUN BASIC FILE"

[ ]

VK> Hужна как можно скорее прога запуска бейсик фалов,у мня есть
VK> своя но она как то странно работает,тоесть когда я ее запускаю
VK> после ассеблирования из шторма то она запускает мне файл,если
VK> запускать ее из реал командера или из бествьювера то тоже запу

Конкретизируй.
Что за прога, по какому принципу работает и т.д...

VK> скает файлы,а вот если запускать из байсика или тр-доса то она
VK> вроде начинает что-то грузить,а потом збрасывается.

Какая-то недоработка со стеком, системными переменными BASIC,
и тому подобное.

Я это делаю так:

LD A,#C9: LD (#5CC2),A

;ВЫБОР ТЕКУЩЕГО ДИСКОВОДА
;в принципе можно это и не городить,
;но в ММДе я эти переменные могу и грохнуть.
LD A,(#5D16): AND 3: PUSH AF
OR #3C: LD (#5D16),A: POP AF
LD (23800),A: LD (23801),A
LD (23833),A

;внимание!!! В этом месте осторожно!
;тут я просто восстанавливаю некоторые
;системные переменные, которые активно
;юзаю "для себя".
;ессно при активизации системы в адреса
; PROG_49+1, PROG_ST+1, PROG_2+1
;записываются оригинальные значения
;этих переменных.
PROG_49 LD HL,#2121: LD (#5C09),HL
PROG_ST LD HL,#2121
LD (IY+1),L: LD (IY+48),H
PROG_2 LD HL,#2121: LD (#5C38),HL
LD (IY+14),#38

;я не помню откуда я это выудил,
;но этот вариант работает весьма хорошо.
;Фактически я делаю CLEAR 65367, что-то
;еще для установки BASIC, и после этого
;выполняется RAND USR 15619: REM: RUN "???"
LD HL,#15AF: LD DE,(#5C4F)
LD B,0: LD C,H: LDIR
LD DE,(#5C53)
LD DE,23867
LD HL,RUN_COM
LD C,17: LDI: LD (#5C5D),DE
LDIR
LD HL,#5FFF: LD (#5CB2),HL
LD H,L: LD (#5CB4),HL
LD HL,#FF57: LD (#5CB2),HL
INC HL: LD SP,HL
LD (IY+0),H
LD HL,#3E00: PUSH HL
LD HL,#1303: PUSH HL
LD (#5C3D),SP
LD HL,#1B76: PUSH HL
LD HL,#2758: EXX
EI: JP #3D03

; :REM:RUN"??"ENT
RUN_COM DB #80,58,234,58,247,34
TESTSP DB " ",34,32,13,#80
;а вот сюда ^^^^^^^^^ мы пишем
;имя программы для запуска.
;Причем пишем все 8 символов, т.е.
;если имя короче, то все остальные
;символы делаем пробелами.

Hу вот и все *MAS* с кувалдой




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

Похожие статьи:
News - Барнаульская олимпиада по информатике 1997 года.
Тусовка - Знакомство с новым (6-м по счету ;-)) поинтом нашей сети.
Игры - TWINZ!, TETRIS 2.
Сочи'97 - Consul party: рассказ о Сочинской тусовке.
b0nus pAck - body #20.zip

В этот день...   19 апреля