[SML 8158] NesTalkをpharo5.0に移植途中なのですが・・・

Sunao Furukawa sadie @ kind.ocn.ne.jp
2017年 1月 15日 (日) 19:39:04 JST


古川と申します。
NesTalkでマリオを動かす
http://oohito.com/nqthm/archives/2060
を参考に
NesTalkをpharo 5.0に移植しようと思って作業しているのですが、
FileStreamのメソッドをdeprecated:にすればいいと思っていました。
しかし、validate:aByteArrayの引数で具体的な値が入りません。
pharo2.0でやれば、シンボルのブロックが代入されているところで、
pharo5.0ではFileStreamの変数が指定されています。
どう直したらいいでしょう。

変更したメソッドを書いておきます。なお、BabyMockはsmalltalkhubから
loadしました。
--------------------------------------------------------------
romFile: path
	^ FileSystem disk / path binaryReadStreamDo:
		[:stream | self readCartridge: stream]

---------------------------------------------------------------
readCartridge: stream
	| roms vroms header |
	stream deprecated: 'binary'.
	header := NtCartridgeHeader fromByteArray: (stream deprecated:
'next: 16').
	roms := self readRoms: stream header: header.
	vroms := self readVroms: stream header: header.
	^ self new
		setHeader: header
		roms: roms
		vroms: vroms
		tiles: (self tilesPerVrom: vroms)
----------------------------------------------------------------
虫のいい話で申し訳ありません。ポイントは'next: 16'がdeprecated:にした時に
値を読み込まないことだと思います。



SML メーリングリストの案内