;******************************************************************** ;* プリントテスト(アセンブラ版) * ;* URL http://member.nifty.ne.jp/Mo-mo-/wwitch/index.htm * ;******************************************************************** ;==================================================================== ;-------------------------------------------------------------------- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;==================================================================== ; EQU定義 ;==================================================================== CHAR_ADDR equ 2000h ; キャラクターフォント定義領域アドレス SCR2_ADDR equ 1800h ; SCR2画面領域アドレス INT_KEY equ 11h ; キーBIOSのソフト割込み番号 KEY_WAIT equ 02h ; ah = 02h で key_wait() 関数処理と同等 ;==================================================================== ; グループ定義 ;==================================================================== CGROUP group _TEXT DGROUP group _DATA assume cs:CGROUP,ds:DGROUP,ss:DGROUP ;==================================================================== ; 外部参照可能シンボル定義 ;==================================================================== public _main ;==================================================================== ; データ ;==================================================================== _DATA segment word public 'DATA' char_data label word ; キャラクターデータ dw 00000h ; 00番 ' 'のドットデータ dw 00000h dw 00000h dw 00000h dw 00000h dw 00000h dw 00000h dw 00000h dw 01818h ; 01番 'A'のドットデータ dw 03c3ch dw 06666h dw 0c3c3h dw 0c3c3h dw 0ffffh dw 0c3c3h dw 0c3c3h _DATA ends ;==================================================================== ; メイン処理 ;==================================================================== _TEXT segment byte public 'CODE' _main proc near ; main()開始 xor ax, ax ; AX = 0 mov es, ax ; ES = 0 mov bx, ax ;┬ キャラクターを設定 mov cx, (8 * 2) ;│ 1キャラ分8ワード × 2キャラ @loop_p0: ;│ mov ax, [char_data + bx] ;│ mov es:[CHAR_ADDR + bx], ax ;│ inc bx ;│ inc bx ;│ loop @loop_p0 ;┘ mov ax, 0001h ;┬ (0, 0) にキャラ1番をパレット0番で表示 mov bx, 0000h ;│ mov word ptr es:[SCR2_ADDR + bx], ax ;┘ mov ah, KEY_WAIT ;┬ key_wait()関数と同じ処理 int INT_KEY ;┘ ret ; 終了 _main endp ; main()終了 _TEXT ends ;==================================================================== ; ファイル終了 ;==================================================================== end ;******************************************************************** ; end of "print.asm" ;********************************************************************