User Tag List

Страница 5 из 17 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 217

Тема: Техраздел UZIX

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от alx32 Посмотреть сообщение
    Ещё вопрос, образ под SD или IDE?
    В выходные хочу достать свой Орион-512 и потестить...
    Образ универсальный, заливать можно 1:1 хоть на IDE, хоть на SD (изменится только Монитор-загрузчик или пункт в MBOOT). От устройства IDE/SD зависит только как в CP/M должен запускаться драйвер idebdos (он запускается из autoexec.bat перед UZIX). Для IDE он запускается без параметров, для варианта SDCard он запускается с параметром SD.

    Если параметр выставлен несоответствующим (т.е. выставлен в варианте для отсутствующего устройства), то просто IDEBDOS не загрузится резидентом и ЮЗИКС не стартанет тоже, останемся в промпте CPM.
    Тогда можно будет ручками набрать
    idebdos sd
    uzix 2:

    или
    idebdos
    uzix 2:


    Если IDEBDOS загрузился но криво, его в CP/M можно грохнуть (выгрузить из памяти) командой
    kill idebdos*

    Также есть особенности монтирования устройств (см. команды ASSIGN в config.sys в user 0), но загрузится при любых настройках, - диск С: будет всегда
    Последний раз редактировалось Error404; 13.02.2015 в 13:07.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

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

  3. #2

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Начал ковырять исходники LIBC.
    Первая проблема которую предстоит решить в том, что компилятор прогеры Юзикс на самом то деле использовали какой-то более продвинутый, чем используемая мной сохранившаяся в PublicDomain HitechC CP/M-версия 3.09 образца 1987 года, не понимающая оператор asm("operand") в C-коде, или вот такие ассемблерные конструкции в ASM-коде:
    Код:
    	psect	text,class=CODE
    	psect	strings,class=CODE
    	psect	const,class=CODE
    	psect	data,class=DATA
    	psect	bss,class=DATA
    	psect	_bssend,class=DATA
    или
    Код:
    	global	_access
    	signat	_access,8250
    	global	_exit
    	signat	_exit,4152	; arg in DE
    Выделенное жирным, HitechC v3.09 образца 1987 года не понимает от слова совсем.

    Собственно, это не новость, я с этим столкнулся еще в ядре. Но там этого встречалось мало и я тупо взял и переписал по смыслу. А тут надо будет обдумать и как передаются параметры (v3.09 образца 1987 года не умеет никак кроме как по стеку, а в исходника мы видим размещение в регистрах, причем несколько вариантов в зависимости от числа в signat), и как после С-компиляции сегменты в исполняемом бинаре лягут - надо чтобы в требуемом порядке.
    Последний раз редактировалось Error404; 29.01.2015 в 15:12.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  4. #3

    Регистрация
    13.12.2007
    Адрес
    Архангельск
    Сообщений
    2,189
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    13 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Начал ковырять исходники LIBC.
    Первая проблема которую предстоит решить в том, что компилятор прогеры Юзикс на самом то деле использовали какой-то более продвинутый, чем используемая мной сохранившаяся в PublicDomain HitechC CP/M-версия 3.09 образца 1987 года, не понимающая оператор asm("operand") в C-коде, или вот такие ассемблерные конструкции в ASM-коде:
    Код:
    	psect	text,class=CODE
    	psect	strings,class=CODE
    	psect	const,class=CODE
    	psect	data,class=DATA
    	psect	bss,class=DATA
    	psect	_bssend,class=DATA
    или
    Код:
    	global	_access
    	signat	_access,8250
    	global	_exit
    	signat	_exit,4152	; arg in DE
    Выделенное жирным, HitechC v3.09 образца 1987 года не понимает от слова совсем.

    Собственно, это не новость, я с этим столкнулся еще в ядре. Но там этого встречалось мало и я тупо взял и переписал по смыслу. А тут надо будет обдумать и как передаются параметры (v3.09 образца 1987 года не умеет никак кроме как по стеку, а в исходника мы видим размещение в регистрах, причем несколько вариантов в зависимости от числа в signat), и как после С-компиляции сегменты в исполняемом бинаре лягут - надо чтобы в требуемом порядке.
    забавно UZI180 собрана им. а она вроде позже написана.
    ты не смотрел ее исходники?
    Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
    zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)

  5. #4

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Totem Посмотреть сообщение
    забавно UZI 180 собрана им. а она вроде позже написана.
    ты не смотрел ее исходники?
    Когда-то давно смотрел исходники первой UZI, которая для Z80. Там автор прямо писал, что использовал Codeworks C (который вообщето малоинтересен т.к. не ANSI и не умеет long). А так - да, про UZI Z180 пишут, что использовался HitechC (опять же не пишут какой версии, а про него известна версия 3,09 для Z80, 5.х мультиплатформенная древняя платная - подозреваю ею и компилировали MSX UZIX, и 7х современные платные):
    https://groups.google.com/forum/#!to...pm/xbcVQ8vt_TU

    UZI для меня менее интересен чем UZIX, т.к. последний болеее развит, и имеет все исходники (ядро, приложения, libc), а для UZI сохранились только исходники ядра (по крайней мере начальной версии от Z80)

    Как бы там ни было, придумал как все будет в LIBC со стареньким HitechC v3.09, осталась мелочь - начать да закончить.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  6. #5

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Теряюсь в догадках. Какого хека?
    Восьмеричная система.

  7. #6

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    А как отличать от десятичных констант
    скорее всего во всех исходниках в пределах архива константы в восьмеричной системе - я думаю это перешло от компов pdp-11.

  8. #7

    Регистрация
    01.03.2011
    Адрес
    Stamford
    Сообщений
    336
    Спасибо Благодарностей отдано 
    46
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Отчего именно ТАК переполняется, надо смотреть как в компиляторе устроен алгоритм преобразования строки в int.
    А приведение к long не помогает?
    В стиле
    #define S_IFMT ((long)0170000) /* file type mask */

    ---------- Post added at 12:13 ---------- Previous post was at 12:12 ----------

    Возможно, лидирующие нули означают восьмиричное число. Я и забыл уже

  9. #8

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от PPC Посмотреть сообщение
    Отчего именно ТАК переполняется, надо смотреть как в компиляторе устроен алгоритм преобразования строки в int.
    А приведение к long не помогает?
    В стиле
    #define S_IFMT ((long)0170000) /* file type mask */

    ---------- Post added at 12:13 ---------- Previous post was at 12:12 ----------

    Возможно, лидирующие нули означают восьмиричное число. Я и забыл уже
    Не, меня то что С как-то сам с этим разбирается устраивает вполне. Просто я сейчас некоторые функции из LIBC на ассемблере переписал, а раньше они были на С. Соответственно начал с константами разбираться и по первости не сразу врубился, потому что там записано прям рядом такое:
    #define S_IFCHR 0020000 /* character special */
    #define S_IFPIPE 0010000 /* pipe */
    и такое:
    #define S_VAR1 8 /* something */
    #define S_VAR2 9 /* something */
    причем первое - восьмеричное, а второе десятичное.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  10. #9

    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  11. #10

    Регистрация
    26.03.2005
    Адрес
    Ivanovo
    Сообщений
    640
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    Подозреваю что в компиляторе где-то прописано(а возможно так сделано по умолчанию и не меняется) что число из восьми цифр считается восьмеричным, а любое другое десятичным.
    неспроста там нули в начале. )
    Ну каг-бэ: 0xЧисло - шестнадцатеричная, 0число - восьмеричная. И такое уже очень с давних времен тянется. Количество цифр не играет никакой роли в данном случае.

Страница 5 из 17 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 0
    Последнее: 24.02.2009, 12:31
  2. и еще раз о uzix
    от sysop в разделе Оси
    Ответов: 33
    Последнее: 25.08.2006, 14:35

Ваши права

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