nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Apr 2024 08:32



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

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
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

Нет звука вообще


Attachments:
asm_speaker_test.jpg
asm_speaker_test.jpg [ 42.59 KiB | Viewed 4788 times ]
25 Jun 2021 14:05
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Lavr wrote:
vitali wrote:
А со Стробом в мануале не опечатка, случаем? Запись в 58 помечена как LOW

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

Да, когда я подавал +5 вольт проводом на STROBE, то светодиод горел.


25 Jun 2021 14:06
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
vitali wrote:
Я записал звук с динамика, файл тут. Не очень высокая частота.
Даааа... :-? частота под Васиком очень мала... придется "hands shake" написать... :-?

Васик очень... очень медленный... что, собственно, и ожидалось...
Attachment:
osc.PNG
osc.PNG [ 25.44 KiB | Viewed 4788 times ]
Хотя была маленькая надежда, что он чуть побыстрее - но нет... :-?

_________________
iLavr


25 Jun 2021 14:21
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Угу, в Микропрофессоре очень медленный Васик. Я, вроде, тест 8 ферзей когда-то прогонял - очень тормоз


25 Jun 2021 14:23
Profile
Senior
User avatar

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


25 Jun 2021 14:32
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
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
Нет звука вообще

Использует подпрограмму из ПЗУ Эппл-][, видимо, ПЗУ не совместимы... :-?
vitali wrote:
Кстати, прежде чем писать полноценные утилиты, было бы здорово попробовать простейший Хэлловорлд на Асме. У меня так и не получилось вывести строку в экран

Это пробовать можно - загрузчик в программе выше правильный.
Грузит на адрес 300Н и вызывает с этого адреса.

_________________
iLavr


25 Jun 2021 14:34
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Lavr wrote:
vitali wrote:
Кстати, прежде чем писать полноценные утилиты, было бы здорово попробовать простейший Хэлловорлд на Асме. У меня так и не получилось вывести строку в экран

Это пробовать можно - загрузчик в программе выше правильный.
Грузит на адрес 300Н и вызывает с этого адреса.

Скорее всего да, вызов сработает, но тут что-то с видеопамятью, помните, в другой ветке я пытался в видеопамять писать? Безуспешно


25 Jun 2021 14:49
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vitali wrote:
...тут что-то с видеопамятью, помните, в другой ветке я пытался в видеопамять писать? Безуспешно
С видеопамятью, я так думал, что мы ещё тогда всё выяснили - нет у MPF-II текстового буфера, как такового.
Текстовые режимы он эмулирует графически.

Поэтому на ассемблере имеет смысл выводить сообщение как-то так:
Code:
COUT     gequ  $FDED                    ;The Apple II character output func.

         keep  HelloWorld

main     start
         ldx   #0                       ;Offset to the first character
loop     lda   msg,x                    ;Get the next character
         cmp   #0                       ;End of the string?
         beq   done                     ;->Yes!
         jsr   COUT                     ;Print it out
         inx                            ;Move on to the next character
         jmp   loop                     ;And continue printing
done     rts                            ;All finished!

msg      dc    c'Hello world.'
         dc    h'0D'
         dc    h'00'
         end

Функцию COUT equ $FDED MPF-II поддерживает.
Attachment:
FDED.PNG
FDED.PNG [ 53.12 KiB | Viewed 4781 times ]

Вот только я это проверить не могу, т.к. здесь: https://www.calormen.com/jsbasic/ машинный код не поддерживается. :-?

_________________
iLavr


25 Jun 2021 15:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Функцию COUT equ $FDED MPF-II поддерживает.
Вот только я это проверить не могу, т.к. здесь: https://www.calormen.com/jsbasic/ машинный код не поддерживается. :-?
Нашел я другой эмулятор Apple-][: https://virtualconsoles.com/online-emulators/apple-ii/
И он у меня следующий код на экран-таки выводит! :kruto:
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 эмулятор по-своему понял, почему-то как М. В остальном - всё путём!
Attachment:
hello.PNG
hello.PNG [ 1.93 KiB | Viewed 4786 times ]

_________________
iLavr


25 Jun 2021 18:39
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Да, в Apple-II это таки работает.
В Микропрофессоре эта программка крашится с выводом регистров Монитором.

Надо курить в подпрограммы Монитора для вывода текста в экран


26 Jun 2021 01:29
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
vitali wrote:
В Микропрофессоре эта программка крашится с выводом регистров Монитором.
Надо курить в подпрограммы Монитора для вывода текста в экран
Насколько я всё прочитал - есть возможность выйти в Монитор-отладчик с весьма приличными
возможностями - даже дизассемблировать умеет, и всё остальное - тоже.
И "курить" уже под отладкой непосредственно в самом MPF-II.

Я уже даже оффлайн эмулятор Apple-][ скачал, и под ним код работает идентично!
Attachment:
hello1.PNG
hello1.PNG [ 45.29 KiB | Viewed 4765 times ]
Attachment:
hello2.PNG
hello2.PNG [ 26.41 KiB | Viewed 4765 times ]


Насчет текстового буфера: в MPF-II всё работает несколько иначе, судя по мануалу.
MPF-II записывает в текстовый буфер то, что уже вывел графически на экран.
Я так полагаю - упростили задачу чтения символа в позиции курсора.
"Специалист" - тоже с чисто графическим выводом, в нем текстовый буфер не организовали,
поэтому при необходимости чтения символа в позиции курсора он его графически по байтам
с экрана и распознаёт, что очень медленно и порой довольно неточно.

_________________
iLavr


26 Jun 2021 04:36
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Что-то я потерялся в мозгах этого Недопрофессора...

Взял пример из Мануала, где Монитором выводят 26 букв алфавита через ту самую подпрограмму COUT
Code:
FDEDH
и оставил только одну букву, убрав цикл.

Почему
Code:
 LDA #$C1
загружает код буквы "А"? C1 (193) ведь не ASCII код буквы "А".

С другой стороны, если оставить 7 бит, то
Code:
11000001
превращается в
Code:
1000001 = 65
, а это уже ASCII "A".

У Недопрофессора 7-битная кодовая таблица? В мануале что-то не нашел об этом


Attachments:
call_a_monitor.jpg
call_a_monitor.jpg [ 59.07 KiB | Viewed 4760 times ]
monitor_asm_out_letters.PNG
monitor_asm_out_letters.PNG [ 76.94 KiB | Viewed 4760 times ]
26 Jun 2021 08:20
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
Вот оно что...


Attachments:
ASCII_table.JPG
ASCII_table.JPG [ 116.78 KiB | Viewed 4759 times ]
26 Jun 2021 09:31
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
В общем, не все так просто с мануалом. Кодовая таблица, похоже, совпадает с заглавными буквами, остальное непонятно. Видимо, прошивка моего Недопрофессора отличается от общепринятых:


Attachments:
code_table.JPG
code_table.JPG [ 88.6 KiB | Viewed 4756 times ]
26 Jun 2021 11:41
Profile
Senior
User avatar

Joined: 17 Sep 2019 09:34
Posts: 136
Location: Finland
Reply with quote
В общем, итог сегодняшних страданий: работающий код Хэлловорлда большими буквами:
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


Скриншот из Васика ниже


Attachments:
helloworld_asm_BASIC.jpg
helloworld_asm_BASIC.jpg [ 13.86 KiB | Viewed 4750 times ]
26 Jun 2021 12:24
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 97 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6, 7  Next

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

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