Автор Тема: Очистка экрана с высоким разрешением  (Прочитано 631 раз)

Оффлайн jaws

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 10194
  • Karma: +504/-0
    • Просмотр профиля
Две небольшие программы по очистке экрана с высоким разрешением (в турбо ассемблере).
Причем не обязательно использовать именно их для очистки (и не только), существует множество и
других вариантов, что подтверждает довольно большие возможности в написании кода на ассемблере.

Прг. №1 С применением косвенно-индексной адресации

           *= $1000
           lda #$1d                   
           sta $d018
           lda #$3b
           sta $d011
           lda #$00
           sta $30
           lda #$20
           sta $31
           clc
l1        ldy #$00
           lda #$00
l2        sta ($30),y
           iny
           bne l2
           lda $31
           adc #$01
           sta $31
           cmp #$40
           bne l1
           rts

Прг. №2 С применением прямой адресации

           *= $1000
           lda #$1d
           sta $d018
           lda #$3b
           sta $d011
           ldy #$20
l1        sty l2+2
           iny
           jsr clr
           cpy #$40
           bne l1
           rts
clr       ldx #$00
           lda #$00
l2        sta $2000,x
           inx
           bne l2
           rts

« Последнее редактирование: Январь 09, 2013, 04:33:48 pm от jaws »

Оффлайн crazy_bender

  • Jr. Member
  • **
  • Сообщений: 62
  • Karma: +6/-0
    • Просмотр профиля
Re: Очистка экрана с высоким разрешением
« Ответ #1 : Январь 09, 2013, 08:31:58 am »
скомпилировал и получил цветные квадратики на черном фоне. это нормально? видимо это текст вывелся?

Оффлайн jaws

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 10194
  • Karma: +504/-0
    • Просмотр профиля
Re: Очистка экрана с высоким разрешением
« Ответ #2 : Январь 09, 2013, 01:19:19 pm »
Да это так и должно быть (сделано для наглядности),
           lda #$1d                   
           sta $d018
           lda #$3b
           sta $d011
Этот код переводит Commodore 64 на экран высокого разрешения(8192-16192 или $2000-$3f40), если набрать:
poke 53272,29:poke53265,59 (что и есть этот код)  в бейсике, то будет виден экран.
Замени вот здесь:
l1        ldy #$00
           lda #$00                  (00 на ff)
l2        sta ($30),y

и экран закрасится, в данном случае ff = 255 бит, поэкспериментируй "битами" и увидишь разницу.

Буквы в данном разрешении придают цвет графике, за счет чего и получаются цветные рисунки (графики).
P.S. Конечно, для нормального цветного рисунка, нужен, еще кое-какой код.
(скоро продемонстрирую на рисунках "ART STUDIO")
« Последнее редактирование: Январь 09, 2013, 04:34:17 pm от jaws »