
Сообщение от
Oleg N. Cher
Гораздо хуже всё с палитрами обстоит. Чёрная магия, никто не знает как это сделать.
Ну не такая и чёрная. Читайте литературу, всё описано.
Маленький пример. Числа по умолчанию восьмеричные, R0 - адрес в ОЗУ ЦП, R1 - адрес в ОЗУ ПП, R2 - кол-во слов (2 байта) для обмена.
Код:
; Сохранить старый регистр
MOV #2470,R0
MOV #SVPAL,R1
MOV #2,R2
CALL RDPP
; Установить новый
MOV #2470,R0
MOV #NEWPAL,R1
MOV #2,R2
CALL WRPP
; Восстановить старый
MOV #2470,R0
MOV #SVPAL,R1
MOV #2,R2
CALL WRPP
RDPP: MOV #10*400,BLK
MOV R0,BLK+4
MOV R1,BLK+6
MOV R2,BLK+10
CALL CHAN2
RETURN
WRPP: MOV #20*400,BLK
MOV R0,BLK+4
MOV R1,BLK+6
MOV R2,BLK+10
CALL CHAN2
RETURN
CHAN2: MOV #BUF0,R0
MOV #5,R1
MTPS #200
BR 2$
1$: MOVB (R0)+,@#176676
2$: TSTB @#176674
BPL 2$
SOB R1,1$
MTPS #0
RETURN
BLK: .WORD 10*400,32,0,0,0
BUF0: .WORD BLK,-1
SVPAL: .BLKW 2
NEWPAL: .WORD ^B1110111011001100, ^B1010101010001000