-
- ? dima83
- 18.01.2018 14:09
черточка ниже рисуется
- ? dima83
- 18.01.2018 14:08
Ну и даже так то не получается!
¤
MOV #40000,R0
MOV #177777,(R0)
- ? dima83
- 18.01.2018 14:05
Поясните
- ? dima83
- 18.01.2018 13:59
вот только что проверил - не очищается экран без участия EMT
- ? dima83
- 18.01.2018 13:55
я же добавил, что нужно учитывать начальное смещение курсора
- ? dima83
- 18.01.2018 13:54
Ты сам пять минут назад писаль что обращение по адресу 40000 по любому укажет на верхнюю левую точку
- ? dima83
- 18.01.2018 13:51
А на счет бесполезных постов - ну это ты зря. Я за это время написал прогу для бк сканер NEC протокола ПДУ и собрал на пик-контроллере загрузчик этой проги в бк (безо всяких дисководов и магнитафонов)
- ? dima83
- 18.01.2018 13:48
перед обращением к видеопамяти нужно полностью очистить экран!
- ? dima83
- 18.01.2018 13:46
так в том то и дело, что прогу ты будешь грузить не с пустого экрана, а со знака вопроса - значит уже сдвиг на одну строку и заполнение пойдет ниже...
- ? dima83
- 18.01.2018 13:44
меня больше смущают другие ответы типа "Иди почитай книжку..."
- ? dima83
- 18.01.2018 13:33
А EMT 22 - запись символа в служебную строку это что?
- ? dima83
- 18.01.2018 13:32
Ну попробуй запусти:
¤
;EMT 14
MOV #10000,R1
MOV #40000,R0
1: MOV #177777,(R0)
INC R0 INC R0
SOB R1,1
.END
¤
а потом включи емт
- ? dima83
- 18.01.2018 13:25
ну и васю тоже можно)
- ? dima83
- 18.01.2018 13:24
да, верно, без EMT 14 заполнение происходит не сначала, т.е. EMT использовать по любому придется!
- ? dima83
- 18.01.2018 13:18
сайчас попробовал - действительно закрашивается белым! но обращаться только к четным адресам экранного озу
и все же как можно изменить служебную стору или удалить ее вовсе?
- ? dima83
- 18.01.2018 13:05
значит этим же способом удаляется служебная строка ----------------лат?
- ? dima83
- 18.01.2018 12:53
Значит если заполню всю память единицами - будет белый экран?)
- ? dima83
- 18.01.2018 12:47
S_V_B
А что писать то? Если от драйвера отказываешься то, нужно знать что и куда писать!
Разве что точки какие....
- ? dima83
- 18.01.2018 12:42
Меня тоже интересует возможность пямой записи в видеопамять, минуя всякие там EMT16. ЭТо ведь практические что то на подобие осциллографа можно придумать!
- ? dima83
- 18.01.2018 11:55
А я еще думал какая разница между BR и JMP. Все работает!
- ? dima83
- 15.01.2018 16:22
ну теперь понятно - слишком длинный переход! спасибо
- ? dima83
- 15.01.2018 16:12
102 и 110 ошибки...
- ? dima83
- 15.01.2018 16:06
да нет. модуль один, но очень много меток
- ? dima83
- 15.01.2018 15:49
почему ошибка 107 в строчке:
¤
START_: MOV #32767.,177706 MOV #0.,177712 ; ТАЙМЕР
- ? dima83
- 15.01.2018 15:47
метки бывают локальные и глобальные их нужно правильно распределять
видимо я тут намудрил!
- ? dima83
- 15.01.2018 15:44
? BD@ - 15.01.2018 15:43
да просто пишется
SOB R1, MET1
а не
SOB 2020,R1
))
¤
Да я уже исправил, не хочет переходить по метке!
слишком много меток!
- ? dima83
- 15.01.2018 15:35
ну значит дело в метках....
- ? dima83
- 15.01.2018 15:32
т.е.
¤
МЕТ1
MET2
sob MET2
sob MET1
¤
(нижний соб даст ошибку!)
- ? dima83
- 15.01.2018 15:30
сдается мне, что нельзя использовать SOB если он "тянется" выше другого SOBа
- ? dima83
- 15.01.2018 15:18
такой метки у меня нет, я решил обратиться напрямую к памяти
- ? dima83
- 15.01.2018 14:41
ну хорошо пусть R1, но возникает 102 ошибка
- ? dima83
- 15.01.2018 14:15
еще вопрос: сколько раз можно употреблять SOB в одной программе? У меня идет ошибка 113 в строке SOB 2020,S1
- ? dima83
- 15.01.2018 13:46
нет, что бы его править! ведь на эмуляторе это делать невозможно!
- ? dima83
- 15.01.2018 13:24
Да, вопрос по поводу симулятора. Как правильно перенести листинг прооги на образ что бы русские слова не искажались?
- ? dima83
- 15.01.2018 13:01
И с байтами возиться смысла нет, лучше сразу со словами. Они и вмещают больше и не нужно возиться со всякими MOVB...
- ? dima83
- 15.01.2018 12:59
Ну вот сколько споров!
Я имел в виду объявление метки в конце программы, т.е. запись массива сразу после самой программы.
Но сейчас понял, что надежнее забивать вручную с первого четного адреса!
- ? dima83
- 15.01.2018 10:52
LA.760
.WORD 1000,1000,1000,1000,1000,1000,1000,1000
MOV #103,R0
Q: EMT 16
BR Q
¤
Вот теперь она оттранслируется в начальный адрес 760 и будет запускаться автоматом!
- ? dima83
- 15.01.2018 10:47
Словами оперировать несомненно проще. Но лепить начальные адреса массивов наобум тоже не есть хорошо. Вот если бы можно было расчитать метку (или сместить ее) так, что бы она начиналась с четного адреса!
- ? dima83
- 15.01.2018 10:21
Хорошо. Давайте вот такой пример. Я записал число 255(д) командой movb по адресу 2001, т.е. MOVB #255.,2001
потом я его пересылаю в R0 (MOVB 2001,R0) для дальнейшей распечатки в рекурсивной подпрограмме... Так что будет содержаться в R0 число 255 или 65535 ?
- ? dima83
- 15.01.2018 08:27
С прошедшими праздниками!
Медленно, но верно продвигается процесс написания проги сканирования NEC кода пульта ДУ.
И вот возник вопрос в плане обращения к ОЗУ БК. А именно как разместить массив в конце проги и заполнить его.
В литературе приводится такой пример реализации массива:
¤
Адрес Команда Текст на ассемблере
1000: 012700 MOV #6,R0
1002: 000006
1004: 005060 A: CLRB TAB-1(R0)
1006: 001777
1010: 077003 SOB R0,A
. . .
2000: TAB: .+6
¤
НО при работе в турбо 8 используется следующая команда:
¤
Адрес Команда Текст на ассемблере
1000: 012700 MOV #6,R0
1002: 000006
1004: 005060 A: CLRB TAB-1(R0)
1006: 001777
1010: 077003 SOB R0,A
. . .
2000: TAB: .BLKB+6 ;БАЙТНЫЙ МАССИВ
¤
либо
¤
Адрес Команда Текст на ассемблере
1000: 012700 MOV #6,R0
1002: 000006
1004: 005060 A: CLRB TAB-1(R0)
1006: 001777
1010: 077003 SOB R0,A
. . .
2000: TAB: .BLKW+6 ;сЛОВНЫЙ МАССИВ
¤
наконец тут говорили, что можно использовать просто метку, размещенную в конце программы
¤
Но вопрос в другом. Обращение к ОЗУ (т.е. запись числа или пересылка регистра) возможны только по четным адресам, например 2000, 2002, 2004. При попытке записать что-либо в нечетный адрес заполняются сразу оба слова... И как узнать в случае обращения к метке в четный адрес мы попадем или нет?
- ? dima83
- 10.01.2018 15:51
Написал версию для загрузки проги из программной памяти пика. Теперь максимальный объем загружаемой проги равен 765 байт.
- ? dima83
- 10.01.2018 11:51
Интересный факт, что память данных пик-контроллера ограничивается емкостью 128 байт, тогда как память программ (Flash) - 1024 байта. Но при использовании памяти программ коды придется прописывать вручную или использовать подпрограмму табличной конвертации. Метод конечно сложный, но позволяет увеличить объем программы до 1536 байтов (три таблицы).
- ? dima83
- 10.01.2018 11:04
f0 01 89 32 00 02 00 02 00 02 00 02 00 02 00 02
00 02 00 02
¤
Вот фрагмент файла melman, который запускается автоматом
видно, что начальный адрес загрузки 01F0 т.е. 760
- ? dima83
- 10.01.2018 10:46
? BD@ - 08.01.2018 21:22
Как я понимаю, на данный момент, он pic может "запрограммировать", неким кодом для БК. А как через ТЛГ передать эту хрень еще не задумывался. Будет первым в космосе, наверное ))
¤
Уже запрограммировал и уже передал!
- ? dima83
- 07.01.2018 16:03
Теперь мне нужно написать что то вроде загрузчика файлов и разобраться каким образом можно подключить usb-flash к пик контроллеру. Если кто что может подсказать буду рад выслушать.
- ? dima83
- 07.01.2018 15:44
Вот конкретная программа, которая успешно загружается в БК с ТЛГ-канала и выполняется по команде "S".
¤
MOV #103,R0
Q: EMT 16
BR Q
¤
Первые 2 байта бинарного файла содержат адрес 1000(8).
Какой адрес мне нужно занести в эти 2 байта что бы произошел автозапуск?
- ? dima83
- 07.01.2018 15:40
Так я ж собираюсь загнать бинарник по ТЛГ-каналу. Первые два байта будут содержать измененный адрес начальной ячейки памяти. Я пробовал изменять его на 760 и 720 ничего не запускается!
- ? dima83
- 07.01.2018 11:00
Да, Вы правы! Нужно читать как есть...т.е. сначала младший байт, затем старший и т.д. Вчера написал подправил прогу и теперь загоняю код бинарника непосредственно в EEPROM пика, но там всего 128 байт памяти, что не особо радует.
¤
А не проще ли просто подправить адрес в самом бинарнике?
- ? dima83
- 06.01.2018 13:47
кроме этого хотелось бы автозапуск без ввода "S". какой начальный адрес указать и вообще возможно ли это?
- ? dima83
- 06.01.2018 13:44
ну как мне из вот этих цифр "00 02" сляпать : "00000010 00000000" ведь читать то я планирую побайтно с самого первого байта!
-
«
1 | 2 | 3 | 4 | 5 | ... | 8 | »
?