nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 27 Apr 2024 07:22



Reply to topic  [ 97 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 7  Next
Micro-Professor MPF-II Assembler 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vitali wrote:
Однако это только завтра вечером смогу, сейчас не у железок.

Договорились - на завтра... а я пока Applesoft BASIC посмотрю - что он сможет...


UPDATE: Значит, завтра без Распберри Пи собираем вот такую схему:
Attachment:
printer.PNG
printer.PNG [ 39.32 KiB | Viewed 4262 times ]

В Microprofessor II Basic набираем вот такую программу:
Code:
10   REM  Applesoft BASIC
40   TEXT : REM ENTER TEXT MODE
45   HOME : REM CLEAR TEXT SCREEN
58   C$ = "0123456789ABCDEF"
60   REM ++++++++++++++++++++++++++++++++++++++++
62   bx = PEEK($C010) : REM или PEEK(49168) или PEEK(-16368)
63   bh = INT(bx/16)
64   bl = bx-(bh*16)
65   D$ = MID$(C$, bh+1, 1)
66   E$ = MID$(C$, bl+1, 1)
67   PRINT D$;E$;"  ";
69   GOTO 60
70   REM  ++++++++++++++++++++++++++++++++++++++++

Нажимаем и отпускаем кнопку, смотрим - что на экране...
Этот тест поможет выяснить по какому биту байта, считанного из порта $C010, поступает сигнал Busy,
а также - инвертируется этот сигнал или нет.

Второй тест проверяет, когда STROBE="1", и когда STROBE="0"
Code:
10   REM  Applesoft BASIC
40   TEXT : REM ENTER TEXT MODE
45   HOME : REM CLEAR TEXT SCREEN
58   PRINT "0C058H, 0C059H PORTS TEST:" : PRINT " "
60   REM ++++++++++++++++++++++++++++++++++++++++
62   POKE 49240,0: REM или POKE $C058,0 или POKE -16296,0
63   PRINT "POKE 0C058H TEST: "; : GET A$ : PRINT A$
64   POKE 49241,0: REM или POKE $C059,0 или POKE -16295,0
65   PRINT "POKE 0C059H TEST: "; : GET A$ : PRINT A$
69   GOTO 60
70   REM  ++++++++++++++++++++++++++++++++++++++++

Нажимаем и отпускаем любую клавишу, смотрим горит или не горит светодиод...

Светодиод желательно сверхъяркий чтобы светился при 10 кОм и не перегружал порт.
В принципе можно светодиод взять любой обычный и сопротивление уменьшить
до 330 ... 1 кОм, поскольку драйверы принтера как правило мощные.

_________________
iLavr


24 Jun 2021 14:48
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Ого, сколько всего за отчетный период! :)

Начал собирать детальки. По схеме - нормально, если источник 5 вольт для кнопки будет не из Микропрофессора?


25 Jun 2021 02:45
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vitali wrote:
По схеме - нормально, если источник 5 вольт для кнопки будет не из Микропрофессора?

В принципе ничего страшного - но внимательно и четко соединяйте все земли перед включением.
Соединения земли должны быть надёжные.

UPDATE: И надо проверить быстродействие Бейсика.
Code:
40   TEXT : REM ENTER TEXT MODE
45   HOME : REM CLEAR TEXT SCREEN
50   PRINT "Speaker Test"
55   time = 2 : REM полупериод
60   bx = PEEK(-16336) : REM bx = PEEK($C030)
62   FOR PAUSE=1 TO time: NEXT PAUSE
63   GOTO 64
64   bx = PEEK(-16336) : REM bx = PEEK($C030)
65   FOR PAUSE=1 TO time: NEXT PAUSE
69   GOTO 60

Здесь вывод на динамик - с какой примерно частотой зазвучит?
Ожидаю довольно низкую частоту...

Code:
40   TEXT : REM ENTER TEXT MODE
45   HOME : REM CLEAR TEXT SCREEN
50   PRINT "Strobe Test"
55   time = 2 : REM полупериод
60   bx = PEEK($C058)
62   FOR PAUSE=1 TO time: NEXT PAUSE
63   GOTO 64
64   bx = PEEK($C059)
65   FOR PAUSE=1 TO time: NEXT PAUSE
69   GOTO 60

А здесь - импульсы выдаются на вывод Strobe порта принтера -
это если есть возможность посмотреть импульсы осциллографом...

time = 2 - можно менять в строну увеличения: частота импульсов будет ниже.

_________________
iLavr


25 Jun 2021 03:20
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Впрочем, если складывается впечатление, что мы сильно уходим в сторону от вашей
мечты - написать "Хэллоу, Ворлд!" на ассемблере, то можете по-быстрому сделать
вот так: скомпилировать свою программу чем-либо на РС, и занести её коды в следующую
программу на Бейсике:
Code:
10  REM ASSM PROGRAM
15  TEXT : HOME : PRINT " SOUND TEST: "
20  FOR LOC = 768 TO 786
30  READ BYTE
40  POKE LOC,BYTE
50  NEXT LOC
60  DATA 162,0,32,30,251,141,48,192,162,1,32,30,251,141,48,192,76,0,3
65  REM DATA $A2,$00,$20,$1E,$FB,$8D,$30,$C0,$A2,$01,$20,$1E,$FB,$8D,$30,$C0,$4C,$00,$03
70  CALL 768 : REM ORG $300

Здесь в примере - программа извлечения звука через спикер с адреса 0300Н.

Если надо затащить что-то другое, меняете код на свой в строке DATA и
в цикле FOR LOC = 768 TO 786 меняете второе число на 768+(Число байт после DATA).

_________________
iLavr


25 Jun 2021 09:31
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
В общем, полученно за отчетный период. Хочется проиллюстрировать все, поэтому я буду разбивать логические вещи на одно сообщение.

Спаянный Port Tester и подключение к Микропрофессору.


Attachments:
connected_to_port.jpg
connected_to_port.jpg [ 103.35 KiB | Viewed 4214 times ]
PortTester.jpg
PortTester.jpg [ 72.18 KiB | Viewed 4214 times ]
25 Jun 2021 12:34
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Хорошо, что хотя бы через внешнюю аудиокарту запись и загрузка ВАСИКа работает как часы. Помогает с написанием и отладкой программы "не за раз".

Тестируем BUSY пин:
    Не нажатая кнопка BUSY (высокий уровень):
    Code:
    C0H = 11000000b
    Нажатая кнопка BUSY (низкийуровень):
    Code:
    80H = 10000000b

Получается, пин BUSY это бит 6


Attachments:
BUSY_output.jpg
BUSY_output.jpg [ 116.57 KiB | Viewed 4213 times ]
Basic_BUSY.jpg
Basic_BUSY.jpg [ 89.8 KiB | Viewed 4213 times ]
25 Jun 2021 12:40
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Тестируем STROBE.

    При старте уровень низкий (светодиод не горит)
    Последующие нажатия клавиатуры триггерят светодиод


Attachments:
strobe_2.jpg
strobe_2.jpg [ 86.36 KiB | Viewed 4213 times ]
strobe_1.jpg
strobe_1.jpg [ 85.98 KiB | Viewed 4213 times ]
Basic_Strobe.jpg
Basic_Strobe.jpg [ 111.81 KiB | Viewed 4213 times ]
25 Jun 2021 12:43
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Продолжение нажатия клавиатуры


Attachments:
strobe_4.jpg
strobe_4.jpg [ 48.67 KiB | Viewed 4212 times ]
strobe_3.jpg
strobe_3.jpg [ 45.24 KiB | Viewed 4212 times ]
25 Jun 2021 12:45
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vitali wrote:
Тестируем BUSY пин:
    Не нажатая кнопка BUSY (высокий уровень):
    Code:
    C0H = 11000000b
    Нажатая кнопка BUSY (низкий уровень):
    Code:
    80H = 10000000b
Получается, пин BUSY это бит 6

Вот это и хотелось проверить: значит в мануале опечатка.
Attachment:
ошибка1.png
ошибка1.png [ 37.01 KiB | Viewed 4230 times ]

vitali wrote:
Тестируем STROBE.
При старте уровень низкий (светодиод не горит)

POKE 0C058H - STROBE="0",
POKE 0C059H - STROBE="1"

Со всеми неопределённостями - всё выяснили...

Теперь бы выяснить быстродействие Васика примерное - я пользуюсь Васиком по
вашей ссылке https://www.calormen.com/jsbasic/, там он от Эппл-][,
кое-что довольно глючно работает, в частности логика AND - вот уж не ожидал! :o
Своеобразно они интерпретируют в Васике результат AND - не побитно! :-?

_________________
iLavr


25 Jun 2021 12:57
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Lavr wrote:
vitali wrote:
Тестируем BUSY пин:
    Не нажатая кнопка BUSY (высокий уровень):
    Code:
    C0H = 11000000b
    Нажатая кнопка BUSY (низкий уровень):
    Code:
    80H = 10000000b
Получается, пин BUSY это бит 6

Вот это и хотелось проверить: значит в мануале опечатка.

Да, похоже на то.

Lavr wrote:
POKE 0C058H - STROBE="0",
POKE 0C059H - STROBE="1"

Со всеми неопределённостями - всё выяснили...

Да, в принципе, можно пропихивать бит в Микропрфессора и забирать бит оттуда.

Lavr wrote:
Теперь бы выяснить быстродействие Васика примерное - я пользуюсь Васиком по
вашей ссылке https://www.calormen.com/jsbasic/, там он от Эппл-][,
кое-что довольно глючно работает, в частности логика AND - вот уж не ожидал! :o
Своеобразно они интерпретируют в Васике результат AND - не побитно! :-?


Я записал звук с динамика, файл тут. Не очень высокая частота.

Осциллограф у меня внешний USB-шный, но он работает только с опенсорсным софтов под Линуксом, сейчас некуда подключить.

Похоже, Васик Микропрофессора близок к Эппловскому, насколько он глючный, пока непонятно


25 Jun 2021 13:20
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
А со Стробом в мануале не опечатка, случаем? Запись в 58 помечена как LOW
Attachment:
strobe.JPG
strobe.JPG [ 14.34 KiB | Viewed 4227 times ]


25 Jun 2021 13:28
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vitali wrote:
А со Стробом в мануале не опечатка, случаем? Запись в 58 помечена как LOW
Я уже не проверял по мануалу - надеюсь, ваши эксперименты точнее...
POKE 0C058H - STROBE="0",
POKE 0C059H - STROBE="1"

Насчет частоты: если написать протокол RS-232 софтовый, то в Васике мы должны уметь
задавать точные интервалы.
В противном случае придётся написать самоделку по типу "hands shake" - когда MPF-II будет
подтверждать принятый бит по линии STROBE - для этого я и просил её проверить...
vitali wrote:
Я записал звук с динамика, файл тут. Не очень высокая частота.
Даааа... :-? частота под Васиком очень мала... придется "hands shake" написать... :-?

_________________
iLavr


25 Jun 2021 13:41
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
А, понял. Мне кажется, надежнее будет с подтверждением Стробом. Потому как скорее всего, со стороны компа утилиту придется писать для Распберри, а там как-то привязываться к точным интервалам неохота. Да и на Питоне хочется утилиту написать :)


25 Jun 2021 13:44
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А попробуйте всё же - как звук из-под ассемблерной программы?
Code:
10  REM ASSM PROGRAM
15  TEXT : HOME : PRINT " SOUND TEST: "
20  FOR LOC = 768 TO 786
30  READ BYTE
40  POKE LOC,BYTE
50  NEXT LOC
60  DATA 162,0,32,30,251,141,48,192,162,1,32,30,251,141,48,192,76,0,3
70  CALL 768 : REM ORG $300

_________________
iLavr


25 Jun 2021 13:48
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vitali wrote:
А со Стробом в мануале не опечатка, случаем? Запись в 58 помечена как LOW

А светодиод у вас точно - на землю? Чтобы уж быть уверенным на 100% - а то что-то
многовато опечаток в мануале... :-?

P.S. Опечатки в мануале нет! Всё верно!
POKE 0C058H - STROBE="0",
POKE 0C059H - STROBE="1"

_________________
iLavr


25 Jun 2021 13:58
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 97 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 7  Next

Who is online

Users browsing this forum: No registered users and 45 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.