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

User Tag List

Страница 5 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 41 по 50 из 70

Тема: ПК8000 - Уточнённое описание архитектуры и программ.

  1. #41
    Member Аватар для demetrius2003
    Регистрация
    29.09.2010
    Адрес
    Новокузнецк
    Сообщений
    156
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Друзья!
    Как можно автоматизировать процесс переноса скомпиленного кода в эмулятор? Вот сейчас я ассемблером собираю прожку, делаю дамп этой проги, открываю в эмуляторе дебагер, иду в дампе дебагера на адрес &h5000 и забиваю вручную байты со своего дампа. И так каждый раз! Если что-то меняется в начале программы, то дамп приходится перенабирать заново, что очень неудобно! Программки то становятся всё длиннее и длиннее!

  2. #42
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Компилируй в CAS формат и затем в эмуляторе:
    BLOAD "Имя", R

  3. #43
    Member Аватар для demetrius2003
    Регистрация
    29.09.2010
    Адрес
    Новокузнецк
    Сообщений
    156
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Получается! Только bload "tstprg" без R, а далее x=urs(&h5000)

    Код:
    	ORG 0x5000-0x26
    	DB 0x1F, 0xA6, 0xDE, 0xBA, 0xCC, 0x13, 0x7D, 0x74
    	DB 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0
    	DB 'tstprg'
    	DB 0x1F, 0xA6, 0xDE, 0xBA, 0xCC, 0x13, 0x7D, 0x74
    	DW START, ENDE, START
    START:	lxi h, num1; грузим в HL адрес строки с первым числом
    	call 0x13c6; FIN - переводим строку в FACCUM
    	call 0x130d; FCOPYTOBCDE - переводим FACCUM в BCDE формат
    	push b; сохраним BCDE временно
    	push d
    	lxi h, num2; грузим в HL адрес строки со вторым числом
    	call 0x13c6; FIN - переводим его в FACCUM
    	pop d; восстановим BCDE
    	pop b
    	call 0x1082; FADD2 - складываем FACCUM и BCDE, результат остаётся в FACCUM
    	call 0x1470; FOUT - выводим FACCUM в строку (буфер строки расположен в FBUFFER)
    	lxi h, 0xf93d; FBUFFER
    	mvi a, 2; выводим строку с текущего положения
    	call 0x0050; TRETLINE - печатаем содержимое FBUFFER
    	ret
    num1	db "1.234E2"
    	db 0x0
    num2	db "3.654E1"
    	db 0x0
    ENDE:
    	END
    Это наш пример сложения чисел, только под CAS и без извратов со стеком и JMP!
    Вложения Вложения
    • Тип файла: zip tstprg.zip (195 байт, Просмотров: 129)

  4. #44
    Member Аватар для demetrius2003
    Регистрация
    29.09.2010
    Адрес
    Новокузнецк
    Сообщений
    156
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот тут уже загвоздка. Две программы, которые должны делать одно и то же. Но ассемблерный вариант рисует две лишние точки (не там) и смещает часть графика.

    Первая:
    Код:
    10 SCREEN2
    30 LINE(0,96)-(255,96),12
    40 LINE(128,0)-(128,192),12
    100 FOR X=0 TO 255
    110 Y=10*SIN(X/10)+96
    120 PSET(X,Y),3
    200 NEXT
    1000 IF INKEY$="" GOTO1000
    Вторая:
    Код:
    	ORG 0x5000-0x26
    	DB 0x1F, 0xA6, 0xDE, 0xBA, 0xCC, 0x13, 0x7D, 0x74
    	DB 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0
    	DB 'tstprg'
    	DB 0x1F, 0xA6, 0xDE, 0xBA, 0xCC, 0x13, 0x7D, 0x74
    	DW START, ENDE, START
    START:	mvi a, 2
    	call 0x286d; SETMODE2
    	lxi h, 0xfd8f; адрес PSETC
    	mvi m, 12; в переменную PSETC записываем 12 цвет
    	inx h
    	mvi m, 0; X1=0
    	inx h
    	mvi m, 96; Y1=96
    	inx h
    	mvi m, 255; X2=255
    	inx h
    	mvi m, 96; Y2=96
    	call 0x1908; LINE_ASM - рисуем ось абсцисс
    	lxi h, 0xfd90; адрес X1
    	mvi m, 128; X1=128
    	inx h
    	mvi m, 0; Y1=0
    	inx h
    	mvi m, 128; X2=128
    	inx h
    	mvi m, 192; Y2=192
    	call 0x1908; LINE_ASM - рисуем ось ординат
    	lxi h, 0xfd8f; адрес PSETC
    	mvi m, 3; в переменную PSETC записываем 3 цвет
    	mvi c, 0; параметр цикла
    loop:	push b
    	mov a, c
    	call 0x12d5; FCHARTOFLOAT - перевод параметра цикла в плавающую точку
    	call 0x120c; FDIVBYTEN
    	call 0x1666; SIN
    	call 0x12b3; FMULBYTEN
    	call 0x130d; FCOPYTOBCDE - переводим FACCUM в BCDE формат
    	push b; сохраним BCDE временно
    	push d
    	lxi h, ord
    	call 0x13c6; FIN - переводим строку в FACCUM
    	pop d; восстановим BCDE
    	pop b
    	call 0x1082; FADD2 - складываем FACCUM и BCDE, результат остаётся в FACCUM
    	call 0x1367; FASINTEGER переводим FACCUM в целое
    	lxi h, 0xfd90; адрес X1
    	pop b
    	push b
    	mov m, c
    	inx h
    	mov m, e
    	call 0x182c; PSET_ASM
    	pop b
    	inr c
    	mov a, c
    	cpi 0x0
    	jnz loop
    	xra a
    lock:	call 0x007c; BUFBT2A - IF INKEY$=""
    	cpi 0x0
    	jz lock
    	ret
    ord:	db "96"
    	db 0x0
    ENDE:
    	END
    Довольно интересный артефакт вылазит. Буду разбираться. Картинки и CASы - во вложении.
    Вложения Вложения

  5. #45
    Member Аватар для demetrius2003
    Регистрация
    29.09.2010
    Адрес
    Новокузнецк
    Сообщений
    156
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А! Забыл добавить!
    Первая программка:
    load"sinus"
    RUN
    Вторая программка:
    bload"tstprg"
    x=usr(&h5000)

    ---------- Post added at 21:48 ---------- Previous post was at 20:43 ----------

    Всё! Разобрался!
    Исправленный вариант, дающий картинку 1:1 с Бейсиковской!

    Код:
    	ORG 0x5000-0x26
    	DB 0x1F, 0xA6, 0xDE, 0xBA, 0xCC, 0x13, 0x7D, 0x74
    	DB 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0
    	DB 'tstprg'
    	DB 0x1F, 0xA6, 0xDE, 0xBA, 0xCC, 0x13, 0x7D, 0x74
    	DW START, ENDE, START
    START:	mvi a, 2
    	call 0x286d; SETMODE2
    	lxi h, 0xfd8f; адрес PSETC
    	mvi m, 12; в переменную PSETC записываем 12 цвет
    	inx h
    	mvi m, 0; X1=0
    	inx h
    	mvi m, 96; Y1=96
    	inx h
    	mvi m, 255; X2=255
    	inx h
    	mvi m, 96; Y2=96
    	call 0x1908; LINE_ASM - рисуем ось абсцисс
    	lxi h, 0xfd90; адрес X1
    	mvi m, 128; X1=128
    	inx h
    	mvi m, 0; Y1=0
    	inx h
    	mvi m, 128; X2=128
    	inx h
    	mvi m, 192; Y2=192
    	call 0x1908; LINE_ASM - рисуем ось ординат
    	lxi h, 0xfd8f; адрес PSETC
    	mvi m, 3; в переменную PSETC записываем 3 цвет
    	mvi c, 0; параметр цикла
    loop:	push b
    	xra a
    	mov d, c
    	mvi e, 0x0
    	mvi b, 0x90
    	call 0x12da; LONGINT - перевод параметра цикла в плавающую точку
    	call 0x120c; FDIVBYTEN
    	call 0x1666; SIN
    	call 0x12b3; FMULBYTEN
    	call 0x130d; FCOPYTOBCDE - переводим FACCUM в BCDE формат
    	push b; сохраним BCDE временно
    	push d
    	lxi h, ord
    	call 0x13c6; FIN - переводим строку в FACCUM
    	pop d; восстановим BCDE
    	pop b
    	call 0x1082; FADD2 - складываем FACCUM и BCDE, результат остаётся в FACCUM
    	call 0x136d; FASINTEGER_ASM переводим FACCUM в целое
    	lxi h, 0xfd90; адрес X1
    	pop b
    	push b
    	mov m, c
    	inx h
    	mov m, e
    	call 0x182c; PSET_ASM
    	pop b
    	inr c
    	mov a, c
    	cpi 0x0
    	jnz loop
    	xra a
    lock:	call 0x007c; BUFBT2A - IF INKEY$=""
    	cpi 0x0
    	jz lock
    	ret
    ord:	db "96"
    	db 0x0
    ENDE:
    	END
    Внёс два исправления. Первое - FCHARTOFLOAT видит аккумулятор как знаковое число, поэтому в картинке был излом - после 128 шло -127. Второе - использование FASINTEGER_ASM убрало артефакт в виде точки.

  6. #46
    Member Аватар для demetrius2003
    Регистрация
    29.09.2010
    Адрес
    Новокузнецк
    Сообщений
    156
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дополнил прилично комментариев. Теперь в архиве будет ещё и map файл и обещаный Вордовский документ. Документ буду расширять по мере продвижения вперёд.
    Последний раз редактировалось demetrius2003; 27.03.2015 в 06:40.

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

  8. #47
    Member Аватар для demetrius2003
    Регистрация
    29.09.2010
    Адрес
    Новокузнецк
    Сообщений
    156
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Э-э Кхм! С чего-бы начать? С самого главного, что-ли. Я снова в строю! Жизнь устроила мне серию бросков через бедро. Сейчас попытаюсь продолжить, то что начал.

  9. #48
    Activist
    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    401
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    28 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хорошо, что все хорошо кончается Ждем с нетерпением!

  10. #49
    Activist Аватар для XobbiMan
    Регистрация
    09.08.2008
    Адрес
    Шяуляй
    Сообщений
    481
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Жизнь, она такая, бывает и забрасывает ещё выше и без парашюта, и отстаётся только очень часто махать руками и зубами хвататься за облака...


    demetrius2003, ждем новые примеры - очень занятное чтиво.

  11. #50
    Member Аватар для demetrius2003
    Регистрация
    29.09.2010
    Адрес
    Новокузнецк
    Сообщений
    156
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    6 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Прошу обратить внимание - http://zx-pk.ru/showthread.php?p=779507
    Если кто поможет - буду всенепременно благодарен! Вручную набирать тысячи текста утомляет. Даже копипаста сотен комментов в разные места с разных мест - ужас ещё тот.
    Speccy-2010 R1, R2
    Pentevo rev.B

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

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

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

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

Похожие темы

  1. Ответов: 234
    Последнее: 26.02.2021, 11:05
  2. Ответов: 2252
    Последнее: 19.04.2019, 04:31
  3. Ответов: 3
    Последнее: 13.10.2011, 13:40
  4. Описание программ 30 кассет
    от scooter в разделе Пресса
    Ответов: 14
    Последнее: 05.06.2010, 22:37

Ваши права

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