|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Micro-Professor MPF-II Assembler
Author |
Message |
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
| | | | Lavr wrote: А попробуйте всё же - как звук из-под ассемблерной программы? | | | | 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 | | | | |
| | | | |
Нет звука вообще
|
25 Jun 2021 14:05 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
Да, когда я подавал +5 вольт проводом на STROBE, то светодиод горел.
|
25 Jun 2021 14:06 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Васик очень... очень медленный... что, собственно, и ожидалось... Хотя была маленькая надежда, что он чуть побыстрее - но нет...
_________________ iLavr
|
25 Jun 2021 14:21 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
Угу, в Микропрофессоре очень медленный Васик. Я, вроде, тест 8 ферзей когда-то прогонял - очень тормоз
|
25 Jun 2021 14:23 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
Кстати, прежде чем писать полноценные утилиты, было бы здорово попробовать простейший Хэлловорлд на Асме. У меня так и не получилось вывести строку в экран
|
25 Jun 2021 14:32 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
| | | | vitali wrote: | | | | Lavr wrote: А попробуйте всё же - как звук из-под ассемблерной программы? | | | | 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 | | | | |
| | | | |
Нет звука вообще | | | | |
Использует подпрограмму из ПЗУ Эппл-][, видимо, ПЗУ не совместимы... Это пробовать можно - загрузчик в программе выше правильный. Грузит на адрес 300Н и вызывает с этого адреса.
_________________ iLavr
|
25 Jun 2021 14:34 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
Скорее всего да, вызов сработает, но тут что-то с видеопамятью, помните, в другой ветке я пытался в видеопамять писать? Безуспешно
|
25 Jun 2021 14:49 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
С видеопамятью, я так думал, что мы ещё тогда всё выяснили - нет у MPF-II текстового буфера, как такового. Текстовые режимы он эмулирует графически. Поэтому на ассемблере имеет смысл выводить сообщение как-то так: Функцию COUT equ $FDED MPF-II поддерживает. Вот только я это проверить не могу, т.к. здесь: https://www.calormen.com/jsbasic/ машинный код не поддерживается.
_________________ iLavr
|
25 Jun 2021 15:27 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Нашел я другой эмулятор Apple-][: https://virtualconsoles.com/online-emulators/apple-ii/И он у меня следующий код на экран-таки выводит! | | | | Code: 10 TEXT : HOME 20 FOR LOC = 768 TO 806 30 READ BYTE 40 POKE LOC,BYTE 50 NEXT LOC 60 DATA 162,0,189,17,3,201,255,208 65 DATA 1,96,32,237,253,232,76,2,3 70 DATA 72,69,76,76,79,33,32,65,80 75 DATA 80,76,69,45,93,91,32,33,13 80 DATA 32,13,255,255 85 CALL 768 90 END | | | | |
Ассемблерный оригинал взял у самого себя (Hello.asm): | | | | Code: ;--- Hello.asm ------------------ ldx #$00 ; index loop: lda messg,x ; get symbol cmp #$ff ; it's END? bne here ; No, continue rts ; return here: jsr $FDED ; send byte inx ; inc index jmp loop messg: dcb $48,$45,$4C,$4C,$4F,$21,$20 dcb $41,$50,$50,$4C,$45,$2D,$5D dcb $5B,$20,$21,$0D,$20,$0D,$FF | | | | |
Кое-что подправил и по месту же скомпилировал в HEX. Какая-то ошибочка выскакивает... но искать неохота: в принципе - работоспособно. P.S. Код $0D = 13 эмулятор по-своему понял, почему-то как М. В остальном - всё путём!
_________________ iLavr
|
25 Jun 2021 18:39 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
Да, в Apple-II это таки работает. В Микропрофессоре эта программка крашится с выводом регистров Монитором.
Надо курить в подпрограммы Монитора для вывода текста в экран
|
26 Jun 2021 01:29 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Насколько я всё прочитал - есть возможность выйти в Монитор-отладчик с весьма приличными возможностями - даже дизассемблировать умеет, и всё остальное - тоже. И "курить" уже под отладкой непосредственно в самом MPF-II. Я уже даже оффлайн эмулятор Apple-][ скачал, и под ним код работает идентично! Насчет текстового буфера: в MPF-II всё работает несколько иначе, судя по мануалу. MPF-II записывает в текстовый буфер то, что уже вывел графически на экран. Я так полагаю - упростили задачу чтения символа в позиции курсора. "Специалист" - тоже с чисто графическим выводом, в нем текстовый буфер не организовали, поэтому при необходимости чтения символа в позиции курсора он его графически по байтам с экрана и распознаёт, что очень медленно и порой довольно неточно.
_________________ iLavr
|
26 Jun 2021 04:36 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
Что-то я потерялся в мозгах этого Недопрофессора... Взял пример из Мануала, где Монитором выводят 26 букв алфавита через ту самую подпрограмму COUT и оставил только одну букву, убрав цикл. Почему загружает код буквы "А"? C1 (193) ведь не ASCII код буквы "А". С другой стороны, если оставить 7 бит, то превращается в , а это уже ASCII "A". У Недопрофессора 7-битная кодовая таблица? В мануале что-то не нашел об этом
|
26 Jun 2021 08:20 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
Вот оно что...
|
26 Jun 2021 09:31 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
В общем, не все так просто с мануалом. Кодовая таблица, похоже, совпадает с заглавными буквами, остальное непонятно. Видимо, прошивка моего Недопрофессора отличается от общепринятых:
|
26 Jun 2021 11:41 |
|
|
vitali
Senior
Joined: 17 Sep 2019 09:34 Posts: 136 Location: Finland
|
В общем, итог сегодняшних страданий: работающий код Хэлловорлда большими буквами: | | | | Code: ;.org $400 ldx #$00 ; index loop: lda messg,x ; get symbol cmp #$ff ; it's END? bne here ; No, continue rts ; return here: jsr $FDED ; send byte inx ; inc index jmp loop messg: dcb $A2,$00,$BD,$11,$04,$C9,$FF .... dcb $CF,$D2,$CC,$C4,$8D,$FF | | | | |
| | | | Code: 10 REM HELLO ASM 11 TEXT : HOME 20 FOR LOC = 1024 TO 1054 30 READ BYTE 40 POKE LOC,BYTE 50 NEXT LOC 60 DATA 162,0,189,17,4,201,255,208 65 DATA 1,96,32,237,253,232,76,2 70 DATA 4,200,197,204,204,207,160 75 DATA 215,207,210,204,196,141 80 DATA 255,255 85 CALL 1024 90 END | | | | |
Скриншот из Васика ниже
|
26 Jun 2021 12:24 |
|
|
Who is online |
Users browsing this forum: No registered users and 32 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
|
|