Class new title: Cursor subclassof: Object fields: 'bitstr offset' declare: '' asForm [Form new extent: self extent bits: bitstr offset: offset] beAltoCursor [self flipBytes. self mixFields] beNTCursor [self flipBytes. self sepFields] bits [bitstr] extent [16  16] flipBytes | t1 [for t1 to: bitstr length - 1 by: 2 do [bitstr swap: t1 with: t1 + 1]] fromString: t1 [bitstr _ t1. self fromString: bitstr offset: 0  0] fromString: t1 offset: t2 [bitstr _ t1. offset _ t2] frompage1 | t1 [bitstr _ String new: 32. t1 _ BitBlt new. t1 forCursor. t1 sourcebase_ 281. t1 destbase_ bitstr. t1 copy: storing] fromtext: t1 [self fromtext: t1 offset: 0  0] fromtext: t1 offset: t2 | t3 t4 t5 t6 [offset _ t2. bitstr _ String new: 32. t4 _ t1 asStream. t4 next. for t3 to: 16 do [t5 _ 0. while [t6 _ t4 next. t6 = 48 or t6 = 49] do [t5 _ (t5 lshift: 1) + (t6 - 48)]. bitstr word: t3 _ t5]] mixFields | t1 t2 [t2 _ String new: 32. for t1 to: 8 do [t2 word: t1 * 2 - 1 _ bitstr word: t1. t2 word: t1 * 2 _ bitstr word: t1 + 8]. bitstr _ t2] offset [offset] offset: t1 [offset _ t1] printon: t1 | t2 [t1 append: 'Cursor new fromtext: '''. for t2 to: 16 do [t1 cr. (bitstr word: t2) printon: t1 base: 2]. t1 append: ''' offset: '. t1 print: offset. t1 append: '.'] sepFields | t1 t2 [t2 _ String new: 32. for t1 to: 8 do [t2 word: t1 _ bitstr word: t1 * 2 - 1. t2 word: t1 + 8 _ bitstr word: t1 * 2]. bitstr _ t2] show [user currentCursor: self] showwhile t1 | t2 t3 [t2 _ user currentCursor. self show. t3 _ t1 eval. t2 show. t3] topage1 [self show]