diff --git a/code/textadv/bin/mc.elf b/code/textadv/bin/mc.elf index 1188b22..c71351a 100755 Binary files a/code/textadv/bin/mc.elf and b/code/textadv/bin/mc.elf differ diff --git a/code/textadv/bin/mc.hex b/code/textadv/bin/mc.hex index 24b37af..790f610 100644 --- a/code/textadv/bin/mc.hex +++ b/code/textadv/bin/mc.hex @@ -3,7 +3,7 @@ :100020000C9462040C9462040C9462040C946204B8 :100030000C9462040C9462040C9462040C946204A8 :100040000C9462040C9462040C9462040C94620498 -:100050000C9462040C9471060C9462040C94620477 +:100050000C9462040C9494060C9462040C94620454 :100060000C9462040C9462040C9462040C94620478 :100070000C9462040C9462040C9462040C94620468 :100080000C9462040C9462040C9462040C94620458 @@ -12,7 +12,7 @@ :1000B0000C9462040C9462040C9462040C94620428 :1000C0000C9462040C9462040C9462040C94620418 :1000D0000C9462040C9462040C9462040C94620408 -:1000E0000C9462040C948B0402FDFFC80002FCFF18 +:1000E0000C9462040C94DA0402FDFFC80002FCFFC9 :1000F000C80002FBFFC80002FDFFC80002FCFFC8E9 :100100000002FBFFC80002FDFFC80002FCFFC800A0 :1001100002FBFFC80002FDFFC80002FCFFC800028E @@ -133,154 +133,243 @@ :1008400020222527292B2E303335383B3D40434588 :10085000484B4E5154575A5D606366696C6F7276AF :10086000797C7F0011241FBECFEFD1E2DEBFCDBF68 -:1008700000E00CBF84B78093390514BE0FB6F8941E +:1008700000E00CBF84B78093370514BE0FB6F89420 :10088000A89580916000886180936000109260005C -:100890000FBE14E0A0E0B2E0E8E0FFE000E00BBF34 -:1008A00002C007900D92AA3BB107D9F725E0AAEB49 -:1008B000B4E001C01D92A933B207E1F70E943107ED -:1008C0000C9482070C940000CF93C62F0E949906C7 +:100890000FBE14E0A0E0B2E0E8E9F4E100E00BBF35 +:1008A00002C007900D92A83BB107D9F725E0A8EB4D +:1008B000B4E001C01D92A733B207E1F70E945407CC +:1008C0000C944A0A0C940000CF93C62F0E94BC06D9 :1008D0008FEF80BBC1BBEBE0F1E08081857F80833F :1008E00085E08A95F1F7000080818A608083CF914E -:1008F00008950E94990610BA11BAEBE0F1E08081E8 +:1008F00008950E94BC0610BA11BAEBE0F1E08081C5 :10090000837F808385E08A95F1F700008FB1908125 -:100910009C6090830895CF92DF92EF92FF92CF93E5 -:10092000C82F80E4C82E82E4D82E8FE0E82EF12C68 -:1009300085E00E94790485FD06C081E0C81AD108CF -:10094000E108F108A9F76C2F80E00E94640490E0B0 -:1009500080E0CF91FF90EF90DF90CF90089563E813 -:1009600083E00E94640463E080E00E94640460E02D -:1009700081E00E94640463E083E00E94640480E0FC -:1009800092E090933605809335058EE692E00C94C4 -:100990005607CF9385E00E94790480FF0BC080E06A -:1009A0000E947904C82F0E945C066C2F80E0CF91D2 -:1009B0000C946404CF910895CF93C62F0E9499069A -:1009C0008FEF80BBC1BBEBE0F1E080818D7E808347 -:1009D00085E08A95F1F700008081806180838081C5 -:1009E00082608083CF9108950E94990610BA11BA4F -:1009F000EBE0F1E080818B7E808385E08A95F1F7E2 -:100A000000008FB190819461908308950F931F939C -:100A1000CF93DF9380910F02833009F4B3C0A8F421 -:100A2000813009F444C0CFE7823009F476C0C0E0D9 -:100A300060E08C2F81700E94DC04CF5FCF3FC1F754 -:100A4000DF91CF911F910F910895843009F4C8C0B0 -:100A50001FE7CFEFD0E00FEF853049F76091C0047A -:100A60008FEF860F8E3F28F080910E028195809344 -:100A70000E0280E00E94DC046091C00481E00E94CC -:100A8000DC044091BA045091BB0457FDDFC0809153 -:100A9000BE049091BF040196841795070CF0CAC05C -:100AA0009093BF048093BE041150C1F6C9CFCFE725 -:100AB000E091C004F0E0ED59F84F649181E00E94AC -:100AC000DC04E091C004F0E0ED59F84F649180E05F -:100AD0000E94DC042091BA043091BB0437FD19C098 -:100AE0008091BE049091BF040196821793073CF455 -:100AF0009093BF048093BE04C150D1F6A1CF109251 -:100B0000BF041092BE048091C0048F5F8093C00424 -:100B1000F3CF8091C004821BF9CF8091C00487FF7E -:100B20001DC06FEF80E00E94DC046FEF81E00E9447 -:100B3000DC042091BA043091BB0437FD1FC08091C2 -:100B4000BE049091BF040196821793076CF49093B2 -:100B5000BF048093BE04C15001F772CF60E080E013 -:100B60000E94DC0460E0E2CF1092BF041092BE0449 -:100B70008091C0048F5F8093C004EDCF8091C0044A -:100B8000821BF9CFCFE76091C00480E00E94DC04B3 -:100B90006091C00481E00E94DC042091BA0430918D -:100BA000BB0437FD19C08091BE049091BF0401962B -:100BB000821793073CF49093BF048093BE04C15006 -:100BC00011F73ECF1092BF041092BE048091C00472 -:100BD0008F5F8093C004F3CF8091C004821BF9CF54 -:100BE000CFE7E091BC04F091BD04ED59FC4F649156 -:100BF00081E00E94DC04E091BC04F091BD04ED5959 -:100C0000FC4F649180E00E94DC048091BC049091D0 -:100C1000BD040196811524E0920738F49093BD0439 -:100C20008093BC04C150E9F60BCF1092BD04109222 -:100C3000BC04F8CF1092BF041092BE048091C0048F -:100C400090910E02890F8093C0042ECF20910E0246 -:100C50002403B001259F700D11248091C004FE0172 -:100C6000E81BF109E617F7071CF40093C0041CCF3A -:100C7000249F202D11242093C00416CF80E00E94D1 -:100C8000F40480FF0C9406050895E091C104E43655 -:100C900050F01092C104EFECF4E084E6DF011D9205 -:100CA0008A95E9F70895F0E0E253FB4F80818A309E -:100CB00081F38D3071F30895E091C10491E09E0FAE -:100CC0009093C104F0E0E153FB4F8083089582E8E4 -:100CD00084BD84E085BD80E487BD82E080936E00A2 -:100CE00008951F920F920FB60F9211240BB60F9218 -:100CF0002F933F934F935F936F937F938F939F9324 -:100D0000AF93BF93EF93FF930E94BE06FF91EF91C5 -:100D1000BF91AF919F918F917F916F915F914F9113 -:100D20003F912F910F900BBE0F900FBE0F901F9011 -:100D300018958093080108958FEF80BB8093070179 -:100D400080930A011092080111BAEBE0F1E01082E1 -:100D500080818F6180838FE891E00197F1F700C077 -:100D6000000080818E7F808308950E943E060E944D -:100D7000C9040E94450690E080E008956091C20495 -:100D80007091C3046115710529F41092CE0410927C -:100D9000CD0408958091CD049091CE040196909356 -:100DA000CE048093CD042091C6043091C7044091B5 -:100DB000CB045091CC048417950720F46217730775 -:100DC00021F408956217730761F01092C504109220 -:100DD000C4041092CE041092CD047093C7046093A3 -:100DE000C6042091C4043091C50445E0429FC0016F -:100DF000439F900D1124680F791F45E050E088EC67 -:100E000094E00E944D078091CB049091CC04892BF3 -:100E100071F41092C5041092C4046091C2047091E0 -:100E2000C30445E050E088EC94E00E944D078091B7 -:100E3000C80480930F028091C9049091CA049093D2 -:100E4000BB048093BA041092CE041092CD0480911A -:100E5000C4049091C50401969093C5048093C40482 -:100E60000895F8940E949C060E94AF040E946706B1 -:100E700080E092E09093C3048093C204789488E168 -:100E80009EE00FB6F894A895809360000FBE9093F3 -:100E90006000A8950E94B506FCCFFB01DC0102C0F2 -:100EA00005900D9241505040D8F708950F931F932D -:100EB000CF93DF93E0913505F0913605238110E063 -:100EC00000E021FD0EC00FEF1FEFC801DF91CF91B1 -:100ED0001F910F9108951995892B11F00FEF1FEFB6 -:100EE000CE01EC0189916091350570913605DB01E9 -:100EF0001896ED91FC918111EECF8AE01995892B1E -:080F000021F3E1CFF894FFCFCB -:100F080000000002000000008B0400000000010146 -:100F1800740280028D0291029902A602AF02B60203 -:100F2800C902D702E102EC02F60202030803110328 -:100F38001F03C902D702E102EC02F602020308030A -:100F48001103CE03D403DA03DF03E403EA03EE0359 -:100F5800F40307041B0435043C04420448044D040C -:100F6800520463046B0477048D049C04AB04494E5B -:100F780049540D00464C4F505059204449534B009A -:100F8800534352455720445249564552004B455900 -:100F9800005341555341474500524F5454454E2044 -:100FA800464C455348004B4559424F415244005026 -:100FB8004953544F4C004E4F5448494E474C4F4E9E -:100FC800454C5920524F414400532F4E204449521A -:100FD8005420524F41440046495245504C414345E4 -:100FE800004E2F5720537472656574004F4C44208F -:100FF800484F555345004C4956494E4720524F4F8C -:101008004D00415454494300424153454D454E54C7 -:1010180000434F4D505554455220524F4F4D0059A3 -:101028006F7520737461726520696E746F2061201A -:10103800766F6964206F66206E6F7468696E676E7C -:101048006573732E20596F7520736565206E6F6FF9 -:101058006E652C20796F752068656172206E6F6FE0 -:101068006E652C796F75206665656C20736F6D658C -:101078006F6E652E0D0A20596F75206C6F6F6B208F -:1010880061726F756E642C20616E642073656520D3 -:101098006E6F7468696E672C2079657420796F7536 -:1010A80020617265206E6F206C65737320736361B5 -:1010B8007265642E20596F75206861626520776FAC -:1010C8006E2E4C4F4E454C5920524F4144006E6F86 -:1010D80072746800736F757468007765737400655F -:1010E8006173740073686F6F74007573650045529F -:1010F800524F5200596F752063616E277420646FD8 -:1011080020746861742100596F752063616E2774BB -:1011180020757365207468617421005768617420B4 -:1011280061726520796F7520676F696E6720746FCB -:1011380020646F3F00676F696E6720004E4F5254FE -:101148004800534F555448004541535400574553A0 -:101158005400594F55204D415920414354204E4F7A -:101168005721006974206469656400697420737587 -:101178007276697665640061206265617220626CCE -:101188006F636B73207468652077617900697420D8 -:1011980072616E20617761792E2E2E006974207736 -:1011A8006F6E277420737461727400796F75206391 -:0A11B800616E2774207479706500E1 +:100910009C609083089563E883E00E94640463E030 +:1009200080E00E94640460E081E00E94640463E06F +:1009300083E00E94640480E092E090933405809309 +:1009400033058EE692E00C947F07CF93DF93CDB70B +:10095000DEB7FE01369681919191BF010E94AB07EF +:100960008AE090E00E94790790E080E0DF91CF91EB +:100970000895CF92DF92EF92FF92CF93C82F80E439 +:10098000C82E82E4D82E8FE0E82EF12C85E00E945C +:10099000790485FD06C081E0C81AD108E108F10894 +:1009A000A9F76C2F80E0CF91FF90EF90DF90CF9070 +:1009B0000C946404CF93C82F8A3019F48DE00E9400 +:1009C000B9048C2F0E94B90490E080E0CF91089583 +:1009D000CF9385E00E94790480FF0FC080E00E94E1 +:1009E0007904C82F0E947F06CD3019F48AE00E9456 +:1009F000B9048C2FCF910C94B904CF910895CF9363 +:100A0000C62F0E94BC068FEF80BBC1BBEBE0F1E0BC +:100A100080818D7E808385E08A95F1F7000080815A +:100A200080618083808182608083CF9108950E945D +:100A3000BC0610BA11BAEBE0F1E080818B7E8083B6 +:100A400085E08A95F1F700008FB1908194619083E1 +:100A500008950F931F93CF93DF9380910F028330FC +:100A600009F4B3C0A8F4813009F444C0CFE7823060 +:100A700009F476C0C0E060E08C2F81700E94FF0412 +:100A8000CF5FCF3FC1F7DF91CF911F910F910895B5 +:100A9000843009F4C8C01FE7CFEFD0E00FEF8530F6 +:100AA00049F76091BE048FEF860F8E3F28F080914A +:100AB0000E02819580930E0280E00E94FF046091F7 +:100AC000BE0481E00E94FF044091B8045091B90433 +:100AD00057FDDFC08091BC049091BD04019684173E +:100AE00095070CF0CAC09093BD048093BC041150CC +:100AF000C1F6C9CFCFE7E091BE04F0E0ED59F84F61 +:100B0000649181E00E94FF04E091BE04F0E0ED59A1 +:100B1000F84F649180E00E94FF042091B804309166 +:100B2000B90437FD19C08091BC049091BD040196B1 +:100B3000821793073CF49093BD048093BC04C1508A +:100B4000D1F6A1CF1092BD041092BC048091BE04D6 +:100B50008F5F8093BE04F3CF8091BE04821BF9CFD8 +:100B60008091BE0487FF1DC06FEF80E00E94FF04EC +:100B70006FEF81E00E94FF042091B8043091B90426 +:100B800037FD1FC08091BC049091BD04019682176F +:100B900093076CF49093BD048093BC04C15001F79B +:100BA00072CF60E080E00E94FF0460E0E2CF10922C +:100BB000BD041092BC048091BE048F5F8093BE047C +:100BC000EDCF8091BE04821BF9CFCFE76091BE04C8 +:100BD00080E00E94FF046091BE0481E00E94FF0457 +:100BE0002091B8043091B90437FD19C08091BC043C +:100BF0009091BD040196821793073CF49093BD0435 +:100C00008093BC04C15011F73ECF1092BD041092E6 +:100C1000BC048091BE048F5F8093BE04F3CF8091AB +:100C2000BE04821BF9CFCFE7E091BA04F091BB0478 +:100C3000ED59FC4F649181E00E94FF04E091BA04F9 +:100C4000F091BB04ED59FC4F649180E00E94FF04D9 +:100C50008091BA049091BB040196811524E092071B +:100C600038F49093BB048093BA04C150E9F60BCFDB +:100C70001092BB041092BA04F8CF1092BD041092E7 +:100C8000BC048091BE0490910E02890F8093BE0433 +:100C90002ECF20910E022403B001259F700D112448 +:100CA0008091BE04FE01E81BF109E617F7071CF46A +:100CB0000093BE041CCF249F202D11242093BE043A +:100CC00016CF80E00E94170580FF0C942905089537 +:100CD000E091BF04E43650F01092BF04EDECF4E074 +:100CE00084E6DF011D928A95E9F70895F0E0E45368 +:100CF000FB4F80818A3081F38D3071F30895E0914C +:100D0000BF0491E09E0F9093BF04F0E0E353FB4FCC +:100D10008083089582E884BD84E085BD80E487BD3A +:100D200082E080936E0008951F920F920FB60F928B +:100D300011240BB60F922F933F934F935F936F93B2 +:100D40007F938F939F93AF93BF93EF93FF930E94F3 +:100D5000E106FF91EF91BF91AF919F918F917F91AC +:100D60006F915F914F913F912F910F900BBE0F901C +:100D70000FBE0F901F9018958093080108958FEF74 +:100D800080BB8093070180930A011092080111BA79 +:100D9000EBE0F1E0108280818F6180838FE891E049 +:100DA0000197F1F700C0000080818E7F8083089555 +:100DB0000E9461060E94E8040E94680690E080E0BC +:100DC00008956091C0047091C1046115710529F402 +:100DD0001092CC041092CB0408958091CB04909192 +:100DE000CC0401969093CC048093CB042091C4044E +:100DF0003091C5044091C9045091CA0484179507E5 +:100E000020F46217730721F408956217730761F0E5 +:100E10001092C3041092C2041092CC041092CB041E +:100E20007093C5046093C4042091C2043091C3043C +:100E300045E0429FC001439F900D1124680F791F28 +:100E400045E050E086EC94E00E9470078091C90470 +:100E50009091CA04892B71F41092C3041092C204B9 +:100E60006091C0047091C10445E050E086EC94E0CC +:100E70000E9470078091C60480930F028091C7047E +:100E80009091C8049093B9048093B8041092CC0454 +:100E90001092CB048091C2049091C3040196909368 +:100EA000C3048093C2040895F8940E94BF060E9470 +:100EB0008B040E948A0680E092E09093C1048093A4 +:100EC000C004789488E19EE00FB6F894A8958093CA +:100ED00060000FBE90936000A8950E94D806FCCFDA +:100EE000FB01DC0102C005900D9241505040D8F743 +:100EF000089560913305709134050C94BC090F93EB +:100F00001F93CF93DF93E0913305F0913405238154 +:100F100010E000E021FD0EC00FEF1FEFC801DF91D0 +:100F2000CF911F910F9108951995892B11F00FEF13 +:100F30001FEFCE01EC01899160913305709134056A +:100F4000DB011896ED91FC918111EECF8AE01995A5 +:100F5000892B21F3E1CFAB01BC0180913305909146 +:100F600034050C94B3072F923F924F925F926F9289 +:100F70007F928F929F92AF92BF92CF92DF92EF9229 +:100F8000FF920F931F93CF93DF9300D000D000D038 +:100F90000F920F92CDB7DEB77C013B018A01FC01B5 +:100FA00017821682838181FFCEC19AE0292ECE015D +:100FB00001965C01F7019381F30193FD859193FF05 +:100FC00081913F01882309F446C1853239F493FDAC +:100FD000859193FF81913F01853229F4B70190E01B +:100FE0000E94BC09E7CF912C412C512CFFE1F51553 +:100FF00038F08B3209F188F4803201F1833221F12B +:1010000057FC3AC020ED280F2A3040F556FE1FC08D +:10101000929C200D1124922E06C08D3291F08033C7 +:1010200079F7689450F8F30193FD859193FF8191CE +:101030003F018111DBCF20C0689451F8689452F8C9 +:10104000F2CF689453F8EFCF689454F8ECCF429CF9 +:10105000200D1124422E689455F8E5CF8E3229F4E4 +:1010600056FCF9C0689456F8DECF8C3619F46894B3 +:1010700057F8D9CF8836B9F2982F9F7D9554933081 +:10108000C0F08336A1F18337C1F1833509F05BC02D +:10109000F801C190D1908F01692D70E056FC02C01B +:1010A0006FEF7FEFC6010E94A6094C01689457F8C4 +:1010B0000AC00C5F1F4F2FE3298388248394912C4F +:1010C0006501E89457F853FC04C04814190409F06A +:1010D00018F5342C8114910431F5332009F46ACFCA +:1010E000B70180E290E00E94BC093A94F6CFF80183 +:1010F000808189830E5F1F4FE0CFF801C190D190AE +:101100008F01692D70E056FC02C06FEF7FEFC601C2 +:101110000E94B1094C01D5CFB70180E290E00E9456 +:10112000BC094A94D2CFF60157FC859157FE8191B4 +:101130006F01B70190E00E94BC0931103A94F1E0D0 +:101140008F1A9108C7CF843619F0893609F074C018 +:10115000F80157FE6AC061917191819191918F015F +:10116000252D2F76D22E97FF09C0909580957095EA +:1011700061957F4F8F4F9F4F6894D7F82AE030E0FA +:10118000A5010E94EC09C82ECA188C2C5D2CD6FE35 +:101190000CC0E89450F8C91440F4D4FE05C0D2FC49 +:1011A00003C0FD2DFE7E5F2E892C54FEA4C0FE01DF +:1011B000EC0DF11D8081803309F096C0252D297E2C +:1011C000522E852D8870382E53FCA4C050FE9EC030 +:1011D0009C2C841418F44C0C942C981854FEA0C029 +:1011E000B70180E390E00E94BC0952FE09C088E785 +:1011F00090E051FE02C088E590E0B7010E94BC0972 +:10120000C91408F499C0CA94D12C9FEFC91AD90AFD +:10121000CA0CDB1CF60182916F01B70190E00E94BD +:10122000BC09AC14BD04B1F758CF61917191072E80 +:10123000000C880B990B93CFD52CE894D4F82AE0B6 +:1012400030E08537E1F1952D997FD92E8F36A9F1C0 +:10125000F0F4883551F1F701868197812B960FB60E +:10126000F894DEBF0FBECDBFDF91CF911F910F91DC +:10127000FF90EF90DF90CF90BF90AF909F908F90B6 +:101280007F906F905F904F903F902F9008958037A0 +:1012900049F0883701F7D4FE02C06894D2F820E103 +:1012A00030E00DC06894D4F8F6CF54FE03C0E92FA7 +:1012B000E660DE2E20E132E002C028E030E0F801F6 +:1012C000D7FE0DC061917191819191918F01A5011E +:1012D0000E94EC09C82ECA18E894D7F856CF61913D +:1012E000719190E080E0F2CF52FC02C0839469CF0C +:1012F0008394839466CF852D867809F462CFF6CFE8 +:10130000B70180E290E00E94BC0983948414C0F38A +:10131000312C64CF342C3818841408F45FCFF8CF04 +:10132000852D867809F46CCF8BE251FE80E257FC64 +:101330008DE2B70190E062CFB70180E390E00E94B8 +:10134000BC099A945DCF8FEF9FEF88CFFC01059089 +:10135000615070400110D8F7809590958E0F9F1FB7 +:101360000895FC016150704001900110D8F78095FC +:1013700090958E0F9F1F08950F931F93CF93DF9328 +:10138000182F092FEB018B8181FD09C01FEF0FEF93 +:10139000812F902FDF91CF911F910F91089582FFA0 +:1013A00014C02E813F818C819D81281739073CF420 +:1013B000E881F981CF0101969983888310838E811A +:1013C0009F8101969F838E83E3CFE885F985812FE6 +:1013D0001995892BA1F3DACFFA01AA27283051F108 +:1013E000203181F1E8946F936E7F6E5F7F4F8F4F56 +:1013F0009F4FAF4FB1E03ED0B4E03CD0670F781FB5 +:10140000891F9A1FA11D680F791F8A1F911DA11D99 +:101410006A0F711D811D911DA11D20D009F46894D2 +:101420003F912AE0269F11243019305D3193DEF67A +:10143000CF010895462F4770405D4193B3E00FD030 +:10144000C9F7F6CF462F4F70405D4A3318F0495D1B +:1014500031FD4052419302D0A9F7EACFB4E0A695FE +:101460009795879577956795BA95C9F70097610520 +:10147000710508959B01AC010A2E06945795479576 +:1014800037952795BA95C9F7620F731F841F951F6B +:08149000A01D0895F894FFCFA0 +:101498000000000200000000DA0400000000010162 +:1014A800740280028D0291029902A602AF02B6026E +:1014B800C902D702E102EC02F60202030803110393 +:1014C8001F03C902D702E102EC02F6020203080375 +:1014D8001103CE03D403DA03DF03E403EA03EE03C4 +:1014E800F4030504190433043A04400446044B0485 +:1014F80050046104690475048B049A04A904494ED4 +:1015080049540D00464C4F505059204449534B0004 +:10151800534352455720445249564552004B45596A +:10152800005341555341474500524F5454454E20AE +:10153800464C455348004B4559424F415244005090 +:101548004953544F4C004E4F5448494E474C4F4E08 +:10155800454C5920524F414400532F4E2044495284 +:101568005420524F41440046495245504C4143454E +:10157800004E2F5720537472656574004F4C4420F9 +:10158800484F555345004C4956494E4720524F4FF6 +:101598004D00415454494300424153454D454E5432 +:1015A80000434F4D505554455220524F4F4D00590E +:1015B8006F7520737461726520696E746F20612085 +:1015C800766F6964206F66206E6F7468696E676EE7 +:1015D8006573732E20596F7520736565206E6F6F64 +:1015E8006E652C20796F752068656172206E6F6F4B +:1015F8006E652C796F75206665656C20736F6D65F7 +:101608006F6E652E0A20596F75206C6F6F6B2061A5 +:10161800726F756E642C20616E6420736565206E30 +:101628006F7468696E672C2079657420796F7520EE +:10163800617265206E6F206C6573732073636172CD +:1016480065642E20596F75206861626520776F6E1A +:101658002E0A4C4F4E454C5920524F4144006E6F54 +:1016680072746800736F75746800776573740065C9 +:101678006173740073686F6F740075736500455209 +:10168800524F5200496E76616C696420636F6D6DCC +:10169800616E642100596F752063616E277420752F +:1016A80073652074686174210057686174206172E1 +:1016B8006520796F7520676F696E6720746F206485 +:1016C8006F3F00676F696E6720004E4F52544800A5 +:1016D800534F5554480045415354005745535400FF +:1016E800594F55204D415920414354204E4F5721C1 +:1016F8000069742064696564006974207375727682 +:10170800697665640061206265617220626C6F634E +:101718006B73207468652077617900697420726141 +:101728006E20617761792E2E2E00697420776F6E96 +:10173800277420737461727400796F752063616E09 +:0817480027742074797065001C :00000001FF diff --git a/code/textadv/build/16550.o b/code/textadv/build/16550.o index 006c6fc..5bb6e06 100644 Binary files a/code/textadv/build/16550.o and b/code/textadv/build/16550.o differ diff --git a/code/textadv/build/structures.o b/code/textadv/build/structures.o index fdb5e27..e8b3114 100644 Binary files a/code/textadv/build/structures.o and b/code/textadv/build/structures.o differ diff --git a/code/textadv/include/16550.h b/code/textadv/include/16550.h index af082d3..1d110a8 100644 --- a/code/textadv/include/16550.h +++ b/code/textadv/include/16550.h @@ -39,7 +39,9 @@ uint8_t read_from_uart(uint8_t addr); void init_uart(); +int println(const char* output,...); int putchar_16550(char var, FILE *stream); +void writechar_16550(char var); void routine_uart(); diff --git a/code/textadv/src/16550.c b/code/textadv/src/16550.c index 472f517..496bb61 100644 --- a/code/textadv/src/16550.c +++ b/code/textadv/src/16550.c @@ -68,15 +68,38 @@ void init_uart(){ return; } +int println(const char* output, ...){ + + va_list arg; + va_start (arg, output); + vprintf(output,arg); + printf("\n"); + return 0; + +} + + +/* Writes a character to the 16550 uart for transmission with cr lf magic */ int putchar_16550(char var, FILE *stream __attribute__((unused))){ + if(var == '\n'){ + writechar_16550('\r'); + } + + writechar_16550(var); + return 0; +} +/* Writes a character to the 16550 uart for transmission without cr lf magic */ +void writechar_16550(char var){ + for(uint32_t i = 0; i < 1000000; i++ ){ uint8_t received = read_from_uart(UART_REG_LSR); if((received & (1<<5))){ - break; + break; } } + write_to_uart(UART_REG_TXRX,var); - return 0; + return; } void routine_uart(){ @@ -85,8 +108,12 @@ void routine_uart(){ if(received & 0x01){ received = read_from_uart(UART_REG_TXRX); ingest_user_char(received); - write_to_uart(UART_REG_TXRX,received); /* Echo back */ + if(received == '\r'){ + writechar_16550('\n'); + } + writechar_16550(received); /* Echo back */ } return; } + diff --git a/code/textadv/src/main.c b/code/textadv/src/main.c index d20aaaa..2dbef5b 100644 --- a/code/textadv/src/main.c +++ b/code/textadv/src/main.c @@ -85,6 +85,7 @@ int main(){ init_interrupts(); current_track = computer_room; sei(); + println(room_table[0]); /* Enable the hardware watchdog. In case the microcontroller fails to * finish it's task within the specified time, the watchdog will reset * the atmel cookie. diff --git a/code/textadv/src/structures.c b/code/textadv/src/structures.c index c1b9c3f..d703af2 100644 --- a/code/textadv/src/structures.c +++ b/code/textadv/src/structures.c @@ -344,7 +344,7 @@ const uint8_t noise_table[1024] PROGMEM = { const char* info_table[] = { "ERROR", - "You can't do that!", + "Invalid command!", "You can't use that!", "What are you going to do?", "going ", @@ -372,8 +372,8 @@ const char* action_table[] = { const char* room_table[] = { "You stare into a void of nothingness. You see noone, you hear noone," - "you feel someone.\r\n You look around, and see nothing, yet " - "you are no less scared. You habe won." + "you feel someone.\n You look around, and see nothing, yet " + "you are no less scared. You habe won.\n" "LONELY ROAD", "S/N DIRT ROAD", "FIREPLACE",