2012年3月28日水曜日

アルフォスマップ

せっかくなんで(?)、アルフォスのマップをつくってみる
手で打ち込むのは厳しいので、Excel VBAで。
Private Sub CommandButton1_Click()
    Dim sheet As Worksheet
    Dim inputFn As Long
    Dim buffer() As Byte
    Dim file As String
    Dim row As Long
    Dim column As Integer
    Dim value As String
    Dim count As Long
    Dim index As Long

    Set sheet = ThisWorkbook.Worksheets("Map")

    file = ThisWorkbook.Path & "\alpmap.bin"
    inputFn = FreeFile
    Open file For Binary As #inputFn
        ReDim buffer(LOF(inputFn))
        Get #inputFn, , buffer
    Close #inputFn
    
    count = UBound(buffer)
    For row = 1 To (count / 12) + 2
        For column = 1 To 12
            index = count - (((row - 1) * 12) + column)
            If (index > 0) Then
                value = Right("0" & Hex(buffer(index)), 2)
                sheet.Cells(row, column).value = value
                file = ThisWorkbook.Path & "\" & value & ".png"
                sheet.Cells(row, column).Select
                If (Dir(file) <> "") Then
                    sheet.Pictures.Insert (file)
                End If
            End If
        Next column
    Next row
End Sub
For~Nextとか、なつかしすぎる

alpmapをバイナリ化して、「alpmap.bin」としてExcelと同じフォルダに保存
各バイトデータに対応した画像データ(32x32pix)を、「00.png」のようにHex形式のファイル名で同じフォルダに用意しとく
Excelのセルフォーマットをちょっと変更して、上記VBAを実行するとマップが完成

ステージ1

ステージ2

ステージ3

ステージ4

ステージ5

ステージ6

ステージ7

ステージ8

ステージ8の白抜けのところがアルフォスね。
赤枠は、他の背景とバイトデータが違う所。なんだろ?ボム落としても何も出てこないし。。

2012年3月24日土曜日

アルフォス

アルフォスのコメントをもらいましたので紹介

パソピア7版のパッケージ

パッケージの裏には、森田さんの顔写真と紹介文。当時在籍中の大学名まで出てる。
Wikiにもでてるが、、、

同梱のマニュアル。もうホチキスがさびさび。30年。。


いつも通り、テープイメージからRAMPACに保存。32KBに収まらないため、2つに分けて保存
BASICの「BLOAD#-1,"..."」を「BLOAD"..."」に変更
ファイル名の前にスロット1の場合「5:」、スロット2の場合「6:」をセットしておく
バイナリファイルは、以下のアドレスとサイズなので、BSAVEでスロット1か2に保存しておく
"alpdat", &H0000, &H6800
"alpmap", &H9000, &H2A00
"alpobj", &HC800, &H2200
あとは、RUN "ALPHOS"で実行できるようになる。

クレジット画面。
森田さんの技術はすばらしい。。将棋もすごいけど。

キー操作

ゲーム画面。ここにもナムコ

動画だとモアレとか残像がでてるが動画圧縮の問題。エミュは綺麗な画面がでてる

2012年3月23日金曜日

パソピア7でつくってみた

20年ほど前につくったあれをエミュで動かしてみた
ちゃんと動いた。

BASICとマシン語だが、キャラクタ表示はBIOSコールだったので、それほど速くないし、ちらつく。
テキストベタ塗りなので、純正のCRTだと色が滲んで見にくかった。


アセンブラは、ペーパーウェアPASOPIAに掲載されていたPTA-7を使用
当時、とても重宝した。ハンドアセンブルに比べたら雲泥の差。特にジャンプ系が。

動画

作った当時は98全盛期で、そんな中パソピア使ってるのは自分ひとりじゃないかと思っていた。
今も同じ気持ち

2012年3月20日火曜日

スターウォーズと博物館

初めてスターウォーズをみた。エピソード1の3D版。
3D映画も初めてで、字幕が浮き出て見えるのに妙に感動。

入場者プレゼントでもらったカード
アナキン・スカイウォーカーとクイーン・アミダラ

せっかくなんで、3Dメガネもエピソード1のやつ買ってみた。右は普通の

裏には、PODRACINGのロゴ。うんうん、よく出来てる。

話は変わるが、映画の翌日、岩見沢郷土科学館へ。
1階のコンピュータと遊ぼうのコーナー

PC-8801FE2が、モニター台に。。。
画面とマウスは後ろのPC。
88は完全に台。

もっと酷いのが、PC-9801VM
ファミコンのTV台?
コンピュータと遊ぼうというテーマには沿ってるかもしれんが、いろんな意味でおかしくない?

2階の郷土資料はなかなか。ポイント切り替えは床置き。


そして、獅子舞。ショーケース横の子供たちの写真をみて、何かを感じた。(フォース?)
白粉の顔に口紅とほっぺたに丸い紅。。。
クイーン・アミダラじゃないか。

2012年3月19日月曜日

パソピア7のデモプログラム

今度はパソピア7のデモプログラムをエミュレータで動かしてみる

Side A
1. サンプル1 "SAMPL1"
2. サンプル2 "SAMPL2"
3. FD初期化 "FORMAT"
4. FDコピー "FDCOPY"
5. FD比較 "FDCOMP"
6. プログラム変換 "PCONV"
7. 漢字印刷サブルーチン "KANJI"
8. パソピアT-BASIC "TBASIC"

Side B
1. パソピアT-BASIC "TBASIC"
2. プログラム変換 "PCONV"
3. 漢字印刷サブルーチン "KANJI"
4. FD初期化 "FORMAT"
5. FDコピー "FDCOPY"
6. FD比較 "FDCOMP"
7. サンプル3 "SAMPL3"
8. サンプル4 "SAMPL4"

サンプル1

サンプル2

サンプル3
あみだがみねじゃないよ。

サンプル4

2012年3月18日日曜日

パソピアのデモプログラム

パソピアのデモプログラムをエミュレータで動かしてみる

1. 音階 "DOREMI"
2. ネオン・サイン "NEON"
3. LCD用 "LCD"
4. レースあみ "DRAW1"
5. 八角形 "DRAW2"
6. 立体図形 "DRAW3"
7. RAM初期化 "FORMAT"

まずはDOREMI。音は動画の方で。

NEON。東芝の歌は、ちょっと引く。。。

DRAWは、こんなかんじ



最後のDRAW3は10分以上かかるので、エミュレータのCPUを16倍速で早送り。
動画。全部見るのは忍耐が必要。。

2012年3月17日土曜日

パソピア7のV-RAM

ついでに、パソピア7のV-RAMについても書いとく

初代ほどではないが、7のV-RAM配置もちょっと独特

アドレスは8000hからキャラクタ単位で配置されていて、80文字分右端まで行くと次の行に移る。
例えば画面の一番左上8x8ドットの場合、
8000h
8001h
8002h
8003h
8004h
8005h
8006h
8007h
の8バイトにデータを書き込むことになる
キャラクタ単位で処理する場合は便利だが。。。

V-RAMにアクセスするためには、3Chポートの2bitをONにする
7bit6bit5bit4bit3bit2bit1bit0bit
(Reserved)I/O MemoryV-RAMRAMBIOS

アセンブラはこんなかんじ
LD A,4
OUT (3Ch),A
パソピア7の場合、V-RAMはR・G・Bの3プレーンがあって、0Chポートで切り替える
7bit6bit5bit4bit3bit2bit1bit0bit
メモリープレーンデータプレーン
(Reserved)Green/TextRedBlue(Reserved)Green/TextRedBlue
下位0~3bitはデータプレーンの選択。各bitがONの場合、そのV-RAMデータバスとCPUデータバス間のデータ交換が有効に。
上位4~7bitはメモリプレーンの選択。各bitがONの場合、そのV-RAMへのCPUアクセスが有効に

このポートに書き込むデータは、上位・下位ビットをセットで指定し、
00h11h22h33h44h55h66h77h
黒青赤紫緑水色黄白

Text用のV-RAMはGreenと共用してて、書き込むデータがグラフィックのドットパターンなのかテキストなのかは、0Dhの3bitで指定
0がテキストで、1がグラフィック