Новое видео по русификации Атари.
https://youtu.be/09_DvlqEtXg
Шрифт защищён от ресета.
Если нужно такое для среды Бейсика, только скажите.
Новое видео по русификации Атари.
https://youtu.be/09_DvlqEtXg
Шрифт защищён от ресета.
Если нужно такое для среды Бейсика, только скажите.
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
у меня есть вот такая программа которая подгружает с диска любой фонт, в том числе и русский))
но она на турбобейсике, как на обычный переделать, я не знаю..10 GR.0:POKE 710,1:POKE 709,15:POKE 756,128
20 POKE 65,0:POKE 731,1
30 REM ---------
40 OPEN #1,4,0,"D2:RU2.FNT"
50 BGET #1,32768,1024:CLOSE #1
хотел русифицировать кое-что.
- - - Добавлено - - -
можно её на ассемблере исполнить ?
Последний раз редактировалось atariki; 16.03.2017 в 21:20.
ATARI 65XE|130XE|XEGS|4-XC12|(2-TURBO2000)|SIO2SD
OMG
а для начала
poke 106,127
gr.0
?
106-RAMTOP вроде.
не грузить же русский шрифт куда угодно.
Насчет файловых операций зри здесь:
http://atariage.com/forums/topic/217...-in-assembler/
сам не проверял, потому что извечная проблема собрать файло на рабочем диске.
Для начала, прилагаю программу руссификации бейсика.
Конечно, только для ЭТОГО доса.
Называется RUSBAS и работает ТОЛЬКО при подключённом бейсике, так как сама выходит из доса в бейсик.
Действия:
1. При подключённом бейсике загрузиться и увидеть READY.
2. Набрать DOS и увидеть D1:
3. Набрать RUSBAS и снова увидеть READY
Можно работать.
Рус - POKE 756,28
Eng - POKE 756,224
ez
- - - Добавлено - - -
Вот та самая программка на Ассемблере.
Называется EZFONT (EZ - это я)
Подгружает фонт по запросу и защищается от Бейсика.
Пока в системе бейсик, ничего с ней не произойдёт.
RUS - POKE 756,28
ENG - POKE 756,224
Код:; ezfont program ; For use with BASIC ! ONLY! ; ezfont.com ; Evgeny Zolotarev (c) 2017 .ou ezfont.com ; Atari Equates RUNAD = $02e0 CHBAS = $02f4 MEMLO = $02e7 WARMST = $08 CARTA = $A000 ; CIO equates ; ----------------------------- ICHID = $0340 ICDNO = $0341 ICCOM = $0342 ICSTA = $0343 BFADR = $0344 PTADR = $0346 BFLEN = $0348 ICAX1 = $034a ICAX2 = $034b CIOV = $e456 ; CIO Commands COPEN = $03 GTREC = $05 ;Get TEXT Record GTBYT = $07 ;GeT Byte PTREC = $09 ;PuT TEXT Record PTBYT = $0b ;PuT Byte CCLSE = $0c CSTAT = $0d ; Constants ; ----------------------------- EOL = $9b CLR = $7d IOCB0 = $00 IOCB1 = $10 IOCB2 = $20 OREAD = $04 ; prot = $0700 ; GP Macros ; ----------------------------- ; Move_Immediate_Byte ; form: mib <byt> <loc> !!!mib .md lda #:1 sta :2 .me ; Move_Immediate_Word ; form: miw <wrd> <loc> !!!miw .md lda #>:1 sta 1+:2 lda #<:1 sta :2 .me ; ==================== ; Main PROG .or $2000 jmp start ; -------------------- ; Runtime DATA cr .by EOL buflen = 40 fname .ds buflen kname .by "K:",EOL prompt .by CLR,"ENTER D:FONTNAME.FNT TO LOAD...",EOL csadr = $1c00 cslen = $0400 ; ==================== ; Runtime CODE start ; Printing prompt to screen ldx #IOCB0 miw prompt BFADR,x miw buflen BFLEN,x mib PTREC ICCOM,x jsr CIOV ; Filename Input to buffer ldx #IOCB0 miw fname BFADR,x miw buflen BFLEN,x mib GTREC ICCOM,x jsr CIOV ; Close 1 ldx #IOCB1 mib CCLSE ICCOM,x jsr CIOV ; Open 1 4 0 fname ldx #IOCB1 mib COPEN ICCOM,x mib OREAD ICAX1,x mib $00 ICAX2,x miw fname BFADR,x jsr CIOV tya ; If error bmi finish ; Bget 1 <adr> <len> ldx #IOCB1 miw csadr BFADR,x miw cslen BFLEN,x mib GTBYT ICCOM,x jsr CIOV tya ; If error bmi finish ; Close 1 finish ldx #IOCB1 mib CCLSE ICCOM,x jsr CIOV ; Protect at $2000 clc lda MEMLO adc #<prot sta MEMLO lda 1+MEMLO adc #>prot sta 1+MEMLO lda #$00 sta WARMST jmp CARTA ; ==================== ; Setup Run Address .or RUNAD .wo start ; .en ; >>> End Of File <<< ;
Последний раз редактировалось ezswift; 18.03.2017 в 15:39.
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Евгений, можешь разъяснить команды ассемблера, что с чем там едят, я не понимаю ничего..
- - - Добавлено - - -
вот это например, как этим пользоваться
https://www.atarimax.com/jindroush.atari.org/aopc.html
ATARI 65XE|130XE|XEGS|4-XC12|(2-TURBO2000)|SIO2SD
в справочнике опкоды 6502 плюс типы адресации
Непосредственная - сложение с числом
Immediate ADC #$44 $69 2 2
Нулевая страница - сложение с содержимым ячейки нулевой страницы(0-255)
Zero Page ADC $44 $65 2 3
Абсолютная индексная на нулевой странице - адрес складывается из регистра Х и нулевой страницы - это и есть операнд
Zero Page,X ADC $44,X $75 2 4
Абсолютная (прямая) - операнд указан в адресе
Absolute ADC $4400 $6D 3 4
Абсолютная индексная - Операнд получен из адреса плюс регистр X/Y
Absolute,X ADC $4400,X $7D 3 4+
Absolute,Y ADC $4400,Y $79 3 4+
Индексно-косвенная на нулевой странице
Indirect,X ADC ($44,X) $61 2 6
Indirect,Y ADC ($44),Y $71 2 5+
http://www.emuverse.ru/wiki/MOS_Tech...B8.D1.86.D1.8B
http://retrocomputer.ru/ICDOCS/6502/FILES/6502.rus.txt
Ну, это очень трудно на словах разъяснить...
Смысл в том, что любая команда представляется в разном виде, в зависимости от материала, с которым работает.
Я к тому, что входящие данные и определяют формат команды.
Это - не панацея!
Сама команда может не воспринимать чуждые ей форматы!
Я это к тому, что программист должен воспринимать команды как их ассемблер воспринимает!
То есть, правильно парсить их!!!
Кроме этого он должен знать ПРАВИЛА.
Некоторые команды - не универсальны и не могут работать со всеми адресами.
Самые универсальные - LD?-ST? они работают со всеми регистрами и операндами.
Это - общая инфо.
Вряд ли, она что-то даёт.
В принципе, способы адресации объясняют ассемблеру, как с данными работать.
1. Непосредственная адресация - говорит, что дано ЧИСЛО!
Если однобайтовое - обработай, если двухбайтовое - обработай за два раза.
2. Абсолютная адресация - говорит, что задан адрес (2 байта), в котором ЧИСЛО (м/б двухбайтовое)!
Надо доступиться! до числа и затем обработать как ранее.
3. ...
4. Нулевая страница - исключение!
Если операнд на нулевой странице, он требует примитивизации обработки!
Бери его и ешь!
Следующего байта НЕ БУДЕТ! (Если речь идёт об адресации.)
Я к тому, что на нулевой странице может быть BYTE или WORD.
Последний раз редактировалось ezswift; 21.03.2017 в 18:17.
MAC и PC - это всего лишь периферия для Атари...
130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|
ну вот допустим захотел я джойстиком погонять точку по экрану в gr.0, как мне логически рассуждать в ассемблере для написания этой программы ?
ATARI 65XE|130XE|XEGS|4-XC12|(2-TURBO2000)|SIO2SD
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)