User Tag List

Страница 5 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 41 по 50 из 52

Тема: Где скачать ассемблер для эмулятора 800win

  1. #41

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добавлю... Enter Esc Anykey Arrows работают.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  2. #42

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот вопрос denpopov оказался СУЩЕСТВЕННЫМ!
    ... к чему постоянные конструкции BEGIN-END?

    Я долго искал и нашел.
    Это оказалась сложная конструкция, исполняющая разные функции при компиляции для разных задач.

    Например для процедуры MAIN() BEGIN производит подсчёт адреса начала скомпилированных машинных кодов, а END определяет их конец, то есть это адреса для создания полноценного атарьского *.COM файла.

    Для обычных вызываемых процедур BEGIN производит все необходимые PLA для передачи параметров (только для своего программного, а не для аппаратного атарьского стека), а END производит все необходимые PHA, RTS для правильного выхода из программы.

    Для процедур INTERRUPT, BEGIN делает то же, что и для обычных процедур, а END к тому же возвращает RTI.

    В случае, если процедура должна возвращать данные, то есть является функцией, её END также кладёт возвращаемое на программный стек.

    И наконец, в случае применения ПРИМАТИВНЫХ процедур, (От слова ПРИМАТЫ) то есть процедур, являющимися только исполняемыми машинными кодами, BEGIN и END являются только адресами входа и выхода.

    Вот например как устанавливается VBI в PL65:

    Код:
    PROC SetVBI*()
    BEGIN
      STX XSAVE
      LDA #$06
      LDX #VBI/256
      LDY #VBI AND $FF
      JSR SETVBV
      LDX XSAVE
    END

    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  3. #43

    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    странный пример, конечно.
    по идее в прерывании должны X и Y сохраняться, если задействованы.

  4. #44

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На самом деле, это делает сам язык при BEGIN, однако он не сохраняет регистр X !

    В PL65 регистр X используется только при работе с программным стеком языка, поэтому если он нужен в коде, сначала его сохраняют в XSAVE - (байт на нулевой странице), а потом восстанавливают.

    Не во всяком языке ассемблер встроен, а где встроен, так там та ещё морока.

    Кстати, я на PL65 перегнал руссификатор, который изначально на Си.
    Мучался недельку методом тыка, потом прочитал мануал и вуаля!
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  5. #45

    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ezswift Посмотреть сообщение
    На самом деле, это делает сам язык при BEGIN, однако он не сохраняет регистр X !
    а регистр Y?

    Цитата Сообщение от ezswift Посмотреть сообщение
    Мучался недельку методом тыка, потом прочитал мануал и вуаля!
    было бы интересно взглянуть.

  6. #46

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Регистры A и Y сохраняются при вызове BEGIN и восстанавливаются при вызове END автоматически.

    Вот сорц программульки:
    Код:
    INCLUDE TERMINAL.LIB
    
    CONST EN=$E0 BYTE RU,OLDCONS
    BYTE CONSOL=$D01F,COLBAK=$02C8,CHBAS=$02F4
    CONST BLUE=$80,RED=$32,SELECTED=$05
    CONST SETVBV=$E45C,SYSVBV=$E45F,XITVBV=$E462
    STRING FName$[20]
    
    BYTE BumpUp[$400-(@ AND $3FF)],NewCSet[$400]
    
    PROC VBI*()
    BEGIN
        LDA CONSOL
        CMP OLDCONS BEQ Exit
        CMP #SELECTED BNE Exit
    !
        LDA COLBAK
        CMP #RED BNE ToRED
    !
        LDA #BLUE STA COLBAK
        LDA #EN STA CHBAS
        GOTO Exit
    :ToRED
        LDA #RED STA COLBAK
        LDA RU STA CHBAS
    :Exit
        LDA CONSOL STA OLDCONS
        JMP SYSVBV
    END
    
    PROC SetVBI*()
    BEGIN
      STX XSAVE
      LDA #$06
      LDX #VBI/256
      LDY #VBI AND $FF
      JSR SETVBV
      LDX XSAVE
    END
    
    MAIN()
    BEGIN
      FName$="D1:RUS.FNT"
      COLBAK=BLUE CHBAS=EN
      RU=.NewCSet/256
      OPEN(1,4,0,FName$)
      GCHAR(1,.NewCSet,$400)
      CLOSE(1)
      SetVBI*()
    END


    А во вложении atr
    Я только заменил расширение на zip, и надо переименовать в atr.

    Сейчас пытаюсь сделать программу управления языком резидентной, чтобы по ресету не сбрасывалась.
    Теорию ещё не знаю, пока читаю чужие коды.
    Вложения Вложения
    • Тип файла: zip PL65.zip (179.6 Кб, Просмотров: 54)
    Последний раз редактировалось ezswift; 26.03.2014 в 16:58.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

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

  8. #47

    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    запустил fld.com, а русских букв не видать. я что-то неправильно сделал?

    все же мне думается, что тот вариант, который я сделал, проще. Это ребята из кооператива "Формат" написали, мы немного модифицировали потом русификатор, по Reset подпрограмма рестартует, но я не помню как делали..

  9. #48

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Надо набрать FLD.
    Когда рамка станет синей для переключения шрифта надо нажать Select. А потом писать русские буквы.

    Мне не подходит рестарт программы по Reset, так как она читает шрифт с диска.
    Нехорошо каждый раз загружать шрифт.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

  10. #49

    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ezswift Посмотреть сообщение
    Нехорошо каждый раз загружать шрифт.
    поэтому я и сделал autorun.sys

  11. #50

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я думаю, я добью эту программку...

    Она будет ЛЮБОЙ шрифт подгружать, даже, переключаемый по Caps.
    (Типа по звучанию, как KOI-8 Z=З и пр.)

    На самом деле, мне эта программа вообще не интересна.
    Я - учу PL65.

    Там столько неведомого, что ВАЩЕ!
    Я очень люблю Си, но Это - сухая выжимка из компьютерного опыта.

    А PL65 = САМ компьютерный опыт!
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

Страница 5 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Похожие темы

  1. С эмулятора в ZxNet
    от Kakos_nonos в разделе Эмуляторы
    Ответов: 12
    Последнее: 19.10.2011, 06:38
  2. playlist для эмулятора
    от daniel в разделе Эмуляторы
    Ответов: 16
    Последнее: 06.09.2011, 14:43
  3. как сделать без эмулятора
    от женя999 в разделе Эмуляторы
    Ответов: 6
    Последнее: 08.04.2009, 20:38
  4. Работа с НМЛ из эмулятора
    от Error404 в разделе Эмуляторы
    Ответов: 6
    Последнее: 28.11.2007, 23:29
  5. Как сократить код эмулятора Z80 на PC
    от Vladimir Kladov в разделе Эмуляторы
    Ответов: 27
    Последнее: 01.02.2006, 21:18

Ваши права

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