Нет звука вообщеLavr wrote:А попробуйте всё же - как звук из-под ассемблерной программы?Code: Select all
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
Micro-Professor MPF-II Assembler
Moderator: Lavr
- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: 6502 Assembler in BASIC
You do not have the required permissions to view the files attached to this post.
			
						
										
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: 6502 Assembler in BASIC
Да, когда я подавал +5 вольт проводом на STROBE, то светодиод горел.Lavr wrote:А светодиод у вас точно - на землю? Чтобы уж быть уверенным на 100% - а то что-тоvitali wrote:А со Стробом в мануале не опечатка, случаем? Запись в 58 помечена как LOW
многовато опечаток в мануале...
- 
				Lavr  
- Supreme God
- Posts: 16790
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 6502 Assembler in BASIC
Васик очень... очень медленный... что, собственно, и ожидалось... Хотя была маленькая надежда, что он чуть побыстрее - но нет...Lavr wrote:Даааа...vitali wrote:Я записал звук с динамика, файл тут. Не очень высокая частота.частота под Васиком очень мала... придется "hands shake" написать...

You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: 6502 Assembler in BASIC
Угу, в Микропрофессоре очень медленный Васик. Я, вроде, тест 8 ферзей когда-то прогонял - очень тормоз
			
			
									
						
										
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: 6502 Assembler in BASIC
Кстати, прежде чем писать полноценные утилиты, было бы здорово попробовать простейший Хэлловорлд на Асме. У меня так и не получилось вывести строку в экран
			
			
									
						
										
						- 
				Lavr  
- Supreme God
- Posts: 16790
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 6502 Assembler in BASIC
Использует подпрограмму из ПЗУ Эппл-][, видимо, ПЗУ не совместимы...vitali wrote:Нет звука вообщеLavr wrote:А попробуйте всё же - как звук из-под ассемблерной программы?Code: Select all
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
			
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: 6502 Assembler in BASIC
Скорее всего да, вызов сработает, но тут что-то с видеопамятью, помните, в другой ветке я пытался в видеопамять писать? БезуспешноLavr wrote:Это пробовать можно - загрузчик в программе выше правильный.vitali wrote:Кстати, прежде чем писать полноценные утилиты, было бы здорово попробовать простейший Хэлловорлд на Асме. У меня так и не получилось вывести строку в экран
Грузит на адрес 300Н и вызывает с этого адреса.
- 
				Lavr  
- Supreme God
- Posts: 16790
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 6502 Assembler in BASIC
С видеопамятью, я так думал, что мы ещё тогда всё выяснили - нет у MPF-II текстового буфера, как такового.vitali wrote:...тут что-то с видеопамятью, помните, в другой ветке я пытался в видеопамять писать? Безуспешно
Текстовые режимы он эмулирует графически.
Поэтому на ассемблере имеет смысл выводить сообщение как-то так:
Code: Select all
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
You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				Lavr  
- Supreme God
- Posts: 16790
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 6502 Assembler in BASIC
Нашел я другой эмулятор Apple-][: https://virtualconsoles.com/online-emulators/apple-ii/Lavr wrote:Функцию COUT equ $FDED MPF-II поддерживает.
Вот только я это проверить не могу, т.к. здесь: https://www.calormen.com/jsbasic/ машинный код не поддерживается.
И он у меня следующий код на экран-таки выводит!
 
 
Code: Select all
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  ENDCode: Select all
;--- 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Какая-то ошибочка выскакивает... но искать неохота: в принципе - работоспособно.
P.S. Код $0D = 13 эмулятор по-своему понял, почему-то как М. В остальном - всё путём!
You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: 6502 Assembler in BASIC
Да, в Apple-II это таки работает. 
В Микропрофессоре эта программка крашится с выводом регистров Монитором.
Надо курить в подпрограммы Монитора для вывода текста в экран
			
			
									
						
										
						В Микропрофессоре эта программка крашится с выводом регистров Монитором.
Надо курить в подпрограммы Монитора для вывода текста в экран
- 
				Lavr  
- Supreme God
- Posts: 16790
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: 6502 Assembler in BASIC
Насколько я всё прочитал - есть возможность выйти в Монитор-отладчик с весьма приличнымиvitali wrote:В Микропрофессоре эта программка крашится с выводом регистров Монитором.
Надо курить в подпрограммы Монитора для вывода текста в экран
возможностями - даже дизассемблировать умеет, и всё остальное - тоже.
И "курить" уже под отладкой непосредственно в самом MPF-II.
Я уже даже оффлайн эмулятор Apple-][ скачал, и под ним код работает идентично! Насчет текстового буфера: в MPF-II всё работает несколько иначе, судя по мануалу.
MPF-II записывает в текстовый буфер то, что уже вывел графически на экран.
Я так полагаю - упростили задачу чтения символа в позиции курсора.
"Специалист" - тоже с чисто графическим выводом, в нем текстовый буфер не организовали,
поэтому при необходимости чтения символа в позиции курсора он его графически по байтам
с экрана и распознаёт, что очень медленно и порой довольно неточно.
You do not have the required permissions to view the files attached to this post.
			
						
							iLavr
			
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: Micro-Professor MPF-II Assembler
Что-то я потерялся в мозгах этого Недопрофессора...
Взял пример из Мануала, где Монитором выводят 26 букв алфавита через ту самую подпрограмму COUT и оставил только одну букву, убрав цикл. 
Почему загружает код буквы "А"? C1 (193) ведь не ASCII код буквы "А". 
С другой стороны, если оставить 7 бит, то превращается в  , а это уже ASCII "A".
У Недопрофессора 7-битная кодовая таблица? В мануале что-то не нашел об этом
			
			
						Взял пример из Мануала, где Монитором выводят 26 букв алфавита через ту самую подпрограмму COUT
Code: Select all
FDEDHПочему
Code: Select all
 LDA #$C1С другой стороны, если оставить 7 бит, то
Code: Select all
11000001Code: Select all
1000001 = 65У Недопрофессора 7-битная кодовая таблица? В мануале что-то не нашел об этом
You do not have the required permissions to view the files attached to this post.
			
						
										
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: Micro-Professor MPF-II Assembler
Вот оно что...
			
			
						You do not have the required permissions to view the files attached to this post.
			
						
										
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: Micro-Professor MPF-II Assembler
В общем, не все так просто с мануалом. Кодовая таблица, похоже, совпадает с заглавными буквами, остальное непонятно. Видимо, прошивка моего Недопрофессора отличается от общепринятых:
			
			
						You do not have the required permissions to view the files attached to this post.
			
						
										
						- 
				vitali  
- Senior
- Posts: 136
- Joined: 17 Sep 2019 09:34
- Location: Finland
Re: Micro-Professor MPF-II Assembler
В общем, итог сегодняшних страданий: работающий код Хэлловорлда большими буквами:
Скриншот из Васика ниже
			
			
						Code: Select all
      ;.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,$FFCode: Select all
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  ENDYou do not have the required permissions to view the files attached to this post.
			
						
										
						 
				