User Tag List

Показано с 1 по 10 из 70

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

Древовидный режим

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

    Регистрация
    29.09.2010
    Адрес
    Новокузнецк
    Сообщений
    157
    Спасибо Благодарностей отдано 
    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ы - во вложении.
    Вложения Вложения

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

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

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

Похожие темы

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

Ваши права

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