;z80 ;zx-spectrum ;assembler ;* ;* THE HOBBIT ;* Dissasembled by Chris Wild and Sean Irvine, ;* using disz80 (c) 1991 Chris Wild ;* TAB = 7 ;* from the spectrum DATAFORMAT pages ;* www.anam.demon.co.uk EQU CurLocation (LC0BF + #10) EQU LA775 (LA774+1) L5B00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #FF,#00,#00,#00,#FF,#00,#14,#0D,#0D,#14,#03,#00,#00,#00,#16,#16 DB #01,#00,#06,#00,#0B,#00,#01,#00,#01,#00,#06,#00,#10,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#3C,#40,#00,#FF,#CD,#00,#FC,#5F,#00 DB #00,#00,#05,#00,#FF,#3C,#00,#01 L5C48 DW #0038,#8A00,#005D,#B600,#BB5C,#CB5C,#8A5C,#CA5D DW #8B5C,#8E5D,#895D,#E55D,#905D,#905D,#905D,#2D5D DW #5C92,#0000,#0000,#0000,#0000,#0000,#1A9D,#0000 DW #0055,#5800,#00FF,#2100,#5B00,#1721,#5800,#50E0 DW #0021,#1721,#0003,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#5FFF,#FFFF,#09F4 DW #10A8,#F44B,#C409,#5315,#0F81,#15C4,#F452,#C409 DW #5015,#0080,#0D05,#FD00,#3432,#3735,#0E35,#0000 DW #5FFF,#0D00,#0A00,#001D,#30E7,#000E,#0000,#0000 DW #DA3A,#0E30,#0000,#0000,#3A00,#30D9,#000E,#0000 DW #0000,#FB3A,#000D,#2A14,#F400,#3332,#3536,#0E39 DW #0000,#5C6B,#2C00,#0E30,#0000,#0000,#3A00,#ACF5 DW #3232,#000E,#1600,#0000,#302C,#000E,#0000,#0000 DW #3B3B,#000D,#111E,#EF00,#7022,#AF22,#3631,#3833 DW #0E34,#0000,#4000,#0D00,#2800,#002A,#32F4,#3633 DW #3935,#000E,#6B00,#005C,#302C,#000E,#0000,#0000 DW #F53A,#32AC,#0E32,#0000,#0016,#2C00,#0E30,#0000 DW #0000,#3B00,#0D3B,#3200,#0006,#22EF,#2268,#0DAF DW #3C00,#000E,#C0F5,#3732,#3436,#0E38,#0000,#6C00 DW #0D00,#EF80,#2222,#800D,#0000,#6C00,#2000,#2020 DW #2020,#0020,#0000,#0000,#0300,#2068,#2020,#2020 DW #2020,#2020,#9400,#6000,#8000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#0000,#0000,#0000,#0000,#0000,#0000,#0000 DW #0000,#4A00,#701F,#006C L5F00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#FF,#00 L5F1D DB #02,#00,#A2,#A5,#00,#00,#00,#02,#00,#00,#AA,#00,#00,#00,#05,#00 DB #B4,#AA,#00,#00,#00,#02,#00,#AE,#A4,#00,#00,#00,#02,#00,#4E,#A7 DB #02,#4E,#A7,#04,#00,#79,#AA,#01,#57,#AA,#00,#00,#84,#AA,#00,#00 DB #00,#05,#00,#AF,#AA,#00,#00,#00,#04,#00,#DE,#AA,#03,#C3,#AA,#05 DB #00,#18,#AA,#01,#35,#AA,#FF,#3E,#07,#5D,#C8,#44,#C8,#05,#3F,#02 DB #8F,#C8,#85,#C8,#06,#40,#02,#C0,#C8,#B6,#C8,#01,#43,#00,#CB,#C8 DB #C7,#C8,#00,#00,#02,#F3,#C8,#E9,#C8,#01,#41,#02,#3D,#C9,#33,#C9 DB #05,#44,#01,#9A,#C9,#93,#C9,#03,#00,#01,#81,#C9,#7A,#C9,#03,#00 DB #01,#5B,#C9,#54,#C9,#00,#47,#01,#DE,#C9,#D7,#C9,#01,#48,#01,#DE DB #C9,#D7,#C9,#01,#3D,#01,#E5,#C7,#D0,#C7,#00,#45,#01,#E5,#C7,#D0 DB #C7,#00,#4B,#01,#14,#C8,#D7,#C7,#00,#49,#01,#38,#C8,#DE,#C7,#00 DB #4A,#01,#38,#C8,#DE,#C7,#00,#4C,#01,#38,#C8,#DE,#C7,#00,#FF L5FDC DB #00,#00,#F3,#0D,#B7,#2D,#90,#5D,#8B,#5D,#00,#6C,#2B,#2D,#65,#33 DB #58,#27,#ED,#10,#0D,#00,#53,#00,#2F,#20,#ED,#1F,#DB,#1F,#76,#1B DB #03,#13,#00,#3E WordIndex: ;L6000 DW #0000,#0040,#007C,#00E2,#017C,#01F6,#024F,#02BD DW #0309,#0373,#03A1,#03A5,#03B2,#0424,#045F,#049C DW #04CD,#050C,#0521,#0577,#068C,#070D,#0728,#0751 DW #0000,#07A8,#0000,#0000,#0000,#0000,#0000,#0000 ;* - A L6040 DB #41,#00,#80,#21,#63,#12,#0F,#13,#93,#21,#66,#14,#05,#92,#41,#2C DB #8C,#41,#0C,#12,#05,#01,#04,#99,#41,#0E,#80,#41,#4E,#84,#41,#0E DB #0F,#14,#08,#05,#92,#41,#12,#85,#21,#32,#8D,#21,#32,#12,#0F,#97 DB #21,#74,#80,#01,#F4,#14,#01,#03,#8B,#21,#38,#85 ;* - B L607C DB #22,#41,#03,#8B,#22,#21,#12,#84,#22,#21,#12,#12,#05,#8C,#22,#41 DB #12,#12,#05,#8E,#22,#21,#99,#22,#45,#0F,#12,#0E,#93,#22,#45,#17 DB #09,#14,#03,#08,#05,#84,#22,#49,#87,#22,#4C,#01,#03,#8B,#22,#4C DB #05,#01,#8B,#22,#2C,#0F,#97,#22,#2C,#0F,#0F,#84,#22,#2F,#01,#94 DB #22,#2F,#87,#22,#2F,#04,#99,#22,#2F,#97,#02,#F2,#05,#01,#CB,#58 DB #06,#22,#52,#0F,#0B,#05,#8E,#02,#F5,#12,#8E,#42,#35,#D4,#45,#02 DB #22,#35,#14,#0C,#05,#92 ;* - C L60E2 DB #23,#21,#03,#08,#85,#23,#21,#0D,#90,#43,#01,#8E,#43,#01,#0E,#0E DB #0F,#94,#03,#E1,#10,#14,#15,#12,#C5,#73,#00,#03,#01,#12,#05,#06 DB #15,#0C,#0C,#99,#23,#21,#12,#12,#0F,#03,#8B,#03,#E1,#72,#12,#99 DB #23,#21,#16,#85,#23,#21,#16,#05,#12,#8E,#23,#25,#0C,#0C,#01,#92 DB #23,#28,#05,#13,#94,#23,#2C,#05,#01,#12,#09,#0E,#87,#03,#EC,#09 DB #0D,#82,#03,#EC,#0F,#13,#85,#23,#4C,#0F,#13,#05,#84,#23,#4F,#0D DB #06,#0F,#12,#14,#01,#02,#0C,#85,#23,#2F,#15,#0E,#14,#12,#99,#23 DB #32,#01,#03,#8B,#03,#F2,#2F,#13,#93,#23,#35,#10,#02,#0F,#01,#12 DB #84,#23,#55,#12,#09,#0F,#15,#93,#23,#35,#12,#14,#01,#09,#8E,#23 DB #55,#0E,#0E,#09,#0E,#87,#03,#F5,#14,#80 ;* - D L617C DB #04,#40,#C0,#C4,#01,#24,#21,#0C,#85,#24,#41,#0E,#07,#05,#12,#0F DB #15,#93,#24,#41,#12,#8B,#24,#45,#01,#84,#24,#45,#05,#90,#24,#45 DB #0E,#13,#85,#24,#25,#13,#0F,#0C,#01,#14,#09,#0F,#8E,#04,#E9,#07 DB #80,#44,#09,#12,#05,#03,#14,#09,#0F,#8E,#24,#49,#13,#07,#15,#13 DB #14,#09,#0E,#87,#24,#2F,#0F,#92,#04,#4F,#17,#8E,#24,#32,#01,#07 DB #0F,#8E,#24,#52,#01,#07,#0F,#0E,#93,#24,#52,#05,#01,#04,#06,#15 DB #8C,#24,#52,#05,#01,#12,#99,#04,#F2,#09,#0E,#8B,#04,#F2,#0F,#90 DB #24,#52,#99,#24,#35,#0E,#07,#05,#0F,#8E ;* - E L61F6 DB #05,#40,#C0,#FE,#01,#25,#21,#92,#05,#41,#13,#94,#05,#E1,#14,#80 DB #25,#44,#07,#85,#25,#2C,#86,#25,#2C,#12,#0F,#0E,#84,#25,#4C,#16 DB #05,#0E,#0B,#09,#0E,#07,#93,#25,#2C,#16,#05,#93,#25,#4C,#16,#09 DB #13,#88,#05,#ED,#50,#14,#99,#05,#EE,#14,#05,#92,#45,#36,#05,#12 DB #19,#14,#08,#09,#0E,#C7,#4E,#00,#05,#F8,#01,#0D,#09,#0E,#85,#45 DB #38,#03,#05,#10,#94,#25,#39,#05,#93 ;* - F L624F DB #06,#E1,#0C,#8C,#26,#41,#13,#94,#06,#05,#05,#02,#0C,#99,#26,#25 DB #05,#94,#06,#E9,#0C,#8C,#26,#29,#0E,#07,#05,#92,#26,#29,#13,#94 DB #26,#2C,#01,#0D,#05,#93,#26,#4C,#01,#94,#26,#2C,#0F,#0F,#92,#26 DB #4C,#0F,#17,#09,#0E,#87,#06,#EF,#0C,#0C,#0F,#97,#26,#2F,#0F,#84 DB #26,#6F,#92,#06,#0F,#12,#03,#05,#06,#15,#0C,#0C,#99,#26,#2F,#12 DB #84,#26,#2F,#12,#05,#13,#94,#26,#2F,#12,#05,#13,#14,#12,#09,#16 DB #05,#92,#26,#4F,#15,#8C,#26,#72,#0F,#8D,#26,#55,#0C,#8C ;* - G L62BD DB #27,#21,#0E,#04,#01,#0C,#86,#27,#21,#14,#85,#27,#45,#0E,#14,#0C DB #99,#07,#E5,#14,#C0,#8C,#06,#07,#E9,#16,#85,#27,#4C,#0F,#0F,#0D DB #99,#27,#8F,#20,#80,#27,#2F,#02,#0C,#09,#8E,#27,#4F,#02,#0C,#09 DB #0E,#93,#27,#2F,#0C,#84,#27,#4F,#0C,#04,#05,#8E,#27,#2F,#0C,#0C DB #15,#8D,#27,#52,#05,#01,#94,#27,#52,#05,#05,#8E ;* - H L6309 DB #28,#21,#0C,#8C,#28,#21,#0C,#0C,#93,#28,#21,#0E,#84,#28,#41,#12 DB #84,#28,#25,#01,#84,#48,#25,#0C,#90,#28,#25,#01,#12,#94,#28,#45 DB #01,#16,#99,#08,#65,#0C,#0C,#8F,#28,#49,#04,#04,#05,#8E,#28,#49 DB #04,#05,#0F,#15,#93,#28,#29,#0C,#8C,#28,#29,#0C,#0C,#93,#08,#E9 DB #14,#C0,#73,#00,#28,#4F,#02,#02,#09,#94,#28,#2F,#02,#02,#09,#14 DB #0C,#01,#0E,#84,#28,#2F,#0C,#85,#28,#4F,#12,#12,#09,#02,#0C,#85 DB #28,#4F,#15,#13,#85,#08,#75,#12,#12,#99 ;* - I L6373 DB #09,#00,#C0,#92,#03,#09,#2E,#80,#29,#6E,#13,#09,#04,#85,#29,#4E DB #13,#09,#07,#0E,#09,#06,#09,#03,#01,#0E,#94,#09,#2E,#14,#8F,#09 DB #6E,#16,#05,#0E,#14,#0F,#12,#99,#49,#13,#80,#49,#34,#80 ;* - J L63A1 DB #0A,#F5,#0D,#90 ;* - K L63A5 DB #2B,#25,#99,#0B,#E9,#0C,#CC,#73,#00,#2B,#29,#0E,#87 ;* - L L63B2 DB #0C,#00,#C0,#13,#04,#2C,#21,#0B,#85,#2C,#21,#0E,#84,#2C,#41,#12 DB #07,#85,#0C,#E5,#01,#16,#85,#2C,#25,#87,#2C,#45,#16,#05,#0C,#0C DB #05,#84,#0C,#E9,#06,#D4,#8C,#06,#2C,#49,#0B,#85,#0C,#E9,#07,#08 DB #94,#2C,#49,#14,#14,#0C,#85,#0C,#0F,#C0,#13,#04,#4C,#2F,#01,#84 DB #0C,#EF,#03,#8B,#2C,#4F,#03,#0B,#05,#84,#2C,#2F,#07,#93,#2C,#2F DB #0E,#05,#0C,#01,#0E,#04,#93,#2C,#4F,#0E,#05,#0C,#99,#2C,#4F,#0E DB #87,#0C,#EF,#0F,#8B,#2C,#4F,#97,#2C,#4F,#17,#05,#92,#2C,#35,#0E DB #03,#88 ;* - M L6424 DB #2D,#41,#07,#09,#83,#2D,#21,#8E,#2D,#21,#90,#2D,#25,#C0,#A8,#07 DB #2D,#45,#01,#8E,#2D,#29,#12,#0B,#17,#0F,#0F,#84,#2D,#49,#13,#14 DB #99,#2D,#4F,#0E,#13,#14,#12,#0F,#15,#93,#2D,#2F,#15,#0E,#14,#01 DB #09,#8E,#2D,#2F,#15,#0E,#14,#01,#09,#0E,#93 ;* - N L645F DB #0E,#40,#C0,#80,#04,#2E,#41,#12,#12,#0F,#97,#2E,#41,#13,#14,#99 DB #0E,#45,#C0,#85,#04,#2E,#29,#07,#08,#94,#4E,#2F,#10,#12,#09,#0E DB #94,#0E,#4F,#12,#14,#88,#0E,#4F,#12,#14,#08,#05,#01,#13,#94,#0E DB #4F,#12,#14,#08,#17,#05,#13,#94,#0E,#57,#C0,#8E,#04 ;* - O L649C DB #2F,#66,#80,#2F,#66,#86,#0F,#E6,#06,#05,#92,#2F,#4C,#84,#2F,#6E DB #80,#4F,#2E,#85,#2F,#6E,#14,#8F,#0F,#F0,#05,#8E,#2F,#30,#05,#0E DB #09,#0E,#87,#2F,#75,#94,#2F,#55,#14,#13,#09,#04,#85,#2F,#76,#05 DB #92 ;* - P L64CD DB #30,#21,#13,#13,#01,#07,#85,#30,#21,#14,#88,#50,#21,#15,#13,#85 DB #10,#E9,#03,#CB,#0D,#01,#30,#29,#94,#30,#2C,#01,#03,#85,#10,#0C DB #05,#01,#13,#85,#30,#2F,#12,#14,#03,#15,#0C,#0C,#09,#93,#50,#32 DB #09,#0E,#94,#10,#F5,#0C,#8C,#10,#F5,#33,#88,#10,#F5,#14,#80 ;* - Q L650C DB #11,#15,#09,#03,#0B,#0C,#99,#11,#15,#09,#05,#94,#51,#35,#09,#94 DB #31,#55,#09,#14,#85 ;* - R L6521 DB #32,#21,#16,#05,#0E,#08,#09,#0C,#8C,#32,#21,#16,#09,#0E,#85,#12 DB #65,#01,#C4,#3E,#02,#32,#45,#84,#32,#29,#02,#93,#32,#29,#0E,#87 DB #32,#29,#16,#05,#0E,#04,#05,#0C,#8C,#32,#29,#16,#05,#92,#32,#2F DB #01,#84,#32,#4F,#03,#8B,#32,#2F,#0F,#8D,#32,#2F,#10,#85,#32,#4F DB #15,#0E,#84,#32,#35,#87,#32,#35,#09,#0E,#93,#32,#95,#0E,#80,#32 DB #35,#0E,#0E,#09,#0E,#87 ;* - S L6577 DB #13,#40,#C0,#07,#06,#33,#21,#0E,#84,#53,#21,#16,#85,#13,#E1,#19 DB #C0,#90,#06,#53,#23,#0F,#12,#85,#13,#45,#C0,#0C,#06,#13,#E8,#0F DB #0F,#94,#33,#48,#0F,#12,#94,#33,#28,#0F,#15,#0C,#04,#05,#92,#33 DB #49,#04,#85,#33,#29,#04,#05,#04,#0F,#0F,#92,#33,#29,#07,#8E,#13 DB #69,#0E,#87,#13,#E9,#14,#80,#33,#2B,#15,#0C,#8C,#13,#EC,#21,#13 DB #C8,#73,#00,#13,#EC,#05,#05,#90,#13,#EC,#09,#03,#C5,#73,#00,#33 DB #4C,#09,#0D,#99,#13,#0C,#0F,#17,#0C,#99,#33,#4D,#01,#0C,#8C,#13 DB #ED,#21,#13,#C8,#58,#06,#33,#4D,#0F,#0F,#14,#88,#33,#4D,#0F,#14 DB #08,#05,#12,#09,#0E,#87,#13,#0F,#06,#14,#0C,#99,#33,#4F,#0D,#85 DB #13,#4F,#15,#14,#88,#13,#4F,#15,#14,#08,#05,#01,#13,#94,#13,#4F DB #15,#14,#08,#17,#05,#13,#94,#33,#30,#01,#03,#85,#33,#50,#09,#04 DB #05,#92,#33,#34,#01,#09,#12,#93,#33,#34,#01,#14,#15,#85,#13,#F4 DB #05,#01,#CC,#8C,#06,#33,#54,#05,#05,#90,#33,#34,#0F,#0E,#85,#33 DB #54,#12,#01,#09,#07,#08,#94,#33,#54,#12,#05,#14,#03,#08,#09,#0E DB #87,#13,#F4,#12,#09,#0B,#85,#33,#34,#12,#0F,#0B,#85,#33,#34,#12 DB #0F,#0E,#87,#33,#54,#15,#06,#06,#99,#33,#54,#15,#0E,#0E,#05,#84 DB #13,#57,#C0,#15,#06,#13,#F7,#09,#8D,#33,#37,#0F,#12,#84,#33,#39 DB #0D,#02,#0F,#0C,#93 ;* - T L668C DB #14,#E1,#0B,#85,#14,#61,#0C,#8B,#34,#41,#0E,#07,#0C,#05,#84,#54 DB #08,#01,#94,#54,#08,#85,#54,#68,#05,#8E,#34,#48,#09,#03,#8B,#34 DB #28,#09,#05,#86,#34,#48,#09,#8E,#34,#28,#0F,#12,#09,#8E,#34,#48 DB #12,#05,#01,#04,#93,#34,#68,#12,#0F,#15,#07,#88,#14,#E8,#12,#0F DB #97,#14,#E9,#05,#80,#34,#6F,#80,#34,#6F,#8F,#34,#AF,#32,#03,#88 DB #34,#2F,#17,#8E,#34,#52,#01,#90,#34,#32,#05,#01,#13,#15,#12,#85 DB #34,#B2,#05,#85,#34,#52,#05,#05,#0C,#05,#13,#93,#34,#32,#0F,#0C DB #8C,#34,#52,#0F,#0C,#0C,#93,#34,#55,#0E,#0E,#05,#8C,#14,#F5,#12 DB #8E ;* - U L670D DB #15,#00,#C0,#25,#07,#15,#EE,#0C,#0F,#03,#8B,#35,#4E,#0C,#0F,#03 DB #0B,#05,#84,#15,#EE,#14,#09,#85,#15,#50,#80 ;* - V L6728 DB #36,#41,#0C,#09,#01,#0E,#94,#36,#21,#0C,#0C,#05,#99,#36,#41,#0C DB #15,#01,#02,#0C,#85,#36,#45,#12,#99,#36,#49,#03,#09,#0F,#15,#93 DB #16,#09,#03,#09,#0F,#15,#13,#0C,#99 ;* - W L6751 DB #17,#40,#C0,#79,#07,#17,#E1,#09,#94,#37,#A1,#0C,#8C,#37,#21,#14 DB #05,#92,#37,#21,#14,#05,#12,#06,#01,#0C,#8C,#37,#25,#01,#10,#0F DB #8E,#17,#E5,#01,#92,#37,#25,#82,#17,#45,#13,#94,#37,#49,#04,#85 DB #37,#49,#0C,#84,#37,#49,#0E,#04,#09,#0E,#87,#37,#29,#0E,#04,#0F DB #97,#37,#29,#0E,#85,#37,#69,#14,#88,#37,#21,#12,#87,#37,#4F,#0F DB #84,#37,#4F,#0F,#04,#05,#8E ;* - Y L67A8 DB #39,#2F,#95,#00, ;* A - Z again L67AC DB #01,#02,#0C,#85,#01,#02,#0F,#15,#94,#01,#02,#0F,#16,#85,#01,#04 DB #16,#05,#0E,#14,#15,#12,#85,#01,#07,#01,#09,#8E,#01,#07,#01,#09 DB #0E,#13,#94,#01,#08,#05,#01,#84,#01,#0C,#09,#16,#85,#01,#0C,#0D DB #0F,#13,#94,#01,#0C,#0F,#0E,#87,#01,#0E,#09,#0D,#01,#8C,#01,#90 DB #10,#05,#01,#92,#01,#90,#B0,#12,#0F,#01,#03,#88,#01,#12,#0F,#15 DB #0E,#84,#01,#12,#12,#09,#16,#05,#93,#01,#13,#80,#01,#13,#09,#04 DB #85,#01,#13,#0C,#05,#05,#90,#01,#94,#14,#05,#0D,#10,#94,#01,#17 DB #01,#99,#02,#01,#0E,#8B,#02,#05,#80,#02,#05,#08,#09,#0E,#84,#02 DB #05,#0C,#0F,#97,#02,#09,#12,#14,#08,#04,#01,#99,#02,#0C,#09,#0D DB #05,#99,#02,#92,#21,#0E,#04,#09,#13,#88,#02,#12,#09,#0E,#8B,#02 DB #12,#0F,#01,#04,#13,#09,#04,#85,#02,#15,#0C,#02,#0F,#15,#93,#02 DB #19,#80,#03,#01,#12,#12,#19,#09,#0E,#87,#03,#8C,#05,#01,#16,#85 DB #03,#0C,#09,#06,#86,#03,#8F,#0D,#85,#03,#8F,#8D,#10,#0C,#05,#14 DB #85,#03,#8F,#0E,#07,#12,#01,#14,#15,#0C,#01,#14,#09,#0F,#8E,#03 DB #0F,#0F,#8B,#03,#15,#12,#12,#05,#0E,#94,#03,#12,#09,#13,#90,#04 DB #81,#17,#8E,#04,#01,#99,#04,#05,#06,#05,#0E,#13,#85,#04,#05,#13 DB #03,#05,#0E,#04,#93,#04,#09,#85,#04,#09,#84,#04,#09,#8D,#04,#09 DB #13,#14,#01,#0E,#03,#85,#04,#8F,#20,#80,#04,#8F,#A0,#80,#04,#12 DB #09,#10,#93,#05,#06,#06,#0F,#12,#94,#05,#8E,#04,#80,#05,#0E,#14 DB #12,#01,#0E,#03,#85,#05,#96,#01,#10,#0F,#12,#01,#14,#85,#05,#16 DB #05,#0E,#09,#0E,#87,#05,#18,#09,#14,#93,#05,#18,#10,#05,#03,#94 DB #06,#01,#09,#0C,#05,#84,#06,#01,#09,#0C,#09,#0E,#87,#06,#01,#92 DB #06,#01,#14,#01,#8C,#06,#05,#05,#84,#06,#05,#0C,#94,#06,#09,#94 DB #06,#09,#12,#13,#94,#06,#8C,#01,#0D,#85,#06,#8C,#0F,#01,#94,#06 DB #0C,#19,#09,#0E,#87,#06,#0F,#0F,#94,#06,#0F,#0F,#14,#09,#0E,#87 DB #06,#0F,#15,#92,#06,#12,#0F,#0E,#94,#07,#05,#14,#14,#09,#0E,#87 DB #07,#0C,#01,#0E,#03,#09,#0E,#87,#07,#0C,#09,#04,#05,#93,#07,#0C DB #15,#14,#14,#0F,#0E,#99,#07,#0F,#94,#07,#12,#0F,#15,#0E,#84,#07 DB #12,#0F,#97,#07,#15,#01,#12,#84,#08,#01,#0E,#07,#09,#0E,#87,#08 DB #01,#93,#08,#01,#16,#85,#08,#05,#80,#08,#85,#81,#92,#08,#05,#12 DB #85,#08,#09,#8D,#08,#09,#93,#08,#0F,#97,#08,#0F,#17,#0C,#93,#08 DB #15,#12,#12,#99,#09,#0E,#05,#06,#06,#05,#03,#14,#09,#16,#85,#09 DB #14,#93,#0A,#0F,#82,#0A,#15,#13,#94,#0C,#15,#12,#03,#88,#0B,#05 DB #05,#10,#93,#0B,#0E,#0F,#03,#0B,#93,#0B,#0E,#0F,#97,#0C,#01,#13 DB #94,#0C,#01,#15,#07,#08,#93,#0C,#01,#15,#07,#08,#14,#05,#92,#0C DB #89,#05,#80,#0C,#09,#06,#85,#0C,#09,#16,#05,#93,#0C,#8F,#13,#85 DB #0C,#0F,#15,#84,#0C,#15,#03,#0B,#99,#0D,#01,#04,#85,#0D,#01,#0B DB #85,#0D,#01,#12,#07,#09,#8E,#0D,#01,#12,#16,#05,#0C,#0C,#0F,#15 DB #93,#0D,#01,#99,#0D,#01,#19,#02,#85,#0D,#85,#AE,#84,#0D,#09,#04 DB #04,#0C,#85,#0D,#09,#04,#04,#01,#99,#0D,#89,#33,#93,#0D,#0F,#0D DB #05,#0E,#94,#0D,#0F,#0D,#05,#0E,#14,#01,#12,#09,#0C,#99,#0D,#8F DB #B2,#8E,#0D,#0F,#15,#14,#08,#06,#15,#0C,#8C,#0D,#0F,#16,#85,#0D DB #15,#03,#88,#0D,#19,#80,#0E,#0F,#80,#0E,#0F,#09,#13,#85,#0E,#0F DB #94,#0E,#0F,#14,#08,#09,#0E,#87,#0E,#0F,#97,#0F,#0E,#03,#85,#0F DB #14,#08,#05,#92,#10,#01,#0C,#85,#10,#01,#13,#13,#05,#93,#10,#01 DB #13,#94,#10,#8C,#81,#03,#85,#10,#8F,#03,#0B,#05,#94,#10,#92,#05 DB #03,#09,#0F,#15,#93,#10,#12,#05,#10,#01,#12,#85,#10,#12,#05,#13 DB #05,#0E,#94,#12,#05,#01,#03,#88,#12,#85,#03,#0F,#16,#05,#92,#13 DB #81,#09,#8C,#13,#05,#85,#13,#85,#05,#8D,#13,#08,#01,#04,#0F,#97 DB #13,#08,#01,#10,#85,#13,#88,#01,#14,#14,#05,#92,#13,#89,#AE,#87 DB #13,#89,#AE,#8B,#13,#89,#14,#80,#13,#8C,#09,#04,#85,#13,#0D,#05 DB #0C,#8C,#13,#0D,#05,#0C,#94,#13,#0F,#0D,#05,#0F,#0E,#85,#13,#0F DB #0D,#05,#17,#08,#05,#12,#85,#13,#0F,#0F,#8E,#13,#10,#05,#03,#09 DB #01,#8C,#13,#90,#0F,#15,#94,#13,#94,#01,#07,#07,#05,#92,#13,#94 DB #A1,#0E,#84,#13,#94,#01,#92,#13,#94,#A1,#92,#13,#94,#01,#12,#94 DB #13,#14,#09,#0C,#8C,#13,#94,#09,#0E,#87,#13,#94,#12,#01,#0E,#07 DB #0C,#85,#13,#14,#12,#05,#0E,#07,#14,#88,#13,#15,#12,#12,#0F,#15 DB #0E,#04,#05,#84,#13,#17,#05,#05,#10,#93,#13,#17,#05,#10,#94,#13 DB #97,#09,#0E,#87,#14,#05,#12,#12,#09,#06,#09,#83,#14,#08,#01,#0E DB #8B,#14,#08,#05,#8D,#14,#08,#05,#12,#85,#14,#08,#09,#0E,#87,#14 DB #08,#09,#93,#14,#08,#12,#01,#09,#0E,#93,#14,#08,#12,#05,#85,#14 DB #08,#12,#0F,#17,#8E,#14,#88,#12,#15,#13,#94,#14,#09,#0D,#85,#14 DB #09,#12,#05,#84,#14,#12,#99,#14,#0F,#15,#03,#88,#14,#17,#8F,#15 DB #0E,#04,#05,#92,#15,#13,#80,#16,#81,#2E,#09,#13,#88,#16,#05,#12 DB #82,#16,#09,#13,#09,#02,#0C,#85,#17,#81,#12,#8E,#17,#01,#93,#17 DB #01,#13,#14,#05,#84,#17,#05,#80,#17,#05,#0C,#8C,#17,#08,#01,#94 DB #17,#08,#05,#12,#85,#17,#08,#09,#03,#88,#17,#09,#0C,#8C,#17,#09 DB #0E,#84,#17,#0F,#12,#84,#17,#0F,#15,#0C,#84,#19,#05,#92,#19,#0F DB #15,#92,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00 Start: ;L6C00 DI LD DE,CopyOfObjects LD HL,Objects LD BC,#0614 LDIR ; DE = CopyOfLocations LD HL,Locations LD BC,#05D9 LDIR LD DE,L5F00 LD HL,LB68F LD BC,#001D LDIR ; DE = L5f1d LD HL,LCA27 LD BC,#00BF LDIR ReStart: ;L6C27 DI LD SP,#5EFF LD IX,LocGFXTable ; FRONT GATE LD A,#27 CALL IndexIdTable LD L,(IX+#01) LD H,(IX+#02) LD (HL),#00 INC HL LD (HL),#00 LD HL,CopyOfObjects LD DE,Objects LD BC,#0614 LDIR LD DE,Locations LD BC,#05D9 LDIR LD HL,L5F00 LD DE,LB68F LD BC,#001D LDIR LD DE,LCA27 LD BC,#00BF LDIR XOR A OUT (#FE),A LD A,#38 LD (L5C48),A L6C6D XOR A IN A,(#FE) AND #1F CP #1F JR Z,L6C6D LD A,#7F IN A,(#FE) AND #08 LD (LB6AB),A LD HL,#50E0 LD (L75B2),HL LD A,#2B LD (L75B4),A LD HL,#5020 LD (L7698),HL LD A,#01 LD (L769A),A LD A,#20 LD (L75B1),A LD A,#2A LD (L7697),A LD B,#C8 LD HL,LB6DC CALL ClrMem LD A,R LD (LB6B2),A XOR A LD (L769B),A LD (L769C),A LD (LB6BE),A LD (LB6A4),A LD (LB696),A LD A,#01 LD (LB6A6),A LD (LB69E),A LD (LB6A8),A LD HL,L0 LD (LB69B),HL CALL ClearScreen LD HL,#5140 LD DE,SquiggleGFX LD C,#05 L6CD8 LD B,#10 PUSH HL L6CDB LD A,(DE) LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL DEC DE DJNZ L6CDB INC DE INC DE POP HL INC H DEC C JR NZ,L6CD8 LD A,#11 LD (LB6BA),A LD A,(LB6AA) INC A JR NZ,L6D13 CALL L9788 LD HL,InputBuffer L6CFD LD A,(HL) CALL L75B6 INC HL CP #0D JR NZ,L6CFD LD HL,L6FF4 LD DE,L6FF9 LD BC,#0005 LDIR JR L6D22 L6D13 LD A,#01 LD (LB6A9),A LD A,#09 LD (LB6BA),A CALL L6DD6 JR Z,L6D8A L6D22 LD HL,L709C LD B,#40 CALL ClrMem LD HL,L6FF9 LD IY,L709C L6D31 CALL L6E97 CP #D0 JR Z,L6DA2 CP #90 JR NZ,L6D6C LD A,B AND #0F OR C JR NZ,L6D6C LD A,(LB6BF) AND A JR NZ,L6D4E INC A LD (LB6BF),A JR L6D6C L6D4E DEC A LD (LB6BF),A LD A,(IY+#FE) AND #F0 CP #B0 JR Z,L6D6C CP #A0 JR Z,L6D6C LD A,#B0 LD (IY+#00),A XOR A LD (IY+#01),A L6D66 LD (HL),A LD BC,#23FD INC IY L6D6C LD (IY+#00),B LD (IY+#01),C INC IY INC IY LD A,D CP #C0 JR NZ,L6D31 LD A,(LB6BF) AND A JR Z,L6D8A XOR A LD (LB6BF),A CALL L8002 JR L6D13 L6D8A LD HL,L709C LD (LB680),HL L6D90 CALL L7C58 JP NZ,L6D13 CALL L835A LD A,(LB6A9) AND A JR NZ,L6D90 JP L6D13 L6DA2 LD HL,LAD37 ; "I do not know the word" LD A,#01 LD (LB6A5),A CALL PrintMsg LD HL,(LB67E) L6DB0 LD A,(HL) CP #0D JR Z,L6DC1 CP #22 JR Z,L6DC1 CALL L7589 INC HL CP #20 JR NZ,L6DB0 L6DC1 LD A,#22 CALL L7589 CALL L7581 JP L6D13 SquiggleGFX: ;L6DCC L6dcc DB #C3,#C3,#2C,#34,#10,#08,#2C,#34,#C3,#C3 L6DD6 LD HL,#0BB8 LD (LB6B8),HL LD A,#01 LD (LB6A5),A LD (LB69E),A LD A,#3E CALL L7589 LD A,#20 CALL L7589 LD HL,L6FF9 LD B,#80 L6DF3 LD C,#00 L6DF5 CALL L7249 BIT 7,B JR Z,L6E01 CP #40 JP Z,L6E7A L6E01 BIT 0,C CALL Z,L6E4F LD C,#01 CP #18 JR NZ,L6E11 CALL L6E8B JR L6DF3 L6E11 CP #08 JR NZ,L6E22 BIT 7,B JR NZ,L6DF5 LD A,#08 CALL L7589 INC B DEC HL JR L6DF5 L6E22 CP #40 JR NC,L6E3A CP #22 JR Z,L6E3A CP #20 JR Z,L6E3A CP #0D JR Z,L6E3A CP #2E JR Z,L6E3A CP #2C JR NZ,L6DF5 L6E3A LD (LB6A8),A DEC B INC B JR Z,L6E47 CALL L7589 LD (HL),A INC HL DEC B L6E47 CP #0D JP NZ,L6DF5 OR #01 RET L6E4F CP #09 JR Z,L6E72 CP #08 JR Z,L6E76 CP #0A JR Z,L6E6E CP #5B RET NZ LD A,#4E L6E60 LD (HL),A INC HL CALL L7589 DEC B LD A,#0D LD (HL),A INC HL DEC B OR #01 RET L6E6E LD A,#53 JR L6E60 L6E72 LD A,#45 JR L6E60 L6E76 LD A,#57 JR L6E60 L6E7A LD A,(LB6BE) AND A JP NZ,L6DF5 LD A,#08 CALL L7589 CALL L7589 XOR A RET L6E8B BIT 7,B RET NZ LD A,#08 CALL L7589 INC B DEC HL JR L6E8B L6E97 PUSH DE L6E98 LD A,(HL) INC HL CP #20 JR Z,L6E98 DEC HL LD (LB67E),HL CP #0D JR Z,L6EDE CALL L6F30 JR Z,L6EE3 CALL L6F47 JR NZ,L6EBC PUSH HL L6EB1 CALL L6FBA JR Z,L6EC0 L6EB6 CALL L6F72 JR Z,L6EB1 POP HL L6EBC LD A,#D0 JR L6EE0 L6EC0 LD A,(L708A) LD B,A LD A,(L709B) CP B JR NC,L6EEB CP #04 JR C,L6EB6 PUSH IX CALL L6F76 JR NZ,L6EE9 CALL L6FBA JR NZ,L6EE9 POP IX JR L6EB6 L6EDE LD A,#C0 L6EE0 LD BC,L0 L6EE3 POP DE LD D,A ADD A,B LD B,A LD A,D RET L6EE9 POP IX L6EEB LD IX,(LB6BB) PUSH IX XOR A L6EF2 INC IX INC A BIT 7,(IX+#FF) JR Z,L6EF2 CP #02 JR Z,L6EF2 CP #03 JR NZ,L6F09 BIT 7,(IX+#FE) JR NZ,L6EF2 L6F09 BIT 6,(IX+#FF) JR Z,L6F1A LD L,(IX+#00) LD H,(IX+#01) LD DE,WordIndex ADD HL,DE EX (SP),HL L6F1A POP HL LD A,(HL) RLCA AND #C0 LD B,A INC HL LD A,(HL) RRCA AND #30 ADD A,B DEC HL LD DE,#A000 ADD HL,DE PUSH HL POP BC POP HL JR L6EE3 L6F30 LD B,#B0 CP #2E JR Z,L6F41 LD B,#A0 CP #2C JR Z,L6F41 CP #22 RET NZ LD B,#90 L6F41 INC HL LD A,B LD BC,L0 RET L6F47 LD DE,L707A LD B,#00 L6F4C LD A,(HL) CP #40 JR C,L6F59 AND #1F LD (DE),A INC DE INC HL INC B JR L6F4C L6F59 LD A,B LD (L708A),A PUSH HL LD HL,(L707A) LD H,#00 LD DE,WordIndex ADD HL,HL ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD IX,WordIndex ADD IX,DE POP HL L6F72 LD (LB6BB),IX L6F76 LD A,(IX+#00) AND #1F LD B,A LD A,(L707A) CP B RET NZ PUSH HL LD HL,L708B LD BC,L0 L6F88 LD A,(IX+#00) AND #1F JR Z,L6F92 LD (HL),A INC HL INC B L6F92 INC IX INC C BIT 7,(IX+#FF) JR Z,L6F88 LD A,C CP #02 JR Z,L6F88 CP #03 JR NZ,L6FAA BIT 7,(IX+#FE) JR NZ,L6F88 L6FAA POP HL LD A,B LD (L709B),A BIT 6,(IX+#FF) RET Z INC IX INC IX XOR A RET L6FBA LD A,(L708A) LD B,A LD A,(L709B) CP B JR NC,L6FC5 LD B,A L6FC5 LD HL,L707A LD DE,L708B L6FCB LD A,(DE) CP (HL) RET NZ INC DE INC HL DJNZ L6FCB RET ClearScreen: ;L6FD3 L6fd3 PUSH HL PUSH DE PUSH BC LD A,#07 OUT (#FE),A LD HL,#4000 LD DE,#4001 LD BC,#1800 LD (HL),#00 LDIR LD BC,#0300 LD (HL),#38 LDIR POP BC POP DE POP HL RET InputBuffer: ;L6FF2 L6ff2 DB #3E,#20 L6FF4 DB #4C,#4F,#4F,#4B,#0D L6FF9 DB #20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20 DB #20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20 DB #20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20 DB #20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20 DB #20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20 DB #20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20 DB #20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20 DB #20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20,#20 DB #0D L707A DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 L708A DB #00 L708B DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 L709B DB #01 L709C DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 L70DC DB #00 L70DD DB #00 L70DF DB #00 L70E0 DW #0000 ClrMem XOR A L70E3 LD (HL),A INC HL DJNZ L70E3 RET IndexAction: ;L70E8 L70e8 LD L,A LD H,#00 ADD HL,HL ADD HL,HL ADD HL,HL LD DE,#AAEF ADD HL,DE RET L70F3 LD A,(IX+#05) RRCA RRCA RRCA RRCA AND #0F LD C,A LD A,(IX+#07) AND #F0 ADD A,C LD (LB6C2),A LD A,(IX+#01) RRCA RRCA RRCA RRCA AND #0F LD C,A LD A,(IX+#03) AND #F0 ADD A,C LD (LB6C1),A RET L711A XOR A LD (LB69F),A INC A LD (LB69E),A LD A,(LB6BF) AND A CALL Z,L712B XOR A RET L712B LD A,#01 LD (L70DF),A XOR A LD (LB6A7),A PUSH IY PUSH BC LD A,(LB69F) LD B,A AND A LD A,#01 JR Z,L7141 XOR A L7141 LD (LB6A5),A PUSH IX PUSH HL PUSH DE LD A,(CurrentAction) CALL IndexAction PUSH HL POP IX XOR A CP B JR Z,L715C LD A,(LB68E) AND A CALL Z,L7581 L715C CALL L70F3 BIT 4,A LD C,A JP NZ,L71C9 CALL L73A7 LD DE,#00EE ; "cannot" XOR A CP B CALL Z,PrintToken PUSH HL LD DE,#0006 ADD HL,DE CALL L74BA CALL L95C8 POP HL JR NC,L718F LD A,(CurrentAction) CP #0B JR NC,L718F LD DE,#0AEA ; "somewhere" INC HL INC HL CALL PrintToken JR L7192 L718F CALL L74BA L7192 BIT 3,C JR Z,L71A6 BIT 5,C CALL NZ,L74BA LD A,(LB6C2) BIT 7,A CALL NZ,L74BA CALL L73B4 L71A6 LD A,(LB68D) CP #FF JR Z,L71C1 BIT 2,C JR Z,L71C1 BIT 5,C CALL Z,L74BA LD A,(LB6C2) BIT 7,A CALL Z,L74BA CALL L73C7 L71C1 LD A,#2E CALL L7589 CALL L7581 L71C9 XOR A LD (L70DF),A POP DE POP HL POP IX POP BC POP IY RET L71D5 PUSH IX CALL LocateLocation PUSH IX POP HL INC HL INC HL POP IX RET L71E2 PUSH DE PUSH IX CALL LocateObject PUSH IX POP HL LD DE,#0008 ADD HL,DE POP IX POP DE RET L71F3 PUSH DE PUSH HL PUSH IY CALL L722E JR NZ,L7229 LD A,#01 LD (LB683),A CALL L722E JR NZ,L720D CALL L722E LD A,#00 JR Z,L7229 L720D POP IY POP HL PUSH HL PUSH IY LD DE,#0004 ADD IY,DE INC HL INC HL CALL L722E JR NZ,L7229 LD DE,#FFFC ADD IY,DE CALL L722E LD A,#01 L7229 POP IY POP HL POP DE RET L722E PUSH HL LD A,(HL) INC HL OR (HL) JR Z,L7241 LD A,(IY+#01) XOR (HL) AND #0F JR NZ,L7241 DEC HL LD A,(HL) CP (IY+#00) L7241 POP HL INC HL INC HL INC IY INC IY RET L7249 PUSH HL LD HL,(LB6B8) L724D CALL GetKey AND A JR NZ,L7273 DEC HL LD A,H OR L JR NZ,L724D POP HL PUSH HL CALL L6E8B LD DE,L7291 LD B,#04 L7262 LD A,(DE) LD (HL),A INC HL INC DE CALL L7589 DJNZ L7262 EX (SP),HL LD B,#7C LD A,#0D LD HL,#FE0C L7273 PUSH AF XOR A LD DE,#01F4 ADC HL,DE LD DE,#0BB8 JR C,L7284 CALL L728B JR C,L7285 L7284 EX DE,HL L7285 LD (LB6B8),HL POP AF POP HL RET L728B LD A,H SUB D RET NZ LD A,L SUB E RET L7291 DB #57,#41,#49,#54 L7295 DW L7367,L7376,L737E,L738D DW L7394,L738B,L73A3,L73AF DW L73BD,L73C2,L738B,L73E0 DW L73F9,L72C3,L7407,L738B DW L740C,L7425,L738B,L742D DW L7340,L7344,L735B L72C3 CALL L7589 CP #0D RET NZ XOR A LD (LB6A8),A RET L72CE LD HL,LAF63 ; " I Cannot do that" JR PrintMsg L72D3 LD A,(LB6BF) AND A JR Z,PrintMsg XOR A LD (LB69E),A PrintMsg: ;L72DD LD (L70DD),DE LD (L70E0),IX LD (L70DC),A LD A,(LB69E) AND A JR NZ,L72F1 LD (LB69F),A L72F1 PUSH HL POP IX L72F4 LD A,(IX+#00) BIT 7,A JR Z,L7318 AND #7F LD D,A LD E,(IX+#01) INC IX AND #F0 CP #30 JR Z,L7348 CP #20 JR Z,L7348 CP #60 JR Z,L7348 L7311 CALL PrintToken L7314 INC IX JR L72F4 L7318 CP #20 JR C,L7326 CP #60 JP NC,GetCommonWord CALL L72C3 JR L7314 L7326 PUSH DE LD E,A LD D,#00 LD HL,L7295 ADD HL,DE ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL POP DE CP #14 JR NC,L733F CALL L733F JR Z,L7314 JR L7311 L733F JP (HL) L7340 LD D,#60 JR L734B L7344 LD D,#30 JR L734B L7348 CALL PrintToken L734B LD A,#2E BIT 6,D JR NZ,L7358 BIT 4,D CALL NZ,L7589 BIT 4,D L7358 CALL NZ,L7581 L735B LD DE,(L70DD) LD IX,(L70E0) LD A,(L70DC) RET L7367 XOR A LD (LB6A7),A POP DE POP HL EX (SP),HL PUSH DE LD A,H OR L CALL NZ,L7434 XOR A RET L7376 POP DE POP HL EX (SP),HL PUSH DE EX DE,HL OR #01 RET L737E LD E,(IX+#01) LD D,#00 BIT 7,E JR Z,L7389 LD D,#FF L7389 ADD IX,DE L738B XOR A RET L738D LD DE,(LB6A0) OR #01 RET L7394 POP DE POP HL EX (SP),HL PUSH DE EX DE,HL LD A,#01 LD (LB6A7),A CALL L7478 XOR A RET L73A3 XOR A LD (LB6A7),A L73A7 LD A,(LB68E) CALL L7488 XOR A RET L73AF LD A,#01 LD (LB6A7),A L73B4 LD A,(LB6A2) AND A LD A,(LB68C) JR L73CE L73BD CALL L7589 XOR A RET L73C2 LD A,#01 LD (LB6A7),A L73C7 LD A,(LB6A3) AND A LD A,(LB68D) L73CE JR Z,L73D6 PUSH HL CALL L71D5 JR L73DA L73D6 PUSH HL CALL L71E2 L73DA CALL L7434 POP HL XOR A RET L73E0 INC IX PUSH IX POP HL PUSH HL LD E,(IX+#00) LD D,#00 BIT 7,E JR Z,L73F1 LD D,#FF L73F1 ADD HL,DE CALL L72F1 POP IX XOR A RET L73F9 LD A,(LB68E) L73FC LD DE,#0990 AND A RET NZ LD DE,#0BEA OR #01 RET L7407 LD A,(LB68C) JR L73FC L740C LD A,(LB68E) EX AF,AF' XOR A L7411 LD (LB6A7),A EX AF,AF' PUSH AF CALL L7488 POP AF AND A LD DE,#039B RET NZ LD DE,#0065 OR #01 RET L7425 LD A,(LB68C) L7428 EX AF,AF' LD A,#01 JR L7411 L742D POP DE POP HL POP AF PUSH HL PUSH DE JR L7428 L7434 PUSH IY PUSH HL POP IY CALL L9EAB POP IY RET L743F BIT 7,D JR Z,L7455 LD A,E LD HL,#07A8 CP L JR NZ,L744F LD A,D AND #0F CP H RET Z L744F LD A,#01 LD (LB6A8),A RET L7455 LD HL,LACD1 LD A,(LB6A5) LD E,A LD A,(L70DF) OR E JR Z,L7465 LD HL,LACD9 L7465 LD A,D RRCA RRCA RRCA AND #1E PUSH DE LD E,A LD D,#00 ADD HL,DE LD E,(HL) INC HL LD D,(HL) CALL PrintToken POP DE RET L7478 PUSH DE LD A,(LB6A7) AND A CALL NZ,L743F POP DE LD A,D AND #0F LD D,A JP PrintToken L7488 CP #FF JP NZ,L73D6 LD DE,#0AE3 ; "someone" JP PrintToken GetCommonWord: ;L7493 L7493 SUB #60 LD E,A LD D,#00 LD HL,CommonWords ADD HL,DE ADD HL,DE LD E,(HL) INC HL LD A,(HL) ADD A,#50 LD D,A JP L7311 OutputBuffer: ;L74A6 L74a6 DB #80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80,#80 L74BA LD E,(HL) INC HL LD A,(HL) INC HL AND #0F LD D,A PrintToken: ;L74C1 LD A,D AND #0F OR E RET Z PUSH HL PUSH BC PUSH DE LD C,D LD A,D AND #0F LD D,A LD HL,WordIndex ADD HL,DE LD DE,OutputBuffer PUSH HL LD B,#00 L74D8 LD A,(HL) AND #1F JR Z,L74F9 INC B ADD A,#60 LD (DE),A INC DE BIT 7,(HL) INC HL JR Z,L74D8 LD A,B CP #02 JR Z,L74D8 CP #03 JR NZ,L74F9 DEC HL DEC HL LD A,(HL) INC HL INC HL BIT 7,A JR NZ,L74D8 L74F9 POP HL LD A,C AND #F0 CP #50 JR Z,L7530 CP #40 JR Z,L7512 CP #10 LD A,(LB68C) JR Z,L750F LD A,(LB68E) L750F AND A JR Z,L7530 L7512 INC HL BIT 7,(HL) JR Z,L7530 INC HL LD A,(HL) AND #E0 RRCA RRCA RRCA LD L,A LD H,#00 LD BC,#B6C3 ADD HL,BC LD B,#04 L7527 LD A,(HL) AND A JR Z,L7530 INC HL LD (DE),A INC DE DJNZ L7527 L7530 LD HL,OutputBuffer EX DE,HL AND A SBC HL,DE LD B,L LD A,(LB6A5) AND A PUSH AF JR NZ,L7543 LD A,(L769C) AND A L7543 LD A,#20 CALL NZ,L7589 POP AF LD A,(L75B1) JR NZ,L7551 LD A,(L7697) L7551 LD HL,LB6A8 CP B JR NC,L755C LD A,(HL) CALL L7581 LD (HL),A L755C POP DE LD A,D AND #F0 CP #70 LD A,#01 JR NZ,L7567 LD (HL),A L7567 LD HL,OutputBuffer L756A LD A,(HL) CALL L7589 INC HL DJNZ L756A POP BC POP HL RET L7574 PUSH HL LD L,A LD A,(LB69E) LD H,A LD A,(LB6A6) AND H LD A,L POP HL RET L7581 PUSH AF LD A,#0D CALL L7589 POP AF RET L7589 CALL L7574 RET Z PUSH AF LD A,(LB6A5) AND A JR NZ,L75B5 POP AF CALL L769D PUSH AF LD A,(LB6A4) AND A JR NZ,L75A1 POP AF RET L75A1 POP AF CP #53 JR Z,L75A9 CP #73 RET NZ L75A9 PUSH AF LD A,#48 CALL L769D POP AF RET L75B1 DB #00 L75B2 DW #0000 L75B4 DB #00 L75B5 POP AF L75B6 PUSH HL PUSH AF LD HL,(L75B2) CP #0D JR NZ,L75C6 LD A,#20 CALL PrintChar JR L75DD L75C6 CP #08 JR Z,L75F3 CP #61 JR C,L75D4 CP #7B JR NC,L75D4 AND #5F L75D4 CALL PrintChar LD A,(L75B1) DEC A JR NZ,L75E4 L75DD LD L,#E0 CALL L7609 L75E2 LD A,#20 L75E4 LD (L75B1),A LD A,(L75B4) LD (L75B2),HL CALL PrintChar POP AF POP HL RET L75F3 LD A,#20 CALL PrintChar DEC L DEC L LD A,(L75B1) INC A CP #21 JR NZ,L75E4 LD L,#FF CALL L7646 JR L75E2 L7609 PUSH HL PUSH DE PUSH BC PUSH AF LD HL,#5080 LD DE,#5060 LD A,#04 LD B,#00 L7617 PUSH HL PUSH DE LD C,#08 L761B PUSH HL PUSH DE PUSH BC LD C,#20 LDIR POP BC POP DE POP HL INC H INC D DEC C JR NZ,L761B POP DE POP HL LD C,#20 ADD HL,BC EX DE,HL ADD HL,BC EX DE,HL DEC A JR NZ,L7617 LD B,#20 LD HL,#50E0 LD A,#20 L763C CALL PrintChar DJNZ L763C POP AF POP BC POP DE POP HL RET L7646 PUSH HL PUSH DE PUSH BC PUSH AF LD HL,#50C0 LD DE,#50E0 LD A,#05 L7652 PUSH HL PUSH DE LD B,#08 L7656 PUSH HL PUSH DE PUSH BC LD BC,#0020 LDIR POP BC POP DE POP HL INC H INC D DJNZ L7656 POP DE POP HL LD BC,#FFE0 ADD HL,BC EX DE,HL ADD HL,BC EX DE,HL DEC A JR NZ,L7652 POP AF POP BC POP DE POP HL RET PrintChar: ;L7676 L7676 PUSH AF PUSH BC PUSH DE PUSH HL SUB #20 LD L,A LD H,#00 ADD HL,HL ADD HL,HL ADD HL,HL LD DE,#3D00 ADD HL,DE EX DE,HL POP HL PUSH HL LD B,#08 L768B LD A,(DE) LD (HL),A INC DE INC H DJNZ L768B POP HL POP DE POP BC POP AF INC L RET L7697 DB #00 L7698 DW #0000 L769A DB #00 L769B DB #00 L769C DB #00 L769D PUSH HL PUSH BC PUSH AF LD HL,(L7698) LD A,(L769A) LD C,A LD A,(L769C) AND A JR NZ,L76C2 LD A,(L769B) AND A JR Z,L76C2 LD B,A L76B4 LD A,#20 CALL PrintPropChar LD A,(L7697) DEC A LD (L7697),A DJNZ L76B4 L76C2 POP AF PUSH AF CP #0D JR NZ,L7709 LD A,#01 LD (LB6A8),A L76CD XOR A LD (L769C),A CALL L7B1E PUSH BC LD A,(LB6BA) AND A JR NZ,L76EF LD BC,#8000 L76DE XOR A IN A,(#FE) AND #1F CP #1F JR NZ,L76F3 DEC BC LD A,B OR C JR NZ,L76DE POP BC JR L76FD L76EF DEC A LD (LB6BA),A L76F3 POP BC L76F4 XOR A IN A,(#FE) AND #1F CP #1F JR NZ,L76F4 L76FD LD HL,#5020 LD C,#01 CALL ScrollLine LD A,#2A JR L774F L7709 CP #08 JR NZ,L771E CALL L775D LD A,#20 CALL PrintPropChar CALL L775D LD A,(L7697) INC A JR L774F L771E CP #41 JR C,L7728 CP #5B JR NC,L7728 OR #20 L7728 PUSH HL LD HL,LB6A8 INC (HL) DEC (HL) JR Z,L773C CP #61 JR C,L773C CP #7B JR NC,L773C RES 5,A LD (HL),#00 L773C CP #2E JR NZ,L7741 INC (HL) L7741 POP HL CALL PrintPropChar LD (L769C),A LD A,(L7697) DEC A JP Z,L76CD L774F LD (L7697),A LD (L7698),HL LD A,C LD (L769A),A POP AF POP BC POP HL RET L775D LD A,C SUB #06 LD C,A RET NC ADD A,#08 LD C,A DEC L RET ScrollLine: ;L7767 L7767 PUSH AF PUSH BC PUSH HL PUSH DE LD HL,#4020 LD DE,#4000 LD A,#11 LD B,#00 L7775 PUSH HL PUSH DE LD C,#08 L7779 PUSH HL PUSH DE PUSH BC LD C,#20 LDIR POP BC POP DE POP HL INC H INC D DEC C JR NZ,L7779 POP DE POP HL LD C,#20 ADD HL,BC EX DE,HL ADD HL,BC EX DE,HL PUSH AF LD A,D AND #07 JR Z,L779A LD A,D ADD A,#07 LD D,A L779A LD A,H AND #07 JR Z,L77A3 LD A,H ADD A,#07 LD H,A L77A3 POP AF DEC A JR NZ,L7775 LD HL,#5820 LD DE,#5800 LD BC,#0220 LDIR LD B,#2A LD HL,#5020 LD C,#01 LD A,#20 L77BB CALL PrintPropChar DJNZ L77BB POP DE POP HL POP BC POP AF RET PrintPropChar: ;L77C5 L77c5 PUSH AF PUSH BC PUSH DE PUSH HL LD L,A LD H,#00 ADD HL,HL ADD HL,HL ADD HL,HL LD DE,L771E ADD HL,DE EX DE,HL POP HL PUSH HL LD B,#08 L77D8 LD A,(DE) PUSH BC DEC C INC C LD B,#FF JR Z,L77E7 L77E0 SRL A SRL B DEC C JR NZ,L77E0 L77E7 LD C,A LD A,B CPL AND (HL) OR C LD (HL),A POP BC DEC C INC C JR Z,L780A PUSH BC LD A,#08 SUB C LD C,A LD A,(DE) LD B,#FF L77FA SLA A SLA B DEC C JR NZ,L77FA LD C,A LD A,B CPL INC HL AND (HL) OR C LD (HL),A DEC HL POP BC L780A INC DE INC H DJNZ L77D8 POP HL POP DE POP BC LD A,C ADD A,#06 CP #08 JR C,L781B SUB #08 INC L L781B LD C,A POP AF RET MainFont: ;L781E L781e DB #00,#00,#00,#00,#00,#00,#00,#00,#00,#10,#10,#10,#10,#00,#10,#00 DB #00,#28,#28,#00,#00,#00,#00,#00,#00,#28,#7C,#28,#7C,#28,#00,#00 DB #00,#10,#7C,#50,#7C,#14,#7C,#10,#00,#64,#48,#10,#24,#4C,#00,#00 DB #20,#50,#20,#54,#48,#74,#00,#00,#00,#08,#10,#00,#00,#00,#00,#00 DB #00,#08,#10,#10,#10,#10,#08,#00,#00,#10,#08,#08,#08,#08,#10,#00 DB #00,#28,#10,#7C,#10,#28,#00,#00,#00,#10,#10,#7C,#10,#10,#00,#00 DB #00,#00,#00,#00,#00,#10,#10,#20,#00,#00,#00,#7C,#00,#00,#00,#00 DB #00,#00,#00,#00,#00,#30,#30,#00,#00,#04,#08,#10,#20,#40,#00,#00 DB #00,#38,#4C,#54,#54,#64,#38,#00,#00,#30,#50,#10,#10,#10,#7C,#00 DB #00,#38,#44,#04,#38,#40,#7C,#00,#00,#38,#44,#18,#04,#44,#38,#00 DB #00,#18,#28,#48,#7C,#08,#08,#00,#00,#7C,#40,#78,#04,#44,#38,#00 DB #00,#38,#40,#78,#44,#44,#38,#00,#00,#7C,#04,#08,#10,#20,#20,#00 DB #00,#38,#44,#38,#44,#44,#38,#00,#00,#38,#44,#44,#3C,#04,#38,#00 DB #00,#00,#10,#00,#00,#10,#00,#00,#00,#00,#10,#00,#00,#10,#10,#20 DB #00,#00,#08,#10,#20,#10,#08,#00,#00,#00,#00,#3C,#00,#3C,#00,#00 DB #00,#00,#20,#10,#08,#10,#20,#00,#00,#38,#44,#08,#10,#00,#10,#00 DB #00,#38,#54,#54,#58,#40,#38,#00,#00,#38,#44,#44,#7C,#44,#44,#00 DB #00,#78,#44,#78,#44,#44,#78,#00,#00,#38,#44,#40,#40,#44,#38,#00 DB #00,#70,#48,#44,#44,#48,#70,#00,#00,#7C,#40,#78,#40,#40,#7C,#00 DB #00,#7C,#40,#78,#40,#40,#40,#00,#00,#38,#44,#40,#5C,#44,#38,#00 DB #00,#44,#44,#7C,#44,#44,#44,#00,#00,#7C,#10,#10,#10,#10,#7C,#00 DB #00,#04,#04,#04,#44,#44,#38,#00,#00,#48,#50,#60,#50,#48,#44,#00 DB #00,#40,#40,#40,#40,#40,#7C,#00,#00,#44,#6C,#54,#44,#44,#44,#00 DB #00,#44,#64,#54,#54,#4C,#44,#00,#00,#38,#44,#44,#44,#44,#38,#00 DB #00,#78,#44,#44,#78,#40,#40,#00,#00,#38,#44,#44,#54,#48,#34,#00 DB #00,#78,#44,#44,#78,#48,#44,#00,#00,#38,#40,#38,#04,#44,#38,#00 DB #00,#7C,#10,#10,#10,#10,#10,#00,#00,#44,#44,#44,#44,#44,#38,#00 DB #00,#44,#44,#44,#44,#28,#10,#00,#00,#44,#44,#44,#54,#6C,#44,#00 DB #00,#44,#28,#10,#10,#28,#44,#00,#00,#44,#44,#28,#10,#10,#10,#00 DB #00,#7C,#04,#18,#20,#40,#7C,#00,#00,#38,#20,#20,#20,#20,#38,#00 DB #00,#40,#20,#10,#08,#04,#00,#00,#00,#38,#08,#08,#08,#08,#38,#00 DB #00,#10,#38,#54,#10,#10,#10,#00,#00,#00,#00,#00,#00,#00,#00,#7C DB #00,#18,#24,#70,#20,#20,#7C,#00,#00,#00,#38,#04,#3C,#44,#3C,#00 DB #00,#40,#40,#78,#44,#44,#78,#00,#00,#00,#38,#40,#40,#40,#38,#00 DB #00,#04,#04,#3C,#44,#44,#3C,#00,#00,#00,#38,#44,#78,#40,#3C,#00 DB #00,#18,#20,#30,#20,#20,#20,#00,#00,#00,#3C,#44,#44,#3C,#04,#38 DB #00,#40,#40,#78,#44,#44,#44,#00,#00,#10,#00,#30,#10,#10,#38,#00 DB #00,#08,#00,#08,#08,#08,#48,#30,#00,#20,#28,#30,#30,#28,#24,#00 DB #00,#20,#20,#20,#20,#20,#18,#00,#00,#00,#68,#54,#54,#54,#54,#00 DB #00,#00,#78,#44,#44,#44,#44,#00,#00,#00,#38,#44,#44,#44,#38,#00 DB #00,#00,#78,#44,#44,#78,#40,#40,#00,#00,#38,#48,#48,#38,#08,#0C DB #00,#00,#38,#20,#20,#20,#20,#00,#00,#00,#38,#40,#38,#04,#78,#00 DB #00,#20,#70,#20,#20,#20,#18,#00,#00,#00,#44,#44,#44,#44,#38,#00 DB #00,#00,#44,#44,#28,#28,#10,#00,#00,#00,#44,#54,#54,#54,#28,#00 DB #00,#00,#44,#28,#10,#28,#44,#00,#00,#00,#44,#44,#44,#3C,#04,#38 DB #00,#00,#7C,#08,#10,#20,#7C,#00,#00,#1C,#10,#60,#10,#10,#1C,#00 DB #00,#10,#10,#10,#10,#10,#10,#00,#00,#70,#10,#0C,#10,#10,#70,#00 DB #00,#28,#50,#00,#00,#00,#00,#00,#00,#10,#08,#7C,#00,#7C,#08,#10 L7B1E LD A,(LB696) AND A RET Z PUSH HL PUSH DE PUSH BC LD D,#01 LD HL,#5020 XOR A LD E,A L7B2D OUT (#FB),A L7B2F IN A,(#FB) ADD A,A JP M,L7B70 JR NC,L7B2F PUSH HL PUSH DE LD A,D CP #02 SBC A,A AND E RLCA AND E LD D,A L7B41 LD C,(HL) PUSH HL LD B,#08 L7B45 LD A,D RLC C RRA LD H,A L7B4A IN A,(#FB) RRA JR NC,L7B4A LD A,H OUT (#FB),A DJNZ L7B45 POP HL INC HL LD A,L AND #1F JR NZ,L7B41 L7B5B IN A,(#FB) RRA JR NC,L7B5B LD A,D RRCA OUT (#FB),A POP DE POP HL INC H INC E BIT 3,E JR Z,L7B2D LD A,#04 OUT (#FB),A L7B70 POP BC POP DE POP HL RET L7B74 LD BC,#03E8 L7B77 DEC BC LD A,B OR C JR NZ,L7B77 RET L7B7D DB #01,#00,#00,#0D,#02,#00,#00,#02 L7B85 DW #0000 L7B87 DB #00,#00,#00,#00,#00,#00,#00,#00 GetKey PUSH HL PUSH IX PUSH BC CALL L7B74 LD (L7B85),BC LD HL,L7B87 LD IX,L7B7D LD BC,#FEFE L7BA4 IN A,(C) AND #1F OR (IX+#00) PUSH AF CPL AND (HL) CPL JR Z,L7BB8 LD (L7B85),BC LD (L7B85),A L7BB8 POP AF LD (HL),A INC HL INC IX RLC B JR C,L7BA4 LD BC,(L7B85) LD A,B OR C JR Z,L7BF2 LD A,#FB L7BCB ADD A,#05 RRC B JR C,L7BCB DEC A L7BD2 INC A RRC C JR C,L7BD2 LD C,A LD B,#00 LD HL,KeyboardMap1 LD A,#FE IN A,(#FE) AND #01 JR Z,L7BED LD A,#7F IN A,(#FE) AND #02 JR NZ,L7BF0 L7BED LD HL,KeyboardMap2 L7BF0 ADD HL,BC LD A,(HL) L7BF2 POP BC POP IX POP HL RET KeyboardMap1: ;L7BF7 L7bf7 DB #00,#5A,#58,#43,#56,#41,#53,#44,#46,#47,#51,#57,#45,#52,#54,#00 DB #00,#00,#00,#08,#08,#00,#09,#5B,#0A,#50,#4F,#49,#55,#59,#0D,#4C DB #4B,#4A,#48,#20,#00,#4D,#4E,#42 KeyboardMap2: ;L7C1F DB #00,#5A,#58,#43,#56,#41,#53,#44,#46,#47,#51,#57,#45,#52,#54,#00 DB #40,#00,#00,#08,#18,#00,#09,#5B,#0A,#22,#4F,#49,#55,#59,#0D,#4C DB #4B,#4A,#48,#02,#00,#2E,#2C,#42 L7C47 DW #0000 L7C49 DB #00 L7C4A DW #0000 L7C4C DB #00 L7C4D DB #00 L7C4E DW #0000,#0000 L7C52 DW #0000 L7C54 DW #0000,#0000 L7C58 LD IY,Location????? XOR A L7C5D LD (LB6BF),A CALL L7F32 LD (LB6AA),A LD E,#FF LD A,(LB6BE) AND A LD D,#A0 JP NZ,L7CE7 LD D,#C0 L7C73 XOR A LD (L7C4D),A LD A,E OR #C7 LD E,A LD A,(LB6BD) CP #02 JR NZ,L7C84 RES 1,E L7C84 CALL L7F37 L7C87 LD HL,L7C4E LD B,#0A CALL ClrMem SET 4,E L7C91 CALL L7F46 PUSH DE RRCA RRCA RRCA LD E,A LD D,#00 LD HL,L7CA5 ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL POP DE JP (HL) L7CA5 DW L7DC5,L7E68,L7DBF,L7E06 DW L7E02,L7EA4,L7E9C,L7E75 DW L7E63,L8012,L7DDE,L7CCD DW L7CC9 L7CBF LD A,(LB6BF) DEC A RET L7CC4 LD A,(LB6BF) AND A RET L7CC9 XOR A LD (LB6A9),A L7CCD BIT 1,E JR Z,L7CE7 LD A,(LB6AA) AND A JR NZ,L7CE7 LD A,(LB682) CP #C0 JR NZ,L7CE1 CP D JR Z,L7CBF L7CE1 CALL L7CC4 JP Z,L8002 L7CE7 LD A,(LB6BD) DEC A JR NZ,L7CF1 SET 7,(IY+#01) L7CF1 LD HL,LB6AA DEC A LD A,D JR NZ,L7CFC CP #A0 JR Z,L7CFD L7CFC INC (HL) L7CFD CALL L7F66 CP #A0 JP Z,L7C73 LD A,(LB6BE) AND A JR Z,L7D55 PUSH DE LD E,A LD D,#00 LD HL,Location????? ADD HL,DE PUSH IY LD IY,LB954 LD A,(IY+#08) OR (IY+#09) LD DE,LB95C JR Z,L7D3B LD A,(IY+#08) CP (HL) JR NZ,L7D32 LD A,(IY+#09) INC HL CP (HL) DEC HL JR Z,L7D3B L7D32 LD A,(IY+#12) OR (IY+#13) LD DE,LB966 L7D3B POP IY JR NZ,L7D54 EX DE,HL LD B,#03 L7D42 LD A,(HL) INC HL OR (HL) DEC HL JR NZ,L7D4A LD A,(DE) LD (HL),A L7D4A INC HL INC DE JR NZ,L7D50 LD A,(DE) LD (HL),A L7D50 INC HL INC DE DJNZ L7D42 L7D54 POP DE L7D55 PUSH IY LD IY,LocationTable LD A,(LB6AA) LD B,A PUSH BC CALL L7F65 L7D63 LD A,B AND A JR Z,L7D77 CALL L7F65 LD A,(IY+#01) AND #7F OR (IY+#00) CALL Z,L7F8A JR L7D63 L7D77 POP BC POP IY PUSH IY CALL L7F5F L7D7F LD A,B AND A JP Z,L7DB1 CALL L7F5F LD A,(IY+#12) OR (IY+#13) JR NZ,L7D7F LD A,(IY+#00) CP (IX+#00) JR NZ,L7D7F LD A,(IY+#01) CP (IX+#01) JR NZ,L7D7F LD A,(IX+#0E) OR (IX+#0F) JR Z,L7D7F EXX LD DE,#000E CALL L7FBD JP L7D7F L7DB1 POP IY LD A,(LB6A9) AND A RET Z CALL L7CC4 RET Z JP L7C73 L7DBF BIT 1,E JR NZ,L7E04 LD D,#00 L7DC5 BIT 2,E JP Z,L7FFC LD A,(LB6BD) CP #02 JR NZ,L7DD4 CALL L7F2B L7DD4 RES 2,E LD L,#02 CALL L7FEB JP L7C87 L7DDE RES 3,E PUSH DE L7DE1 CALL L7F46 CP #A0 JR Z,L7DE1 DEC HL DEC HL LD (L7C47),HL LD (LB680),HL POP DE LD A,E LD (L7C49),A LD (L7C4A),IY LD A,(LB6AA) LD (L7C4C),A JP L7CCD L7E02 RES 0,E L7E04 LD D,#30 L7E06 BIT 3,E JR NZ,L7E28 CALL L7CC4 JR NZ,L7E28 LD HL,(L7C47) LD (LB680),HL LD D,#B0 LD A,(L7C49) LD E,A LD A,(L7C4C) LD (LB6AA),A LD IY,(L7C4A) JP L7CCD L7E28 CALL L7F32 BIT 1,E JP Z,L7FFC BIT 0,E JR Z,L7E3A L7E34 CALL L7FE7 JP L7C87 L7E3A PUSH DE PUSH BC LD HL,(LB680) PUSH HL L7E40 CALL L7F46 CP #00 JR Z,L7E40 SET 0,E CP #20 JR Z,L7E55 POP HL LD (LB680),HL POP BC POP DE JR L7E34 L7E55 CALL L7FE7 POP HL POP BC POP HL LD L,#02 CALL L7FEB JP L7C87 L7E63 RES 4,E JP L7C91 L7E68 BIT 1,E JR Z,L7E73 LD A,(LB682) CP #A0 JR Z,L7E04 L7E73 LD D,#70 L7E75 CALL L7EEF L7E78 CALL L7F46 CP #70 JR Z,L7E75 CP #80 JR NZ,L7E8C BIT 4,E CALL Z,L7FF7 RES 4,E JR L7E78 L7E8C CP #60 JR Z,L7E9C CP #50 JR Z,L7EA4 LD HL,(LB67E) LD (LB680),HL JR L7EAA L7E9C CALL L7EDC CALL L7F46 JR L7E8C L7EA4 LD HL,L7C52 LD (HL),C INC HL LD (HL),B L7EAA LD D,#50 LD A,(LB6BD) CP #02 JR NZ,L7ED5 LD HL,(L7C4E) LD A,H OR L JR NZ,L7ED2 BIT 6,(IY+#19) JR NZ,L7EC8 LD BC,#FFE8 ADD IY,BC CALL L7F37 L7EC8 CALL L7F23 LD (IY+#01),#40 JP L7C87 L7ED2 CALL L7F2B L7ED5 CALL L7EFE JP Z,L7C87 RET L7EDC LD HL,L7C54 L7EDF LD A,(HL) INC HL OR (HL) JR Z,L7EEB INC HL LD A,(HL) INC HL OR (HL) JP NZ,L7FF7 L7EEB LD (HL),B DEC HL LD (HL),C RET L7EEF LD HL,L7C4D INC (HL) LD A,(HL) CP #03 JP NC,L7FF7 LD HL,L7C4E JR L7EDF L7EFE BIT 6,E JR NZ,L7F23 BIT 7,E JR NZ,L7F0B CALL L7FF7 XOR A RET L7F0B RES 7,E PUSH DE LD DE,#000E L7F11 PUSH BC PUSH IY POP HL ADD HL,DE EX DE,HL LD HL,L7C4E LD BC,#000A LDIR POP BC POP DE XOR A RET L7F23 RES 6,E PUSH DE LD DE,#0004 JR L7F11 L7F2B CALL L7F78 PUSH IX POP IY L7F32 XOR A LD (LB6BD),A RET L7F37 PUSH IY POP HL LD B,#18 CALL ClrMem LD (IY+#E8),B LD (IY+#E9),B RET L7F46 LD HL,(LB680) LD (LB67E),HL LD A,D LD (LB682),A LD A,(HL) AND #0F LD B,A LD A,(HL) AND #F0 LD D,A INC HL LD C,(HL) INC HL LD (LB680),HL RET L7F5F DEC B CALL L7F78 JR L7F69 L7F65 DEC B L7F66 CALL L7F72 L7F69 PUSH IX PUSH IY POP IX POP IY RET L7F72 PUSH DE LD DE,#FFE8 JR L7F7C L7F78 PUSH DE LD DE,#0018 L7F7C PUSH IY POP IX L7F80 ADD IX,DE BIT 6,(IX+#01) JR NZ,L7F80 POP DE RET L7F8A EXX LD A,(IX+#01) AND #7F OR (IY+#01) LD (IY+#01),A LD A,(IX+#00) LD (IY+#00),A EXX LD A,(IY+#1C) OR (IY+#1D) RET Z BIT 7,E RET Z EXX PUSH IY POP HL LD DE,#0012 ADD HL,DE PUSH HL LD DE,#FFF6 ADD HL,DE POP DE LD BC,#0006 LDIR LD DE,#0004 L7FBD CALL L7FD2 LD A,(IY+#02) OR (IY+#03) LD DE,#0002 CALL Z,L7FD6 EXX RET L7fce LD C,#06 JR L7FD8 L7FD2 LD C,#0A JR L7FD8 L7FD6 LD C,#02 L7FD8 PUSH IY POP HL ADD HL,DE PUSH HL PUSH IX POP HL ADD HL,DE POP DE LD B,#00 LDIR RET L7FE7 RES 1,E LD L,#00 L7FEB PUSH DE PUSH IY POP DE LD H,#00 ADD HL,DE LD (HL),C INC HL LD (HL),B POP DE RET L7FF7 CALL L7CC4 RET NZ POP HL L7FFC CALL L7CC4 JP NZ,L7C87 L8002 LD HL,LAD43 ; "What?" LD A,#01 LD (LB6A5),A CALL PrintMsg OR #01 RET L8010 DW #0000 L8011 DW #2100 L8012 LD HL,L8032 L8015 PUSH DE LD D,#0D L8018 LD A,(HL) INC HL CP C JR NZ,L8021 LD A,(HL) CP B JR Z,L8028 L8021 INC HL DEC D JR NZ,L8018 JP L7C73 L8028 LD DE,#0019 ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL POP DE JP (HL) L8032 DB #00,#00,#4E,#00,#45,#02,#9E,#03,#AD,#04,#FB,#04,#79, L803F DB #04,#EE,#03,#80,#05,#18,#05,#1E,#03,#8A,#05,#D8,#04,#D6,#80,#93 DB #80,#7B,#80,#A3,#80,#87,#7C,#66,#80,#70,#80,#12,#82,#8D,#82,#52 DB #81,#61,#81,#B0,#81 L8064 EI ADD A,C IN A,(#FB) BIT 6,A JR NZ,L8074 LD A,#01 JR L8071 L8070 XOR A L8071 LD (LB696),A L8074 LD A,(LB682) LD D,A JP L7C87 L807b LD A,(LB6BD) CP #01 JP NZ,L7FFC LD A,#02 LD (LB6BD),A LD A,(IY+#01) OR #80 LD (IY+#01),A JP L7C87 L8093 LD A,(LB6BD) CP #02 JP Z,L7C87 LD A,#01 LD (LB6BD),A JP L7C87 L80a3 PUSH DE LD HL,LB684 LD DE,L7C52 LD BC,#0006 LDIR POP DE BIT 7,E CALL L80B8 JP L7C87 L80B8 JP Z,L7F0B JP L7F23 L80BE LD A,D LD (L8010),A PUSH DE PUSH BC PUSH IY LD A,(LB6AA) LD (L8011),A LD DE,#FFE8 ADD IY,DE LD A,#01 JP L7C5D L80d6 LD A,(LB6BF) AND A JR Z,L80BE DEC A LD (LB6BF),A LD A,(L8011) LD B,A LD A,(LB6AA) SUB B AND A LD C,#00 JR Z,L8139 POP IY PUSH IY LD DE,#FFE8 ADD IY,DE LD B,A L80F7 LD IX,LB6DC PUSH DE PUSH BC LD DE,#0019 LD B,#08 L8102 LD A,(IX+#00) AND A JR Z,L810C ADD IX,DE DJNZ L8102 L810C LD (IX+#00),#FF INC IX POP BC POP DE JR NZ,L8139 BIT 6,(IY+#01) JR Z,L8122 LD (IX+#FF),#00 JR L8134 L8122 PUSH BC LD B,#18 L8125 LD A,(IY+#00) LD (IX+#00),A INC IY INC IX DJNZ L8125 POP BC ADD IY,DE L8134 ADD IY,DE INC C DJNZ L80F7 L8139 XOR A LD (LB6BD),A LD A,C LD (LB6DB),A POP IY LD A,(L8011) LD (LB6AA),A POP BC POP DE LD A,(L8010) LD D,A JP L7C87 L8152 CALL L81B6 L8155 XOR A IN A,(#FE) AND #1F CP #1F JR Z,L8155 JP ReStart DisplayLocHlpMsg: ;L8161 L8161 LD A,(LB68E) AND A JP NZ,L7C87 PUSH HL PUSH IX LD HL,LB40B LD A,(CurLocation) LD IX,LocHlpMsg CALL IndexIdTable JR Z,L8180 LD L,(IX+#01) LD H,(IX+#02) L8180 LD A,#01 LD (LB6A5),A CALL PrintMsg POP IX POP HL JP L8074 LocHlpMsg: ;L818E DB #06,LB41E ; "Trolls Path" DB #09,LB42E ; "Rivendell" DB #0D,LB43E ; "Goblins Dungeon" DB #42,LB462 ; "West Bank" DB #1F,LB46E ; "Dark Dungeon" DB #20,LB47E ; "Elvenkings Cellar" DB #2A,LB49E ; "Sidedoor DB #2E,LB4A8 ; "Forest Road" DB #29,LB4BC ; "Lower Halls" DB #1A,LB4D3 ; "Black Spiders place" DB #05,LB4E2 ; "Trolls Clearing" DB #FF L81B0 CALL L81B6 JP L8074 L81B6 PUSH HL PUSH DE XOR A LD (LB6A5),A LD HL,LB3F8 ; "You have mastered" CALL PrintMsg LD HL,(LB69B) LD DE,#0064 CALL L81EF CALL NZ,L7589 LD DE,#000A CALL L81EF CALL L7589 LD A,#2E CALL L7589 LD A,L ADD A,#30 CALL L7589 XOR A LD (LB6A8),A LD HL,LB406 ; "% of this adventure" CALL PrintMsg POP DE POP HL RET L81EF LD A,#2F L81F1 INC A AND A SBC HL,DE JR NC,L81F1 ADD HL,DE CP #30 RET L81fb LD A,#04 OUT (#FE),A CALL L827A L8202 XOR A IN A,(#FE) AND #1F CP #1F JR NZ,L8202 LD A,#07 OUT (#FE),A JP L8074 LoadGame: L8212 PUSH IX PUSH DE LD A,#FF SCF LD IX,LB68F LD DE,#001D CALL LoadBlock LD A,#FF SCF LD IX,Objects LD DE,#0614 CALL LoadBlock LD A,#FF SCF LD IX,LCA27 LD DE,#00BF CALL LoadBlock LD A,#FF SCF LD IX,Locations LD DE,#05D9 CALL LoadBlock DI LD HL,LB68F LD DE,LC985 CALL L8274 POP DE POP IX JP L8074 LoadBlock: ;L8259 L8259 CALL LD-BYTES RET C LD A,#01 LD (LB6A5),A LD HL,LB2FB ; "Tape Error..." CALL PrintMsg L8268 XOR A IN A,(#FE) AND #1F CP #1F JR Z,L8268 JP ReStart L8274 LD BC,#0003 LDIR RET L827A XOR A IN A,(#FE) AND #1F CP #1F JR NZ,L827A L8283 XOR A IN A,(#FE) AND #1F CP #1F JR Z,L8283 RET SaveGame: L828d PUSH IX PUSH DE LD DE,LB68F LD HL,LC985 CALL L8274 LD A,#01 LD (LB6A5),A LD HL,LB2E6 ;"Tape Error..." CALL PrintMsg CALL L827A LD A,#FF LD IX,LB68F LD DE,#001D CALL SA-BYTES LD A,#FF LD IX,Objects LD DE,#0614 CALL SA-BYTES LD A,#FF LD IX,LCA27 LD DE,#00BF CALL SA-BYTES LD A,#FF LD IX,Locations LD DE,#05D9 CALL SA-BYTES LD HL,LB348 ; "Rewind tape and prepare for verification" CALL PrintMsg CALL L827A LD A,#FF AND A LD IX,LB68F LD DE,#001D CALL L831B LD A,#FF AND A LD IX,Objects LD DE,#0614 CALL L831B LD A,#FF AND A LD IX,LCA27 LD DE,#00BF CALL L831B LD A,#FF AND A LD IX,Locations LD DE,#05D9 CALL L831B L8314 DI POP DE POP IX JP L8074 L831B CALL LD-BYTES RET C LD A,#01 LD (LB6A5),A LD HL,LB325 ; "Tape Error..." CALL PrintMsg L832A XOR A IN A,(#FE) AND #1F CP #1F JR Z,L832A POP DE JP L8314 L8337 DB #00 L8338 DB #00 L8339 DB #00 L833A DB #00 L833B DB #00 L833C DW #0000,#0000,#0000 L8342 DB #00,#00,#00,#00,#00,#00 L8348 DW #0000 L834A DW #0000 L834C DB #00 L834D DW #0000 L834E DB #00 L834F DB #00 L8350 DB #00 L8351 DB #00 L8352 DW #0000 L8354 DW #0000 L8356 DW #0000 L8358 DW #0000 L835A XOR A LD (LB6C0),A LD IY,Location????? LD HL,LB6BE CP (HL) LD (HL),A JP NZ,L838E L836A CALL L83B0 JR NZ,L8374 XOR A LD (LB6A9),A RET L8374 CALL L84E7 JP Z,L87EF LD A,#01 LD (LB69E),A CALL L712B CALL L94EA L8385 CALL L968E L8388 LD A,(LB6C0) AND A JR NZ,L836A L838E LD A,(LB6AA) DEC A LD (LB6AA),A RET Z LD BC,#FFE8 L8399 ADD IY,BC BIT 6,(IY+#01) JR NZ,L8399 JR L836A L83A3 XOR A LD (LB6A5),A LD HL,L8337 LD B,#11 CALL ClrMem RET L83B0 LD A,#FF LD (LB68D),A LD (LB68C),A CALL L83A3 CALL L8598 RET Z LD A,#01 PUSH IX POP HL LD DE,Actions SBC HL,DE JR Z,L83D3 LD DE,#0008 L83CE INC A SBC HL,DE JR NZ,L83CE L83D3 LD (CurrentAction),A LD (LB68A),A LD (L8358),IX CALL L8572 CALL L849B XOR A LD (LB69E),A LD A,(LB6C1) AND #0C JR Z,L840B LD A,(L834C) LD (LB6C0),A RLCA AND #01 LD (L834D),A L83FA CALL L840E JP NZ,L87B6 LD A,(LB6C0) AND A JR Z,L840B CALL L846D JR NZ,L83FA L840B OR #01 RET L840E CALL L86C5 JR NZ,L8428 LD A,(L833A) CP #01 RET NZ LD A,(L8350) LD (LB68C),A CALL L84B4 CALL L84D2 JR NZ,L844F RET L8428 LD HL,L8339 INC (HL) CALL L84D2 JR Z,L844A CALL L84B4 CALL L8711 L8437 JR Z,L840E LD A,(L834D) DEC A RET Z LD A,(LB68C) LD (L8350),A LD HL,L833A INC (HL) JR L840E L844A CALL L84E7 JR L8437 L844F CALL L8711 JR NZ,L8461 LD A,(L833B) CP #01 RET NZ LD A,(L8351) LD (LB68D),A RET L8461 LD A,(LB68D) LD (L8351),A LD HL,L833B INC (HL) JR L844F L846D PUSH IY PUSH DE PUSH HL L8471 LD DE,#FFE8 ADD IY,DE BIT 6,(IY+#01) JR Z,L8496 LD IX,#C004 L8480 PUSH IY POP HL LD DE,#0008 ADD HL,DE CALL L9DAE CP #FF JR Z,L8471 LD HL,LB68C CP (HL) JR NZ,L8480 OR #01 L8496 POP HL POP DE POP IY RET L849B LD A,(LB6C0) AND A RET NZ L84A0 LD A,(LB6C2) RRCA RRCA CALL L84C6 LD A,(LB6A2) AND A CALL NZ,L9E6A LD (L8348),IX RET L84B4 LD A,(LB6C2) CALL L84C6 LD A,(LB6A3) AND A CALL NZ,L9E6A LD (L834A),IX RET L84C6 LD IX,ObjectTable AND #03 RET Z LD IX,#C004 RET L84D2 LD A,(LB6C1) BIT 2,A RET Z LD HL,L8338 BIT 0,(HL) RET NZ BIT 1,A JR NZ,L84E5 OR #01 RET L84E5 XOR A RET L84E7 CALL L94EA LD A,(LB69F) AND A RET L84EF PUSH HL PUSH IY PUSH IX PUSH DE PUSH BC LD HL,(L8348) PUSH HL LD A,(CurrentAction) CALL IndexAction PUSH HL POP IX CALL L83A3 CALL L70F3 CALL L8572 LD A,(LB68C) LD B,A LD A,(LB6A2) LD DE,L833C CALL L855D LD A,(LB68D) LD B,A LD A,(LB6A3) LD DE,L8342 CALL L855D CALL L84A0 XOR A LD (LB69E),A LD A,(LB6C1) AND #0C JR NZ,L853D CALL L94EA LD A,(LB69F) AND A JR L854C L853D LD A,#01 LD (L834D),A CALL L840E JR Z,L854A XOR A JR L854C L854A OR #01 L854C LD A,#01 LD (LB69E),A POP HL LD (L8348),HL POP BC POP DE POP IX POP IY POP HL RET L855D INC B RET Z DEC B AND A LD A,B JR Z,L8569 CALL L71D5 JR L856C L8569 CALL L71E2 L856C LD BC,#0006 LDIR RET L8572 LD A,(LB6C2) AND #40 LD (LB6B5),A LD A,(LB6C1) LD B,A AND #01 LD (LB6B3),A LD A,B AND #80 JR Z,L858A LD A,#01 L858A LD (LB6A2),A LD A,B AND #40 JR Z,L8594 LD A,#01 L8594 LD (LB6A3),A RET L8598 PUSH IY LD L,(IY+#00) LD H,(IY+#01) LD A,H AND #80 LD (L834C),A RES 7,H LD (L8352),HL LD HL,L8354 PUSH HL LD B,#04 CALL ClrMem POP HL LD B,#02 LD E,#04 CALL L86A6 LD E,#0E CALL L86A6 LD E,#06 CALL L86A6 LD E,#10 CALL L86A6 XOR A LD (LB683),A LD HL,L8352 LD DE,#0008 LD IX,Actions L85D9 PUSH IX POP IY CALL L71F3 JR Z,L8615 ADD IX,DE LD A,(IX+#01) OR (IX+#00) JR NZ,L85D9 POP IY LD A,(LB683) AND A JP NZ,L88A2 LD HL,(L8352) PUSH HL LD HL,LAD47 XOR A LD (LB6A5),A LD (LB6C0),A LD A,#01 LD (LB69E),A CALL L72D3 LD A,(LB6BF) DEC A RET Z POP HL POP HL JP L8385 L8615 POP IY CALL L861D OR #01 RET L861D AND A JR Z,L862E LD HL,(L8354) LD DE,(L8356) LD (L8354),DE LD (L8356),HL L862E CALL L70F3 LD HL,L8354 LD A,(HL) INC HL OR (HL) JR NZ,L863E LD A,(LB6C2) JR L865D L863E DEC HL LD A,(HL) CP (IY+#0E) JR NZ,L864D INC HL LD A,(HL) CP (IY+#0F) JR Z,L8658 DEC HL L864D LD A,(HL) CP (IY+#10) JR NZ,L8658 INC HL LD A,(HL) CP (IY+#11) L8658 LD A,(LB6C1) JR NZ,L865F L865D XOR #20 L865F BIT 5,A LD BC,#1208 JR Z,L8669 LD BC,#0812 L8669 LD HL,L834E LD (HL),B INC HL LD (HL),C LD A,B LD DE,L833C LD HL,L8337 CALL L868B LD A,C LD HL,L833C LD DE,LB684 LD BC,#0006 LDIR LD DE,L8342 LD HL,L8338 L868B PUSH BC LD C,A LD B,#00 PUSH HL PUSH IY POP HL ADD HL,BC LD BC,#0006 LDIR XOR A LD B,#06 L869C DEC HL OR (HL) DJNZ L869C POP HL POP BC RET Z SET 0,(HL) RET L86A6 XOR A CP B RET Z LD D,#00 PUSH IY ADD IY,DE LD A,(IY+#00) LD (HL),A INC HL LD A,(IY+#01) LD (HL),A DEC HL OR (IY+#00) POP IY RET Z DEC B INC HL INC HL RET L86C3 JP (IY) L86C5 PUSH IY LD IX,(L8348) LD A,(LB6A2) DEC A JR Z,L86EB LD IY,L9DAE LD A,(LB6C2) RRCA RRCA AND #03 LD (LB6B4),A CALL L86F6 CP #FF L86E4 LD (L8348),IX POP IY RET L86EB LD IY,L9E75 CALL L86F6 CP #FF JR L86E4 L86F6 LD HL,L833C CALL L86C3 CP #FF RET Z LD (LB68C),A LD HL,L8337 SET 1,(HL) CALL L94B1 LD A,(LB69F) AND A JR Z,L86F6 RET L8711 XOR A LD (LB6B3),A PUSH IY LD IX,(L834A) LD A,(LB6A3) DEC A JR Z,L8743 LD IY,L9DAE LD A,(LB6C2) AND #03 LD (LB6B4),A CALL L874E CP #FF L8732 LD (L834A),IX POP IY PUSH AF LD A,(LB6C1) AND #01 LD (LB6B3),A POP AF RET L8743 LD IY,L9E75 CALL L874E CP #FF JR L8732 L874E LD HL,L8342 CALL L86C3 CP #FF RET Z LD (LB68D),A LD HL,L8338 SET 1,(HL) CALL L84E7 JR Z,L874E RET L8765 LD A,#01 LD (LB69E),A LD (LB6A5),A RET L876E LD (LB6BE),A PUSH IY POP HL LD DE,Location????? LD BC,#0018 LDIR RET L877D LD A,(L834E) LD HL,(L833C) L8783 PUSH HL CALL L876E LD HL,LAD70 L878A CALL L8765 CALL L72D3 XOR A RET L8792 LD HL,L8338 BIT 0,(HL) JP Z,L8847 BIT 1,(HL) LD HL,L8342 LD DE,LB68D LD BC,LB6A3 JR Z,L87F8 LD A,(L833B) AND A JP Z,L87EF LD A,(L834F) LD A,(L8342) JR L8783 L87B6 LD A,(LB6BF) DEC A RET Z LD A,(LB6C0) AND A JR Z,L87C5 POP HL JP L838E L87C5 LD A,(L833A) CP #01 JR Z,L8792 LD HL,L8337 BIT 0,(HL) JP Z,L882A BIT 1,(HL) LD HL,L833C LD DE,LB68C LD BC,LB6A2 JR Z,L87F8 LD A,(L8339) AND A JR Z,L87EF DEC A JR NZ,L877D CALL L84D2 JR NZ,L8792 L87EF CALL L8765 CALL L94EA JP L8388 L87F8 PUSH HL CALL L9E6A LD A,#01 LD (BC),A CALL L9E75 CP #FF JR NZ,L881A POP HL LD A,#02 LD (LB6B4),A LD IX,#C004 XOR A LD (BC),A PUSH HL CALL L9DAE CP #FF JR Z,L881F L881A POP HL LD (DE),A JP L711A L881F CALL L8765 LD HL,LAD77 CALL L72D3 XOR A RET L882A CALL L8876 LD HL,(L8352) PUSH HL LD HL,LAD85 LD A,(L833A) AND A JP Z,L878A LD A,(L834E) CALL L876E LD HL,#AD68 JP L878A L8847 CALL L8872 LD HL,L0 PUSH HL LD A,(LB68C) CALL L71E2 PUSH HL CALL L8876 LD HL,(L8352) PUSH HL LD HL,LAD8B LD A,(L833B) AND A JP Z,L878A LD A,(L834F) CALL L876E LD HL,LAD64 JP L878A L8872 LD A,#28 JR L8878 L8876 LD A,#20 L8878 LD (L888B+1),A LD (L889A+1),A LD IX,(L8358) LD L,(IX+#04) LD H,(IX+#05) BIT 7,(IX+#07) JR NZ,L8891 L888B LD HL,#0000 L8891 EX (SP),HL PUSH HL LD L,(IX+#02) LD H,(IX+#03) BIT 5,H JR NZ,L88A0 L889A LD HL,#0000 L88A0 EX (SP),HL JP (HL) L88A2 LD HL,(L8356) PUSH HL LD HL,(L8354) PUSH HL LD HL,(L8352) PUSH HL LD HL,LAD54 JP L878A L88B4 PUSH BC PUSH IX PUSH DE LD B,A LD A,(LB6DB) LD C,A CP B JR NC,L88C1 LD B,A L88C1 LD A,C SUB B LD C,A LD IX,#B6C3 LD DE,#0019 XOR A CP B JR Z,L88E0 L88CF ADD IX,DE LD A,(IX+#00) CP #FF JR NZ,L88CF LD A,(LB68C) LD (IX+#00),A DJNZ L88CF L88E0 LD B,C XOR A CP B JR Z,L88F4 L88E5 ADD IX,DE LD A,(IX+#00) CP #FF JR NZ,L88E5 LD (IX+#00),#00 DJNZ L88E5 L88F4 POP DE POP IX POP BC RET L88F9 LD HL,LB6DC LD DE,#0019 LD A,(LB68E) LD B,#08 L8904 CP (HL) RET Z ADD HL,DE DJNZ L8904 RET L890A PUSH HL PUSH DE PUSH BC CALL L88F9 POP BC POP DE POP HL RET L8914 PUSH IX PUSH IY PUSH BC PUSH DE PUSH HL LD C,A CALL L88F9 LD (HL),#00 INC HL XOR A CP C JR NZ,L8931 OR #01 EX (SP),HL L8929 POP HL POP DE POP BC POP IY POP IX RET L8931 PUSH HL POP IY LD A,#01 LD (LB6BF),A LD A,(LB6C0) PUSH AF CALL L83B0 EX AF,AF' XOR A LD (LB6BF),A POP AF LD (LB6C0),A EX AF,AF' JR Z,L8951 CALL L84E7 JR NZ,L8929 L8951 LD A,(LB68E) CALL L895A XOR A JR L8929 L895A PUSH HL PUSH DE PUSH BC LD HL,LB6DC LD DE,#0019 LD B,#08 L8965 CP (HL) JR NZ,L896A LD (HL),#00 L896A ADD HL,DE DJNZ L8965 POP BC POP DE POP HL RET L8971 DB #00 DrawLocGfx: ; L8972 PUSH AF LD A,(LB6AB) AND A JR NZ,L8980 LD A,#FF LD (L8971),A POP AF RET L8980 POP AF PUSH AF PUSH HL PUSH BC PUSH DE PUSH IX LD IX,LocGFXTable CALL IndexIdTable LD (L8971),A LD L,(IX+#01) LD H,(IX+#02) CALL NZ,DrawGfx POP IX POP DE POP BC POP HL POP AF RET DrawGfx: ; L89A1 PUSH IY PUSH HL PUSH HL POP IY PUSH DE PUSH BC CALL L8C05 LD D,#7F LD E,#3F LD B,#01 LD C,#01 LD L,#01 L89B6 LD A,(IY+#00) AND A JP Z,L8A63 INC IY CP #08 JR NZ,L89CF LD D,(IY+#00) INC IY LD E,(IY+#00) INC IY JR L89B6 L89CF BIT 7,A JR Z,L89F4 LD B,A AND #07 LD C,A LD A,B RRCA AND #3C LD B,A LD A,(IY+#00) AND #3F LD L,A INC L LD A,(IY+#00) INC IY RLCA RLCA AND #03 OR B LD B,A INC B CALL L8B4B JR L89B6 L89F4 BIT 6,A JR Z,L8A0C AND #07 PUSH DE LD D,(IY+#00) INC IY LD E,(IY+#00) INC IY CALL L8A6B POP DE JP L89B6 L8A0C BIT 5,A JP Z,L89B6 AND #07 RLCA RLCA RLCA PUSH HL PUSH DE PUSH BC LD C,A LD H,(IY+#00) INC IY LD L,(IY+#00) INC IY L8A24 LD A,(IY+#00) INC IY CP #FF JR Z,L8A5D LD B,A AND #03 LD E,A LD A,B RRCA RRCA AND #3F INC A LD B,A L8A38 LD A,(HL) AND #07 RLCA RLCA RLCA CP C JR NZ,L8A43 XOR #38 L8A43 RRCA RRCA RRCA OR C LD (HL),A LD A,E AND A CALL Z,L8AEF DEC A CALL Z,L8B1B DEC A CALL Z,L8B00 DEC A CALL Z,L8B11 DJNZ L8A38 JR L8A24 L8A5D POP BC POP DE POP HL JP L89B6 L8A63 POP BC POP DE POP HL POP IY RET L8A69 DB #00 L8A6A DB #00 L8A6B LD (L8C48),A PUSH DE PUSH HL LD HL,#0080 PUSH HL L8A74 CALL L8AE8 JR NZ,L8A80 CALL L8B42 JR NZ,L8A74 JR L8A86 L8A80 CALL L8BAF CALL L8B3B L8A86 LD HL,L0 LD (L8A69),HL L8A8C CALL L8B25 LD A,#00 JR Z,L8AA8 CALL L8AE8 LD A,#00 JR NZ,L8AA3 LD A,(L8A69) AND A JR NZ,L8AA3 PUSH DE LD A,#01 L8AA3 PUSH AF CALL L8B34 POP AF L8AA8 LD (L8A69),A CALL L8B34 LD A,#00 JR Z,L8AC7 CALL L8AE8 LD A,#00 JR NZ,L8AC2 LD A,(L8A6A) AND A JR NZ,L8AC2 PUSH DE LD A,#01 L8AC2 PUSH AF CALL L8B25 POP AF L8AC7 LD (L8A6A),A CALL L8BAF CALL L8B3B JR Z,L8ADA CALL L8AE8 JR Z,L8A8C CALL L8BAF L8ADA POP DE LD A,E CP #80 JR NZ,L8A74 LD A,#00 LD (L8C48),A POP HL POP DE RET L8AE8 PUSH HL CALL L8BD8 AND (HL) POP HL RET L8AEF PUSH AF PUSH DE LD DE,#0020 AND A SBC HL,DE LD A,H CP #57 JR NZ,L8AFD ADD HL,DE L8AFD POP DE POP AF RET L8B00 PUSH AF PUSH DE LD DE,#0020 ADD HL,DE LD A,H CP #5A JR NZ,L8B0D AND A SBC HL,DE L8B0D LD D,D POP DE POP AF RET L8B11 PUSH AF DEC HL LD A,H CP #57 JR NZ,L8B19 INC HL L8B19 POP AF RET L8B1B PUSH AF INC HL LD A,H CP #5A JR NZ,L8B23 DEC HL L8B23 POP AF RET L8B25 INC E BIT 7,E JR Z,L8B2F DEC E LD H,A XOR A LD A,H RET L8B2F LD H,A OR #01 LD A,H RET L8B34 DEC E BIT 7,E JR Z,L8B2F INC E RET L8B3B INC D RET NZ DEC D LD H,A XOR A LD A,H RET L8B42 DEC D LD H,A LD A,D CP #FF LD A,H RET NZ INC D RET L8B4B BIT 0,C JR NZ,L8B7F PUSH HL PUSH BC L8B51 CALL L8BAF BIT 2,C JR Z,L8B5F CALL L8B42 JR Z,L8B7C JR L8B64 L8B5F CALL L8B3B JR Z,L8B7C L8B64 DEC B JR NZ,L8B79 BIT 1,C JR Z,L8B72 CALL L8B34 JR Z,L8B7C JR L8B77 L8B72 CALL L8B25 JR Z,L8B7C L8B77 POP BC PUSH BC L8B79 DEC L JR NZ,L8B51 L8B7C POP BC POP HL RET L8B7F PUSH HL PUSH BC L8B81 CALL L8BAF BIT 1,C JR Z,L8B8F CALL L8B34 JR Z,L8BAC JR L8B94 L8B8F CALL L8B25 JR Z,L8BAC L8B94 DEC B JR NZ,L8BA9 BIT 2,C JR Z,L8BA2 CALL L8B42 JR Z,L8BAC JR L8BA7 L8BA2 CALL L8B3B JR Z,L8BAC L8BA7 POP BC PUSH BC L8BA9 DEC L JR NZ,L8B81 L8BAC POP BC POP HL RET L8BAF PUSH HL CALL L8BD8 PUSH AF PUSH HL LD A,H AND #18 RRCA RRCA RRCA ADD A,#58 LD H,A LD A,(HL) AND #38 LD (HL),A LD A,(L8C48) RLCA RLCA RLCA CP (HL) JR NZ,L8BCD XOR #38 L8BCD RRCA RRCA RRCA OR (HL) LD (HL),A POP HL POP AF OR (HL) LD (HL),A POP HL RET L8BD8 LD A,#7F SUB E LD L,A AND #07 OR #40 LD H,A LD A,L AND #C0 RRCA RRCA RRCA OR H LD H,A LD A,L AND #38 RLCA RLCA LD L,A LD A,D RRCA RRCA RRCA AND #1F OR L LD L,A LD A,D AND #07 PUSH BC LD B,A INC B LD A,#01 L8BFF RRC A DJNZ L8BFF POP BC RET L8C05 CALL L95C8 EX AF,AF' LD A,(IY+#00) INC IY EX AF,AF' JR NC,L8C14 EX AF,AF' XOR A EX AF,AF' L8C14 EX AF,AF' OUT (#FE),A PUSH HL PUSH DE PUSH BC LD HL,#4000 LD DE,#4001 LD BC,#0FFF LD (HL),#00 LDIR LD HL,#5800 LD DE,#5801 LD BC,#01FF LD A,(IY+#00) INC IY EX AF,AF' JR NC,L8C3B EX AF,AF' XOR A EX AF,AF' L8C3B EX AF,AF' LD (HL),A LDIR POP BC POP DE POP HL EX AF,AF' RET NC POP HL JP L8A63 L8C48 DB #38 Action_Look: ; L8C49 CALL L9D19 LD IX,(ptrCurObject) LD A,(IX+#01) CP #FF JR Z,L8C93 LD HL,#0080 LD (#AFA1),HL LD HL,LAFA0 ; "You Are in" CALL PrintMsg PUSH IX LD A,(IX+#01) CALL LocateObject CALL LA072 LD E,(IX+#08) LD A,(IX+#09) AND #0F LD D,A CALL PrintToken LD A,#2E CALL L7589 CALL L7581 LD HL,LAFA7 ; "You see : "; CALL PrintMsg POP IX LD A,(IX+#01) LD B,(IX+#10) JP L9F84 L8C93 LD A,(IX+#10) JP L960B L8C99 CALL L9C4D RET C POP HL LD HL,LAD95 ; "You are not carrying it" JP PrintMsg Action_Putdown: ;L8CA4 CALL L8C99 CALL L9D19 LD IX,(LB6AC) LD A,(IX+#01) CP #12 JR NZ,L8CB9 LD IX,LC309 L8CB9 PUSH IX LD IX,(ptrCurObject) LD A,(IX+#01) POP IX LD (IX+#01),A BIT 1,(IX+#07) RET Z LD (IX+#10),#00 LD HL,LB0E6 ; "[the object] evaporates" LD DE,#0008 ADD IX,DE PUSH IX CALL PrintMsg RET L8cde LD A,(LB68C) LD HL,LB68D CALL L9C53 LD HL,LAF59 ; " [object/npc] is not in [ object ] JP NZ,PrintMsg JR L8D3A L8CEF LD IX,(LB6AC) LD A,(LB68C) CALL L9CC2 ADD A,(IX+#03) JR NC,L8D00 LD A,#FF L8D00 LD B,A LD IY,(ptrCurObject) LD A,(IY+#03) SUB B LD HL,LADA8 JR C,L8D1E PUSH AF LD A,(LB68E) CALL L9CC2 LD B,A POP AF SUB B JP P,L8D23 LD HL,LADB0 ; "You are carrying too much" L8D1E EX (SP),HL POP HL JP PrintMsg L8D23 CALL L922B JR NZ,L8D2D BIT 1,(IX+#07) RET Z L8D2D POP HL JP L9F4B Action_Pickup: ;L8D31 CALL L9C4D LD HL,LADB5 ; "You are already carrying [ the object ]" JP C,PrintMsg L8D3A CALL L8CEF CALL L9D19 LD A,(LB68E) LD (IX+#01),A LD A,(IX+#01) CP #12 RET NZ LD A,(LB68E) LD (LC30A),A RET L8D53 DB #04,#0019 DB #07,#0032 DB #0B,#0019 DB #16,#0019 DB #0D,#004B DB #41,#0032 DB #1B,#0019 DB #1C,#0019 DB #1F,#0032 DB #22,#0064 DB #26,#0019 DB #2A,#0019 DB #2B,#0032 DB #29,#00C8 DB #FF L8D7E DW #0000 L8D80 DB #00 L8D81 DB #CD Action_Dir: ; L8D82 CALL L95C8 JR NC,L8D90 LD A,#09 CALL L9C74 INC A LD (CurrentAction),A L8D90 LD IY,(ptrCurObject) LD A,(IY+#01) CP #FF JR Z,L8DA8 CALL LocateObject BIT 6,(IX+#07) JR Z,L8DBE LD (IY+#01),#FF L8DA8 LD A,(LB68E) CALL L9CBD ADD A,(IY+#02) LD (L8D81),A LD A,(CurrentAction) CALL L9EDD CP #FF JR NZ,L8DDF L8DBE CALL L95C8 JP NC,L9F4B CALL L9D19 LD IX,Objects AND A LD HL,LAD21 ; "but fall and hit your head" RR (IX+#05) JP NZ,PrintMsg LD HL,LAD2E ; "but fall and smash your skull" CALL PrintMsg JP L90B7 L8DDF LD A,(IX+#02) AND A JR Z,L8DBE LD (L8D80),A LD A,(IX+#01) CALL L8E6A DEC A JR Z,L8DBE DEC A JR Z,L8E52 DEC A JR Z,L8E57 L8DF7 CALL L9D19 LD (IY+#10),B LD A,(LB68E) CALL L9BB8 LD A,(LB68E) CP #00 RET NZ LD IX,LC731 LD A,(L8D80) CALL IndexIdTable JR Z,L8E1E LD L,(IX+#01) LD H,(IX+#02) CALL CallFuncHL L8E1E CALL L95C8 RET C LD A,(LB68E) AND A LD A,(L8D80) JR NZ,L8E4F LD HL,(L8D7E) BIT 6,(HL) JP NZ,L9683 SET 6,(HL) PUSH AF LD IX,L8D53 CALL IndexIdTable JR Z,L8E4E PUSH DE LD E,(IX+#01) LD D,(IX+#02) LD HL,(LB69B) ADD HL,DE LD (LB69B),HL POP DE L8E4E POP AF L8E4F JP L960B L8E52 LD HL,LADC7 JR L8E5E L8E57 LD IX,(L8D7E) LD HL,LADD2 ; "[location] is too full for you to enter" L8E5E PUSH HL LD L,(IX+#02) LD H,(IX+#03) EX (SP),HL CALL PrintMsg RET L8E6A AND A JR Z,L8E8C CALL LocateObject LD A,(IX+#07) AND #28 JR Z,L8EB3 LD A,(LB68E) AND A JR NZ,L8E83 BIT 7,(IX+#04) JR NZ,L8EB3 L8E83 LD A,(L8D81) LD B,(IX+#02) SUB B JR NC,L8EAF L8E8C LD A,(L8D80) LD B,A CALL LocateLocation LD (L8D7E),IX LD A,#FF CP (IX+#01) JR Z,L8EA9 LD A,B CALL L9C16 LD C,A LD A,(L8D81) SUB C JR NC,L8EAB L8EA9 XOR A RET L8EAB LD A,#03 AND A RET L8EAF LD A,#02 AND A RET L8EB3 LD A,#01 AND A RET L8EB7 PUSH IX CALL LocateObject L8EBC LD A,(IX+#01) CP #FF JR Z,L8ECE CALL LocateObject BIT 5,(IX+#07) JR NZ,L8EBC OR #01 L8ECE POP IX RET L8ED1 LD A,(LB68C) CALL LocateObject CALL LA571 JP Z,LA141 LD A,(LB68E) CALL L8EB7 RET NZ CALL L9EFA CP #FF JP Z,L9F4B LD A,(IX+#02) CP #00 JP Z,L9F4B CALL L9D19 PUSH IX CALL LocateLocation BIT 7,(IX+#00) POP IX JR Z,L8F1A LD IY,(ptrCurObject) LD A,(IY+#10) PUSH AF LD A,(IX+#02) LD (IY+#10),A CALL L9606 POP AF LD (IY+#10),A RET L8F1A LD HL,LADC3 ; "it is dark" JP PrintMsg L8F20 CALL L9EFA L8F23 CP #FF JP Z,L9F4B LD A,(IX+#02) CP #00 JP Z,L9F4B LD A,(IX+#01) PUSH IX CALL L8E6A POP IX JP NZ,L9F4B CALL L9D19 LD A,(IX+#00) LD (CurrentAction),A LD A,#FF LD (LB68C),A JP L8D90 L8f4e LD IX,(LB6AC) LD A,(LB68D) CP #17 JR Z,L8F77 CP #18 JR Z,L8F7F L8F5D LD IY,(LB6AE) BIT 1,(IY+#07) JP Z,L9F4B BIT 2,(IX+#07) LD A,#82 JP NZ,LA141 LD HL,#9234 JP L9F1F L8F77 LD A,#15 LD IY,LC3F7 JR L8F85 L8F7F LD A,#16 LD IY,LC40C L8F85 LD (LB68D),A LD (LB6AE),IY LD (IY+#01),#FF JR L8F5D Action_Run: ; L8F92 LD A,#0A CALL L9C74 CP #00 JR Z,Action_Run L8F9B LD B,A CALL L9EDD CP B JR Z,L8FAC LD A,B INC A CP #0A JR C,L8F9B LD A,#01 JR L8F9B L8FAC LD (CurrentAction),A JP Action_Dir Action_Enter: ; L8FB2 LD A,(LB68C) CALL L9F02 JP L8F23 Action_Follow: ; L8FBB LD IX,(ptrCurObject) LD B,(IX+#10) LD IX,(LB6AC) LD A,(IX+#10) CP B JR Z,L8FD4 CALL L9F02 CP #FF JP NZ,L8F23 L8FD4 LD HL,LAF8D ; "I cannot follow [NPC] from here" JP PrintMsg Action_ThrowAt: ; L8FDA CALL L8CEF LD HL,Action_Attack LD A,#0F LD IX,(LB6AE) BIT 6,(IX+#07) JR NZ,L8FF1 LD HL,L92D2 LD A,#0B L8FF1 LD (CurrentAction),A CALL L9F1F LD A,#2A LD (CurrentAction),A LD A,(LB69E) CP #01 RET NZ LD IX,(LB6AC) LD (IX+#01),#FF LD A,#0F LD (CurrentAction),A LD A,(LB68C) JP L95BA L9015 LD (IX+#01),#FF Action_Talkto: ; L9019 CALL L9D19 LD A,(LB68C) CALL L9A60 CP #FF LD A,#00 JR Z,L903D LD A,(LB69D) CP #00 JR NZ,L903D LD A,(IY+#06) CP #00 JR Z,L903D CALL L9C74 CP #00 JR Z,L9041 L903D CALL L88B4 RET L9041 LD HL,LB187 ; " [NPC] says ' No ' " CALL PrintMsg SUB A JR L903D L904a CALL L9D19 LD IX,(LB6AC) BIT 5,(IX+#07) JP Z,L90FC JP L912A Action_Shoot: ; L905B LD A,#19 CALL L9C50 LD HL,LB0C5 ; "You are not carring the bow" JP NC,PrintMsg CALL L912F CALL L9D19 LD A,#0F LD (CurrentAction),A LD A,(LB68E) CP #46 JR Z,L908D LD A,(LB68C) CP #3C LD HL,LB0CB ; "the arrow misses [target] by a wide margin" JP Z,PrintMsg LD A,#08 CALL L9C74 CP #03 JP C,PrintMsg L908D LD IX,LC48D LD A,(LB68C) CP #1A JR Z,L909C LD (IX+#01),#FF L909C LD HL,LB0DA ; "the arrow hits [target] " CALL PrintMsg LD IX,(LB6AC) CALL LA19D JP NZ,L92D2 LD A,(LB68C) CALL L975A LD A,#06 JP LA141 L90B7 SUB A LD (LB68E),A LD HL,LAF95 ; "You are dead" CALL PrintMsg CALL L81B6 L90C4 XOR A IN A,(#FE) AND #1F CP #1F JR Z,L90C4 JP ReStart Action_Inventory: ; L90D0 CALL L9D19 LD HL,LAD9A ; "You are carrying" CALL PrintMsg LD A,(LB68E) CALL L9D6C AND A LD HL,LB2DF ; "nothing" JP Z,PrintMsg LD A,(LB68E) LD IX,(ptrCurObject) LD B,(IX+#10) JP L9F84 L90F3 CALL LA1CE JP NZ,LA141 CALL L9D19 L90FC SET 5,(IX+#07) LD A,(IX+#00) DEC A RET NZ LD A,(LB68C) CALL L9D6C AND A RET Z LD A,(LB68C) CALL LA025 RET C LD B,(IX+#10) LD A,(LB68C) JP L9F84 L911D LD IX,(LB6AC) CALL LA571 JP Z,LA141 CALL L9D19 L912A RES 5,(IX+#07) RET L912F LD IX,(LB6AC) LD A,(LB68E) AND A JR NZ,L9143 BIT 4,(IX+#04) JR Z,L9143 RES 4,(IX+#04) L9143 LD A,(IX+#04) AND #70 LD IX,(ptrCurObject) AND (IX+#04) RET Z POP HL XOR A LD (LB69F),A RET Action_Attack: ; L9156 CALL L912F LD A,(LB68D) LD HL,#026B CP #FF JR Z,L916D LD IX,(LB6AE) LD L,(IX+#08) LD H,(IX+#09) L916D LD (LB6A0),HL LD IX,(ptrCurObject) LD B,(IX+#05) LD A,(LB68D) INC A JR Z,L9194 LD IY,(LB6AE) LD A,(IY+#00) DEC A LD HL,LAF03 ; "you cannot kill with [object]" JP NZ,PrintMsg LD A,(IY+#05) ADD A,B JR NC,L9193 LD A,#FF L9193 LD B,A L9194 LD A,B CALL L91F8 LD B,A CALL L9D19 LD IX,(LB6AC) LD A,(IX+#06) CALL L91F8 CP B LD HL,LAEF4 ; "but the effort i wasted" JP NC,PrintMsg LD C,A ADD A,#10 JR NC,L91B4 LD A,#FF L91B4 CP B JR C,L91E3 LD A,B SUB C RLCA LD E,A LD D,#00 LD IY,L920B ADD IY,DE LD L,(IY+#00) LD H,(IY+#01) RRCA RRCA LD B,A CPL ADD A,(IX+#05) JR NC,L91D5 LD (IX+#05),A L91D5 LD A,B RRCA CPL ADD A,(IX+#06) JR NC,L91E0 LD (IX+#06),A L91E0 JP PrintMsg L91E3 LD HL,LADDE ; "with one well placed blow you cleave [the npc] skull" CALL PrintMsg SET 3,(IX+#07) LD A,(LB68C) CALL L975A LD A,#06 JP LA141 L91F8 PUSH BC LD B,A LD A,#0A CALL L9C7D LD C,A ADD A,B JR NC,L9209 XOR A BIT 7,C JR NZ,L9209 DEC A L9209 POP BC RET L920B DW LAEE0,LAECF,LAEC4,LAEB9 DW LAEAD,LAE98,LAE86,LAE75 DW LAE5E,LAE50,LAE3C,LAE2F DW LAE1E,LAE14,LADFE,LADED L922B LD IX,(LB6AC) LD A,(IX+#00) DEC A RET L9234 CALL L8D23 LD A,(LB68D) CP (IX+#01) JP Z,L72CE LD IY,(LB6AE) LD A,(CurrentAction) CP #12 JR Z,L9251 BIT 5,(IY+#07) JR Z,L927C L9251 LD A,(IY+#02) SUB (IX+#02) JR C,L9263 PUSH AF LD A,(LB68D) CALL L9CBD LD B,A POP AF SUB B L9263 LD HL,LADBE ; "[the object] is too full" JP C,PrintMsg JP Z,PrintMsg CALL L9D19 LD A,(IY+#10) LD (IX+#10),A LD A,(LB68D) LD (IX+#01),A RET L927C LD A,#05 JP LA139 L9281 CALL L9D19 LD IX,(LB6AC) LD A,(IX+#01) CP #FF JR Z,L929A CALL LocateObject RES 2,(IX+#07) LD A,#01 JR L929F L929A CALL L9D19 LD A,#0A L929F LD IX,(ptrCurObject) ADD A,(IX+#05) CP #80 JR NC,L92C1 LD (IX+#05),A LD IX,(LB6AC) LD (IX+#01),#FF LD B,(IX+#00) L92B8 LD (IX+#10),#00 INC IX DJNZ L92B8 RET L92C1 LD HL,LB0EA ; "foul gluttony has killed you" CALL PrintMsg LD A,(LB68E) JP L975A L92cd LD A,#83 JP LA139 L92D2 LD IX,(LB6AC) BIT 1,(IX+#07) JP NZ,L9F4B BIT 3,(IX+#07) JP NZ,L937E SUB A CP (IX+#06) JP Z,L9F4B LD B,A LD A,(LB68D) INC A JR Z,L9311 LD IY,(LB6AE) LD A,(IY+#05) AND A JP Z,L9F4B PUSH IX LD IX,(LB6AE) LD A,#0B CALL L9B5C POP IX INC A JP Z,L9F4B LD B,(IY+#05) L9311 CALL L9D19 LD A,#15 CALL L9C7D ADD A,B LD IY,(ptrCurObject) ADD A,(IY+#05) JR NC,L9325 LD A,#FF L9325 SUB (IX+#06) JR C,L9345 SET 3,(IX+#07) LD A,(LB68C) CALL LA161 SRA (IX+#05) LD A,(IX+#04) CP #02 CALL C,L9D25 LD A,#83 CALL LA141 L9345 LD A,(LB68D) CP #FF RET Z LD IY,(LB6AE) BIT 3,(IY+#07) RET NZ LD B,(IY+#06) LD A,#15 CALL L9C7D ADD A,B JR NC,L9361 LD A,#FF L9361 SUB (IX+#06) RET C SET 3,(IY+#07) LD A,(LB68D) CALL LA161 LD A,(IY+#05) SRA A LD (IY+#05),A CALL L9D25 PUSH IY POP IX L937E LD A,#83 JP LA141 Action_Give: ; L9383 LD IY,(LB6AE) CALL L9C4D LD HL,LAD95 ; "you are not carrying it" JP NC,PrintMsg LD A,(LB68D) CALL L9CC2 LD IX,(LB6AC) ADD A,(IX+#03) PUSH AF POP BC LD A,(IY+#03) SUB B LD HL,LADB0 ; "you are carrying too much" JP C,PrintMsg CALL L9D19 LD A,(LB68D) LD (IX+#01),A LD A,(IY+#10) LD (IX+#10),A LD B,A LD A,(LB68C) JP L9BB8 Action_Examine: ; L93BF CALL L9D19 LD A,(LB68C) CALL LocateObject LD L,(IX+#0E) LD H,(IX+#0F) LD A,H OR L JP NZ,PrintMsg LD HL,LAFA4 CALL PrintMsg PUSH IX POP IY CALL L9E9C LD A,#2E CALL L7589 CALL L7581 RET L93e9 LD IX,(LB6AC) CALL LA571 JP Z,LA141 LD A,(LB68C) CALL L9D6C CP #00 JR Z,L9408 CALL L9D19 CALL L9D25 RES 2,(IX+#07) RET L9408 LD A,#02 JP LA141 L940d CALL L8D23 CALL L9D19 LD A,(LB69A) LD IX,(LB6AE) LD B,(IX+#00) L941D CP (IX+#10) JR Z,L9429 INC IX DJNZ L941D JP L72CE L9429 LD A,(IX+#11) DEC B JR NZ,L9430 XOR A L9430 LD IX,(LB6AC) LD (IX+#10),A LD (IX+#01),#FF LD B,A LD A,(LB68C) CALL L9BB8 LD HL,LADA0 ; "and gets swept away" JP PrintMsg L9448 CALL LA1CE JP NZ,LA141 LD A,#C6 L9450 LD (L9466),A LD IY,(LB6AE) BIT 3,(IY+#07) LD A,#83 JP NZ,LA139 CALL L9D19 SET 0,(IX+#07) L9466 DW #C9C6 L9468 LD IX,(LB6AC) BIT 0,(IX+#07) LD A,#00 JP Z,LA141 CALL LA1D9 JP NZ,LA141 LD A,#86 JR L9450 L947f CALL L8C99 LD A,(LB68D) CALL L9EFD CP #FF JP Z,L9F4B LD IY,(LB6AE) BIT 5,(IY+#07) LD A,#05 JP Z,LA139 CALL L9D19 LD B,(IX+#02) LD IX,(LB6AC) LD (IX+#01),#FF LD (IX+#10),B LD A,(LB68C) JP L9BB8 L94B1 PUSH IX PUSH HL CALL L9B1F LD A,#00 JR Z,L94E3 LD A,(CurrentAction) LD IX,LC6D3 CALL IndexIdTable CP #FF LD A,#01 JR NZ,L94E3 CALL LA1A5 LD A,#01 JR Z,L94E3 LD A,(LB68C) CALL LocateObject LD A,(CurrentAction) CALL L9B5C LD A,#01 JR C,L94E3 SUB A L94E3 LD (LB69F),A POP HL POP IX RET L94EA PUSH HL PUSH IX PUSH BC CALL L9B1F JP Z,L95B5 CALL L95C8 JR NC,L9514 LD A,(LB6B5) AND A JR NZ,L950C CALL L9C4D JR NC,L950C LD A,(LB68D) CALL L9C50 JR C,L9514 L950C LD HL,LAF68 ; "is see nothing here" CALL PrintMsg JR L9576 L9514 LD A,(LB6A2) CP #01 JP Z,L95A7 LD A,(LB68C) CP #FF JP Z,L95A7 CALL LocateObject LD (LB6AC),IX LD A,(LB68C) CALL L9703 JR NZ,L9576 LD A,(LB68D) CP #FF JR Z,L9555 LD A,(LB6A3) CP #01 JR Z,L95A7 LD A,(LB68D) CALL LocateObject LD (LB6AE),IX CALL L9703 JR NZ,L9576 CALL LA1A5 JR Z,L9559 L9555 LD IX,(LB6AC) L9559 LD A,(CurrentAction) CALL L9B5C JR NC,L95A7 L9561 LD L,(IX+#01) LD H,(IX+#02) CALL CallFuncHL INC IX INC IX INC IX SUB A CP (IX+#00) JR Z,L9561 L9576 LD A,(LB69E) CP #01 JR NZ,L95A2 LD A,(LB68E) CP #00 JR NZ,L958A CALL L95C8 CALL C,PrintMsg L958A LD A,(CurrentAction) LD B,A LD A,(LB68C) LD IX,(LB6AC) CALL L95BA LD A,(LB68D) LD IX,(LB6AE) CALL L95BA L95A2 POP BC POP IX POP HL RET L95A7 LD A,(CurrentAction) LD IX,LC6D3 CALL IndexIdTable CP #FF JR NZ,L9561 L95B5 CALL L72CE JR L95A2 L95BA BIT 6,(IX+#07) RET Z BIT 3,(IX+#07) RET NZ CALL L9A7B RET L95C8 LD A,(LB68E) AND A RET NZ PUSH IX PUSH BC LD IX,Objects CALL L9E4F INC A JR NZ,L95E3 CALL GetObjectLocationInIX BIT 7,(IX+#00) JR NZ,L95FF L95E3 PUSH IY LD A,#0E LD IY,LC2A8 CALL L9E09 POP IY JR Z,L95FB LD A,(LC2AF) XOR #F7 AND #1C JR Z,L9603 L95FB LD HL,LADC3 SCF L95FF POP BC POP IX RET L9603 AND A JR L95FF L9606 LD HL,LAFA4 JR L9628 L960B PUSH AF CALL LocateLocation LD A,(IX+#00) AND #0E LD E,A LD D,#00 LD HL,LBA24 ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,#AFA1 LD (HL),D INC HL LD (HL),E POP AF LD HL,LAFA0 L9628 PUSH IX PUSH IY PUSH BC CALL L9636 POP BC POP IY POP IX RET L9636 LD B,A CALL LocateLocation CALL PrintMsg LD L,(IX+#08) LD H,(IX+#09) LD A,H OR L CALL L9661 LD A,B CALL DrawLocGfx LD A,(L8971) INC A CALL NZ,WaitForKey CALL L7581 LD A,B CALL LA09D L965A LD A,B CALL DisplayExits JP L9F69 L9661 JP NZ,PrintMsg L9664 LD DE,#0002 PUSH IY PUSH IX POP IY ADD IY,DE CALL L9EAB POP IY RET WaitForKey: ; L9675 XOR A IN A,(#FE) AND #1F CP #1F JR Z,WaitForKey LD A,#07 OUT (#FE),A RET L9683 CALL LocateLocation CALL L9664 CALL L7581 JR L965A L968E PUSH HL PUSH IX PUSH IY PUSH BC PUSH DE CALL LA97A CALL L97E9 SUB A LD (LB694),A INC A LD (LB69F),A LD (LB69E),A LD IY,LCA27 L96AA LD A,(IY+#00) CP #FF JR Z,L96F6 LD A,(IY+#01) CP #00 JR Z,L96EE DEC A LD (IY+#01),A CP #00 JR NZ,L96D9 LD A,(LB694) CP #01 LD (IY+#01),A JR Z,L96D9 INC A LD (LB694),A LD L,(IY+#02) LD H,(IY+#03) CALL CallFuncHL JR L96EE L96D9 LD A,(IY+#04) CP #00 JR Z,L96EE CP (IY+#01) JR C,L96EE LD L,(IY+#05) LD H,(IY+#06) CALL CallFuncHL L96EE LD DE,#0007 ADD IY,DE JP L96AA L96F6 LD A,#01 LD (LB6A6),A POP DE POP BC POP IY POP IX POP HL RET L9703 CP #FF RET Z PUSH IX PUSH IY PUSH BC LD B,A LD A,(LB68E) CP #00 JR Z,L9716 XOR A JR L9751 L9716 LD A,B CALL LocateObject LD A,(IX+#01) CP #FF JR Z,L9751 LD A,B PUSH IX POP IY CALL L9C50 JR C,L9751 CALL LocateObject BIT 6,(IX+#07) JR Z,L9751 LD A,(LC0C6) BIT 7,A JR Z,L9751 LD L,(IY+#08) LD H,(IY+#09) PUSH HL LD L,(IX+#08) LD H,(IX+#09) PUSH HL LD HL,LAF88 ; "[npc] is carrying" CALL PrintMsg OR #01 L9751 POP BC POP IY POP IX RET L9757 LD A,(LB68C) L975A AND A JP Z,L90B7 PUSH BC PUSH IY PUSH IX LD C,A CALL LocateObject SET 3,(IX+#07) CALL L9D28 LD A,C CALL L9A60 CP #FF LD A,C JR Z,L977B LD (IY+#00),#00 L977B CALL LA161 LD A,C CALL L895A POP IX POP IY POP BC RET L9788 SUB A LD (LB68E),A LD (LB695),A LD (LB69D),A LD HL,Objects LD (ptrCurObject),HL LD A,#04 CALL L9C74 INC A LD B,A LD IY,LC7AB LD DE,#0006 L97A6 ADD IY,DE DJNZ L97A6 LD (LA775),IY LD L,(IY+#01) LD H,(IY+#02) LD B,#03 L97B6 LD (HL),#00 INC HL DJNZ L97B6 LD A,#03 CALL L9C74 LD E,A LD D,#00 SLA E SLA E LD HL,LC79F ADD HL,DE LD (LB692),HL RET L97CF CALL PrintMsg LD A,#2E CALL L7589 JP L7581 L97DA PUSH BC LD BC,(LB69E) LD A,C AND B JR NZ,L97E4 POP BC L97E4 POP BC RET L97E6 DB #00 L97E7 DB #00 L97E8 DB #00 L97E9 CALL Action_None LD IY,#CA6E L97F0 XOR A LD (L97E6),A LD A,(IY+#00) CP #FF JP Z,L98E4 CP #00 JP Z,L98DC LD (LB68E),A CALL L9F57 LD (ptrCurObject),IX LD (LB69A),A SUB A LD (LB6A6),A LD A,(IY+#00) PUSH IY LD IY,Objects CALL L9DFA POP IY JR Z,L9843 LD A,(L97E7) CP #02 JR Z,L9843 LD A,#01 LD (LB6A6),A LD A,(L97E7) CP #01 JR NZ,L9843 INC A LD (L97E7),A LD HL,LAFCB ; "you hear a noise" CALL PrintMsg SUB A LD (LB6A6),A L9843 LD A,#FF CP (IX+#01) JP NZ,L9AF1 L984B LD IX,(ptrCurObject) CALL L890A LD A,#00 JR NZ,L9857 INC A L9857 LD (LB698),A L985A LD L,(IY+#02) LD H,(IY+#03) L9860 LD A,(L97E6) CP #06 JR Z,L98DC LD A,(HL) LD DE,#0004 PUSH HL POP IX AND #0F CP #05 JR NC,L98A6 LD A,(LB698) CP #01 JR NZ,L989A BIT 6,(HL) JR NZ,L989A SUB A LD (LB698),A INC A CALL L8914 JR Z,L989A LD A,#01 LD (LB69E),A LD (LB69F),A LD HL,L98DC PUSH HL PUSH IX JP L99A9 L989A LD A,(HL) AND #0F CP #04 JP Z,L994F JR C,L9903 JR L98DC L98A6 CP #0E JR NZ,L98B8 LD E,(IX+#01) LD (IY+#02),E LD E,(IX+#02) LD (IY+#03),E JR L985A L98B8 CP #0C JR NZ,L98C7 LD B,(IX+#01) LD A,(IY+#00) CALL L9A7B JR L985A L98C7 CP #0F JR NZ,L98D0 CALL L9A34 JR L985A L98D0 CP #00 JR NZ,L98D7 ADD HL,DE JR L9860 L98D7 SUB A LD E,A CALL L9A43 L98DC LD DE,#0007 ADD IY,DE JP L97F0 L98E4 SUB A LD (LB68E),A INC A LD (LB6A6),A LD HL,Objects LD (ptrCurObject),HL RET L98F3 ADD HL,DE BIT 4,(IX+#00) JR Z,L98FC INC HL INC HL L98FC LD (IY+#02),L LD (IY+#03),H RET L9903 CALL L98F3 BIT 0,(IX+#00) JR NZ,L9925 LD A,(IX+#01) LD (CurrentAction),A LD A,(IX+#02) LD (LB68C),A LD A,(IX+#03) LD (LB68D),A CALL L99A1 JR Z,L9985 JR L9942 L9925 LD L,(IX+#01) LD H,(IX+#02) SUB A LD (LB69E),A LD (LB69F),A CALL CallFuncHL LD A,(LB69F) CP #01 JR NZ,L9985 LD (LB69E),A CALL CallFuncHL L9942 BIT 5,(IX+#00) JP Z,L98DC LD (IX+#00),#00 JR L98DC L994F LD DE,#0002 CALL L98F3 LD A,(IX+#01) CP #FF JR Z,L996F LD (CurrentAction),A LD A,#FF LD (LB68C),A LD (LB68D),A CALL L99A1 JR Z,L9985 JP L98DC L996F BIT 4,(IX+#00) JP Z,L98DC LD L,(IX+#02) LD H,(IX+#03) LD (IY+#02),L LD (IY+#03),H JP L98DC L9985 LD HL,L97E6 INC (HL) BIT 4,(IX+#00) JP Z,L985A ADD IX,DE LD H,(IX+#01) LD L,(IX+#00) LD (IY+#02),L LD (IY+#03),H JP L9860 L99A1 PUSH IX CALL L84EF JP Z,L9A31 L99A9 LD A,(LB6A2) CP #01 JR Z,L9A0D LD A,(CurrentAction) CP #1E JR NZ,L99C0 LD A,(LB69A) LD HL,CurLocation CP (HL) JR NZ,L9A0D L99C0 LD A,(LB68C) CP #FF JR Z,L9A06 CALL L9F57 LD (L97E8),A CP #FF JR NZ,L9A06 LD BC,(LB699) LD A,C CP B JR Z,L9A06 LD B,(IX+#00) L99DC CP (IX+#10) JR Z,L99E7 INC IX DJNZ L99DC JR L9A06 L99E7 LD A,(LB68E) LD B,A LD A,#FF LD (LB68E),A LD A,#01 LD (LB6A6),A PUSH IY CALL L712B POP IY SUB A LD (LB6A6),A LD A,B LD (LB68E),A JR L9A0D L9A06 PUSH IY CALL L712B POP IY L9A0D CALL L94EA LD A,(LB68E) LD HL,LB69A LD DE,LAFBB CALL L9AA8 LD A,(LB6A2) CP #01 JR Z,L9A2F LD A,(LB68C) LD HL,L97E8 LD DE,LAFC0 CALL L9AA8 L9A2F OR #01 L9A31 POP IX RET L9A34 LD A,(IX+#01) CP (IY+#01) JR C,L9A3F LD A,(IY+#01) L9A3F CALL L9C74 LD E,A L9A43 LD A,(IY+#01) CP E JR NC,L9A4A LD E,A L9A4A LD L,(IY+#04) LD H,(IY+#05) LD D,#00 ADD HL,DE ADD HL,DE ADD HL,DE INC HL LD E,(HL) INC HL LD D,(HL) LD (IY+#02),E LD (IY+#03),D RET L9A60 PUSH DE PUSH BC LD B,A LD HL,#CA6E LD DE,#0007 L9A69 LD A,(HL) CP B JR Z,L9A75 CP #FF JR Z,L9A75 ADD HL,DE JP L9A69 L9A75 POP BC POP DE PUSH HL POP IY RET L9A7B PUSH IY PUSH IX CALL L9A60 CP #FF JR Z,L9AA3 LD L,(IY+#04) LD H,(IY+#05) PUSH HL POP IX LD A,B CALL IndexIdTable CP #FF JR Z,L9AA3 LD L,(IX+#01) LD H,(IX+#02) LD (IY+#02),L LD (IY+#03),H L9AA3 POP IX POP IY RET L9AA8 CP #FF RET Z AND A RET Z LD B,A LD A,(L97E7) CP #02 RET Z LD A,B CALL L9F57 LD C,A CP (HL) RET Z LD A,(LB699) CP C RET NZ LD A,(L9BB7) AND A RET Z LD A,#01 LD (LB6A6),A PUSH DE POP HL LD A,B CALL LocateObject PUSH DE LD DE,#0008 ADD IX,DE POP DE PUSH IX CALL PrintMsg RET Action_None: ; L9ADD LD A,#00 CALL L9F57 LD (LB699),A CALL L95C8 LD A,#00 JR NC,L9AED INC A L9AED LD (L97E7),A RET L9AF1 LD A,#FF LD (LB68D),A LD A,(IX+#01) LD (LB68C),A CALL LocateObject BIT 3,(IX+#07) JP NZ,L984B BIT 6,(IX+#07) JP NZ,L984B BIT 5,(IX+#07) JP Z,L98DC LD A,#37 LD (CurrentAction),A CALL L99A1 JP L98DC L9B1F LD A,(LB68C) INC A JR NZ,L9B27 INC A RET L9B27 LD A,(LB6A2) AND A JR NZ,L9B3A LD HL,LB68C LD A,(LB68E) CP (HL) RET Z LD A,(LB68D) CP (HL) RET Z L9B3A LD A,(LB6A3) AND A RET NZ LD A,(LB68D) LD HL,LB68E CP (HL) RET CallFuncHL: ; L9B47 PUSH IX PUSH IY PUSH DE PUSH BC PUSH HL LD A,L OR H CALL NZ,L9B5B POP HL POP BC POP DE POP IY POP IX RET L9B5B JP (HL) L9B5C PUSH DE LD D,A LD A,(IX+#00) ADD A,#10 LD E,A LD A,D LD D,#00 ADD IX,DE CALL IndexIdTable POP DE RET Step3ByteTable: ;L9B6E EXX LD DE,#0003 ADD IX,DE LD D,(IX+#02) LD E,(IX+#01) PUSH DE POP IY LD A,(IX+#00) CP #FF EXX RET L9B84 PUSH BC LD B,A CALL Step3ByteTable LD A,B POP BC RET LocateLocation: ;L9B8C CP #50 JR C,L9B92 XOR A RET L9B92 PUSH DE LD DE,LocationTable PUSH HL LD L,A LD H,#00 ADD HL,HL ADD HL,DE LD E,(HL) INC HL LD D,(HL) PUSH DE POP IX POP HL POP DE RET LocateObject: ;L9BA5 LD IX,ObjectTable CALL IndexIdTable PUSH HL LD L,(IX+#01) LD H,(IX+#02) EX (SP),HL POP IX RET L9BB7 DB #20 L9BB8 LD HL,L9BB7 LD (HL),#01 CALL L9BEC LD A,(HL) AND A RET NZ PUSH HL LD A,(LB68E) PUSH AF LD HL,(ptrCurObject) PUSH HL LD HL,Objects LD (ptrCurObject),HL XOR A LD (LB68E),A LD A,B LD (L8D80),A CALL L8DF7 CALL Action_None POP HL LD (ptrCurObject),HL POP AF LD (LB68E),A POP HL XOR A LD (HL),A RET L9BEC PUSH IY PUSH IX LD IX,#C004 L9BF4 CALL L9B84