chjmartin2
Experienced Member
- Joined
- Dec 26, 2012
- Messages
- 424
Hi,
I have decoded the Plantronics mode and can successfully make 320x200x16 color images and 640x200x4 color images using QuickBasic 4.5. As you all know POKE's are far too slow to do anything useful. I have an image converter, I know what registers to tickle to get into Plantronics, and I know the memory layout and what's needed to make an image. But POKE is waaaaay too slow. So, ASM it is. Unfortunately, my only experience is on Z80 ASM. So, have to teach this old dog new tricks, and certainly I should get it, but alas my code is not working and I am not sure why. I just need a nudge in the right direction I hope. First all I want to do is get some graphics on the screen in 640x200.
The code below is supposed to send 26 (00011010) to the CGA mode control register, then load 146 (10010010) to memory locations 47104 through 47113 then go back to DOS. Well, it doesn't do that. Would appreciate any help.
I have decoded the Plantronics mode and can successfully make 320x200x16 color images and 640x200x4 color images using QuickBasic 4.5. As you all know POKE's are far too slow to do anything useful. I have an image converter, I know what registers to tickle to get into Plantronics, and I know the memory layout and what's needed to make an image. But POKE is waaaaay too slow. So, ASM it is. Unfortunately, my only experience is on Z80 ASM. So, have to teach this old dog new tricks, and certainly I should get it, but alas my code is not working and I am not sure why. I just need a nudge in the right direction I hope. First all I want to do is get some graphics on the screen in 640x200.
The code below is supposed to send 26 (00011010) to the CGA mode control register, then load 146 (10010010) to memory locations 47104 through 47113 then go back to DOS. Well, it doesn't do that. Would appreciate any help.
Code:
start:
mov ax, 26
mov dx, 984
out dx, ax
mov bx, 146
mov ax, 47104
mov (ax), bx
inc ax
mov (ax), bx
inc ax
mov (ax), bx
inc ax
mov (ax), bx
inc ax
mov (ax), bx
inc ax
mov (ax), bx
inc ax
mov (ax), bx
inc ax
mov (ax), bx
inc ax
mov (ax), bx
inc ax
mov (ax), bx
; return to DOS
mov ax, 4c00h
int 21h