Commited final gameplay of the textadventure
Signed-off-by: Tyrolyean <tyrolyean@tyrolyean.net>
This commit is contained in:
parent
8a28b339ab
commit
d2fd6f9991
32 changed files with 938 additions and 468 deletions
|
@ -128,3 +128,22 @@
|
||||||
volume = {1969},
|
volume = {1969},
|
||||||
url = {https://tools.ietf.org/pdf/rfc20.pdf}
|
url = {https://tools.ietf.org/pdf/rfc20.pdf}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@techreport{elf,
|
||||||
|
type = {Standard},
|
||||||
|
key = {ELF},
|
||||||
|
month = May,
|
||||||
|
year = {1995},
|
||||||
|
institution = {TIS Committee},
|
||||||
|
title = {Tool Interface Standard (TIS)Executable and Linking Format (ELF) Specification},
|
||||||
|
volume = {1995},
|
||||||
|
url = {https://refspecs.linuxbase.org/elf/elf.pdf}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Manual{progmem,
|
||||||
|
year = {2016},
|
||||||
|
title = {Data in Program Space},
|
||||||
|
organization = {avr-libc 2.0.0 Standard C library for AVR-GCC},
|
||||||
|
author = {Unknown Author},
|
||||||
|
url = {https://www.nongnu.org/avr-libc/user-manual/pgmspace.html}
|
||||||
|
}
|
||||||
|
|
Binary file not shown.
|
@ -3,7 +3,7 @@
|
||||||
:100020000C94B2040C94B2040C94B2040C94B20478
|
:100020000C94B2040C94B2040C94B2040C94B20478
|
||||||
:100030000C94B2040C94B2040C94B2040C94B20468
|
:100030000C94B2040C94B2040C94B2040C94B20468
|
||||||
:100040000C94B2040C94B2040C94B2040C94B20458
|
:100040000C94B2040C94B2040C94B2040C94B20458
|
||||||
:100050000C94B2040C941C090C94B2040C94B204D9
|
:100050000C94B2040C94670A0C94B2040C94B2048D
|
||||||
:100060000C94B2040C94B2040C94B2040C94B20438
|
:100060000C94B2040C94B2040C94B2040C94B20438
|
||||||
:100070000C94B2040C94B2040C94B2040C94B20428
|
:100070000C94B2040C94B2040C94B2040C94B20428
|
||||||
:100080000C94B2040C94B2040C94B2040C94B20418
|
:100080000C94B2040C94B2040C94B2040C94B20418
|
||||||
|
@ -143,351 +143,500 @@
|
||||||
:1008E00020222527292B2E303335383B3D404345E8
|
:1008E00020222527292B2E303335383B3D404345E8
|
||||||
:1008F000484B4E5154575A5D606366696C6F72760F
|
:1008F000484B4E5154575A5D606366696C6F72760F
|
||||||
:10090000797C7F0011241FBECFEFD1E2DEBFCDBFC7
|
:10090000797C7F0011241FBECFEFD1E2DEBFCDBFC7
|
||||||
:1009100000E00CBF84B78093460714BE0FB6F8946E
|
:1009100000E00CBF84B78093E80D14BE0FB6F894C6
|
||||||
:10092000A8958091600088618093600010926000BB
|
:10092000A8958091600088618093600010926000BB
|
||||||
:100930000FBE16E0A0E0B2E0EEEFF9E100E00BBF81
|
:100930000FBE1DE0A0E0B2E0E4EAFCE100E00BBF86
|
||||||
:1009400002C007900D92A63BB107D9F727E0A6EBAE
|
:1009400002C007900D92A235B107D9F72DE0A2E5BC
|
||||||
:10095000B6E001C01D92A634B207E1F70E94DC099F
|
:10095000BDE001C01D92A83EB207E1F70E942D0B39
|
||||||
:100960000C94FD0C0C940000CF93C62F0E944409F8
|
:100960000C94500E0C940000CF93C62F0E948F0A57
|
||||||
:100970008FEF80BBC1BBEBE0F1E08081857F80839E
|
:100970008FEF80BBC1BBEBE0F1E08081857F80839E
|
||||||
:1009800085E08A95F1F7000080818A608083CF91AD
|
:1009800085E08A95F1F7000080818A608083CF91AD
|
||||||
:1009900008950E94440910BA11BAEBE0F1E0808199
|
:1009900008950E948F0A10BA11BAEBE0F1E080814D
|
||||||
:1009A000837F808385E08A95F1F700008FB1908185
|
:1009A000837F808385E08A95F1F700008FB1908185
|
||||||
:1009B0009C609083089563E883E00E94B40463E040
|
:1009B0009C609083089563E883E00E94B40463E040
|
||||||
:1009C00080E00E94B40460E081E00E94B40463E02F
|
:1009C00080E00E94B40460E081E00E94B40463E02F
|
||||||
:1009D00083E00E94B40480E092E090934307809308
|
:1009D00083E00E94B40480E092E09093E50D809360
|
||||||
:1009E00042078BEB92E00C94320ACF93DF93CDB7A2
|
:1009E000E40D87EC92E00C94850BCF93DF93CDB7A9
|
||||||
:1009F000DEB7FE01369681919191BF010E945E0A99
|
:1009F000DEB7FE01369681919191BF010E94B10B45
|
||||||
:100A00008AE090E00E942C0A90E080E0DF91CF9194
|
:100A00008AE090E00E947F0B90E080E0DF91CF9140
|
||||||
:100A10000895CF92DF92EF92FF92CF93C82F80E498
|
:100A10000895CF92DF92EF92FF92CF93C82F80E498
|
||||||
:100A2000C82E82E4D82E8FE0E82EF12C85E00E94BB
|
:100A2000C82E82E4D82E8FE0E82EF12C85E00E94BB
|
||||||
:100A3000C90485FD06C081E0C81AD108E108F108A3
|
:100A3000C90485FD06C081E0C81AD108E108F108A3
|
||||||
:100A4000A9F76C2F80E0CF91FF90EF90DF90CF90CF
|
:100A4000A9F76C2F80E0CF91FF90EF90DF90CF90CF
|
||||||
:100A50000C94B404CF93C82F8A3019F48DE00E940F
|
:100A50000C94B404CF93C82F8091520D8F5F809374
|
||||||
:100A600009058C2F0E94090590E080E0CF91089540
|
:100A6000520DC03259F4873480F070E060E08AE0C3
|
||||||
:100A7000CF9385E00E94C90480FF0FC080E00E94F0
|
:100A70000E942A0590E080E0CF910895CA3029F4C1
|
||||||
:100A8000C904C82F0E94B806CD3019F48AE00E942C
|
:100A80001092520D8DE00E9409058C2F0E940905DD
|
||||||
:100A900009058C2FCF910C940905CF910895CF9320
|
:100A9000F1CFCF9385E00E94C90480FF0FC080E0B2
|
||||||
:100AA000C62F0E9444098FEF80BBC1BBEBE0F1E091
|
:100AA0000E94C904C82F0E94C906CD3019F48AE0FB
|
||||||
:100AB00080818D7E808385E08A95F1F700008081BA
|
:100AB0000E9409058C2FCF910C940905CF910895C0
|
||||||
:100AC00080618083808182608083CF9108950E94BD
|
:100AC000CF93C62F0E948F0A8FEF80BBC1BBEBE094
|
||||||
:100AD000440910BA11BAEBE0F1E080818B7E80838B
|
:100AD000F1E080818D7E808385E08A95F1F70000CA
|
||||||
:100AE00085E08A95F1F700008FB190819461908341
|
:100AE000808180618083808182608083CF9108953E
|
||||||
:100AF00008950F931F93CF93DF9380910F0283305C
|
:100AF0000E948F0A10BA11BAEBE0F1E080818B7E80
|
||||||
:100B000009F4B3C0A8F4813009F444C0CFE78230BF
|
:100B0000808385E08A95F1F700008FB19081946130
|
||||||
:100B100009F476C0C0E060E08C2F81700E944F0520
|
:100B1000908308950F931F93CF93DF9380910F02DB
|
||||||
:100B2000CF5FCF3FC1F7DF91CF911F910F91089514
|
:100B2000833009F4B3C0A8F4813009F444C0CFE79E
|
||||||
:100B3000843009F4C8C01FE7CFEFD0E00FEF853055
|
:100B3000823009F476C0C0E060E08C2F81700E94A2
|
||||||
:100B400049F76091BC068FEF860F8E3F28F08091A9
|
:100B40006005CF5FCF3FC1F7DF91CF911F910F912C
|
||||||
:100B50000E02819580930E0280E00E944F05609105
|
:100B50000895843009F4C8C01FE7CFEFD0E00FEF4D
|
||||||
:100B6000BC0681E00E944F054091B6065091B70641
|
:100B6000853049F76091590D8FEF860F8E3F28F041
|
||||||
:100B700057FDDFC08091BA069091BB06019684179D
|
:100B700080910E02819580930E0280E00E946005B4
|
||||||
:100B800095070CF0CAC09093BB068093BA0611502B
|
:100B80006091590D81E00E9460054091530D509194
|
||||||
:100B9000C1F6C9CFCFE7E091BC06F0E0ED5FF74FBB
|
:100B9000540D57FDDFC08091570D9091580D01966F
|
||||||
:100BA000649181E00E944F05E091BC06F0E0ED5FAA
|
:100BA000841795070CF0CAC09093580D8093570D89
|
||||||
:100BB000F74F649180E00E944F052091B606309176
|
:100BB0001150C1F6C9CFCFE7E091590DF0E0ED5FDC
|
||||||
:100BC000B70637FD19C08091BA069091BB06019611
|
:100BC000F74F649181E00E946005E091590DF0E0DB
|
||||||
:100BD000821793073CF49093BB068093BA06C150EA
|
:100BD000ED5FF74F649180E00E9460052091530D16
|
||||||
:100BE000D1F6A1CF1092BB061092BA068091BC0636
|
:100BE0003091540D37FD19C08091570D9091580DDB
|
||||||
:100BF0008F5F8093BC06F3CF8091BC06821BF9CF38
|
:100BF0000196821793073CF49093580D8093570DFC
|
||||||
:100C00008091BC0687FF1DC06FEF80E00E944F05FA
|
:100C0000C150D1F6A1CF1092580D1092570D80917E
|
||||||
:100C10006FEF81E00E944F052091B6063091B70634
|
:100C1000590D8F5F8093590DF3CF8091590D821B31
|
||||||
:100C200037FD1FC08091BA069091BB0601968217CE
|
:100C2000F9CF8091590D87FF1DC06FEF80E00E94C2
|
||||||
:100C300093076CF49093BB068093BA06C15001F7FA
|
:100C300060056FEF81E00E9460052091530D3091B7
|
||||||
:100C400072CF60E080E00E944F0560E0E2CF10923A
|
:100C4000540D37FD1FC08091570D9091580D01969E
|
||||||
:100C5000BB061092BA068091BC068F5F8093BC06DB
|
:100C5000821793076CF49093580D8093570DC150F1
|
||||||
:100C6000EDCF8091BC06821BF9CFCFE76091BC0627
|
:100C600001F772CF60E080E00E94600560E0E2CFB3
|
||||||
:100C700080E00E944F056091BC0681E00E944F0514
|
:100C70001092580D1092570D8091590D8F5F8093EF
|
||||||
:100C80002091B6063091B70637FD19C08091BA069B
|
:100C8000590DEDCF8091590D821BF9CFCFE76091BF
|
||||||
:100C90009091BB060196821793073CF49093BB0694
|
:100C9000590D80E00E9460056091590D81E00E942D
|
||||||
:100CA0008093BA06C15011F73ECF1092BB06109246
|
:100CA00060052091530D3091540D37FD19C080918E
|
||||||
:100CB000BA068091BC068F5F8093BC06F3CF80910B
|
:100CB000570D9091580D0196821793073CF490932D
|
||||||
:100CC000BC06821BF9CFCFE7E091B806F091B906D8
|
:100CC000580D8093570DC15011F73ECF1092580D1B
|
||||||
:100CD000ED5FFB4F649181E00E944F05E091B80603
|
:100CD0001092570D8091590D8F5F8093590DF3CF6E
|
||||||
:100CE000F091B906ED5FFB4F649180E00E944F05E3
|
:100CE0008091590D821BF9CFCFE7E091550DF0911E
|
||||||
:100CF0008091B8069091B9060196811524E092077B
|
:100CF000560DED5FFB4F649181E00E946005E0912D
|
||||||
:100D000038F49093B9068093B806C150E9F60BCF3A
|
:100D0000550DF091560DED5FFB4F649180E00E9410
|
||||||
:100D10001092B9061092B806F8CF1092BB06109246
|
:100D100060058091550D9091560D0196811524E046
|
||||||
:100D2000BA068091BC0690910E02890F8093BC0692
|
:100D2000920738F49093560D8093550DC150E9F613
|
||||||
:100D30002ECF20910E022403B001259F700D1124A7
|
:100D30000BCF1092560D1092550DF8CF1092580D02
|
||||||
:100D40008091BC06FE01E81BF109E617F7071CF4C9
|
:100D40001092570D8091590D90910E02890F80934A
|
||||||
:100D50000093BC061CCF249F202D11242093BC0699
|
:100D5000590D2ECF20910E022403B001259F700D56
|
||||||
:100D600016CF80E00E94670580FF0C9479050895F6
|
:100D600011248091590DFE01E81BF109E617F707E0
|
||||||
:100D70009091BD06E92FF0E0E553F94F8F3729F444
|
:100D70001CF40093590D1CCF249F202D1124209387
|
||||||
:100D800091509093BD06108208959F5F9093BD0689
|
:100D8000590D16CF80E00E94780580FF0C948A05EB
|
||||||
:100D900080830895FF920F931F93CF93DF93F62ED6
|
:100D9000089590915C0DE92FF0E0E359F24F8F3701
|
||||||
:100DA000C82FD0E08E01000F111FF801E758FD4F4A
|
:100DA00029F4915090935C0D108208959F5F909369
|
||||||
:100DB00081818F9380818F930E94F504C15DD84F0C
|
:100DB0005C0D80830895FF920F931F93CF93DF9371
|
||||||
:100DC0000F900F908881882311F0F11012C081E0FC
|
:100DC000F62EC82FD0E08E01000F111FF801E75852
|
||||||
:100DD000888370E060E08AE00E942A05F801EB5900
|
:100DD000FD4F81818F9380818F930E94F504CF52C4
|
||||||
:100DE000FD4F81818F9380818F930E94F5040F9036
|
:100DE000D24F0F900F908881882311F0F11012C01C
|
||||||
:100DF0000F90DF91CF911F910F91FF900895CF93A6
|
:100DF00081E0888370E060E08AE00E942A05F801C3
|
||||||
:100E0000DF93C82FD0E0E091100284E0E89FF0016A
|
:100E0000EB59FD4F81818F9380818F930E94F50470
|
||||||
:100E10001124E35CFD4FEC0FFD1F808181110DC09B
|
:100E10000F900F90DF91CF911F910F91FF90089548
|
||||||
:100E20008091AA028F938091A9028F930E94F5046A
|
:100E2000CF93DF93C82FD0E0E091100284E0E89FD9
|
||||||
:100E30000F900F90DF91CF910895FE01EE0FFF1FED
|
:100E3000F0011124E35CFD4FEC0FFD1F8081811157
|
||||||
:100E4000E157FD4F81818F9380818F9381EC92E0F8
|
:100E40000DC08091AA028F938091A9028F930E9476
|
||||||
:100E50009F938F930E94F504E091100284E0E89F35
|
:100E5000F5040F900F90DF91CF910895FE01EE0FF2
|
||||||
:100E6000F0011124E35CFD4FEC0FFD1F80818093A6
|
:100E6000FF1FE157FD4F81818F9380818F938DEC20
|
||||||
:100E7000100261E00E94CA06E0911002F0E0EE0F5D
|
:100E700092E09F938F930E94F504E091100284E02A
|
||||||
:100E8000FF1FEF5EFD4F808191819093BF0680939D
|
:100E8000E89FF0011124E35CFD4FEC0FFD1F808112
|
||||||
:100E9000BE060F900F900F900F90CCCFEF92FF9265
|
:100E90008093100261E00E94DB06E0911002F0E016
|
||||||
:100EA0000F931F93CF93DF9309E317E0F80181912C
|
:100EA000EE0FFF1FEF5EFD4F808191819093610DEA
|
||||||
:100EB00081110DC087E0E034F807C9F784EE92E0B5
|
:100EB0008093600D0F900F900F900F90CCCFEF921A
|
||||||
:100EC0009F938F930E94F5040F900F9028C08AED96
|
:100EC000FF920F931F93CF93DF930BED1DE0F8017B
|
||||||
:100ED00092E09F938F930E94F5040F900F90D0E0C3
|
:100ED000819181110DC08DE0E23EF807C9F780EFE6
|
||||||
:100EE000C0E083EDE82E82E0F82EF80181918F01B9
|
:100EE00092E09F938F930E94F5040F900F9028C07B
|
||||||
:100EF000882389F0FE01EE0FFF1FE15DFD4F818128
|
:100EF00086EE92E09F938F930E94F5040F900F90DF
|
||||||
:100F00008F9380818F93FF92EF920E94F5040F9050
|
:100F0000D0E0C0E08FEDE82E82E0F82EF80181916C
|
||||||
:100F10000F900F900F902196C730D10531F7DF91D8
|
:100F10008F01882389F0FE01EE0FFF1FE15DFD4F79
|
||||||
:100F2000CF911F910F91FF90EF900895E0911002E3
|
:100F200081818F9380818F93FF92EF920E94F504CD
|
||||||
:100F3000F0E0EB5DFD4FE081E7FF0BC08091AE027A
|
:100F30000F900F900F900F902196C730D10531F789
|
||||||
:100F40008F938091AD028F930E94F5040F900F90C4
|
:100F4000DF91CF911F910F91FF90EF900895E09165
|
||||||
:100F50000895EE0FFF0BE15DFD4F81818F9380813E
|
:100F50001002F0E0EB5DFD4FE081E7FF0BC08091F8
|
||||||
:100F60008F938CEF92E09F938F930E94F5040F90E4
|
:100F6000AE028F938091AD028F930E94F5040F9093
|
||||||
:100F70000F900F900F900895E0911002F0E0EB5D5C
|
:100F70000F900895EE0FFF0BE15DFD4F81818F9380
|
||||||
:100F8000FD4FE081E7FF0BC08091AE028F9380910F
|
:100F800080818F9388E093E09F938F930E94F50474
|
||||||
:100F9000AD028F930E94F5040F900F900895EE0F0D
|
:100F90000F900F900F900F900895CF92DF92EF92E5
|
||||||
:100FA000FF0BE15DFD4F81818F9380818F938BE0FB
|
:100FA000FF920F931F93CF93DF93D82FF92EE091E9
|
||||||
:100FB00093E09F938F930E94F504E0911002F0E07C
|
:100FB0001002F0E0EB5DFD4FC0800FE212E0C0E0F8
|
||||||
:100FC000EB5DFD4FA0810A2E000CBB0BA75CB84F58
|
:100FC000C7FE0BC08091AE028F938091AD028F93CC
|
||||||
:100FD00081E08C938FEF80830F900F900F900F9094
|
:100FD0000E94F5040F900F9034C0F801E080D1809A
|
||||||
:100FE0000895E82FF0E0E75CF84F9081911106C07A
|
:100FE0000E5F1F4FAE2DBD2DFD0101900020E9F7D2
|
||||||
:100FF0008091A6028F938091A5020FC08330C1F724
|
:100FF0003197AF014A1B5B0B6D2F7F2D8E2D9D2DE1
|
||||||
:10100000909110029230A1F710923C078093450214
|
:101000000E94670B892B31F5CC1228C0DF92EF923A
|
||||||
:101010008091B6028F938091B5028F930E94F50460
|
:1010100087E193E09F938F930E94F504E091100283
|
||||||
:101020000F900F900895EF92FF920F931F93CF931D
|
:10102000F0E0EB5DFD4FA0810A2E000CBB0BA5523A
|
||||||
:10103000DF93182F092F8FE2E82E82E0F82ED0E000
|
:10103000B24F81E08C938FEF80830F900F900F90D1
|
||||||
:10104000C0E0F701819191917F01FC0101900020A6
|
:101040000F90DF91CF911F910F91FF90EF90DF9064
|
||||||
:10105000E9F73197AF01481B590B612F702F0E94A0
|
:10105000CF900895CF5FC73009F0BFCF87E293E00C
|
||||||
:10106000140A892B49F48C2FDF91CF911F910F9196
|
:101060009F93B5CF97E0EBEDFDE0DF01292F1D92B7
|
||||||
:10107000FF90EF900C94F1072196C730D10509F746
|
:101070002A95E9F7E1EDFDE0DF011D929A95E9F788
|
||||||
:101080008091A6028F938091A5028F930E94F50410
|
:10108000E5E2F2E09FEF9193B2E0EF32FB07D9F790
|
||||||
:101090000F900F90DF91CF911F910F91FF90EF90E4
|
:10109000882319F11092100281E08093E10D85E020
|
||||||
:1010A00008950F931F93CF93DF93C82F70E060E0F4
|
:1010A0008093290281E080932A0282E080932C02BF
|
||||||
:1010B0008AE00E942A05C73009F446C0A8F5C53069
|
:1010B00010925B0D10924D0280911002E82FF0E02B
|
||||||
:1010C000D1F1C63009F446C08FEF8C0F8430C8F1DF
|
:1010C000EE0FFF1FEF5EFD4F208131813093610DE8
|
||||||
:1010D0008BE193E09F938F930E94F504CDE8D2E0DB
|
:1010D0002093600D60E00C94DB0680915A0D88230C
|
||||||
:1010E0000F900F9003ED12E08881998122969F93D3
|
:1010E00079F081E0809310028091C5029091C60250
|
||||||
:1010F0008F931F930F930E94F5040F900F900F9002
|
:1010F00090936A028093690284E080932702CFCFA5
|
||||||
:101100000F9082E0C13AD80779F78091A8028F93B7
|
:1011000081E0809310021092450283E080932702D1
|
||||||
:101110008091A7028F930E94F5040F900F90DF91AA
|
:1011100086E08093260210922D02C1CFCF938230B9
|
||||||
:10112000CF911F910F910895C83089F0C93081F691
|
:10112000A1F480915B0D811145C081E080935B0D3E
|
||||||
:101130000E94BC07EACF60E0809110020E94CA06BC
|
:101130001092DD0D8AE393E09F938F930E94F50454
|
||||||
:10114000E4CF0E94FF06E1CF0E944E07DECF0E944F
|
:101140000F900F9081E0CF91089581110CC0809194
|
||||||
:101150009607DBCFE0919902F0919A02DF010D90A2
|
:101150005B0D813079F582E080935B0D1092DB0DA1
|
||||||
:101160000020E9F7CD018E1B9F0B8553994F0E94FC
|
:1011600085E593E0E9CF843091F4C0915B0DC13007
|
||||||
:101170001308CBCF0F931F93CF93DF93E091BD065E
|
:1011700009F582E080935B0D1092DF0D81E793E02B
|
||||||
:10118000E436B0F01092BD06EBECF6E084E6DF0149
|
:101180009F938F930E94F504C0935D0DD9CF81305A
|
||||||
:101190001D928A95E9F784E293E09F938F930E94D2
|
:1011900089F480915B0D823069F41092DC0D8EE948
|
||||||
:1011A000F5040F900F90DF91CF911F910F9108954B
|
:1011A00093E09F938F930E94F50480915D0D0E94C0
|
||||||
:1011B000F0E0E653F94F80818A3011F08D3099F7D5
|
:1011B0003208C6CF80E0C7CFE82FF0E0E552F24F0B
|
||||||
:1011C0000DE812E0D0E0C0E0F801819191918F012B
|
:1011C0009081911106C08091A6028F938091A50213
|
||||||
:1011D000FC0101900020E9F73197AF01481B590B42
|
:1011D00037C0853009F443C078F4833021F184307E
|
||||||
:1011E0006BEC76E00E94140A892B69F48C2F0E9424
|
:1011E00011F0833081F390911002993061F70E94E1
|
||||||
:1011F00051081092BD06EBECF6E084E6DF011D928B
|
:1011F0008E08882341F30895863029F780911002E4
|
||||||
:101200008A95E9F7D0CF2196CA30D105E9F68091C9
|
:10120000823011F583E0809345028091B0028F9384
|
||||||
:10121000A4028F938091A3028F930E94F5040F90F4
|
:101210008091AF028F930E94F50481E080935A0D74
|
||||||
:101220000F90E7CF82E884BD84E085BD80E487BD70
|
:101220000F900F90E8CF90911002923061F61092DB
|
||||||
:1012300082E080936E0008951F920F920FB60F9276
|
:10123000DE0D809345028091B6028F938091B502B6
|
||||||
:1012400011240BB60F922F933F934F935F936F939D
|
:101240008F930E94F504ECCF8111BDCF8CEF93E01A
|
||||||
:101250007F938F939F93AF93BF93EF93FF930E94DE
|
:101250009F938F930E94F5041092E10DE1CF90913E
|
||||||
:101260006909FF91EF91BF91AF919F918F917F910C
|
:101260001002943009F0AFCF1092E00D80934D0240
|
||||||
:101270006F915F914F913F912F910F900BBE0F9007
|
:101270008091BC028F938091BB02E2CFEF92FF92EC
|
||||||
:101280000FBE0F901F9018958093080108958FEF5F
|
:101280000F931F93CF93DF93182F092F8FE2E82E30
|
||||||
:1012900080BB8093070180930A011092080111BA64
|
:1012900082E0F82ED0E0C0E0F701819191917F01CA
|
||||||
:1012A000EBE0F1E0108280818F6180838FE891E034
|
:1012A000FC0101900020E9F73197AF01481B590B71
|
||||||
:1012B0000197F1F700C0000080818E7F8083089540
|
:1012B000612F702F0E94670B892B49F48C2FDF91CF
|
||||||
:1012C0000E94B1060E9438050E94BA0890E080E0B2
|
:1012C000CF911F910F91FF90EF900C94DC08219625
|
||||||
:1012D00008956091BE067091BF066115710529F4ED
|
:1012D000C730D10509F78091A6028F938091A502AE
|
||||||
:1012E0001092CA061092C90608958091C90690917D
|
:1012E0008F930E94F5040F900F90DF91CF911F9183
|
||||||
:1012F000CA0601969093CA068093C9062091C20639
|
:1012F0000F91FF90EF9008950F931F93CF93DF937B
|
||||||
:101300003091C3064091C7065091C80684179507CF
|
:10130000C82F70E060E08AE00E942A05C73009F427
|
||||||
:1013100020F46217730721F408956217730761F0D0
|
:1013100055C0B8F5C53009F448C0C63009F454C00A
|
||||||
:101320001092C1061092C0061092CA061092C90609
|
:101320008FEF8C0F843008F446C080E694E09F93E2
|
||||||
:101330007093C3066093C2062091C0063091C10627
|
:101330008F930E94F504CDE8D2E00F900F900FED4F
|
||||||
:1013400045E0429FC001439F900D1124680F791F13
|
:1013400012E08881998122969F938F931F930F9328
|
||||||
:1013500045E050E084EC96E00E940B0A8091C706BD
|
:101350000E94F5040F900F900F900F9082E0C13A19
|
||||||
:101360009091C806892B71F41092C1061092C006A4
|
:10136000D80779F78091A8028F938091A7028F9375
|
||||||
:101370006091BE067091BF0645E050E084EC96E0B7
|
:101370000E94F5040F900F90DF91CF911F910F9174
|
||||||
:101380000E940B0A8091C40680930F028091C506CB
|
:101380000895C830F1F0C93081F6E0919F02F091E4
|
||||||
:101390009091C6069093B7068093B6061092CA063F
|
:10139000A002DF010D900020E9F7CD018E1B9F0B0D
|
||||||
:1013A0001092C9068091C0069091C1060196909353
|
:1013A0008359924F0E94CD07DDCF60E080911002FB
|
||||||
:1013B000C1068093C0060895F8940E9447090E94D0
|
:1013B0000E94DB06D7CF0E941007D4CF0E945F07A0
|
||||||
:1013C000DB040E94120988EE90E09093BF068093A0
|
:1013C000D1CF0E94A707CECFE0919902F0919A0267
|
||||||
:1013D000BE06EFE2F7E08AE0DF011D928A95E9F7A9
|
:1013D000DF010D900020E9F7CD018E1B9F0B835993
|
||||||
:1013E000E9E3F7E087E0DF011D928A95E9F760E025
|
:1013E000924F0E943E09BECF0F931F93CF93DF937E
|
||||||
:1013F000809110020E94CA06789488E19EE00FB6A0
|
:1013F000E0915C0DE436B0F010925C0DEDE6FDE09E
|
||||||
:10140000F894A895809360000FBE90936000A89513
|
:1014000084E6DF011D928A95E9F789E694E09F93CF
|
||||||
:101410000E946009FCCFFB01DC0102C005900D9227
|
:101410008F930E94F5040F900F90DF91CF911F9151
|
||||||
:1014200041505040D8F70895FB01DC014150504035
|
:101420000F910895F0E0E459F24F80818A3011F075
|
||||||
:1014300088F08D9181341CF08B350CF4805E6191C5
|
:101430008D3099F70DE812E0D0E0C0E0F80181911D
|
||||||
:1014400061341CF06B350CF4605E861B611171F326
|
:1014400091918F01FC0101900020E9F73197AF01E4
|
||||||
:10145000990B0895881BFCCF609142077091430758
|
:10145000481B590B6DE67DE00E94670B892B69F4F0
|
||||||
:101460000C946F0C0F931F93CF93DF93E09142077F
|
:101460008C2F0E947C0910925C0DEDE6FDE084E675
|
||||||
:10147000F0914307238110E000E021FD0EC00FEF43
|
:10147000DF011D928A95E9F7D0CF2196CA30D105B8
|
||||||
:101480001FEFC801DF91CF911F910F91089519951A
|
:10148000E9F68091A4028F938091A3028F930E942A
|
||||||
:10149000892B11F00FEF1FEFCE01EC0189916091C4
|
:10149000F5040F900F90E7CF8091C3029091C402A2
|
||||||
:1014A000420770914307DB011896ED91FC91811181
|
:1014A00090936A02809369028091BD029091BE027E
|
||||||
:1014B000EECF8AE01995892B21F3E1CFAB01BC0176
|
:1014B0009093A8028093A702089582E884BD84E0F7
|
||||||
:1014C00080914207909143070C94660A2F923F92B5
|
:1014C00085BD80E487BD82E080936E0008951F9201
|
||||||
:1014D0004F925F926F927F928F929F92AF92BF9244
|
:1014D0000F920FB60F9211240BB60F922F933F93DA
|
||||||
:1014E000CF92DF92EF92FF920F931F93CF93DF93F0
|
:1014E0004F935F936F937F938F939F93AF93BF932C
|
||||||
:1014F00000D000D000D00F920F92CDB7DEB77C01A4
|
:1014F000EF93FF930E94B40AFF91EF91BF91AF91D8
|
||||||
:101500003B018A01FC0117821682838181FFCEC1D3
|
:101500009F918F917F916F915F914F913F912F911B
|
||||||
:101510009AE0292ECE0101965C01F7019381F30137
|
:101510000F900BBE0F900FBE0F901F9018958093E9
|
||||||
:1015200093FD859193FF81913F01882309F446C182
|
:10152000080108958FEF80BB8093070180930A0123
|
||||||
:10153000853239F493FD859193FF81913F01853286
|
:101530001092080111BAEBE0F1E0108280818F6116
|
||||||
:1015400029F4B70190E00E946F0CE7CF912C412C59
|
:1015400080838FE891E00197F1F700C0000080816F
|
||||||
:10155000512CFFE1F51538F08B3209F188F4803217
|
:101550008E7F808308950E94C2060E9449050E94E2
|
||||||
:1015600001F1833221F157FC3AC020ED280F2A30D7
|
:10156000F40990E080E008956091600D7091610D44
|
||||||
:1015700040F556FE1FC0929C200D1124922E06C0ED
|
:101570006115710529F410926C0D10926B0D089590
|
||||||
:101580008D3291F0803379F7689450F8F30193FD30
|
:1015800080916B0D90916C0D019690936C0D8093F2
|
||||||
:10159000859193FF81913F018111DBCF20C0689439
|
:101590006B0D2091640D3091650D4091690D509156
|
||||||
:1015A00051F8689452F8F2CF689453F8EFCF6894EA
|
:1015A0006A0D8417950720F46217730721F40895D4
|
||||||
:1015B00054F8ECCF429C200D1124422E689455F82B
|
:1015B0006217730761F01092630D1092620D109222
|
||||||
:1015C000E5CF8E3229F456FCF9C0689456F8DECF88
|
:1015C0006C0D10926B0D7093650D6093640D2091FE
|
||||||
:1015D0008C3619F4689457F8D9CF8836B9F2982F19
|
:1015D000620D3091630D45E0429FC001439F900D25
|
||||||
:1015E0009F7D95549330C0F08336A1F18337C1F1CC
|
:1015E0001124680F791F45E050E086E69DE00E94D7
|
||||||
:1015F000833509F05BC0F801C190D1908F01692D4E
|
:1015F0005E0B8091690D90916A0D892B71F41092A8
|
||||||
:1016000070E056FC02C06FEF7FEFC6010E94590CDC
|
:10160000630D1092620D6091600D7091610D45E067
|
||||||
:101610004C01689457F80AC00C5F1F4F2FE32983D1
|
:1016100050E086E69DE00E945E0B8091660D80930F
|
||||||
:1016200088248394912C6501E89457F853FC04C0F6
|
:101620000F028091670D9091680D20915E0D3091B1
|
||||||
:101630004814190409F018F5342C8114910431F57B
|
:101630005F0D820F931F9093540D8093530D109262
|
||||||
:10164000332009F46ACFB70180E290E00E946F0C6A
|
:101640006C0D10926B0D8091620D9091630D01965F
|
||||||
:101650003A94F6CFF801808189830E5F1F4FE0CF67
|
:101650009093630D8093620D0895F8940E94920A0E
|
||||||
:10166000F801C190D1908F01692D70E056FC02C045
|
:101660000E94DB040E945D0A0E944C0A88EE90E012
|
||||||
:101670006FEF7FEFC6010E94640C4C01D5CFB7011C
|
:101670009093610D8093600DE1EDFDE08AE0DF0164
|
||||||
:1016800080E290E00E946F0C4A94D2CFF60157FCA2
|
:101680001D928A95E9F7EBEDFDE087E0DF011D9201
|
||||||
:10169000859157FE81916F01B70190E00E946F0C18
|
:101690008A95E9F760E0809110020E94DB06789459
|
||||||
:1016A00031103A94F1E08F1A9108C7CF843619F0BF
|
:1016A00088E199E20FB6F894A895809360000FBE88
|
||||||
:1016B000893609F074C0F80157FE6AC061917191D2
|
:1016B00090936000A8950E94AB0AFCCFFB01DC016F
|
||||||
:1016C000819191918F01252D2F76D22E97FF09C000
|
:1016C00002C005900D9241505040D8F70895FB019B
|
||||||
:1016D00090958095709561957F4F8F4F9F4F68943F
|
:1016D000DC014150504088F08D9181341CF08B35F5
|
||||||
:1016E000D7F82AE030E0A5010E949F0CC82ECA1846
|
:1016E0000CF4805E619161341CF06B350CF4605E2B
|
||||||
:1016F0008C2C5D2CD6FE0CC0E89450F8C91440F434
|
:1016F000861B611171F3990B0895881BFCCF6091D3
|
||||||
:10170000D4FE05C0D2FC03C0FD2DFE7E5F2E892CC9
|
:10170000E40D7091E50D0C94C20D0F931F93CF93D0
|
||||||
:1017100054FEA4C0FE01EC0DF11D8081803309F060
|
:10171000DF93E091E40DF091E50D238110E000E00E
|
||||||
:1017200096C0252D297E522E852D8870382E53FC8B
|
:1017200021FD0EC00FEF1FEFC801DF91CF911F9178
|
||||||
:10173000A4C050FE9EC09C2C841418F44C0C942C15
|
:101730000F9108951995892B11F00FEF1FEFCE012E
|
||||||
:10174000981854FEA0C0B70180E390E00E946F0C8F
|
:10174000EC0189916091E40D7091E50DDB01189633
|
||||||
:1017500052FE09C088E790E051FE02C088E590E0A3
|
:10175000ED91FC918111EECF8AE01995892B21F34F
|
||||||
:10176000B7010E946F0CC91408F499C0CA94D12C17
|
:10176000E1CFAB01BC018091E40D9091E50D0C94AB
|
||||||
:101770009FEFC91AD90ACA0CDB1CF60182916F01CE
|
:10177000B90B2F923F924F925F926F927F928F920E
|
||||||
:10178000B70190E00E946F0CAC14BD04B1F758CFC4
|
:101780009F92AF92BF92CF92DF92EF92FF920F9310
|
||||||
:1017900061917191072E000C880B990B93CFD52C7A
|
:101790001F93CF93DF9300D000D000D00F920F9211
|
||||||
:1017A000E894D4F82AE030E08537E1F1952D997F6F
|
:1017A000CDB7DEB77C013B018A01FC0117821682AE
|
||||||
:1017B000D92E8F36A9F1F0F4883551F1F7018681E1
|
:1017B000838181FFCEC19AE0292ECE0101965C0182
|
||||||
:1017C00097812B960FB6F894DEBF0FBECDBFDF9189
|
:1017C000F7019381F30193FD859193FF81913F018F
|
||||||
:1017D000CF911F910F91FF90EF90DF90CF90BF902E
|
:1017D000882309F446C1853239F493FD859193FF3E
|
||||||
:1017E000AF909F908F907F906F905F904F903F90C1
|
:1017E00081913F01853229F4B70190E00E94C20D3A
|
||||||
:1017F0002F900895803749F0883701F7D4FE02C052
|
:1017F000E7CF912C412C512CFFE1F51538F08B32BD
|
||||||
:101800006894D2F820E130E00DC06894D4F8F6CFA7
|
:1018000009F188F4803201F1833221F157FC3AC0AA
|
||||||
:1018100054FE03C0E92FE660DE2E20E132E002C074
|
:1018100020ED280F2A3040F556FE1FC0929C200D67
|
||||||
:1018200028E030E0F801D7FE0DC0619171918191FF
|
:101820001124922E06C08D3291F0803379F768949E
|
||||||
:1018300091918F01A5010E949F0CC82ECA18E894AF
|
:1018300050F8F30193FD859193FF81913F01811150
|
||||||
:10184000D7F856CF6191719190E080E0F2CF52FCD1
|
:10184000DBCF20C0689451F8689452F8F2CF6894C6
|
||||||
:1018500002C0839469CF8394839466CF852D867864
|
:1018500053F8EFCF689454F8ECCF429C200D11243C
|
||||||
:1018600009F462CFF6CFB70180E290E00E946F0CDE
|
:10186000422E689455F8E5CF8E3229F456FCF9C023
|
||||||
:1018700083948414C0F3312C64CF342C381884142E
|
:10187000689456F8DECF8C3619F4689457F8D9CFAF
|
||||||
:1018800008F45FCFF8CF852D867809F46CCF8BE212
|
:101880008836B9F2982F9F7D95549330C0F08336F7
|
||||||
:1018900051FE80E257FC8DE2B70190E062CFB701C4
|
:10189000A1F18337C1F1833509F05BC0F801C19034
|
||||||
:1018A00080E390E00E946F0C9A945DCF8FEF9FEFE2
|
:1018A000D1908F01692D70E056FC02C06FEF7FEF81
|
||||||
:1018B00088CFFC010590615070400110D8F78095E9
|
:1018B000C6010E94AC0D4C01689457F80AC00C5F39
|
||||||
:1018C00090958E0F9F1F0895FC016150704001900C
|
:1018C0001F4F2FE3298388248394912C6501E8948A
|
||||||
:1018D0000110D8F7809590958E0F9F1F08950F9354
|
:1018D00057F853FC04C04814190409F018F5342CC7
|
||||||
:1018E0001F93CF93DF93182F092FEB018B8181FD7D
|
:1018E0008114910431F5332009F46ACFB70180E205
|
||||||
:1018F00009C01FEF0FEF812F902FDF91CF911F9124
|
:1018F00090E00E94C20D3A94F6CFF801808189836E
|
||||||
:101900000F91089582FF14C02E813F818C819D81AB
|
:101900000E5F1F4FE0CFF801C190D1908F01692D7C
|
||||||
:10191000281739073CF4E881F981CF0101969983B2
|
:1019100070E056FC02C06FEF7FEFC6010E94B70D6A
|
||||||
:10192000888310838E819F8101969F838E83E3CF6E
|
:101920004C01D5CFB70180E290E00E94C20D4A94ED
|
||||||
:10193000E885F985812F1995892BA1F3DACFFA0172
|
:10193000D2CFF60157FC859157FE81916F01B70117
|
||||||
:10194000AA27283051F1203181F1E8946F936E7FFE
|
:1019400090E00E94C20D31103A94F1E08F1A910894
|
||||||
:101950006E5F7F4F8F4F9F4FAF4FB1E03ED0B4E0EF
|
:10195000C7CF843619F0893609F074C0F80157FEF4
|
||||||
:101960003CD0670F781F891F9A1FA11D680F791F30
|
:101960006AC061917191819191918F01252D2F769E
|
||||||
:101970008A1F911DA11D6A0F711D811D911DA11D41
|
:10197000D22E97FF09C090958095709561957F4F05
|
||||||
:1019800020D009F468943F912AE0269F1124301951
|
:101980008F4F9F4F6894D7F82AE030E0A5010E945E
|
||||||
:10199000305D3193DEF6CF010895462F4770405DEC
|
:10199000F20DC82ECA188C2C5D2CD6FE0CC0E89413
|
||||||
:1019A0004193B3E00FD0C9F7F6CF462F4F70405D9B
|
:1019A00050F8C91440F4D4FE05C0D2FC03C0FD2D8C
|
||||||
:1019B0004A3318F0495D31FD4052419302D0A9F7F6
|
:1019B000FE7E5F2E892C54FEA4C0FE01EC0DF11DAD
|
||||||
:1019C000EACFB4E0A6959795879577956795BA95F0
|
:1019C0008081803309F096C0252D297E522E852DE9
|
||||||
:1019D000C9F700976105710508959B01AC010A2EB6
|
:1019D0008870382E53FCA4C050FE9EC09C2C8414EA
|
||||||
:1019E00006945795479537952795BA95C9F7620F8D
|
:1019E00018F44C0C942C981854FEA0C0B70180E356
|
||||||
:0E19F000731F841F951FA01D0895F894FFCF4C
|
:1019F00090E00E94C20D52FE09C088E790E051FEBF
|
||||||
:1019FE0000000002000000002A05000000000101A6
|
:101A000002C088E590E0B7010E94C20DC91408F435
|
||||||
:101A0E0001E8009701A002000000000000000000A5
|
:101A100099C0CA94D12C9FEFC91AD90ACA0CDB1CF1
|
||||||
:101A1E000000000000FF0603FFFFFFFFFFFFFF3582
|
:101A2000F60182916F01B70190E00E94C20DAC14E3
|
||||||
:101A2E000341034E0352035A03600369030000008F
|
:101A3000BD04B1F758CF61917191072E000C880B4E
|
||||||
:101A3E00000200000000010000000004020000008F
|
:101A4000990B93CFD52CE894D4F82AE030E0853771
|
||||||
:101A4E000000000000000000000000000000000088
|
:101A5000E1F1952D997FD92E8F36A9F1F0F48835D3
|
||||||
:101A5E000000000000700313049B04260530053BB4
|
:101A600051F1F701868197812B960FB6F894DEBF6E
|
||||||
:101A6E000545055105570560056E05760582052667
|
:101A70000FBECDBFDF91CF911F910F91FF90EF90DF
|
||||||
:101A7E000590053B0545055105570560059B05A0DD
|
:101A8000DF90CF90BF90AF909F908F907F906F909E
|
||||||
:101A8E0005A605AC05B105B605BF05C305CD05D444
|
:101A90005F904F903F902F900895803749F088379E
|
||||||
:101A9E0005D905DF05F00504061E06350646065E69
|
:101AA00001F7D4FE02C06894D2F820E130E00DC006
|
||||||
:101AAE00066606720688069706A606494E49540D26
|
:101AB0006894D4F8F6CF54FE03C0E92FE660DE2E1A
|
||||||
:101ABE00004D6F76696E6720746F77617264732064
|
:101AC00020E132E002C028E030E0F801D7FE0DC08E
|
||||||
:101ACE0025730020202020257300596F7520686132
|
:101AD00061917191819191918F01A5010E94F20D07
|
||||||
:101ADE0076653A00596F757220696E76656E746F11
|
:101AE000C82ECA18E894D7F856CF6191719190E04A
|
||||||
:101AEE00727920697320656D70747900596F752055
|
:101AF00080E0F2CF52FC02C0839469CF8394839438
|
||||||
:101AFE00666F756E64206120257300596F752074B2
|
:101B000066CF852D867809F462CFF6CFB70180E2E3
|
||||||
:101B0E006F6F6B2074686520257300596F752063A5
|
:101B100090E00E94C20D83948414C0F3312C64CFF2
|
||||||
:101B1E00616E3A000A546F6F206D75636820696EAE
|
:101B2000342C3818841408F45FCFF8CF852D8678CC
|
||||||
:101B2E007075742100464C4F505059204449534B08
|
:101B300009F46CCF8BE251FE80E257FC8DE2B701D5
|
||||||
:101B3E0000534352455720445249564552004B4597
|
:101B400090E062CFB70180E390E00E94C20D9A94CA
|
||||||
:101B4E0059005341555341474500464C45534800B3
|
:101B50005DCF8FEF9FEF88CFFC0105906150704003
|
||||||
:101B5E004B4559424F41524400504953544F4C004B
|
:101B60000110D8F7809590958E0F9F1F0895FC0166
|
||||||
:101B6E00596F7520737461726520696E746F206190
|
:101B70006150704001900110D8F7809590958E0FBC
|
||||||
:101B7E0020766F6964206F66206E6F7468696E6779
|
:101B80009F1F08950F931F93CF93DF93182F092F53
|
||||||
:101B8E006E6573732E20596F7520736565206E6FA9
|
:101B9000EB018B8181FD09C01FEF0FEF812F902F8B
|
||||||
:101B9E006F6E652C20796F752068656172206E6F8F
|
:101BA000DF91CF911F910F91089582FF14C02E8174
|
||||||
:101BAE006F6E652C796F75206665656C20736F6D31
|
:101BB0003F818C819D81281739073CF4E881F981A8
|
||||||
:101BBE00656F6E652E0A596F75206C6F6F6B2061A5
|
:101BC000CF0101969983888310838E819F8101962E
|
||||||
:101BCE00726F756E642C20616E6420736565206E75
|
:101BD0009F838E83E3CFE885F985812F1995892B23
|
||||||
:101BDE006F7468696E672C2079657420796F752033
|
:101BE000A1F3DACFFA01AA27283051F1203181F18F
|
||||||
:101BEE00617265206E6F206C657373207363617212
|
:101BF000E8946F936E7F6E5F7F4F8F4F9F4FAF4F15
|
||||||
:101BFE0065642E20596F75206861766520776F6E4B
|
:101C0000B1E03ED0B4E03CD0670F781F891F9A1F27
|
||||||
:101C0E002E2E00596F7520617265206F6E207468DC
|
:101C1000A11D680F791F8A1F911DA11D6A0F711DDB
|
||||||
:101C1E0065206465616420656E64206F66206120B6
|
:101C2000811D911DA11D20D009F468943F912AE0E7
|
||||||
:101C2E006C6F6E656C7920726F61642E20596F75C2
|
:101C3000269F11243019305D3193DEF6CF010895CF
|
||||||
:101C3E00206C6F6F6B20726967687420616E642010
|
:101C4000462F4770405D4193B3E00FD0C9F7F6CF00
|
||||||
:101C4E006C656674206F66796F752C206275740AE8
|
:101C5000462F4F70405D4A3318F0495D31FD4052C8
|
||||||
:101C5E00796F752063616E6E6F742072656D656D40
|
:101C6000419302D0A9F7EACFB4E0A695979587955E
|
||||||
:101C6E006265722077687920796F752061726520C0
|
:101C700077956795BA95C9F700976105710508953D
|
||||||
:101C7E00686572652E2E2E20596F75206172652053
|
:101C80009B01AC010A2E06945795479537952795E9
|
||||||
:101C8E007465727269666965642E00596F75207489
|
:101C9000BA95C9F7620F731F841F951FA01D089581
|
||||||
:101C9E00726176656C20612062697420746F776161
|
:041CA000F894FFCFE6
|
||||||
:101CAE0072647320746865206D6F6F6E2C20796F6F
|
:101CA40000000002000000002A05000000000101FD
|
||||||
:101CBE0075207468696E6B20746861742773207464
|
:101CB40001E8009701A0029701A0020000000000C3
|
||||||
:101CCE0068652077617920746F20676F2E20596FB9
|
:101CC4000000000000FF0603FF0501FF0200FF7A89
|
||||||
:101CDE00752066696E642061200A626561722069F2
|
:101CD40004860492049B04A304A904AD0400000038
|
||||||
:101CEE006E20746865206D6964646C65206F662073
|
:101CE40000020000000001000000020400000000E7
|
||||||
:101CFE0074686520726F616420736C656570696EBF
|
:101CF40003070409060800050000050000000600AB
|
||||||
:101D0E0067207365656D696E676C7920696E2070EA
|
:101D04000000000005B40448050000D10580062940
|
||||||
:101D1E00656163652E0046495245504C414345006E
|
:101D140007C707660810096409460A4E0A5A0A6882
|
||||||
:101D2E00572F5720535452454554004F4C4420488A
|
:101D24000A720A7D0A870A930A990AA20AB00AB5B6
|
||||||
:101D3E004F555345004C4956494E4720524F4F4D33
|
:101D34000ABB0AC10AC60ACB0AD40AD80AE20AE9CB
|
||||||
:101D4E0000415454494300424153454D454E5400C1
|
:101D44000AEE0AF40A050B0000190B300B410B597B
|
||||||
:101D5E00434F4D505554455220524F4F4D004E4F0C
|
:101D54000B610B6D0B830B920BA10BB00BC60B002D
|
||||||
:101D6E005448494E47004C4F4E454C5920524F4116
|
:101D6400000000E00B970C494E49540D004D6F766E
|
||||||
:101D7E004400532F4E204449525420524F414400A8
|
:101D7400696E6720746F7761726473202573002025
|
||||||
:101D8E00452F57205374726565740068656C70003A
|
:101D8400202020257300596F7520686176653A001C
|
||||||
:101D9E006E6F72746800736F757468007765737414
|
:101D9400596F757220696E76656E746F72792069F9
|
||||||
:101DAE0000656173740064657363726962650075C2
|
:101DA4007320656D70747900596F7520666F756E58
|
||||||
:101DBE00736500696E76656E746F72790073656116
|
:101DB40064206120257300596F7520746F6F6B2048
|
||||||
:101DCE007263680074616B65004552524F52004950
|
:101DC40074686520257300546861742773206E6FEE
|
||||||
:101DDE006E76616C696420636F6D6D616E64210057
|
:101DD4007420686572652E2E2E00596F7520636F0E
|
||||||
:101DEE00596F752063616E27742075736520746852
|
:101DE4006E6E656374656420746865206B657962E2
|
||||||
:101DFE0061742100576861742061726520796F7576
|
:101DF4006F61726400596F7520696E7365746564F0
|
||||||
:101E0E0020676F696E6720746F20646F3F00596F93
|
:101E04002074686520666C6F707079206469736BE8
|
||||||
:101E1E00752063616E277420676F2074686174206B
|
:101E140000596F7520696E73657274656420746807
|
||||||
:101E2E007761792100594F55204D41592041435436
|
:101E24006520666C65736820696E746F20746865DC
|
||||||
:101E3E00204E4F5721005468657265206973206EDD
|
:101E340020666C6F70707920647269766500596FE2
|
||||||
:101E4E006F7468696E6720686572652E2E006974FE
|
:101E4400752073746172742074686520636F6D709B
|
||||||
:101E5E0020646965640069742073757276697665AD
|
:101E5400757465722077697468207468652073638B
|
||||||
:101E6E00640061206265617220626C6F636B732027
|
:101E64007265776472697665722C20736974206474
|
||||||
:101E7E00746865207761790069742072616E2061E3
|
:101E74006F776E20616E6420776174636820697483
|
||||||
:101E8E007761792E2E2E00697420776F6E2774205D
|
:101E840020626F6F7420696E746F206120746578AE
|
||||||
:101E9E00737461727400796F752063616E2774209C
|
:101E940074616476656E747572653A00596F752065
|
||||||
:061EAE007479706500006C
|
:101EA40063727920666F722068656C702E204974A5
|
||||||
|
:101EB4002773206E6F207573652E20596F7520610E
|
||||||
|
:101EC4007474656D707420746F2073686F6F742000
|
||||||
|
:101ED400796F757273656C662E2049742773206E52
|
||||||
|
:101EE4006F207573652E2E2E20596F752072756EB6
|
||||||
|
:101EF400206F7574206F662062756C6C6574730056
|
||||||
|
:101F0400596F752063616E3A000A546F6F206D75C6
|
||||||
|
:101F1400636820696E7075742100464C4F505059A7
|
||||||
|
:101F2400204449534B005343524557445249564564
|
||||||
|
:101F340052004B4559424F4152440053415553417D
|
||||||
|
:101F4400474500464C455348004B455900504953BA
|
||||||
|
:101F5400544F4C00596F7520737461726520696E1B
|
||||||
|
:101F6400746F206120766F6964206F66206E6F74D1
|
||||||
|
:101F740068696E676E6573732E20596F752073657B
|
||||||
|
:101F840065206E6F6F6E652C20796F7520686561B2
|
||||||
|
:101F940072206E6F6F6E652C796F75206665656C47
|
||||||
|
:101FA40020736F6D656F6E652E20596F75206C6F91
|
||||||
|
:101FB4006F6B2061726F756E642C20616E64207388
|
||||||
|
:101FC4006565206E6F7468696E672C20796574206E
|
||||||
|
:101FD400796F7520617265206E6F206C6573732054
|
||||||
|
:101FE4007363617265642E00596F75206172652098
|
||||||
|
:101FF4006F6E20746865206465616420656E64207A
|
||||||
|
:102004006F662061206C6F6E656C7920726F6164FD
|
||||||
|
:102014002E20596F75206C6F6F6B2072696768741E
|
||||||
|
:1020240020616E64206C656674206F6620796F751C
|
||||||
|
:102034002C2062757420796F752063616E6E6F74E5
|
||||||
|
:102044002072656D656D6265722077687920796F9D
|
||||||
|
:10205400752061726520686572652E2E2E20596F79
|
||||||
|
:102064007520617265207465727269666965642E93
|
||||||
|
:1020740000596F752066696E642061206669726517
|
||||||
|
:10208400706C61636520696E20746865206D696495
|
||||||
|
:10209400646C65206F662074686520776F6F647365
|
||||||
|
:1020A4002E204120737472656574206C65616473BD
|
||||||
|
:1020B40020746F2069742066726F6D2074686520C7
|
||||||
|
:1020C400776573742E20546865206669726520698B
|
||||||
|
:1020D4006E20746865206D6964646C65206F662089
|
||||||
|
:1020E40074686520706C616365206973207374691A
|
||||||
|
:1020F4006C6C206275726E696E672061732069660C
|
||||||
|
:1021040020736F6D656F6E6520686164206C656611
|
||||||
|
:102114007420696E20612068757272792E2E2E00EB
|
||||||
|
:10212400596F752074726176656C20646F776E20C8
|
||||||
|
:1021340074686520726F61642E204974206861732D
|
||||||
|
:10214400206E6F206C69676874732C20627574202C
|
||||||
|
:10215400746865206D6F6F6E207368696E65732097
|
||||||
|
:102164006272696768742E2054686520726F6164B6
|
||||||
|
:1021740020656E64732077697468206120686F75C8
|
||||||
|
:10218400736520746F20796F7572206C6566742E88
|
||||||
|
:102194002054686520686F7573657320646F6F726F
|
||||||
|
:1021A400206D617420697320696E207468652072E3
|
||||||
|
:1021B4006F61642E2049747320646F6F7220697399
|
||||||
|
:1021C400206C6F636B65642E00596F7520656E74A7
|
||||||
|
:1021D400657220746865206C6F6E672068616C6C32
|
||||||
|
:1021E400776179206F6620746865206F6C6420685D
|
||||||
|
:1021F4006F7573652E2049742068617320646F6F56
|
||||||
|
:102204007273206F6E20616C6C2077616C6C732E1E
|
||||||
|
:102214002054686520646F6F7273206C6F6F6B203D
|
||||||
|
:1022240061206C6974746C652077656972656420DB
|
||||||
|
:102234006265636175736520746865792061726590
|
||||||
|
:1022440020666C617420616E6420646F6E27742054
|
||||||
|
:102254006861766520612068616E646C6520746FC6
|
||||||
|
:102264002070756C6C2E00596F7520656E746572E4
|
||||||
|
:102274002061206C6172676520726F6F6D207769D1
|
||||||
|
:1022840074682061206665772063686169727320D1
|
||||||
|
:10229400616E642061207475626520545620696EF5
|
||||||
|
:1022A400736964652069742E20496E207468652002
|
||||||
|
:1022B40063656E7465722074686572652069732045
|
||||||
|
:1022C400612074696C65207461626C65207769743F
|
||||||
|
:1022D400682061207661736520616E6420666C6F8E
|
||||||
|
:1022E40077657273206F6E2069742E2054686520A0
|
||||||
|
:1022F400666C6F776572732061726520626C6F6FB4
|
||||||
|
:102304006D696E672E00596F7520656E7465722055
|
||||||
|
:10231400746865206174746963206F6620746865ED
|
||||||
|
:1023240020686F7573652E2049742068617320617D
|
||||||
|
:102334002066657720626F6F6B7320616E64207313
|
||||||
|
:102344006F6D652066696C657273207769746820A7
|
||||||
|
:10235400646F63756D656E747320696E736964650B
|
||||||
|
:102364002069742E205468652066696C6572732038
|
||||||
|
:1023740061726520676C75656420746F6765746845
|
||||||
|
:1023840065722E2054686520626F6F6B7320746FC2
|
||||||
|
:102394006F2E20596F752063616E277420737461EA
|
||||||
|
:1023A4006E642075702073747261696768742E009E
|
||||||
|
:1023B400596F7520656E746572207468652062615A
|
||||||
|
:1023C40073656D656E742E20596F752066696E6431
|
||||||
|
:1023D40020736F6D6520706F7461746F657320690D
|
||||||
|
:1023E4006E206120636F726E657220616E6420617D
|
||||||
|
:1023F40020736B656C65746F6E2061746F702069F7
|
||||||
|
:10240400742E2000596F7520656E746572206120EA
|
||||||
|
:10241400726F6F6D207768696368206C6F6F6B7380
|
||||||
|
:10242400206C696B6520796F7527766520747261FD
|
||||||
|
:1024340076656C65642066726F6D20616E206F6CCA
|
||||||
|
:102444006420686F75736520746F207468652063F9
|
||||||
|
:10245400616D707573206F66206120756E69766595
|
||||||
|
:1024640072736974792E20546865726520697320CB
|
||||||
|
:1024740061206C61726765206D616368696E6520B7
|
||||||
|
:102484007769746861207369676E202044494749FD
|
||||||
|
:1024940054414C206F6E2069742E204974206C6F57
|
||||||
|
:1024A4006F6B73206C696B65206120636F6D707551
|
||||||
|
:1024B4007465722C2074686F75676820796F75274E
|
||||||
|
:1024C4007665206E65766572207365656E206F6E25
|
||||||
|
:1024D4006520696E20706572736F6E206265666F29
|
||||||
|
:1024E40072652E2E2E004E4F5448494E47004C4FD5
|
||||||
|
:1024F4004E454C5920524F414400532F4E204449DD
|
||||||
|
:10250400525420524F41440046495245504C414395
|
||||||
|
:102514004500452F5720537472656574004F4C4431
|
||||||
|
:1025240020484F555345004C4956494E4720524F79
|
||||||
|
:102534004F4D00415454494300424153454D454E8B
|
||||||
|
:102544005400434F4D505554455220524F4F4D0067
|
||||||
|
:1025540068656C70006E6F72746800736F75746870
|
||||||
|
:1025640000776573740065617374006465736372E6
|
||||||
|
:102574006962650075736500696E76656E746F7265
|
||||||
|
:1025840079007365617263680074616B650045521C
|
||||||
|
:10259400524F5200496E76616C696420636F6D6DB1
|
||||||
|
:1025A400616E642100596F752063616E2774207514
|
||||||
|
:1025B400736520746861742100596F752063616EBE
|
||||||
|
:1025C400277420676F207468617420776179210013
|
||||||
|
:1025D400594F55204D415920414354204E4F5721C6
|
||||||
|
:1025E400005468657265206973206E6F7468696E43
|
||||||
|
:1025F4006720686572652E2E0069742064696564BD
|
||||||
|
:10260400006974207375727669766564006120626E
|
||||||
|
:1026140065617220626C6F636B73207468652077E8
|
||||||
|
:1026240061790069742072616E20617761792E2E60
|
||||||
|
:102634002E00697420776F6E27742073746172742E
|
||||||
|
:1026440000796F752063616E27742074797065005A
|
||||||
|
:10265400796F7520756E6C6F636B65642074686543
|
||||||
|
:1026640020646F6F7200576861742061726520790D
|
||||||
|
:102674006F7520676F696E6720746F20646F3F0009
|
||||||
|
:10268400596F752074726176656C2061206269747B
|
||||||
|
:1026940020746F776172647320746865206D6F6F46
|
||||||
|
:1026A4006E2C20796F75207468696E6B2074686174
|
||||||
|
:1026B400742773207468652077617920746F2067AC
|
||||||
|
:1026C4006F2E20596F752066696E642061206265E3
|
||||||
|
:1026D400617220696E20746865206D6964646C653C
|
||||||
|
:1026E400206F662074686520726F616420736C6566
|
||||||
|
:1026F4006570696E67207365656D696E676C7920B6
|
||||||
|
:10270400696E2070656163652E2054686520776169
|
||||||
|
:102714007920746F20746865206E6F727468206904
|
||||||
|
:102724007320626C6F636B656420627920746865E2
|
||||||
|
:1027340020626561722E00596F7520617472617632
|
||||||
|
:10274400656C20612062697420746F7761726473B0
|
||||||
|
:1027540020746865206D6F6F6E2C20796F75204B27
|
||||||
|
:102764004E4F57207468617427732074686520770E
|
||||||
|
:10277400617920746F20676F2E20596F7520736DF7
|
||||||
|
:10278400656C6C20736F6D657468696E672077651E
|
||||||
|
:102794006972656420616C6F6E6720746865207768
|
||||||
|
:1027A40061792C2062757420796F7520646F6E27AF
|
||||||
|
:1027B40074206B6E6F77207768657265206974206A
|
||||||
|
:1027C400697320636F6D696E672066726F6D2E206A
|
||||||
|
:1027D400536D656C6C73206C696B6520666C6573F6
|
||||||
|
:1027E4006820726F7474696E6720617761792E2E28
|
||||||
|
:0227F4002E00B5
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -33,6 +33,12 @@
|
||||||
#define UART_REG_MSR 6
|
#define UART_REG_MSR 6
|
||||||
#define UART_REG_SCR 7
|
#define UART_REG_SCR 7
|
||||||
|
|
||||||
|
/* The printf function in the background performs automatic column wrapping by
|
||||||
|
* finding the first space character within 10 characters ofthe display columns
|
||||||
|
* and replacingit with a newline character
|
||||||
|
*/
|
||||||
|
#define DISPLAY_COLUMNS 80
|
||||||
|
|
||||||
void init_16550();
|
void init_16550();
|
||||||
void write_to_uart(uint8_t addr, uint8_t data);
|
void write_to_uart(uint8_t addr, uint8_t data);
|
||||||
uint8_t read_from_uart(uint8_t addr);
|
uint8_t read_from_uart(uint8_t addr);
|
||||||
|
|
|
@ -23,6 +23,13 @@
|
||||||
extern char command_buffer[100];
|
extern char command_buffer[100];
|
||||||
extern uint8_t command_buffer_pointer;
|
extern uint8_t command_buffer_pointer;
|
||||||
|
|
||||||
|
#define COMPUTER_STATE_NOTHING 0
|
||||||
|
#define COMPUTER_STATE_KEYBOARD 1
|
||||||
|
#define COMPUTER_STATE_FLOPPY 2
|
||||||
|
extern uint8_t computer_state; /* FSM for the computer */
|
||||||
|
|
||||||
|
extern bool bear_shot;
|
||||||
|
|
||||||
extern uint8_t current_room;
|
extern uint8_t current_room;
|
||||||
|
|
||||||
void routine_game();
|
void routine_game();
|
||||||
|
@ -33,8 +40,12 @@ void move_direction(uint8_t direction);
|
||||||
void describe_room(uint8_t room, bool auto_desc);
|
void describe_room(uint8_t room, bool auto_desc);
|
||||||
void print_inventory();
|
void print_inventory();
|
||||||
void print_room_item();
|
void print_room_item();
|
||||||
void consume_room_item();
|
void consume_room_item(const char* item_name);
|
||||||
|
|
||||||
void use_item(const char* item_name);
|
void use_item(const char* item_name);
|
||||||
void use_item_id(uint8_t item_id);
|
void use_item_id(uint8_t item_id);
|
||||||
|
|
||||||
|
bool perform_computer_action(uint8_t action_id);
|
||||||
|
void reset_game(bool fleshed);
|
||||||
|
void init_game();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -38,8 +38,10 @@ extern const struct tone_t lonely_road_track[] PROGMEM;
|
||||||
extern const struct tone_t intro_track[] PROGMEM;
|
extern const struct tone_t intro_track[] PROGMEM;
|
||||||
|
|
||||||
extern const struct tone_t * current_track;
|
extern const struct tone_t * current_track;
|
||||||
|
extern int16_t global_frequency_offset; /* Added to every playing song */
|
||||||
|
|
||||||
void update_sound();
|
void update_sound();
|
||||||
void init_sound();
|
void init_sound();
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -51,25 +51,27 @@
|
||||||
#define ROOM_LIVINGROOM 0x06
|
#define ROOM_LIVINGROOM 0x06
|
||||||
#define ROOM_ATTIC 0x07
|
#define ROOM_ATTIC 0x07
|
||||||
#define ROOM_BASEMENT 0x08
|
#define ROOM_BASEMENT 0x08
|
||||||
#define ROOM_COMPUTERROM 0x09
|
#define ROOM_COMPUTER 0x09
|
||||||
|
|
||||||
#define NUM_ITEMS 0x07
|
#define NUM_ITEMS 0x07
|
||||||
#define ITEM_FLOPPY 0x00
|
#define ITEM_FLOPPY 0x00
|
||||||
#define ITEM_SCREWDRIVER 0x01
|
#define ITEM_SCREWDRIVER 0x01
|
||||||
#define ITEM_KEY 0x02
|
#define ITEM_KEYBOARD 0x02
|
||||||
#define ITEM_SAUSAGE 0x03
|
#define ITEM_SAUSAGE 0x03
|
||||||
#define ITEM_FLESH 0x04
|
#define ITEM_FLESH 0x04
|
||||||
#define ITEM_KEYBOARD 0x05
|
#define ITEM_KEY 0x05
|
||||||
#define ITEM_PISTOL 0x06
|
#define ITEM_PISTOL 0x06
|
||||||
|
|
||||||
extern const uint8_t sine_table[256] PROGMEM;
|
extern const uint8_t sine_table[256] PROGMEM;
|
||||||
extern const uint8_t noise_table[1024] PROGMEM;
|
extern const uint8_t noise_table[1024] PROGMEM;
|
||||||
extern const char* text_table[];
|
|
||||||
|
extern char* sndirtroad_msg[2];
|
||||||
|
extern char* user_action_req_msgs[3];
|
||||||
|
|
||||||
extern const char* info_table[];
|
extern const char* info_table[];
|
||||||
extern const char* action_table[NUM_ACTIONS];
|
extern const char* action_table[NUM_ACTIONS];
|
||||||
extern const char* room_table[NUM_ROOMS];
|
extern const char* room_table[NUM_ROOMS];
|
||||||
extern const char* room_description_table[NUM_ROOMS];
|
extern char* room_description_table[NUM_ROOMS];
|
||||||
extern uint8_t room_map_table[NUM_ROOMS][4];
|
extern uint8_t room_map_table[NUM_ROOMS][4];
|
||||||
extern bool room_visited_table[NUM_ROOMS];
|
extern bool room_visited_table[NUM_ROOMS];
|
||||||
extern const char* item_table[NUM_ITEMS];
|
extern const char* item_table[NUM_ITEMS];
|
||||||
|
|
|
@ -81,7 +81,14 @@ int println(const char* output, ...){
|
||||||
|
|
||||||
/* Writes a character to the 16550 uart for transmission with cr lf magic */
|
/* Writes a character to the 16550 uart for transmission with cr lf magic */
|
||||||
int putchar_16550(char var, FILE *stream __attribute__((unused))){
|
int putchar_16550(char var, FILE *stream __attribute__((unused))){
|
||||||
|
static uint8_t column_cnt = 0;
|
||||||
|
column_cnt++;
|
||||||
|
if(var == ' ' && column_cnt > (DISPLAY_COLUMNS - 10)){
|
||||||
|
putchar_16550('\n',NULL);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if(var == '\n'){
|
if(var == '\n'){
|
||||||
|
column_cnt = 0x00;
|
||||||
writechar_16550('\r');
|
writechar_16550('\r');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,8 @@ uint8_t command_buffer_pointer = 0x00;
|
||||||
|
|
||||||
uint8_t current_room = ROOM_LONELYROAD;
|
uint8_t current_room = ROOM_LONELYROAD;
|
||||||
|
|
||||||
|
uint8_t computer_state = 0;
|
||||||
|
bool bear_shot = false;
|
||||||
|
|
||||||
void routine_game(){
|
void routine_game(){
|
||||||
|
|
||||||
|
@ -106,7 +108,8 @@ void perform_action(uint8_t action_id){
|
||||||
print_room_item();
|
print_room_item();
|
||||||
break;
|
break;
|
||||||
case ACTION_TAKE:
|
case ACTION_TAKE:
|
||||||
consume_room_item();
|
consume_room_item(command_buffer+
|
||||||
|
strlen(action_table[ACTION_TAKE])+1);
|
||||||
break;
|
break;
|
||||||
case ACTION_USE:
|
case ACTION_USE:
|
||||||
use_item(command_buffer+
|
use_item(command_buffer+
|
||||||
|
@ -178,15 +181,30 @@ void print_room_item(){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void consume_room_item(){
|
void consume_room_item(const char* item_name){
|
||||||
if(item_room_map[current_room] < 0){
|
if(item_room_map[current_room] < 0){
|
||||||
println(info_table[6]);
|
println(info_table[6]);
|
||||||
}else{
|
}else{
|
||||||
|
for(int8_t i = 0; i < NUM_ITEMS; i++){
|
||||||
|
if(strncasecmp(item_table[i], item_name,
|
||||||
|
strlen(item_table[i])) == 0){
|
||||||
|
|
||||||
|
if(item_room_map[current_room] != i){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
println("You took the %s",
|
println("You took the %s",
|
||||||
item_table[item_room_map[current_room]]);
|
item_table[item_room_map[
|
||||||
|
current_room]]);
|
||||||
|
|
||||||
inventory[item_room_map[current_room]] = true;
|
inventory[item_room_map[current_room]] = true;
|
||||||
item_room_map[current_room] = -1;
|
item_room_map[current_room] = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
println("That's not here...");
|
||||||
|
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -222,9 +240,139 @@ void use_item_id(uint8_t item_id){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ITEM_PISTOL:
|
||||||
|
if(current_room == ROOM_SNDIRTROAD){
|
||||||
|
room_map_table[current_room][DIRECTION_NORTH] =
|
||||||
|
ROOM_FIREPLACE;
|
||||||
|
println(info_table[7]);
|
||||||
|
bear_shot = true;
|
||||||
|
return;
|
||||||
|
} else if(current_room == ROOM_NOTHING){
|
||||||
|
/* The real end i guess. I won't put this in the
|
||||||
|
* info table as it *SHOULD* only be displayed
|
||||||
|
* once.
|
||||||
|
*/
|
||||||
|
println("You cry for help. It's no use. You "
|
||||||
|
"attempt to shoot yourself. It's no "
|
||||||
|
"use... You run out of bullets");
|
||||||
|
inventory[ITEM_PISTOL] = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ITEM_KEY:
|
||||||
|
if(current_room == ROOM_EWSTREET){
|
||||||
|
inventory[ITEM_KEY] = false;
|
||||||
|
room_map_table[current_room][DIRECTION_NORTH] =
|
||||||
|
ROOM_OLDHOUSE;
|
||||||
|
println(info_table[13]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ITEM_FLOPPY:
|
||||||
|
case ITEM_FLESH:
|
||||||
|
case ITEM_SCREWDRIVER:
|
||||||
|
case ITEM_KEYBOARD:
|
||||||
|
if(current_room == ROOM_COMPUTER){
|
||||||
|
if(perform_computer_action(item_id)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
break;
|
||||||
};
|
};
|
||||||
println(info_table[2]);
|
println(info_table[2]);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool perform_computer_action(uint8_t item_id){
|
||||||
|
|
||||||
|
static bool fleshed = false;
|
||||||
|
if(item_id == ITEM_KEYBOARD &&
|
||||||
|
computer_state == COMPUTER_STATE_NOTHING){
|
||||||
|
computer_state = COMPUTER_STATE_KEYBOARD;
|
||||||
|
inventory[item_id] = false;
|
||||||
|
println("You connected the keyboard");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(item_id == ITEM_FLOPPY &&
|
||||||
|
computer_state == COMPUTER_STATE_KEYBOARD){
|
||||||
|
computer_state = COMPUTER_STATE_FLOPPY;
|
||||||
|
inventory[item_id] = false;
|
||||||
|
println("You inseted the floppy disk");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(item_id == ITEM_FLESH &&
|
||||||
|
computer_state == COMPUTER_STATE_KEYBOARD){
|
||||||
|
computer_state = COMPUTER_STATE_FLOPPY;
|
||||||
|
inventory[item_id] = false;
|
||||||
|
println("You inserted the flesh into the floppy drive");
|
||||||
|
fleshed = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(item_id == ITEM_SCREWDRIVER &&
|
||||||
|
computer_state == COMPUTER_STATE_FLOPPY){
|
||||||
|
computer_state = COMPUTER_STATE_FLOPPY;
|
||||||
|
inventory[item_id] = false;
|
||||||
|
/* Perform a reset of the game */
|
||||||
|
println("You start the computer with the screwdriver, sit down"
|
||||||
|
" and watch it boot into a textadventure:");
|
||||||
|
|
||||||
|
reset_game(fleshed);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
/* Resets the game into "original" state or the bear dead state or the FLESH
|
||||||
|
* game state. FLESH is basically the end. You need to reset your computer
|
||||||
|
* afterwards.
|
||||||
|
*/
|
||||||
|
void reset_game(bool fleshed){
|
||||||
|
|
||||||
|
/* clear inventory */
|
||||||
|
memset(inventory, 0, sizeof(inventory));
|
||||||
|
/* Reset rooms visited */
|
||||||
|
memset(room_visited_table, 0, sizeof(inventory));
|
||||||
|
/* Reset items in rooms */
|
||||||
|
for(size_t i = 0; i < NUM_ROOMS; i++){
|
||||||
|
item_room_map[i] = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(fleshed){
|
||||||
|
current_room = ROOM_NOTHING;
|
||||||
|
inventory[ITEM_PISTOL] = true;
|
||||||
|
}else if(bear_shot){
|
||||||
|
current_room = ROOM_LONELYROAD;
|
||||||
|
room_description_table[ROOM_SNDIRTROAD] = sndirtroad_msg[1];
|
||||||
|
item_room_map[ROOM_SNDIRTROAD] = ITEM_FLESH;
|
||||||
|
|
||||||
|
}else{
|
||||||
|
current_room = ROOM_LONELYROAD;
|
||||||
|
room_map_table[ROOM_SNDIRTROAD][DIRECTION_NORTH] = 0x00;
|
||||||
|
item_room_map[ROOM_SNDIRTROAD] = ITEM_SAUSAGE;
|
||||||
|
item_room_map[ROOM_LONELYROAD] = ITEM_PISTOL;
|
||||||
|
item_room_map[ROOM_BASEMENT] = ITEM_FLOPPY;
|
||||||
|
}
|
||||||
|
|
||||||
|
item_room_map[ROOM_EWSTREET] = ITEM_KEY;
|
||||||
|
item_room_map[ROOM_OLDHOUSE] = ITEM_SCREWDRIVER;
|
||||||
|
item_room_map[ROOM_ATTIC] = ITEM_KEYBOARD;
|
||||||
|
|
||||||
|
computer_state = COMPUTER_STATE_NOTHING;
|
||||||
|
|
||||||
|
room_map_table[ROOM_EWSTREET][DIRECTION_NORTH] = 0x00;
|
||||||
|
current_track = room_track_map[current_room];
|
||||||
|
describe_room(current_room, false);
|
||||||
|
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_game(){
|
||||||
|
|
||||||
|
room_description_table[ROOM_SNDIRTROAD] = sndirtroad_msg[0];
|
||||||
|
info_table[3] = user_action_req_msgs[0];
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -83,6 +83,7 @@ int main(){
|
||||||
reset_modules();
|
reset_modules();
|
||||||
init_uart();
|
init_uart();
|
||||||
init_interrupts();
|
init_interrupts();
|
||||||
|
init_game();
|
||||||
current_track = intro_track;
|
current_track = intro_track;
|
||||||
memset(room_visited_table, 0, NUM_ROOMS);
|
memset(room_visited_table, 0, NUM_ROOMS);
|
||||||
memset(inventory, 0, NUM_ITEMS);
|
memset(inventory, 0, NUM_ITEMS);
|
||||||
|
@ -92,7 +93,7 @@ int main(){
|
||||||
* finish it's task within the specified time, the watchdog will reset
|
* finish it's task within the specified time, the watchdog will reset
|
||||||
* the atmel cookie.
|
* the atmel cookie.
|
||||||
*/
|
*/
|
||||||
wdt_enable(WDTO_1S);
|
wdt_enable(WDTO_8S);
|
||||||
|
|
||||||
while(1){
|
while(1){
|
||||||
wdt_reset();
|
wdt_reset();
|
||||||
|
|
|
@ -214,6 +214,7 @@ const struct tone_t intro_track[] PROGMEM =
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct tone_t *current_track = NULL;
|
const struct tone_t *current_track = NULL;
|
||||||
|
int16_t global_frequency_offset = 0x00;
|
||||||
|
|
||||||
/* Loops a track indefinitely and changes voices according to predefined tables.
|
/* Loops a track indefinitely and changes voices according to predefined tables.
|
||||||
* A new track resets the internal state. A voice with a length of 0ms is used
|
* A new track resets the internal state. A voice with a length of 0ms is used
|
||||||
|
@ -251,12 +252,10 @@ void update_sound(){
|
||||||
}
|
}
|
||||||
|
|
||||||
dac_mode = current_tone.waveform;
|
dac_mode = current_tone.waveform;
|
||||||
dac_frequency_deviation = current_tone.frequency_deviation;
|
dac_frequency_deviation = current_tone.frequency_deviation +
|
||||||
|
global_frequency_offset;
|
||||||
audio_time = 0x00;
|
audio_time = 0x00;
|
||||||
tone_pointer++;
|
tone_pointer++;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "structures.h"
|
#include "structures.h"
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
const uint8_t sine_table[256] PROGMEM = {
|
const uint8_t sine_table[256] PROGMEM = {
|
||||||
0x7f,0x82,0x85,0x88,
|
0x7f,0x82,0x85,0x88,
|
||||||
|
@ -342,11 +343,24 @@ const uint8_t noise_table[1024] PROGMEM = {
|
||||||
0x24, 0x32, 0x3a, 0xb8
|
0x24, 0x32, 0x3a, 0xb8
|
||||||
};
|
};
|
||||||
|
|
||||||
|
char* sndirtroad_msg[2] = {
|
||||||
|
"You travel a bit towards the moon, you think that's the way to go. You"
|
||||||
|
" find a bear in the middle of the road sleeping seemingly in peace. "
|
||||||
|
"The way to the north is blocked by the bear.",
|
||||||
|
"You atravel a bit towards the moon, you KNOW that's the way to go. You"
|
||||||
|
" smell something weired along the way, but you don't know where it is "
|
||||||
|
"coming from. Smells like flesh rotting away..."
|
||||||
|
};
|
||||||
|
|
||||||
|
char* user_action_req_msgs[3] = {
|
||||||
|
"What are you going to do?"
|
||||||
|
};
|
||||||
|
|
||||||
const char* info_table[] = {
|
const char* info_table[] = {
|
||||||
"ERROR", // 0
|
"ERROR", // 0
|
||||||
"Invalid command!", // 1
|
"Invalid command!", // 1
|
||||||
"You can't use that!", // 2
|
"You can't use that!", // 2
|
||||||
"What are you going to do?", // 3
|
NULL, // 3
|
||||||
"You can't go that way!", // 4
|
"You can't go that way!", // 4
|
||||||
"YOU MAY ACT NOW!", // 5
|
"YOU MAY ACT NOW!", // 5
|
||||||
"There is nothing here..", // 6
|
"There is nothing here..", // 6
|
||||||
|
@ -355,7 +369,8 @@ const char* info_table[] = {
|
||||||
"a bear blocks the way", // 9
|
"a bear blocks the way", // 9
|
||||||
"it ran away...", // 10
|
"it ran away...", // 10
|
||||||
"it won't start", // 11
|
"it won't start", // 11
|
||||||
"you can't type" // 12
|
"you can't type", // 12
|
||||||
|
"you unlocked the door" // 13
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* action_table[NUM_ACTIONS] = {
|
const char* action_table[NUM_ACTIONS] = {
|
||||||
|
@ -384,60 +399,82 @@ const char* room_table[] = {
|
||||||
"COMPUTER ROOM"
|
"COMPUTER ROOM"
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* room_description_table[sizeof(room_table)/sizeof(const char*)] = {
|
char* room_description_table[sizeof(room_table)/sizeof(const char*)] = {
|
||||||
"You stare into a void of nothingness. You see noone, you hear noone,"
|
"You stare into a void of nothingness. You see noone, you hear noone,"
|
||||||
"you feel someone.\nYou look around, and see nothing, yet "
|
"you feel someone. You look around, and see nothing, yet "
|
||||||
"you are no less scared. You have won..",
|
"you are no less scared.",
|
||||||
"You are on the dead end of a lonely road. You look right and left of "
|
"You are on the dead end of a lonely road. You look right and left of "
|
||||||
"you, but\nyou cannot remember why you are here... You are terrified.",
|
"you, but you cannot remember why you are here... You are terrified.",
|
||||||
"You travel a bit towards the moon, you think that's the way to go. You"
|
NULL,
|
||||||
" find a \nbear in the middle of the road sleeping seemingly in peace.",
|
"You find a fireplace in the middle of the woods. A street leads to it "
|
||||||
"FIREPLACE",
|
"from the west. The fire in the middle of the place is still burning as"
|
||||||
"W/W STREET",
|
" if someone had left in a hurry...",
|
||||||
"OLD HOUSE",
|
"You travel down the road. It has no lights, but the moon shines bright"
|
||||||
"LIVING ROOM",
|
". The road ends with a house to your left. The houses door mat is in "
|
||||||
"ATTIC",
|
"the road. Its door is locked.",
|
||||||
"BASEMENT",
|
"You enter the long hallway of the old house. It has doors on all walls"
|
||||||
"COMPUTER ROOM"
|
". The doors look a little weired because they are flat and don't have "
|
||||||
|
"a handle to pull.",
|
||||||
|
"You enter a large room with a few chairs and a tube TV inside it. In "
|
||||||
|
"the center there is a tile table with a vase and flowers on it. The "
|
||||||
|
"flowers are blooming.",
|
||||||
|
"You enter the attic of the house. It has a few books and some filers "
|
||||||
|
"with documents inside it. The filers are glued together. The books too"
|
||||||
|
". You can't stand up straight.",
|
||||||
|
"You enter the basement. You find some potatoes in a corner and a "
|
||||||
|
"skeleton atop it. ",
|
||||||
|
"You enter a room which looks like you've traveled from an old house "
|
||||||
|
"to the campus of a university. There is a large machine witha sign "
|
||||||
|
"DIGITAL on it. It looks like a computer, though you've never seen one "
|
||||||
|
"in person before..."
|
||||||
};
|
};
|
||||||
|
|
||||||
bool room_visited_table[sizeof(room_table)/sizeof(const char*)];
|
bool room_visited_table[sizeof(room_table)/sizeof(const char*)];
|
||||||
|
|
||||||
uint8_t room_map_table[sizeof(room_table)/sizeof(const char*)]
|
uint8_t room_map_table[sizeof(room_table)/sizeof(const char*)]
|
||||||
[4] = {
|
[4] = {
|
||||||
{0,0,0,0},
|
/* NORTH, SOUTH, WEST, EAST */
|
||||||
{2,0,0,0}, /* S/N DIRT ROAD */
|
{0,0,0,0}, /* 0 nothing */
|
||||||
{/*3*/0,1,0,0}, /* FIREPLACE, Progress locked until bear tamed */
|
{2,0,0,0}, /* 1 LONELY ROAD */
|
||||||
{0,0,4,2}, /* E/W STREET */
|
{0,1,0,0}, /* 2 S/N DIRT ROAD */
|
||||||
|
{0,2,4,0}, /* 3 FIREPLACE */
|
||||||
|
{0,0,0,3}, /* 4 E/W STREET */
|
||||||
|
{7,4,9,6}, /* 5 OLD HOUSE */
|
||||||
|
{8,0,5,0}, /* 6 LIVING ROOM */
|
||||||
|
{0,5,0,0}, /* 7 ATTIC */
|
||||||
|
{0,6,0,0}, /* 8 BASEMENT */
|
||||||
|
{0,0,0,5} /* 9 COMPUTERROOM */
|
||||||
};
|
};
|
||||||
|
|
||||||
const char* item_table[NUM_ITEMS] = {
|
const char* item_table[NUM_ITEMS] = {
|
||||||
"FLOPPY DISK",
|
"FLOPPY DISK", /* 0 */
|
||||||
"SCREW DRIVER",
|
"SCREWDRIVER", /* 1 */
|
||||||
"KEY",
|
"KEYBOARD", /* 2 */
|
||||||
"SAUSAGE",
|
"SAUSAGE", /* 3 */
|
||||||
"FLESH",
|
"FLESH", /* 4 */
|
||||||
"KEYBOARD",
|
"KEY", /* 5 */
|
||||||
"PISTOL"
|
"PISTOL" /* 6 */
|
||||||
};
|
};
|
||||||
|
|
||||||
bool inventory[sizeof(item_table)/sizeof(const char*)];
|
bool inventory[sizeof(item_table)/sizeof(const char*)];
|
||||||
|
|
||||||
|
|
||||||
int8_t item_room_map[NUM_ROOMS] = {
|
int8_t item_room_map[NUM_ROOMS] = {
|
||||||
-1,
|
-1, /* 0 NOTHING */
|
||||||
6,
|
ITEM_PISTOL, /* 1 LONELY ROAD */
|
||||||
3,
|
ITEM_SAUSAGE, /* 2 S/N DIRT ROAD */
|
||||||
-1,
|
-1, /* 3 FIREPLACE */
|
||||||
-1,
|
ITEM_KEY, /* 4 E/W STREET*/
|
||||||
-1,
|
ITEM_SCREWDRIVER, /* 5 OLD HOUSE */
|
||||||
-1,
|
-1, /* 6 LIVING ROOM */
|
||||||
-1,
|
ITEM_KEYBOARD, /* 7 ATTIC */
|
||||||
-1,
|
ITEM_FLOPPY, /* 8 BASEMENT */
|
||||||
-1
|
-1 /* 9 COMPUTERROOM */
|
||||||
};
|
};
|
||||||
const struct tone_t * room_track_map[NUM_ROOMS] = {
|
const struct tone_t * room_track_map[NUM_ROOMS] = {
|
||||||
intro_track,
|
intro_track,
|
||||||
lonely_road_track,
|
lonely_road_track,
|
||||||
|
computer_room_track,
|
||||||
|
lonely_road_track,
|
||||||
computer_room_track
|
computer_room_track
|
||||||
};
|
};
|
||||||
|
|
BIN
documents/mst1/elf.pdf
Normal file
BIN
documents/mst1/elf.pdf
Normal file
Binary file not shown.
38
main.aux
38
main.aux
|
@ -233,25 +233,33 @@
|
||||||
\abx@aux@segm{0}{0}{ascii}
|
\abx@aux@segm{0}{0}{ascii}
|
||||||
\abx@aux@cite{vt100}
|
\abx@aux@cite{vt100}
|
||||||
\abx@aux@segm{0}{0}{vt100}
|
\abx@aux@segm{0}{0}{vt100}
|
||||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Track switching}{42}{subsubsection.4.2.3}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}User command interpretation}{42}{subsection.4.3}\protected@file@percent }
|
|
||||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}Command structure and pasring}{42}{subsubsection.4.3.1}\protected@file@percent }
|
|
||||||
\newlabel{lst:textadv-uart-recv}{{XV}{42}{The UART char receive code}{lstlisting.15}{}}
|
|
||||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XV}The UART char receive code}{42}{lstlisting.15}\protected@file@percent }
|
|
||||||
\newlabel{lst:textadv-ingest}{{XVI}{42}{The character ingest function}{lstlisting.16}{}}
|
|
||||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XVI}The character ingest function}{42}{lstlisting.16}\protected@file@percent }
|
|
||||||
\abx@aux@cite{ascii}
|
\abx@aux@cite{ascii}
|
||||||
\abx@aux@segm{0}{0}{ascii}
|
\abx@aux@segm{0}{0}{ascii}
|
||||||
\abx@aux@cite{vt100}
|
\abx@aux@cite{vt100}
|
||||||
\abx@aux@segm{0}{0}{vt100}
|
\abx@aux@segm{0}{0}{vt100}
|
||||||
\newlabel{lst:textadv-parsecmd}{{XVII}{43}{The command parsing function}{lstlisting.17}{}}
|
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Track switching}{42}{subsubsection.4.2.3}\protected@file@percent }
|
||||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XVII}The command parsing function}{43}{lstlisting.17}\protected@file@percent }
|
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}User command interpretation}{42}{subsection.4.3}\protected@file@percent }
|
||||||
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Command parameters}{44}{subsubsection.4.3.2}\protected@file@percent }
|
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}Command structure and parsing}{42}{subsubsection.4.3.1}\protected@file@percent }
|
||||||
\newlabel{lst:textadv-perfact}{{XVIII}{44}{The command execution routine}{lstlisting.18}{}}
|
\newlabel{lst:textadv-ingest}{{XV}{42}{The character ingest function}{lstlisting.15}{}}
|
||||||
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XVIII}The command execution routine}{44}{lstlisting.18}\protected@file@percent }
|
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XV}The character ingest function}{42}{lstlisting.15}\protected@file@percent }
|
||||||
|
\newlabel{lst:textadv-parsecmd}{{XVI}{43}{The command parsing function}{lstlisting.16}{}}
|
||||||
|
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XVI}The command parsing function}{43}{lstlisting.16}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Command parameters}{43}{subsubsection.4.3.2}\protected@file@percent }
|
||||||
|
\newlabel{lst:textadv-perfact}{{XVII}{44}{The command execution routine}{lstlisting.17}{}}
|
||||||
|
\@writefile{lol}{\contentsline {lstlisting}{\numberline {XVII}The command execution routine}{44}{lstlisting.17}\protected@file@percent }
|
||||||
|
\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Gameplay}{45}{subsection.4.4}\protected@file@percent }
|
||||||
|
\abx@aux@cite{atmega2560}
|
||||||
|
\abx@aux@segm{0}{0}{atmega2560}
|
||||||
|
\abx@aux@cite{elf}
|
||||||
|
\abx@aux@segm{0}{0}{elf}
|
||||||
|
\abx@aux@cite{progmem}
|
||||||
|
\abx@aux@segm{0}{0}{progmem}
|
||||||
|
\@writefile{lof}{\contentsline {figure}{\numberline {xxix}{\ignorespaces A regular beginning of the game\relax }}{46}{figure.caption.29}\protected@file@percent }
|
||||||
|
\newlabel{fig:tetadv_gameplay}{{xxix}{46}{A regular beginning of the game\relax }{figure.caption.29}{}}
|
||||||
|
\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Memory constraints}{46}{subsection.4.5}\protected@file@percent }
|
||||||
\babel@aux{ngerman}{}
|
\babel@aux{ngerman}{}
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {5}Erkl"arung der Eigenst"andigkeit der Arbeit}{46}{section.5}\protected@file@percent }
|
\@writefile{toc}{\contentsline {section}{\numberline {5}Erkl"arung der Eigenst"andigkeit der Arbeit}{48}{section.5}\protected@file@percent }
|
||||||
\HyPL@Entry{52<</S/R>>}
|
\HyPL@Entry{54<</S/R>>}
|
||||||
\babel@aux{english}{}
|
\babel@aux{english}{}
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {I\tmspace +\thickmuskip {.2777em}}List of Figures}{I}{section.1}\protected@file@percent }
|
\@writefile{toc}{\contentsline {section}{\numberline {I\tmspace +\thickmuskip {.2777em}}List of Figures}{I}{section.1}\protected@file@percent }
|
||||||
\@writefile{toc}{\contentsline {section}{\numberline {II\tmspace +\thickmuskip {.2777em}}List of Tables}{I}{section.2}\protected@file@percent }
|
\@writefile{toc}{\contentsline {section}{\numberline {II\tmspace +\thickmuskip {.2777em}}List of Tables}{I}{section.2}\protected@file@percent }
|
||||||
|
@ -273,3 +281,5 @@
|
||||||
\abx@aux@defaultrefcontext{0}{dunnet}{none/global//global/global}
|
\abx@aux@defaultrefcontext{0}{dunnet}{none/global//global/global}
|
||||||
\abx@aux@defaultrefcontext{0}{ascii}{none/global//global/global}
|
\abx@aux@defaultrefcontext{0}{ascii}{none/global//global/global}
|
||||||
\abx@aux@defaultrefcontext{0}{vt100}{none/global//global/global}
|
\abx@aux@defaultrefcontext{0}{vt100}{none/global//global/global}
|
||||||
|
\abx@aux@defaultrefcontext{0}{elf}{none/global//global/global}
|
||||||
|
\abx@aux@defaultrefcontext{0}{progmem}{none/global//global/global}
|
||||||
|
|
49
main.bbl
49
main.bbl
|
@ -320,6 +320,55 @@
|
||||||
\verb https://vt100.net/docs/vt100-tm/ek-vt100-tm-002.pdf
|
\verb https://vt100.net/docs/vt100-tm/ek-vt100-tm-002.pdf
|
||||||
\endverb
|
\endverb
|
||||||
\endentry
|
\endentry
|
||||||
|
\entry{elf}{report}{}
|
||||||
|
\list{institution}{1}{%
|
||||||
|
{TIS Committee}%
|
||||||
|
}
|
||||||
|
\field{sortinit}{3}
|
||||||
|
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
|
||||||
|
\field{labeltitlesource}{title}
|
||||||
|
\field{month}{5}
|
||||||
|
\field{title}{Tool Interface Standard (TIS)Executable and Linking Format (ELF) Specification}
|
||||||
|
\field{type}{Standard}
|
||||||
|
\field{volume}{1995}
|
||||||
|
\field{year}{1995}
|
||||||
|
\verb{urlraw}
|
||||||
|
\verb https://refspecs.linuxbase.org/elf/elf.pdf
|
||||||
|
\endverb
|
||||||
|
\verb{url}
|
||||||
|
\verb https://refspecs.linuxbase.org/elf/elf.pdf
|
||||||
|
\endverb
|
||||||
|
\endentry
|
||||||
|
\entry{progmem}{manual}{}
|
||||||
|
\name{author}{1}{}{%
|
||||||
|
{{hash=12972a04b7b7cffffa3969738ed7102a}{%
|
||||||
|
family={Author},
|
||||||
|
familyi={A\bibinitperiod},
|
||||||
|
given={Unknown},
|
||||||
|
giveni={U\bibinitperiod}}}%
|
||||||
|
}
|
||||||
|
\list{organization}{1}{%
|
||||||
|
{avr-libc 2.0.0 Standard C library for AVR-GCC}%
|
||||||
|
}
|
||||||
|
\strng{namehash}{12972a04b7b7cffffa3969738ed7102a}
|
||||||
|
\strng{fullhash}{12972a04b7b7cffffa3969738ed7102a}
|
||||||
|
\strng{bibnamehash}{12972a04b7b7cffffa3969738ed7102a}
|
||||||
|
\strng{authorbibnamehash}{12972a04b7b7cffffa3969738ed7102a}
|
||||||
|
\strng{authornamehash}{12972a04b7b7cffffa3969738ed7102a}
|
||||||
|
\strng{authorfullhash}{12972a04b7b7cffffa3969738ed7102a}
|
||||||
|
\field{sortinit}{3}
|
||||||
|
\field{sortinithash}{a37a8ef248a93c322189792c34fc68c9}
|
||||||
|
\field{labelnamesource}{author}
|
||||||
|
\field{labeltitlesource}{title}
|
||||||
|
\field{title}{Data in Program Space}
|
||||||
|
\field{year}{2016}
|
||||||
|
\verb{urlraw}
|
||||||
|
\verb https://www.nongnu.org/avr-libc/user-manual/pgmspace.html
|
||||||
|
\endverb
|
||||||
|
\verb{url}
|
||||||
|
\verb https://www.nongnu.org/avr-libc/user-manual/pgmspace.html
|
||||||
|
\endverb
|
||||||
|
\endentry
|
||||||
\enddatalist
|
\enddatalist
|
||||||
\endrefsection
|
\endrefsection
|
||||||
\endinput
|
\endinput
|
||||||
|
|
3
main.bcf
3
main.bcf
|
@ -2165,6 +2165,9 @@
|
||||||
<bcf:citekey order="34">vt100</bcf:citekey>
|
<bcf:citekey order="34">vt100</bcf:citekey>
|
||||||
<bcf:citekey order="35">ascii</bcf:citekey>
|
<bcf:citekey order="35">ascii</bcf:citekey>
|
||||||
<bcf:citekey order="36">vt100</bcf:citekey>
|
<bcf:citekey order="36">vt100</bcf:citekey>
|
||||||
|
<bcf:citekey order="37">atmega2560</bcf:citekey>
|
||||||
|
<bcf:citekey order="38">elf</bcf:citekey>
|
||||||
|
<bcf:citekey order="39">progmem</bcf:citekey>
|
||||||
</bcf:section>
|
</bcf:section>
|
||||||
<!-- SORTING TEMPLATES -->
|
<!-- SORTING TEMPLATES -->
|
||||||
<bcf:sortingtemplate name="none">
|
<bcf:sortingtemplate name="none">
|
||||||
|
|
30
main.blg
30
main.blg
|
@ -1,17 +1,17 @@
|
||||||
[0] Config.pm:304> INFO - This is Biber 2.13
|
[0] Config.pm:304> INFO - This is Biber 2.13
|
||||||
[0] Config.pm:307> INFO - Logfile is 'main.blg'
|
[0] Config.pm:307> INFO - Logfile is 'main.blg'
|
||||||
[19] biber:315> INFO - === Mon Mar 23, 2020, 02:06:00
|
[21] biber:315> INFO - === Thu Mar 26, 2020, 17:07:44
|
||||||
[30] Biber.pm:375> INFO - Reading 'main.bcf'
|
[34] Biber.pm:375> INFO - Reading 'main.bcf'
|
||||||
[85] Biber.pm:905> INFO - Found 15 citekeys in bib section 0
|
[95] Biber.pm:905> INFO - Found 17 citekeys in bib section 0
|
||||||
[96] Biber.pm:4196> INFO - Processing section 0
|
[107] Biber.pm:4196> INFO - Processing section 0
|
||||||
[97] Utils.pm:75> INFO - Globbing data source './bibliographies/DP.bib'
|
[107] Utils.pm:75> INFO - Globbing data source './bibliographies/DP.bib'
|
||||||
[97] Utils.pm:91> INFO - Globbed data source './bibliographies/DP.bib' to ./bibliographies/DP.bib
|
[107] Utils.pm:91> INFO - Globbed data source './bibliographies/DP.bib' to ./bibliographies/DP.bib
|
||||||
[106] Biber.pm:4373> INFO - Looking for bibtex format file './bibliographies/DP.bib' for section 0
|
[117] Biber.pm:4373> INFO - Looking for bibtex format file './bibliographies/DP.bib' for section 0
|
||||||
[107] bibtex.pm:1462> INFO - LaTeX decoding ...
|
[119] bibtex.pm:1462> INFO - LaTeX decoding ...
|
||||||
[120] bibtex.pm:1281> INFO - Found BibTeX data source './bibliographies/DP.bib'
|
[134] bibtex.pm:1281> INFO - Found BibTeX data source './bibliographies/DP.bib'
|
||||||
[147] UCollate.pm:68> INFO - Overriding locale 'de-DE' defaults 'variable = shifted' with 'variable = non-ignorable'
|
[170] UCollate.pm:68> INFO - Overriding locale 'de-DE' defaults 'variable = shifted' with 'variable = non-ignorable'
|
||||||
[147] UCollate.pm:68> INFO - Overriding locale 'de-DE' defaults 'normalization = NFD' with 'normalization = prenormalized'
|
[170] UCollate.pm:68> INFO - Overriding locale 'de-DE' defaults 'normalization = NFD' with 'normalization = prenormalized'
|
||||||
[147] Biber.pm:4024> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'de-DE'
|
[170] Biber.pm:4024> INFO - Sorting list 'none/global//global/global' of type 'entry' with template 'none' and locale 'de-DE'
|
||||||
[147] Biber.pm:4030> INFO - No sort tailoring available for locale 'de-DE'
|
[170] Biber.pm:4030> INFO - No sort tailoring available for locale 'de-DE'
|
||||||
[157] bbl.pm:648> INFO - Writing 'main.bbl' with encoding 'UTF-8'
|
[183] bbl.pm:648> INFO - Writing 'main.bbl' with encoding 'UTF-8'
|
||||||
[160] bbl.pm:751> INFO - Output to main.bbl
|
[187] bbl.pm:751> INFO - Output to main.bbl
|
||||||
|
|
1
main.lof
1
main.lof
|
@ -33,5 +33,6 @@
|
||||||
\contentsline {figure}{\numberline {xxvi}{\ignorespaces The internal clamping diodes of the Analog Discovery 2\cite {ad2}\relax }}{30}{figure.caption.26}%
|
\contentsline {figure}{\numberline {xxvi}{\ignorespaces The internal clamping diodes of the Analog Discovery 2\cite {ad2}\relax }}{30}{figure.caption.26}%
|
||||||
\contentsline {figure}{\numberline {xxvii}{\ignorespaces The output of an example track part 1\relax }}{40}{figure.caption.27}%
|
\contentsline {figure}{\numberline {xxvii}{\ignorespaces The output of an example track part 1\relax }}{40}{figure.caption.27}%
|
||||||
\contentsline {figure}{\numberline {xxviii}{\ignorespaces The output of an example track part 2\relax }}{41}{figure.caption.28}%
|
\contentsline {figure}{\numberline {xxviii}{\ignorespaces The output of an example track part 2\relax }}{41}{figure.caption.28}%
|
||||||
|
\contentsline {figure}{\numberline {xxix}{\ignorespaces A regular beginning of the game\relax }}{46}{figure.caption.29}%
|
||||||
\babel@toc {ngerman}{}
|
\babel@toc {ngerman}{}
|
||||||
\babel@toc {english}{}
|
\babel@toc {english}{}
|
||||||
|
|
30
main.log
30
main.log
|
@ -1,4 +1,4 @@
|
||||||
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 23 MAR 2020 02:07
|
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 26 MAR 2020 23:49
|
||||||
entering extended mode
|
entering extended mode
|
||||||
\write18 enabled.
|
\write18 enabled.
|
||||||
%&-line parsing enabled.
|
%&-line parsing enabled.
|
||||||
|
@ -2894,8 +2894,11 @@ Overfull \hbox (18.29266pt too wide) in paragraph at lines 200--201
|
||||||
Overfull \vbox (2.2876pt too high) has occurred while \output is active []
|
Overfull \vbox (2.2876pt too high) has occurred while \output is active []
|
||||||
|
|
||||||
|
|
||||||
[41] (./code/textadv/src/16550.c) (./code/textadv/src/game.c [42])
|
[41] (./code/textadv/src/game.c) [42] (./code/textadv/src/game.c) [43]
|
||||||
(./code/textadv/src/game.c [43]) (./code/textadv/src/game.c [44])) [45]
|
(./code/textadv/src/game.c [44])
|
||||||
|
File: pics/gameplay.png Graphic file (type bmp)
|
||||||
|
<pics/gameplay.png>
|
||||||
|
[45]) [46] [47]
|
||||||
Overfull \hbox (2.54398pt too wide) in paragraph at lines 148--173
|
Overfull \hbox (2.54398pt too wide) in paragraph at lines 148--173
|
||||||
[]$ $[]$
|
[]$ $[]$
|
||||||
[]
|
[]
|
||||||
|
@ -2905,7 +2908,7 @@ Overfull \hbox (2.54398pt too wide) in paragraph at lines 148--173
|
||||||
[]$ $[]$
|
[]$ $[]$
|
||||||
[]
|
[]
|
||||||
|
|
||||||
[46
|
[48
|
||||||
|
|
||||||
|
|
||||||
] (./main.lof)
|
] (./main.lof)
|
||||||
|
@ -3230,21 +3233,18 @@ code/textadv/include/dac.h
|
||||||
code/textadv/src/dac.c
|
code/textadv/src/dac.c
|
||||||
code/textadv/src/interrupt.c
|
code/textadv/src/interrupt.c
|
||||||
code/textadv/src/sound.c
|
code/textadv/src/sound.c
|
||||||
code/textadv/src/16550.c
|
|
||||||
code/textadv/src/game.c
|
code/textadv/src/game.c
|
||||||
code/textadv/src/game.c
|
code/textadv/src/game.c
|
||||||
code/textadv/src/game.c
|
code/textadv/src/game.c
|
||||||
|
pics/gameplay.png
|
||||||
***********
|
***********
|
||||||
|
|
||||||
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 217.
|
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 217.
|
||||||
Package rerunfilecheck Info: File `main.out' has not changed.
|
Package rerunfilecheck Info: File `main.out' has not changed.
|
||||||
(rerunfilecheck) Checksum: EF751B3F7A69F84698797A4DD5318A21.
|
(rerunfilecheck) Checksum: 9BB691A9D13EB7A78116791B27DAA866.
|
||||||
|
|
||||||
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
|
LaTeX Font Warning: Some font shapes were not available, defaults substituted.
|
||||||
|
|
||||||
|
|
||||||
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
|
|
||||||
|
|
||||||
Package logreq Info: Writing requests to 'main.run.xml'.
|
Package logreq Info: Writing requests to 'main.run.xml'.
|
||||||
\openout1 = `main.run.xml'.
|
\openout1 = `main.run.xml'.
|
||||||
|
|
||||||
|
@ -3254,12 +3254,12 @@ Package logreq Info: Writing requests to 'main.run.xml'.
|
||||||
### semi simple group (level 1) entered at line 75 (\begingroup)
|
### semi simple group (level 1) entered at line 75 (\begingroup)
|
||||||
### bottom level
|
### bottom level
|
||||||
Here is how much of TeX's memory you used:
|
Here is how much of TeX's memory you used:
|
||||||
82303 strings out of 492483
|
82315 strings out of 492483
|
||||||
1830483 string characters out of 6134979
|
1830785 string characters out of 6134979
|
||||||
4963517 words of memory out of 5000000
|
4964598 words of memory out of 5000000
|
||||||
85459 multiletter control sequences out of 15000+600000
|
85472 multiletter control sequences out of 15000+600000
|
||||||
615741 words of font info for 133 fonts, out of 8000000 for 9000
|
615741 words of font info for 133 fonts, out of 8000000 for 9000
|
||||||
1350 hyphenation exceptions out of 8191
|
1350 hyphenation exceptions out of 8191
|
||||||
67i,19n,108p,1149b,8528s stack positions out of 5000i,500n,10000p,200000b,80000s
|
67i,19n,108p,1149b,8536s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||||
|
|
||||||
Output written on main.pdf (56 pages).
|
Output written on main.pdf (58 pages).
|
||||||
|
|
7
main.lol
7
main.lol
|
@ -18,9 +18,8 @@
|
||||||
\contentsline {lstlisting}{\numberline {XII}The DAC waveform generation code}{34}{lstlisting.12}%
|
\contentsline {lstlisting}{\numberline {XII}The DAC waveform generation code}{34}{lstlisting.12}%
|
||||||
\contentsline {lstlisting}{\numberline {XIII}The ISR which fires every millisecond}{37}{lstlisting.13}%
|
\contentsline {lstlisting}{\numberline {XIII}The ISR which fires every millisecond}{37}{lstlisting.13}%
|
||||||
\contentsline {lstlisting}{\numberline {XIV}The sound update function}{38}{lstlisting.14}%
|
\contentsline {lstlisting}{\numberline {XIV}The sound update function}{38}{lstlisting.14}%
|
||||||
\contentsline {lstlisting}{\numberline {XV}The UART char receive code}{42}{lstlisting.15}%
|
\contentsline {lstlisting}{\numberline {XV}The character ingest function}{42}{lstlisting.15}%
|
||||||
\contentsline {lstlisting}{\numberline {XVI}The character ingest function}{42}{lstlisting.16}%
|
\contentsline {lstlisting}{\numberline {XVI}The command parsing function}{43}{lstlisting.16}%
|
||||||
\contentsline {lstlisting}{\numberline {XVII}The command parsing function}{43}{lstlisting.17}%
|
\contentsline {lstlisting}{\numberline {XVII}The command execution routine}{44}{lstlisting.17}%
|
||||||
\contentsline {lstlisting}{\numberline {XVIII}The command execution routine}{44}{lstlisting.18}%
|
|
||||||
\babel@toc {ngerman}{}
|
\babel@toc {ngerman}{}
|
||||||
\babel@toc {english}{}
|
\babel@toc {english}{}
|
||||||
|
|
14
main.out
14
main.out
|
@ -42,10 +42,12 @@
|
||||||
\BOOKMARK [3][-]{subsubsection.4.2.2}{\376\377\000T\000o\000n\000e\000s\000\040\000a\000n\000d\000\040\000T\000r\000a\000c\000k\000s}{subsection.4.2}% 42
|
\BOOKMARK [3][-]{subsubsection.4.2.2}{\376\377\000T\000o\000n\000e\000s\000\040\000a\000n\000d\000\040\000T\000r\000a\000c\000k\000s}{subsection.4.2}% 42
|
||||||
\BOOKMARK [3][-]{subsubsection.4.2.3}{\376\377\000T\000r\000a\000c\000k\000\040\000s\000w\000i\000t\000c\000h\000i\000n\000g}{subsection.4.2}% 43
|
\BOOKMARK [3][-]{subsubsection.4.2.3}{\376\377\000T\000r\000a\000c\000k\000\040\000s\000w\000i\000t\000c\000h\000i\000n\000g}{subsection.4.2}% 43
|
||||||
\BOOKMARK [2][-]{subsection.4.3}{\376\377\000U\000s\000e\000r\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000i\000n\000t\000e\000r\000p\000r\000e\000t\000a\000t\000i\000o\000n}{section.4}% 44
|
\BOOKMARK [2][-]{subsection.4.3}{\376\377\000U\000s\000e\000r\000\040\000c\000o\000m\000m\000a\000n\000d\000\040\000i\000n\000t\000e\000r\000p\000r\000e\000t\000a\000t\000i\000o\000n}{section.4}% 44
|
||||||
\BOOKMARK [3][-]{subsubsection.4.3.1}{\376\377\000C\000o\000m\000m\000a\000n\000d\000\040\000s\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000a\000n\000d\000\040\000p\000a\000s\000r\000i\000n\000g}{subsection.4.3}% 45
|
\BOOKMARK [3][-]{subsubsection.4.3.1}{\376\377\000C\000o\000m\000m\000a\000n\000d\000\040\000s\000t\000r\000u\000c\000t\000u\000r\000e\000\040\000a\000n\000d\000\040\000p\000a\000r\000s\000i\000n\000g}{subsection.4.3}% 45
|
||||||
\BOOKMARK [3][-]{subsubsection.4.3.2}{\376\377\000C\000o\000m\000m\000a\000n\000d\000\040\000p\000a\000r\000a\000m\000e\000t\000e\000r\000s}{subsection.4.3}% 46
|
\BOOKMARK [3][-]{subsubsection.4.3.2}{\376\377\000C\000o\000m\000m\000a\000n\000d\000\040\000p\000a\000r\000a\000m\000e\000t\000e\000r\000s}{subsection.4.3}% 46
|
||||||
\BOOKMARK [1][-]{section.5}{\376\377\000E\000r\000k\000l\000\344\000r\000u\000n\000g\000\040\000d\000e\000r\000\040\000E\000i\000g\000e\000n\000s\000t\000\344\000n\000d\000i\000g\000k\000e\000i\000t\000\040\000d\000e\000r\000\040\000A\000r\000b\000e\000i\000t}{}% 47
|
\BOOKMARK [2][-]{subsection.4.4}{\376\377\000G\000a\000m\000e\000p\000l\000a\000y}{section.4}% 47
|
||||||
\BOOKMARK [1][-]{section.1}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000F\000i\000g\000u\000r\000e\000s}{}% 48
|
\BOOKMARK [2][-]{subsection.4.5}{\376\377\000M\000e\000m\000o\000r\000y\000\040\000c\000o\000n\000s\000t\000r\000a\000i\000n\000t\000s}{section.4}% 48
|
||||||
\BOOKMARK [1][-]{section.2}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000T\000a\000b\000l\000e\000s}{}% 49
|
\BOOKMARK [1][-]{section.5}{\376\377\000E\000r\000k\000l\000\344\000r\000u\000n\000g\000\040\000d\000e\000r\000\040\000E\000i\000g\000e\000n\000s\000t\000\344\000n\000d\000i\000g\000k\000e\000i\000t\000\040\000d\000e\000r\000\040\000A\000r\000b\000e\000i\000t}{}% 49
|
||||||
\BOOKMARK [1][-]{section.3}{\376\377\000L\000i\000s\000t\000i\000n\000g\000s}{}% 50
|
\BOOKMARK [1][-]{section.1}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000F\000i\000g\000u\000r\000e\000s}{}% 50
|
||||||
\BOOKMARK [1][-]{section.3}{\376\377\000A\000n\000h\000a\000n\000g}{}% 51
|
\BOOKMARK [1][-]{section.2}{\376\377\000L\000i\000s\000t\000\040\000o\000f\000\040\000T\000a\000b\000l\000e\000s}{}% 51
|
||||||
|
\BOOKMARK [1][-]{section.3}{\376\377\000L\000i\000s\000t\000i\000n\000g\000s}{}% 52
|
||||||
|
\BOOKMARK [1][-]{section.3}{\376\377\000A\000n\000h\000a\000n\000g}{}% 53
|
||||||
|
|
BIN
main.pdf
(Stored with Git LFS)
BIN
main.pdf
(Stored with Git LFS)
Binary file not shown.
8
main.toc
8
main.toc
|
@ -56,10 +56,12 @@
|
||||||
\contentsline {subsubsection}{\numberline {4.2.2}Tones and Tracks}{37}{subsubsection.4.2.2}%
|
\contentsline {subsubsection}{\numberline {4.2.2}Tones and Tracks}{37}{subsubsection.4.2.2}%
|
||||||
\contentsline {subsubsection}{\numberline {4.2.3}Track switching}{42}{subsubsection.4.2.3}%
|
\contentsline {subsubsection}{\numberline {4.2.3}Track switching}{42}{subsubsection.4.2.3}%
|
||||||
\contentsline {subsection}{\numberline {4.3}User command interpretation}{42}{subsection.4.3}%
|
\contentsline {subsection}{\numberline {4.3}User command interpretation}{42}{subsection.4.3}%
|
||||||
\contentsline {subsubsection}{\numberline {4.3.1}Command structure and pasring}{42}{subsubsection.4.3.1}%
|
\contentsline {subsubsection}{\numberline {4.3.1}Command structure and parsing}{42}{subsubsection.4.3.1}%
|
||||||
\contentsline {subsubsection}{\numberline {4.3.2}Command parameters}{44}{subsubsection.4.3.2}%
|
\contentsline {subsubsection}{\numberline {4.3.2}Command parameters}{43}{subsubsection.4.3.2}%
|
||||||
|
\contentsline {subsection}{\numberline {4.4}Gameplay}{45}{subsection.4.4}%
|
||||||
|
\contentsline {subsection}{\numberline {4.5}Memory constraints}{46}{subsection.4.5}%
|
||||||
\babel@toc {ngerman}{}
|
\babel@toc {ngerman}{}
|
||||||
\contentsline {section}{\numberline {5}Erkl"arung der Eigenst"andigkeit der Arbeit}{46}{section.5}%
|
\contentsline {section}{\numberline {5}Erkl"arung der Eigenst"andigkeit der Arbeit}{48}{section.5}%
|
||||||
\babel@toc {english}{}
|
\babel@toc {english}{}
|
||||||
\contentsline {section}{\numberline {I\tmspace +\thickmuskip {.2777em}}List of Figures}{I}{section.1}%
|
\contentsline {section}{\numberline {I\tmspace +\thickmuskip {.2777em}}List of Figures}{I}{section.1}%
|
||||||
\contentsline {section}{\numberline {II\tmspace +\thickmuskip {.2777em}}List of Tables}{I}{section.2}%
|
\contentsline {section}{\numberline {II\tmspace +\thickmuskip {.2777em}}List of Tables}{I}{section.2}%
|
||||||
|
|
BIN
pics/gameplay.png
Normal file
BIN
pics/gameplay.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
|
@ -60,20 +60,20 @@ operation continues.
|
||||||
\lstinputlisting[language=C,frame=trBL,
|
\lstinputlisting[language=C,frame=trBL,
|
||||||
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
||||||
label={lst:textadv-routine-uart}, caption={The routine function for the UART},
|
label={lst:textadv-routine-uart}, caption={The routine function for the UART},
|
||||||
columns=flexible, style=cstyle, firstline=105, lastline=118]
|
columns=flexible, style=cstyle, firstline=112, lastline=125]
|
||||||
{code/textadv/src/16550.c}
|
{code/textadv/src/16550.c}
|
||||||
|
|
||||||
\lstinputlisting[language=C,frame=trBL,
|
\lstinputlisting[language=C,frame=trBL,
|
||||||
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
||||||
label={lst:textadv-routine-dac}, caption={The routine function for the DAC},
|
label={lst:textadv-routine-dac}, caption={The routine function for the DAC},
|
||||||
columns=flexible, style=cstyle, firstline=197, lastline=203]
|
columns=flexible, style=cstyle, firstline=200, lastline=207]
|
||||||
{code/textadv/src/dac.c}
|
{code/textadv/src/dac.c}
|
||||||
|
|
||||||
\subsection{DAC sound generation}
|
\subsection{DAC sound generation}
|
||||||
|
|
||||||
\subsubsection{DAC modes}
|
\subsubsection{DAC modes}
|
||||||
|
|
||||||
The DAC can produced any waveform described by 8 bit unsigned PCM code. Though
|
The DAC can produce any waveform described by 8 bit unsigned PCM code. Though
|
||||||
possible to feed predefined waveforms into the DAC, the AVR doesn't have enough
|
possible to feed predefined waveforms into the DAC, the AVR doesn't have enough
|
||||||
onboard memory to store more than a few seconds of these waveforms.
|
onboard memory to store more than a few seconds of these waveforms.
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ figures \ref{fig:textadv_track_ex1} and \ref{fig:textadv_track_ex2}.
|
||||||
\lstinputlisting[language=C,frame=trBL,
|
\lstinputlisting[language=C,frame=trBL,
|
||||||
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
||||||
label={lst:textadv-upsnd}, caption={The sound update function},
|
label={lst:textadv-upsnd}, caption={The sound update function},
|
||||||
columns=flexible, style=cstyle, firstline=218, lastline=262]
|
columns=flexible, style=cstyle, firstline=219, lastline=261]
|
||||||
{code/textadv/src/sound.c}
|
{code/textadv/src/sound.c}
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
|
@ -214,12 +214,12 @@ during a track change.
|
||||||
|
|
||||||
\subsection{User command interpretation}
|
\subsection{User command interpretation}
|
||||||
|
|
||||||
\subsubsection{Command structure and pasring}
|
\subsubsection{Command structure and parsing}
|
||||||
As in other text adventures \cite{dunnet} a command consits of one line of
|
As in other text adventures \cite{dunnet} a command consits of one line of
|
||||||
input terminated by a newline or line feed character \textbackslash n.
|
input terminated by a newline or line feed character \textbackslash n.
|
||||||
The carriage return character which is sometimes transmitted with a line
|
The carriage return character which is sometimes transmitted with a line
|
||||||
feed character is not parsed in this text adventure. Incoming character
|
feed character is not parsed in this text adventure. Incoming character
|
||||||
parsing can be seen in listings \ref{lst:textadv-uart-recv} and
|
parsing can be seen in listings \ref{lst:textadv-routine-uart} and
|
||||||
\ref{lst:textadv-ingest}.
|
\ref{lst:textadv-ingest}.
|
||||||
|
|
||||||
As one command is parsed each part is required to be separated by an empty
|
As one command is parsed each part is required to be separated by an empty
|
||||||
|
@ -227,13 +227,7 @@ space character which is ascii code 32 \cite{ascii}. The first part of the given
|
||||||
input is then compared to an array of actions a user can perform, for example
|
input is then compared to an array of actions a user can perform, for example
|
||||||
use or search, as can be seen in listing \ref{lst:textadv-parsecmd}
|
use or search, as can be seen in listing \ref{lst:textadv-parsecmd}
|
||||||
|
|
||||||
\lstinputlisting[language=C,frame=trBL,
|
In listing \ref{lst:textadv-routine-uart} the comment echo back can be seen. The
|
||||||
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
|
||||||
label={lst:textadv-uart-recv}, caption={The UART char receive code},
|
|
||||||
columns=flexible, style=cstyle, firstline=105, lastline=118]
|
|
||||||
{code/textadv/src/16550.c}
|
|
||||||
|
|
||||||
In listing \ref{lst:textadv-uart-recv} the comment echo back can be seen. The
|
|
||||||
write\_char function before it writes the last received character back to the
|
write\_char function before it writes the last received character back to the
|
||||||
terminal which sent it. This is done to write what the user typed out to the
|
terminal which sent it. This is done to write what the user typed out to the
|
||||||
terminal as otherwise it would not be seen what has been typed on any VT100
|
terminal as otherwise it would not be seen what has been typed on any VT100
|
||||||
|
@ -242,7 +236,7 @@ compatiable terminal\cite{vt100} or terminal emulator.
|
||||||
\lstinputlisting[language=C,frame=trBL,
|
\lstinputlisting[language=C,frame=trBL,
|
||||||
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
||||||
label={lst:textadv-ingest}, caption={The character ingest function},
|
label={lst:textadv-ingest}, caption={The character ingest function},
|
||||||
columns=flexible, style=cstyle, firstline=71, lastline=79]
|
columns=flexible, style=cstyle, firstline=73, lastline=81]
|
||||||
{code/textadv/src/game.c}
|
{code/textadv/src/game.c}
|
||||||
|
|
||||||
The in listing \ref{lst:textadv-ingest} shown branch overrides the last received
|
The in listing \ref{lst:textadv-ingest} shown branch overrides the last received
|
||||||
|
@ -255,7 +249,7 @@ emulator sends when the backspace or delete key is pressed \cite{vt100}.
|
||||||
\lstinputlisting[language=C,frame=trBL,
|
\lstinputlisting[language=C,frame=trBL,
|
||||||
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
||||||
label={lst:textadv-parsecmd}, caption={The command parsing function},
|
label={lst:textadv-parsecmd}, caption={The command parsing function},
|
||||||
columns=flexible, style=cstyle, firstline=31, lastline=69]
|
columns=flexible, style=cstyle, firstline=33, lastline=71]
|
||||||
{code/textadv/src/game.c}
|
{code/textadv/src/game.c}
|
||||||
|
|
||||||
\subsubsection{Command parameters}
|
\subsubsection{Command parameters}
|
||||||
|
@ -273,5 +267,34 @@ with zeros as seen in listing \ref{lst:textadv-parsecmd}.
|
||||||
\lstinputlisting[language=C,frame=trBL,
|
\lstinputlisting[language=C,frame=trBL,
|
||||||
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
breaklines=true, breakautoindent=true, formfeed=\newpage,
|
||||||
label={lst:textadv-perfact}, caption={The command execution routine},
|
label={lst:textadv-perfact}, caption={The command execution routine},
|
||||||
columns=flexible, style=cstyle, firstline=81, lastline=120]
|
columns=flexible, style=cstyle, firstline=83, lastline=123]
|
||||||
{code/textadv/src/game.c}
|
{code/textadv/src/game.c}
|
||||||
|
|
||||||
|
\subsection{Gameplay}
|
||||||
|
|
||||||
|
The game itself plays like a regular game with limtations set in direction.
|
||||||
|
Playeras can search for items in each room and grab the found items as can be
|
||||||
|
seen in figure \ref{fig:tetadv_gameplay}. The general gamplay is perfomred via
|
||||||
|
altering the map data and the strings output to the user.
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=\textwidth, angle=0]{pics/gameplay.png}
|
||||||
|
\caption{A regular beginning of the game}
|
||||||
|
\label{fig:tetadv_gameplay}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsection{Memory constraints}
|
||||||
|
|
||||||
|
The AVR has 8kB of internal SRAM which are used for stack and heap
|
||||||
|
\cite{atmega2560}. During the build of the program an ELF file can be obtained
|
||||||
|
which contains infromation on the programs structure and memory usage on boot.
|
||||||
|
Strings and variables are contained within the .data section of the elf file,
|
||||||
|
but loaded into the .bss section during boot\cite{elf}. This is done for
|
||||||
|
integer
|
||||||
|
variables, as well as for strings, which makes the use of strings limited not
|
||||||
|
to the flash size but to the RAM size of the AVR. To save memory, sound tracks
|
||||||
|
as well as the sine and noise table have been put into program space with the
|
||||||
|
PROGMEM attribute as described by the avr-libc documentation\cite{progmem}.
|
||||||
|
In listing \ref{lst:textadv-dac-gen} a read from program memory can be seen in
|
||||||
|
the noise and sine modes.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 22 MAR 2020 23:57
|
This is XeTeX, Version 3.14159265-2.6-0.999991 (TeX Live 2019/Arch Linux) (preloaded format=xelatex 2020.3.10) 26 MAR 2020 23:49
|
||||||
entering extended mode
|
entering extended mode
|
||||||
\write18 enabled.
|
\write18 enabled.
|
||||||
%&-line parsing enabled.
|
%&-line parsing enabled.
|
||||||
|
|
Loading…
Reference in a new issue