PC-98 MASM32でグラフィック描画してみた
環境
- Windows 10 Home (64bit)
- MASM32
- Neko Project Ⅱ x64
- DiskExplorer
ソース
gvram.asm
comment *
ml /c /AT /Fl gvram.asm
link16 /t gvram;
*
.model tiny
.code
org 100h
start:
mov al, 01h
out 6ah, al ; 16色モード
mov al, 4bh
out 0a2h, al ; G-GDC CSRFORMコマンド
mov al, 0h
out 0a0h, al ; 縦方向の拡大率
mov al, 08h
out 068h, al ; 400ラインモード
mov al, 0dh
out 0a2h, al ; G-GDC STARTコマンド
mov al, 0 ; 16色モードのパレット設定
mov dl, 0
mov cx, 16
L1:
out 0a8h, al ; パレット番号
out 0aah, al ; G 輝度
out 0ach, al ; R 輝度
xchg ax, dx
out 0aeh, al ; B 輝度
xchg ax, dx
inc al
add dl, 2
cmp dl, 0fh
jbe @f
mov dl, 0fh
@@:
loop L1
mov ax, 0a800h
lea bx, tile_b
call draw
mov ax, 0b000h
lea bx, tile_r
call draw
mov ax, 0b800h
lea bx, tile_g
call draw
mov ax, 0e000h
lea bx, tile_i
call draw
mov ax, 4c00h
int 21h
; ax gvram segment
; bx tile addr
draw:
mov es, ax
mov di, 0
mov dx, 5*200
@@:
mov si, bx
mov cx, 8
cld
rep movsw
dec dx
jnz @b
ret
tile_b dw 0ff00h, 0ff00h, 0ff00h, 0ff00h, 0ff00h, 0ff00h, 0ff00h, 0ff00h
tile_r dw 00000h, 0ffffh, 00000h, 0ffffh, 00000h, 0ffffh, 00000h, 0ffffh
tile_g dw 00000h, 00000h, 0ffffh, 0ffffh, 00000h, 00000h, 0ffffh, 0ffffh
tile_i dw 00000h, 00000h, 00000h, 00000h, 0ffffh, 0ffffh, 0ffffh, 0ffffh
end start
おまけ
gvram.asm
comment *
ml /c /AT /Fl gvram.asm
link16 /t gvram;
*
.model tiny
.code
org 100h
start:
mov al, 01h
out 6ah, al ; 16色モード
mov al, 4bh
out 0a2h, al ; G-GDC CSRFORMコマンド
mov al, 0h
out 0a0h, al ; 縦方向の拡大率
mov al, 08h
out 068h, al ; 400ラインモード
mov al, 0dh
out 0a2h, al ; G-GDC STARTコマンド
mov al, 0 ; 16色モードのパレット設定
mov dl, 0
mov cx, 16
L1:
out 0a8h, al ; パレット番号
out 0aah, al ; G 輝度
out 0ach, al ; R 輝度
xchg ax, dx
out 0aeh, al ; B 輝度
xchg ax, dx
inc al
add dl, 2
cmp dl, 0fh
jbe @f
mov dl, 0fh
@@:
loop L1
mov ax, 0a800h
lea bx, tile_b
call draw
mov ax, 0b000h
lea bx, tile_r
call draw
mov ax, 0b800h
lea bx, tile_g
call draw
mov ax, 0e000h
lea bx, tile_i
call draw
mov ax, 4c00h
int 21h
; ax gvram segment
; bx tile addr
draw:
mov es, ax
mov di, 0
mov dx, 5*200
@@:
mov si, bx
mov cx, 8
cld
rep movsw
dec dx
jnz @b
ret
tile_b dw 0ff00h, 0ff00h, 0ff00h, 0ff00h, 0ff00h, 0ff00h, 0ff00h, 0ff00h
tile_r dw 00000h, 0ffffh, 00000h, 0ffffh, 00000h, 0ffffh, 00000h, 0ffffh
tile_g dw 00000h, 00000h, 0ffffh, 0ffffh, 00000h, 00000h, 0ffffh, 0ffffh
tile_i dw 00000h, 00000h, 00000h, 00000h, 0ffffh, 0ffffh, 0ffffh, 0ffffh
end start
おまけ
Author And Source
この問題について(PC-98 MASM32でグラフィック描画してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/Stosstruppe/items/92d47832d254a3726824著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .