トップ 一覧 検索 ヘルプ RSS ログイン

VZ200の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!VZ200/VZ300
{{outline}}

!!Memory Map
!VZ200
,address,,Size
,$0000-$1fff,BASIC Interpreter (ROM 0),8KB
,$2000-$3fff,BASIC Interpreter (ROM 1),8KB
,$4000-$67ff,Reserved for ROM Cartridges,10KB
,$6800-$6fff,"Keyboard, Cassette I/O, Speaker, VDP Control",2KB
,$7000-$77ff,Video Display RAM,2KB
,$7800-$8fff,Internal User RAM,6KB
,$9000-$cfff,Expansion RAM,16KB
,$d000-$ffff,(unused),12KB

!VZ300
,address,,Size
,$0000-$3fff,BASIC Interpreter (Single ROM),16KB
,$4000-$67ff,Reserved for ROM Cartridges,10KB
,$6800-$6fff,"Keyboard, Cassette I/O, Speaker, VDP Control",2KB
,$7000-$77ff,Video Display RAM,2KB
,$7800-$b7ff,Internal User RAM,16KB
,$b800-$f7ff,Expansion RAM,16KB
,$f800-$ffff,(unused),2KB

!!I/O
,address,device
,$00~$0f,Printer
,$10~$1f,Floppy disk controller
,$20~$2f,Joystick interface
,$30~$3f,Communications MODEM
,$70~$7f,Memory bank switch

!Joystick
*スイッチが押されると該当ビットが0になる。(負論理)
*$20がよく使われている。$2eのミラー?
,address,bit4,bit3,bit2,bit1,bit0
,$27,2-Arm,,,,
,$2b,2-Fire,2-Right,2-Left,2-Down,2-Up
,$2d,1-Arm,,,,
,$2e,1-Fire,1-Right,1-Left,1-Down,1-Up

!Keyboard, Cassette I/O, Speaker, VDP Control
*$6800にマッピングされている。(Memory Mapped I/O)
*$6801~$6fffにもミラーリングされている。
*リードオンリー。BASICでは$783bに保存されている。
,bit,function,
,bit5,Speaker B,
,bit4,VDC Background,"0 = green (text & graphics), 1 = orange (text) / buff (graphics)"
,bit3,VDC Display Mode,"0 = mode 0 (text/low res.), 1 = mode 1 (graphics/hi-res.)"
,bit2,Cassette out (MSB),
,bit1,Cassette out (LSB),
,bit0,Speaker A,

!Keyboard Matrix
*$68xxにマッピングされている。(Memory Mapped I/O)
*$69xx~$6fxxにもミラーリングされている。
*キーが押されると該当ビットが0になる。(負論理)
*アドレスのbitを0にしたマトリクス(のOR)を同時に取得することが出来る。
**$687d(01111101)の場合は、$687fと$68fdを同時に取得できる。
**$6800(00000000)の場合は、全てのマトリクスを同時に取得できる。
,address(bit),bit5,bit4,bit3,bit2,bit1,bit0
,$687f (01111111),J,;,K,:,L,H
,$68bf (10111111),U,P,I,RETURN,O,Y
,$68df (11011111),7,0,8,-,9,6
,$68ef (11101111),M,SPACE,",",,.,N
,$68f7 (11110111),4,1,3,,2,5
,$68fb (11111011),V,Z,C,SHIFT,X,B
,$68fd (11111101),F,A,D,CTRL,S,G
,$68fe (11111110),R,Q,E,,W,T

!割り込み
*VSYNCのタイミングでRST $38が呼ばれるっぽい。

!!BASICワークエリア
,address,size,,note
,$783b,1B,Copy of output latch,($6800)
,$787d,3B,Interrupt exit (called upon interrupt),
,$788e,ptr,Execute address for USR program,
,$789c,1B,Output device code,"(0=video, 1=printer, -1=cassette)"
,$78a0,ptr,Start of string table,End of BASIC's stack +1
,$78a4,ptr,Start of BASIC program,$7ae9
,$78a6,1B,Cursor position,
,$78b1,ptr,Top of Memory,
,$78f9,ptr,Star of simple variable table,End of BASIC program +1
,$78fb,ptr,Start of array variable table,Endr of simple variable table +1
,$78fd,ptr,Free space,End of array variable table +1
,$79e8,,Start of BASIC line input buffer,

!!キャラクターコード
,,$x0,$x1,$x2,$x3,$x4,$x5,$x6,$x7,$x8,$x9,$xA,$xB,$xC,$xD,$xE,$xF
,$0x,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O
,$1x,P,Q,R,S,T,U,V,W,X,Y,Z,[,\,],^,←
,$2x," ",!,"""",#,$,%,&,',(,),*,+,",",-,.,/
,$3x,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?

* $40~$7Fは反転(Inverse)。


!!.VZ File Format
,offset,size,
,$00~$03,4B,Magic Number
,$04~$14,17B,File Name
,$15,1B,File Type ($F0/$F1)
,$16~$17,1W,Start Address (Little Endian)
,$18~,,Program

Type F0
*Start AddressにProgramを読み込んだ後、開始/終了アドレスをBASICワークエリアにセットする。
*BASICプログラム用
Type F1
*Start AddressにProgramを読み込んだ後、実行する。
*マシン語プログラム用