MANIMANIAのレトロエロゲーカウントダウン

人生の残り時間が半分を切ったというのに若き日に目にしたエロゲーに魂を引かれ続けるイタいおっさんがこなしたゲームを紹介。

晴れのちおおさわぎ!(PC-98,カクテル・ソフト)ADVSHELL.COM解析(その3)

2012-07-09 23:15:03 | レトロパソコンのお作法
晴れのちおおさわぎ!(PC-98,カクテル・ソフト)ADVSHELL.COM解析(その2)からの続き。
最初の1行だけ重複してます。

3B66:0250 E8 0005 call sub_2 ; (0258)
;##########################################################################
; SUBROUTINE
;
; Called from: 3B66:0250
;##########################################################################

3B66:0258 sub_2 proc near ; CX=03D6H,DX=03B7H(='ADVH.EXE')
3B66:0258 0E push cs
3B66:0259 07 pop es ; CS=ES,パラメータブロックセグメントアドレス
3B66:025A FE 06 03A0 inc byte ptr [03A0h] ; (3B66:03A0=33H='3')インクリメントして34H='4'
3B66:025E ,BB 041E mov bx,041Eh ; BX=041EH,パラメータブロックオフセットアドレス
; パラメータブロックはCS:041EH
3B66:0261 C7 07 0000 mov word ptr [bx],0 ; DS:[041EH]=0000H ;041EH以下のメモリ書き換え
3B66:0265 89 4F 02 mov [bx+2],cx ; DS:[0420H]=CX=03D6H ;041E 00 00
3B66:0268 8C 5F 04 mov [bx+4],ds ; DS:[0422H]=DS ;0420 D6 03 DS DS 5C 00 DS DS
3B66:026B C7 47 06 005C mov word ptr [bx+6],5Ch ; DS:[0424H]=005CH ;0428 6C 00 DS DS
3B66:0270 8C 5F 08 mov [bx+8],ds ; DS:[0426H]=DS
3B66:0273 C7 47 0A 006C mov word ptr [bx+0Ah],6Ch ; DS:[0428H]=006CH
3B66:0278 8C 5F 0C mov [bx+0Ch],ds ; DS:[042AH]=DS
3B66:027B B8 4B00 mov ax,4B00h ; プログラムのロードと実行
; DS:DX=パス名の位置,ES:BX=パラメータブロックの位置
; BX=(03D6=10 20 5C 4D 45 53 5C 48 4F 30 30 30 30 2E 4D 45 53 0D)
; ^P半角スペース\MES\HO0000.MESリターンキー)
3B66:027E CD 21 int 21h ; DOS Services ah=function 4Bh
; run progm @ds:dx, parm @es:bx INT 0F5Hのアドレスにロードした?
3B66:0280 BA 0383 mov dx,383h ; 文字列'プログラムが起動できません。(4)$'
3B66:0283 C3 retn
sub_2 endp


3B66:0253 5E pop si ; SI復帰,SI=0418H
3B66:0254 72 C2 jc 0218h ; Jump if carry Set エラーなければCF=0でスルー,エラーがあればCF=1なので0218Hへ
3B66:0256 EB C9 jmp short 0221h ; (0221)

3B66:0221 loc_4: ; xref 3B66:024D, 0256
3B66:0221 ,8A 04 mov al,[si] ; AL=[0418H]=01H
3B66:0223 84 C0 test al,al ; (3B66:0418=01H),AL=00Hでなければ,ZF=0
3B66:0225 75 03 jnz 022Ah ; Jump if not zero, ZF=0なら022AHへ
3B66:0227 loc_5: ; xref 3B66:0227
3B66:0227 EB FE jmp short loc_5 ; (0227)
3B66:0229 90 db 90h
3B66:022A loc_6: ; xref 3B66:0225
3B66:022A 8B 4C 01 mov cx,[si+1]  ; CX=03D0H=[0419H]
3B66:022D 8B 54 03 mov dx,[si+3] ; DX=03AEH=[041BH]
3B66:0230 83 C6 05 add si,5 ; SI=041DH
3B66:0233 FE C8 dec al ; AL=00H
3B66:0235 74 18 jz 024Fh ; Jump if zero 0なので024FHへ

(省略)
3B66:024F loc_9: ; xref 3B66:0235, 023D
3B66:024F 56 push si ; SI退避,SI=041DH
3B66:0250 E8 0005 call sub_2 ; (0258)

;##########################################################################
; SUBROUTINE
;
; Called from: 3B66:0250
;##########################################################################

3B66:0258 sub_2 proc near ; CX=03D0H,DX=03AEH(='HARE.EXE')
3B66:0258 0E push cs
3B66:0259 07 pop es ; CS=ES,パラメータブロックセグメントアドレス
3B66:025A FE 06 03A0 inc byte ptr [03A0h] ; (3B66:03A0=34H='4')インクリメントして35H='5'
3B66:025E ,BB 041E mov bx,041Eh ; BX=041EH,パラメータブロックオフセットアドレス
; パラメータブロックはCS:041EH
3B66:0261 C7 07 0000 mov word ptr [bx],0 ; DS:[041EH]=0000H ;041EH以下のメモリ書き換え
3B66:0265 89 4F 02 mov [bx+2],cx ; DS:[0420H]=CX=03D0H ;041E 00 00
3B66:0268 8C 5F 04 mov [bx+4],ds ; DS:[0422H]=DS ;0420 D0 03 DS DS 5C 00 DS DS
3B66:026B C7 47 06 005C mov word ptr [bx+6],5Ch ; DS:[0424H]=005CH ;0428 6C 00 DS DS
3B66:0270 8C 5F 08 mov [bx+8],ds ; DS:[0426H]=DS
3B66:0273 C7 47 0A 006C mov word ptr [bx+0Ah],6Ch ; DS:[0428H]=006CH
3B66:0278 8C 5F 0C mov [bx+0Ch],ds ; DS:[042AH]=DS
3B66:027B B8 4B00 mov ax,4B00h ; プログラムのロードと実行
; DS:DX=パス名の位置,ES:BX=パラメータブロックの位置
; BX=(03D0=02 20 33 0D)
; B:半角スペース'3'リターンキー)
3B66:027E CD 21 int 21h ; DOS Services ah=function 4Bh
; run progm @ds:dx, parm @es:bx INT 0F4Hのアドレスにロードした?
3B66:0280 BA 0383 mov dx,383h ; 文字列'プログラムが起動できません。(5)$'
3B66:0283 C3 retn
sub_2 endp

3B66:0253 5E pop si ; SI復帰,SI=041DH
3B66:0254 72 C2 jc 0218h ; Jump if carry Set エラーなければCF=0でスルー,エラーがあればCF=1なので0218Hへ
3B66:0256 EB C9 jmp short 0221h ; (0221)

3B66:0221 loc_4: ; xref 3B66:024D, 0256
3B66:0221 ,8A 04 mov al,[si] ; AL=[041DH]=00H
3B66:0223 84 C0 test al,al ; (3B66:041D=00H),ZF=1
3B66:0225 75 03 jnz 022Ah ; Jump if not zero, ZF=1なのでスルー
3B66:0227 loc_5: ; xref 3B66:0227
3B66:0227 EB FE jmp short loc_5 ; (0227) 無限ループ
3B66:0229 90 nop

;**********************************************************************************************
;プログラムロードエラー発生時
3B66:0218 sub_1 proc near
3B66:0218 loc_1: ; xref 3B66:0254
3B66:0218 E8 0069 call 0284h ; (0284) エラー文字列表示ルーチンへ

;##########################################################################
; SUBROUTINE
;
; Called from: 3B66:0218 ; エラー文字列表示ルーチン
;##########################################################################

3B66:0284 sub_3 proc near
3B66:0284 B4 09 mov ah,9 ; DX=0383Hで飛んできた。文字列 'プログラムが起動できません。(5)$'
3B66:0286 CD 21 int 21h ; DOS Services ah=function 09h 文字列の表示,DS:DXから$までの文字列を画面に表示
; display char string at ds:dx
3B66:0288 loc_10: ; xref 3B66:028A
3B66:0288 ,FA cli ; Disable interrupts 外部割込禁止
3B66:0289 F4 hlt ; Halt processor 割込がかかるまでCPUを停止させる
3B66:028A EB FC jmp short loc_10 ; (0288)
sub_3 endp
;**********************************************************************************************


3B66:02B5 90 db 90h

;##########################################################################
;
; External Entry Point 致命的エラー(INT24)発生時の独自割込処理
;
;##########################################################################

3B66:02B6 int_24h_entry proc far ; xref 3B66:0635
3B66:02B6 55 push bp ; 各レジスタ退避
3B66:02B7 57 push di
3B66:02B8 56 push si
3B66:02B9 1E push ds
3B66:02BA 06 push es
3B66:02BB 53 push bx
3B66:02BC 51 push cx
3B66:02BD 52 push dx
3B66:02BE 50 push ax
3B66:02BF F6 C4 80 test ah,80h ; AHの第7bitが1でなければ0
3B66:02C2 75 4E jnz 0312h ; Jump if not zero
; AHの第7bitが0ならALを0にしてAX以外のレジスタ復帰。
3B66:02C4 0E push cs
3B66:02C5 1F pop ds ; CS=DS
3B66:02C6 04 41 add al,41h ; AL=41H 'A'
3B66:02C8 A2 043F mov 043Fh,al ; (3B66:043F=41h)
; エラー表示内のドライブレター表記部分に,
; ドライブレターの文字コードを代入。
3B66:02CB 8B DF mov bx,di ; BX=DI
3B66:02CD 2A FF sub bh,bh ; BH=00H
3B66:02CF 83 FB 0C cmp bx,0Ch ; BXと0CHを比較(BHが00Hなので事実上,BL(DL)と0CHとの比較)
3B66:02D2 73 3E jae 0312h ; Jump if above or =
; BL>=0CHなら,ALを0にして各レジスタ復帰(02C2Hと同じ)
3B66:02D4 B8 A000 mov ax,0A000h ; AX=0A000H
3B66:02D7 8E C0 mov es,ax ; ES=0A000H,テキストVRAMセグメント
3B66:02D9 ,BF 0F00 mov di,0F00h ; DI=0F00H
3B66:02DC ,BE 042E mov si,042Eh ; SI=042EH
3B66:02DF D1 E3 shl bx,1 ; Shift w/zeros fill,SHIFT LOGICAL LEFT 左シフトbit7をCFに,bit0を0に
3B66:02E1 E8 FFA8 call 028Ch ; (028C)

;##########################################################################
; SUBROUTINE
;
; Called from: 3B66:02E1, 02E8, 02EE
;##########################################################################

3B66:028C sub_4 proc near
3B66:028C FC cld ; Clear direction ; ディレクションフラグを0(増加)にリセット
3B66:028D B4 65 mov ah,65h ; AX=6500H
3B66:028F EB 0B jmp 029Ch ; (029C)
3B66:0291 loc_11: ; xref 3B66:029F
3B66:0291 26: 88 A5 2000 mov es:[2000h],ah ; (A000:2000=65h)
3B66:0296 26: 88 05 mov es:[di],al ; (A000:0F00=00H)
3B66:0299 83 C7 02 add di,2 ; DI=0F02H
3B66:029C loc_12: ; xref 3B66:028F
3B66:029C AC lodsb ; String [si] to al, DS:[SI]で示されるメモリのバイト値をALレジスタに転送し,SIの値を1増加または減少させる
; (042Eh=20H),SIを042Fhに・・・SI=0456HでAL=00H,SI=0457Hでルーチン終了
3B66:029D 0A C0 or al,al ; Zero ? AL=20HなのでZF=0, [SI]=0456Hになるまで00Hなし。ES:[DI]に042EHから0456Hまでのデータをロード
; 半角スペース10個,'ドライブ A: デ エラー ハッセイ ・・・ ',00H,Aはエラーの発生したドライブによって変動
3B66:029F 75 F0 jnz 0291h ; Jump if not zero

3B66:02A1 C3 retn
sub_4 endp

3B66:02E4 8B B7 04FA mov si,[04FAh] ; (3B66:04FA=457h)
3B66:02E8 E8 FFA1 call sub_4 ; (028C)

;##########################################################################
; SUBROUTINE
;
; Called from: 3B66:02E1, 02E8, 02EE
;##########################################################################

3B66:028C sub_4 proc near
3B66:028C FC cld ; Clear direction ; ディレクションフラグを0(増加)にリセット
3B66:028D B4 65 mov ah,65h ; AX=6500H
3B66:028F EB 0B jmp 029Ch ; (029C)
3B66:0291 loc_11: ; xref 3B66:029F
3B66:0291 26: 88 A5 2000 mov es:[2000h],ah ; (A000:2000=0E1h)
3B66:0296 26: 88 05 mov es:[di],al
3B66:0299 83 C7 02 add di,2 ; DI=0F04H
3B66:029C loc_12: ; xref 3B66:028F
3B66:029C AC lodsb ; String [si] to al, DS:[SI]で示されるメモリのバイト値をALレジスタに転送し,SIの値を1増加または減少させる
; (0457h=CCH),SIを0458hに・・・・・・SI=0474HでAL=00H,SI=0475Hでルーチン終了
3B66:029D 0A C0 or al,al ; Zero ? AL=CCHなのでZF=0
; 'プロテクトシール ヲ ハガシテ クダサイ。 ',00H
3B66:029F 75 F0 jnz 0291h1 ; Jump if not zero

3B66:02A1 C3 retn
sub_4 endp


3B66:02EB ,BE 04ED mov si,[04ED] ; (3B66:04ED=20h)
3B66:02EE E8 FF9B call sub_4 ; (028C)

;##########################################################################
; SUBROUTINE
;
; Called from: 3B66:02E1, 02E8, 02EE
;##########################################################################

3B66:028C sub_4 proc near
3B66:028C FC cld ; Clear direction ; ディレクションフラグを0(増加)にリセット
3B66:028D B4 65 mov ah,65h ; AX=6500H
3B66:028F EB 0B jmp 029Ch ; (029C)
3B66:0291 loc_11: ; xref 3B66:029F
3B66:0291 26: 88 A5 2000 mov es:[2000h],ah ; (A000:2000=0E1h)
3B66:0296 26: 88 05 mov es:[di],al
3B66:0299 83 C7 02 add di,2 ; DI=0F06H
3B66:029C loc_12: ; xref 3B66:028F
3B66:029C AC lodsb ; String [si] to al, DS:[SI]で示されるメモリのバイト値をALレジスタに転送し,SIの値を1増加または減少させる
; (04EDh=20H),SIを04EEhに・・・,SI=04F8HでAL=00H,SI=04F9Hでルーチン終了
3B66:029D 0A C0 or al,al ; Zero ? AL=20HなのでZF=0
; 半角スペース11個,,00H
3B66:029F 75 F0 jnz 0291h1 ; Jump if not zero

3B66:02A1 C3 retn
sub_4 endp

3B66:02F1 E8 FFAE call sub_5 ; (02A2) ブザー鳴動処理

;##########################################################################
; SUBROUTINE
;
; Called from: 3B66:02F1 ブザー鳴動処理
;##########################################################################

3B66:02A2 sub_5 proc near
3B66:02A2 B0 06 mov al,6
3B66:02A4 E6 37 out 37h,al ; port 37h I/O Non-standard
; ポート番号037H(8255Aのコントロールレジスタ)に
; 06Hを出力する。
; 06h ブザー 06h=鳴動
; http://www.webtech.co.jp/company/doc/undocumented_mem/io_syste.txt
3B66:02A6 2B C9 sub cx,cx ; CX=00H

3B66:02A8 locloop_13: ; xref 3B66:02A8 LOOP4つ分のウエイトか?
3B66:02A8 E2 FE loop locloop_13 ; Loop if cx > 0


3B66:02AA locloop_14: ; xref 3B66:02AA
3B66:02AA E2 FE loop locloop_14 ; Loop if cx > 0


3B66:02AC locloop_15: ; xref 3B66:02AC
3B66:02AC E2 FE loop locloop_15 ; Loop if cx > 0


3B66:02AE locloop_16: ; xref 3B66:02AE
3B66:02AE E2 FE loop locloop_16 ; Loop if cx > 0

3B66:02B0 B0 07 mov al,7
3B66:02B2 E6 37 out 37h,al ; port 37h I/O Non-standard
; ポート番号037H(8255Aのコントロールレジスタ)に
; 07Hを出力する。
; 07h ブザー 07h=停止
; http://www.webtech.co.jp/company/doc/undocumented_mem/io_syste.txt
3B66:02B4 C3 retn
sub_5 endp

3B66:02F4 E8 0027 call sub_6 ; (031E)

;##########################################################################
; SUBROUTINE
;
; Called from: 3B66:02F4, 0737
;##########################################################################

3B66:031E sub_6 proc near
3B66:031E loc_20: ; xref 3B66:032A
3B66:031E B4 01 mov ah,1 ; キーバッファ状態のセンス(キーバッファ内先頭1文字分)
; BH=00H,キー入力データなし
; BH=01H,キー入力データあり,AH=キーコード,AL=キーデータ
3B66:0320 CD 18 int 18h ; ROM basic
3B66:0322 53 push bx ; BX退避
3B66:0323 B4 00 mov ah,0 ; キーデータの読み出し(1文字の入力待ち)
3B66:0325 CD 18 int 18h ; ROM basic キーバッファ内先頭1文字分のキー入力データを取り出し,
; AH=キーコード,AL=キーデータを出力
3B66:0327 5B pop bx ; BX復帰
3B66:0328 84 FF test bh,bh ; BHは00Hか?キー入力データなしなら結果は0
3B66:032A 75 F2 jnz loc_20 ; Jump if not zero キー入力データがあれば031Ehへループ
3B66:032C C3 retn
sub_6 endp

3B66:02F7 ,BF 0F00 mov di,[0F00H] ; (A000:0F00=00h)
3B66:02FA B9 0050 mov cx,50h ; CX=0050H,50H回セット

3B66:02FD locloop_17: ; xref 3B66:030B
3B66:02FD B8 E120 mov ax,0E120h
3B66:0300 26: 88 05 mov es:[di],al
3B66:0303 26: 88 A5 2000 mov es:[2000],ah ; (A000:2000=0E1h)
3B66:0308 83 C7 02 add di,2
3B66:030B E2 F0 loop locloop_17 ; Loop if cx > 0

3B66:030D 58 pop ax ; AX復帰
3B66:030E B0 01 mov al,1 ; AL=01H
3B66:0310 EB 03 jmp short loc_19 ; (0315)
3B66:0312 loc_18: ; xref 3B66:02C2, 02D2
3B66:0312 58 pop ax ; AX復帰
3B66:0313 2A C0 sub al,al ; AL=00H
3B66:0315 loc_19: ; xref 3B66:0310
3B66:0315 5A pop dx ;各レジスタ復帰
3B66:0316 59 pop cx
3B66:0317 5B pop bx
3B66:0318 07 pop es
3B66:0319 1F pop ds
3B66:031A 5E pop si
3B66:031B 5F pop di
3B66:031C 5D pop bp
int_24h_entry endp


;##########################################################################
;
; External Entry Point
;
;##########################################################################

3B66:031D int_06h_entry proc far ; xref 3B66:061F
3B66:031D CF iret ; Interrupt return 割込からのリターン命令
int_06h_entry endp



;* No entry point to code

3B66:0367 90 db 90h
3B66:0368 83 81 83 82 83 8A data_73 db 'メモリーが解放できません。$'
3B66:036E 81 5B 82 AA 89 F0
3B66:0374 95 FA 82 C5 82 AB
3B66:037A 82 DC 82 B9 82 F1
3B66:0380 81 42 24
3B66:0383 83 76 83 8D 83 4F db 'プログラムが起動できません。(0)$'
3B66:0389 83 89 83 80 82 AA
3B66:038F 8B 4E 93 AE 82 C5
3B66:0395 82 AB 82 DC 82 B9
3B66:039B 82 F1 81 42 28 30
3B66:03A1 29 24
3B66:03A3 4D 55 53 44 52 56 db 'MUSDRV.COM',0
3B66:03A9 2E 43 4F 4D
3B66:03AD 00
3B66:03AE 48 41 52 45 2E 45 db 'HARE.EXE',0
3B66:03B4 58 45
3B66:03B6
3B66:03B7 41 44 56 48 2E 45 db 'ADVH.EXE',0
3B66:03BD 58 45
3B69:03BF 00
3B69:03C0 00 0D 00 00 02 db 00h, 00h, 0Dh, 00h, 00h, 02h
3B69:03C5 20 31 0D 00 00 02 db 20h, 31h, 0Dh, 00h, 00h, 02h
3B69:03CB 20 32 0D 00 00 10 db 20h, 32h, 0Dh, 00h, 00h, 10h
3B69:03D1 20 5C 4D 45 53 5C db ' \MES\HO0000.MES', 0Dh
3B69:03D7 48 4F 30 30 30 30
3B69:03DD 2E 4D 45 53 0D
3B66:03E2 00 00 db 0,0
3B69:03E4 41 3A 5C 4D 55 53 db 'A:\MUS\HO-OPN.M'
3B69:03EA 5C 48 4F 2D 4F 50
3B69:03F0 4E 2E 4D
3B69:03F3 00 db 0

3B66:07A4 1B 5B 32 4A 24 data_96 db 1Bh, '[2J$' ; xref 3B66:0777 1BHはエスケープコード,[2Jで画面をクリアし,カーソルをホームに
3B66:07A9 1B 5B 6D 41 64 76 data_97 db 1Bh, '[mAdvShell for ADVH System ' ; xref 3B66:0781
3B66:07AF 53 68 65 6C 6C 20
3B66:07B5 66 6F 72 20 41 44
3B66:07BB 56 48 20 53 79 73
3B66:07C1 74 65 6D 20
3B66:07C5 20 56 65 72 2E 31 db ' Ver.1.01', 0Dh, 0Ah, 'Copyright'
3B66:07CB 2E 30 31 0D 0A 43
3B66:07D1 6F 70 79 72 69 67
3B66:07D7 68 74
3B66:07D9 28 43 29 20 54 75 db '(C) Tuneup 1988,89.', 0Dh, 'Copy'
3B66:07DF 6E 65 75 70 20 31
3B66:07E5 39 38 38 2C 38 39
3B66:07EB 2E 0D 43 6F 70 79
3B66:07F1 72 69 67 68 74 28 db 'right(C) Fairytale/カクテル・ソフト',
3B66:07F7 43 29 20 46 61 69
3B66:07FD 72 79 74 61 6C 65
3B66:0803 2F B6 B8 C3 D9 A5
3B66:0809 BF CC C4
3B66:080C 20 31 39 38 38 2C db ' 1988,89.', 0Dh, 0Ah, 0Dh, 0Ah, 0Dh,0Ah
3B66:0812 38 39 2E 0D 0A 0D
3B66:0818 0A 0D 0A
3B66:081B 81 40 90 B0 82 EA db ' 晴れのちおおさわぎ', 0Dh, 0Ah
3B66:0821 82 CC 82 BF 82 A8
3B66:0827 82 A8 82 B3 82 ED
3B66:082D 82 AC 0D 0A
3B66:0831 0D 0A 81 40 81 40 db 0Dh, 0Ah, '  ',
3B66:0837 1B 5B 35 3B 34 33 db 1Bh, '[5;43m [[[ プログラムを読み込み中 ]]] ' ブリンク(点滅・背景黄色)
3B66:083D 6D 81 40 5B 5B 5B ;81 40は全角スペースの文字コード
3B66:0841 20 83 76 83 8D 83
3B66:0847 8D 83 4F 83 89 83
3B66:084D 80 82 F0 93 C7 82
3B66:0853 DD 8D 9E 82 DD 92
3B66:0859 86 20 5D 5D 5D 81
3B66:085F 40
3B66:0860 1B 5B 6D 0D 0A 0D db 1Bh,'[m', 0Dh, 0Ah, 0Dh, 0Ah, 0Dh, 0Ah
3B66:0867 0A 0D 0A
3B66:0869 24 db '$'
3B66:086A 83 68 83 89 83 43 db 'ドライブA:から起動しなおしてく'
3B66:0870 83 75 82 60 81 46
3B66:0876 82 A9 82 E7 8B 4E
3B66:087C 93 AE 82 B5 82 C8
3B66:0882 82 A8 82 B5 82 C4
3B66:0888 82 AD
3B66:088A 82 BE 82 B3 82 A2 db 'ださい。'
3B66:0890 81 42
3B66:0892 07 db 7
3B66:0893 0D 0A 24 db 0Dh, 0Ah, '$'
3B66:0896 83 68 83 89 83 43 data_100 db 'ドライブA:のディスクを確認して' ; xref 3B66:072C
3B66:089C 83 75 82 60 81 46
3B66:08A2 82 CC 83 66 83 42
3B66:08A8 83 58 83 4E 82 F0
3B66:08AE 8A 6D 94 46 82 B5
3B66:08B4 82 C4
3B66:08B6 82 AD 82 BE 82 B3 db 'ください。', 7, '$'
3B66:08BC 82 A2 81 42 07 24
3B66:08C2 0D 81 40 81 40 81 data_103 db 0Dh, '              ' ; xref 3B66:073E
3B66:08C8 40 81 40 81 40 81
3B66:08CE 40 81 40 81 40 81
3B66:08D4 40 81 40 81 40 81
3B66:08DA 40 81 40 81 40
3B66:08DF 81 40 81 40 81 40 db '       ', 0Dh, '$'
3B66:08E5 81 40 81 40 81 40
3B66:08EB 81 40 0D 24
3B66:08EF 90 db 90h
3B66:08F0 CA DA C9 C1 B5 B5 data_104 db 'ハレノチオオサワギA)' ; xref 3B66:070F
3B66:08F6 BB DC B7 DE 41 29
3B66:08FC 00 00 00 00 db 00h, 00h, 00h, 00h

seg_a ends



end start


ほんとはその3でも収まりきらなかったので,半角エラーメッセージデータなどを一部省略しました。

晴れのちおおさわぎ!(PC-98,カクテル・ソフト)ADVSHELL.COM解析(その1)はこちら
晴れのちおおさわぎ!(PC-98,カクテル・ソフト)ADVSHELL.COM解析(その2)はこちら

<<著作権に関して>>
本記事に引用している全てのソフトの名称・画像の著作権・その他権利は、制作、販売されたソフトハウス、メーカー、または作者様に帰属します。本サイトでの上記著作物の取扱いは、著作権など各権利関係を侵害することが目的ではありません。問題などある場合は、メール(gekigangarあっとmail.goo.ne.jp)にてその旨お知らせください。