Важная информация

User Tag List

Показано с 1 по 7 из 7

Тема: Запуск бесик файлов

  1. #1
    Master Аватар для Keeper
    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Question Запуск бесик файлов

    Нужен код для запуска бейсик файлов (для бута) Встречал два варианта: через ком строку и с использованием потрохов тыр-доса. Какой из них наименее "глючный" в плане совместимости с софтом? Может у кого нибудь есть готовый код? Основной критерий - как можно меньший объем.


    Модераторы, подредактируйте название топика, плз.
    Последний раз редактировалось Keeper; 01.06.2010 в 21:13.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Бейсик бута:
    10 randomize usr 15619: rem: load "boot" code 25000
    20 randomize usr 25000
    30 randomize usr 15619: rem: run "name "

    В своем буте перед выходом в строке 30 меняешь "name " на выбраный бейсик файлик, делаешь корректный выход из кода и все

    ld hl,адрес выбранного имени бейсик файла
    ld de,поглядеть в дебагере по какому адресу будет name
    ld bc,8
    ldir

    Ну самый корректный способ (я так раньше делал и не заморачивался)

  4. #3
    Master Аватар для Keeper
    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GM BIT Посмотреть сообщение
    Бейсик бута:
    Уточняю, сам бут это часть прошивки ПЗУ. Но ход мыслей понятен...

    ---------- Post added at 05:00 ---------- Previous post was at 04:53 ----------

    Код инициализации переменных взял из тыр-доса:

    Код:
    INIT_BASIC_VARS         LD      DE,#FFFF
                            LD      (#5CB4),DE          ;установка P_RAMT
                            LD      HL,#3EAF            ;адрес символов для UDG
                            LD      BC,#A8              ;длина UDG - #A8 байтов
                            LD      (#5F00),HL          ;сохранение адреса символов для UDG
                            LDDR
                            INC     DE
                            LD      (#5C7B),DE          ;установка переменной UDG
                            DEC     DE                  ;следующий адрес
                            LD      (#5CB2),DE          ;установка RAMTOP
                            LD      BC,#0540            ;установка RASP и PIP
                            LD      (#5C38),BC
                            LD      HL,#3C00            ;установка CHARS
                            LD      (#5C36),HL
                            LD      HL,(#5CB2)          ;берем адрес RAMTOP
                            LD      (HL),#3E            ;признак конца стека GO SUB
                            DEC     HL                  ;следующий адрес
                            DEC     HL                  ;установка ERR_SP
                            DEC     HL
                            LD      (#5C3D),HL
                            LD      IY,#5C3A            ;установка регистра IY
                            LD      DE,#5CB6            ;установка CHANS
                            LD      (#5C4F),DE
                            LD      HL,#15AF            ;адрес области описателей каналов в ПЗУ бейсика
                            LD      BC,#15              ;ее длина - #15 байт
                            LDIR
                            EXD
                            DEC     HL                  ;установка DATADD
                            LD      (#5C57),HL
                            INC     HL                  ;следующий адрес
                            LD      (#5C53),HL          ;установка PROG
                            LD      (#5C4B),HL          ;установка VARS
                            LD      (HL),#80            ;конец области
                            INC     HL                  ;следующий адрес
                            LD      (#5C59),HL          ;установка E_LINE
                            LD      (HL),#0D            ;конец строки
                            INC     HL                  ;следующий адрес
                            LD      (HL),#80            ;конец области
                            INC     HL                  ;следующий адрес
                            LD      (#5C61),HL          ;установка WORKSP
                            LD      (#5C63),HL          ;установка STKBOT
                            LD      (#5C65),HL          ;установка STKEND
                            LD      A,#38               ;атрибуты экрана
                            LD      (#5C8D),A           ;установка ATTR_P
                            LD      (#5C8F),A           ;установка ATTR_T
                            LD      (#5C48),A           ;установка BORDER
                            LD      HL,#0223            ;установка REPDEL и REPPER
                            LD      (#5C09),HL
                            DEC     (IY-#3A)            ;клавиши не нажаты
                            DEC     (IY-#36)
                            LD      HL,#15C6            ;адрес таблицы STRMS в ПЗУ бейсика
                            LD      DE,#5C10            ;адрес переменной STRMS
                            LD      BC,#0E              ;длина таблицы - #18 байта
                            LDIR
                            SET     1,(IY+1)            ;открыт поток 3
                            CALL    #0EDF               ;инициализация буфера принтера и экрана
                            LD      HL,#5C6B            ;буфер принтера использовался
                            LD      (HL),2
                            JP      #1655               ;MAKE_ROOM
    тыр-дос инициализируется через CALL #3D21

  5. #4
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Deja Vu #05
    http://www.zxpress.ru/article.php?id=7902 Загрузка и запуск бейсик-файлов.

  6. #5
    Member Аватар для Faster
    Регистрация
    22.06.2005
    Адрес
    Ульяновск
    Сообщений
    161
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Keeper Посмотреть сообщение
    Нужен код для запуска бейсик файлов (для бута) Встречал два варианта: через ком строку и с использованием потрохов тыр-доса. Какой из них наименее "глючный" в плане совместимости с софтом? Может у кого нибудь есть готовый код? Основной критерий - как можно меньший объем.
    Вот, самый оптимальный вариант (в двух вариациях), имхо:

    Код:
    	LD	SP,#FF54
    	LD	HL,#1303
    	PUSH	HL		;включаем rom 1
    	LD	(#5C3D),SP
    	RES	4,(IY+1)
    
    ;	LD	A,0		;дисковод (0-A, 1-B...) (при необходимости)
    ;	LD	(#5D19),A
    
    	LD	HL,LINE
    	LD	(#5C5D),HL
    
    ;	JP	#3D03
    
    	LD	HL,#016C
    	PUSH	HL
    	JP	#3D2F
    
    LINE	DB	#EA,#3A,#F7,#22,"boot    ",#22,#D
    Последний раз редактировалось Faster; 02.06.2010 в 11:29.
    Когда на твой вопрос отвечает философ, перестаешь понимать вопрос

  7. #6
    Master Аватар для Prusak
    Регистрация
    28.02.2005
    Адрес
    г.Минск
    Сообщений
    643
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    19
    Поблагодарили
    15 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А если бейсик-программа уже в памяти компьютера и системные переменные все проинициализированы, то как запустить программу с определённой строки?

    Я пробовал делать запуск методом, как описано в Deja Vu #05, но он в моём случае не работает (виснет компьютер).
    Заяц-прусак
    zxbyte.ru- компьютер Байт и прочий хлам

  8. #7
    Moderator Аватар для BYTEMAN
    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    8,394
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    178
    Спасибо Благодарностей получено 
    115
    Поблагодарили
    57 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    немного про это написано в ZX-Ревю №5/1994.
    С уважением, Александр.
    Scorpion ZS-256 Turbo+ GMX-2048
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Запуск Пентагон 128
    от Egal в разделе Pentagon
    Ответов: 258
    Последнее: 07.06.2018, 20:13
  2. Запуск Ленинграда48k
    от KingArthur в разделе Ленинград
    Ответов: 201
    Последнее: 21.07.2017, 11:43
  3. Запуск материнки от YIS-805
    от tntpro в разделе MSX
    Ответов: 20
    Последнее: 15.05.2010, 19:31
  4. Неустойчивый запуск TR-DOS
    от andrew76 в разделе Внешние накопители
    Ответов: 12
    Последнее: 20.03.2007, 17:01

Ваши права

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