URL
https://opencores.org/ocsvn/Aquarius/Aquarius/trunk
Subversion Repositories Aquarius
Compare Revisions
- This comparison shows the changes necessary to convert path
/Aquarius/trunk/application/shc_monitor_release_v1
- from Rev 2 to Rev 12
- ↔ Reverse comparison
Rev 2 → Rev 12
/main.srec
0,0 → 1,404
S00C00006D61696E2E7372656373 |
S315000000000000040000004000000004000000400062 |
S31500000010000001200000012E000001200000012E3A |
S315000000200000012E0000012E0000012E0000013804 |
S315000000300000012E0000012E0000012E0000012EFE |
S315000000400000012E0000012E0000012E0000012EEE |
S315000000500000012E0000012E0000012E0000012EDE |
S315000000600000012E0000012E0000012E0000012ECE |
S315000000700000012E0000012E0000012E0000012EBE |
S315000000800000021A0000021A0000021A0000021AFA |
S315000000900000021A0000021A0000021A0000021AEA |
S315000000A00000021A0000021A0000021A0000021ADA |
S315000000B00000021A0000021A0000021A0000021ACA |
S315000000C00000021A0000021A0000021A0000021ABA |
S315000000D00000021A0000021A0000021A0000021AAA |
S315000000E00000021A0000021A0000021A0000021A9A |
S315000000F00000021A0000021A0000021A0000021A8A |
S31500000100000001C0000001C0000001C0000001C0E5 |
S31500000110000001C0000001C0000001C0000001C0D5 |
S31500000120D0C1400B0009D1BF6012402B5F11D0BF78 |
S31500000130400B0009AFF700092F062F16D1BF50F369 |
S315000001402102710450F22102710460F37008210249 |
S315000001507104002A2102710450F12102710450F049 |
S315000001602102710421227104213271042142710499 |
S315000001702152710421627104217271042182710479 |
S315000001802192710421A2710421B2710421C2710469 |
S3150000019021D2710421E2710460F370082102710416 |
S315000001A0000A21027104001A2102710400122102C0 |
S315000001B0710400222102D09E400B0009AFB3000952 |
S315000001C04F134F234F024F124F222FE62FD62FC623 |
S315000001D02FB62FA62F962F862F762F662F562F46B1 |
S315000001E02F362F262F162F06D092400B000960F6C9 |
S315000001F061F662F663F664F665F666F667F668F625 |
S3150000020069F66AF66BF66CF66DF66EF64F264F16C5 |
S315000002104F064F274F17002B00094F134F234F024E |
S315000002204F124F222FE62FD62FC62FB62FA62F9668 |
S315000002302F862F762F662F562F462F362F262F16D0 |
S315000002402F06D07D400B000960F661F662F663F674 |
S3150000025064F665F666F667F668F669F66AF66BF6AC |
S315000002606CF66DF66EF64F264F164F064F274F1754 |
S31500000270002B000900000000000000000000000044 |
S315000002800000000000000000000000000000000068 |
S315000002900000000000000000000000000000000058 |
S315000002A00000000000000000000000000000000048 |
S315000002B00000000000000000000000000000000038 |
S315000002C00000000000000000000000000000000028 |
S315000002D00000000000000000000000000000000018 |
S315000002E00000000000000000000000000000000008 |
S315000002F000000000000000000000000000000000F8 |
S31500000300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7 |
S31500000310FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7 |
S31500000320FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7 |
S31500000330FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7 |
S31500000340FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7 |
S31500000350FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7 |
S315000003600000000000000000000000000000000087 |
S315000003700000000000000000000000000000000077 |
S315000003800000000000000000000000000000000067 |
S315000003900000000000000000000000000000000057 |
S315000003A00000000000000000000000000000000047 |
S315000003B00000000000000000000000000000000037 |
S315000003C00000000000000000000000000000000027 |
S315000003D00000000000000000000000000000000017 |
S315000003E00000000000000000000000000000000007 |
S315000003F000000000000000000000000000000000F7 |
S31500000400D808482EE800480ED805480BEE00AFFE87 |
S31500000410000900090009000900090009000900098E |
S31500000420000005D00000000000000538000005842B |
S315000004300000048C00000440000004EC00000300EF |
S315000004402F86D50D2FE64F22E611D10C7FEC6EF3E9 |
S31500000450410B64E3D10AE410410B65E3D809480B6C |
S315000004600009D109410B0009480B00097E146FE30E |
S315000004704F266EF6000B68F600001690000015F485 |
S315000004800000130C00000F9800000F6A2F86D5108D |
S315000004902FE64F22E611D10F7FEC6EF3410B64E39A |
S315000004A0D30DD20E613221292312D10DE410410B56 |
S315000004B065E3D80C480B0009D10B410B0009480B2A |
S315000004C000097E146FE34F266EF6000B68F60009EE |
S315000004D0000016A4000015F4ABCD0200FEFFFFFFDE |
S315000004E00000130C00000F9800000F6A2F86D50D30 |
S315000004F02FE64F22E611D10C7FEC6EF3410B64E33D |
S31500000500D10AE410410B65E3D809480B0009D1096B |
S31500000510410B0009480B00097E146FE34F266EF667 |
S31500000520000B68F6000016B8000015F40000130C66 |
S3150000053000000F9800000F6A2F86D50D2FE64F2278 |
S31500000540E611D10C7FEC6EF3410B64E3D10AE410A3 |
S31500000550410B65E3D809480B0009D109410B000995 |
S31500000560480B00097E146FE34F266EF6000B68F603 |
S31500000570000016CC000015F40000130C00000F98C4 |
S3150000058000000F6A2F86D50D2FE64F22E611D10CFB |
S315000005907FEC6EF3410B64E3D10AE410410B65E393 |
S315000005A0D809480B0009D109410B0009480B00097D |
S315000005B07E146FE34F266EF6000B68F6000016E019 |
S315000005C0000015F40000130C00000F9800000F6ADD |
S315000005D02F86D5452F96D8452FA62FB62FC62FD6B0 |
S315000005E02FE6E9114F2266937FB06EF3480B64E362 |
S315000005F06AE37A14D53E64A3480B669361E37128D7 |
S31500000600E04C0E16D53BE609480B64136DE37D34CA |
S31500000610D53964D3480B6693D138410B0009D138DC |
S31500000620410B0009D137410B0009DC374C0B00099F |
S31500000630D836E400480B65E3E410480B65A3E200F6 |
S31500000640D133720132178FFD72014C0BEA00D8319B |
S31500000650480BE400480BE410E1FC2A19D12E69A2EC |
S31500000660410BE400D82D480B64A3480B6493DB27A9 |
S31500000670E410E04C4B0B05EE61E3714821926813E0 |
S31500000680D127410B64836203E10772F032168DE4D1 |
S31500000690E1FCC702322C012D012300090010001ACB |
S315000006A00030FFBC003A0046003E0042D11D410B1F |
S315000006B00009AFD2E1FCE4104B0B65D34C0B0009EB |
S315000006C0E1FE2A194A0B0009AFC7E1FCD116410B1E |
S315000006D00009AFC16A03AFBF6A82AFBD7AFC61820F |
S315000006E02A12AFB97A040009000016F4000015F4C6 |
S315000006F0000017080000171C0000172800001464EB |
S3150000070000001220000011F800000F980000130CE2 |
S31500000710001E847F000012DC0000136C0000124CE7 |
S3150000072000000CAC0000072C00000D802F8693E320 |
S31500000730D5842F96D8842FA62FB62FC62FD62FE670 |
S31500000740EA114F2266A33F386EF3480B64E36BE36E |
S315000007507B14D57E64B3480B66A361E390CD712804 |
S31500000760D57B641366A3480B0E1660E392C6703CF5 |
S31500000770D578E9096403669332EC480B120762E305 |
S3150000078090BD7248D574642366A3480B0E2661E3B8 |
S3150000079090B6715CD571641366A3480B0E1660E3C0 |
S315000007A092AC7070D56E6403669332EC480B120AF5 |
S315000007B062E390A6727CD56B64236693480B0E2683 |
S315000007C091A090A0D568669331EC0E16480B641381 |
S315000007D09D9AD56666933DEC480B64D39095928DB1 |
S315000007E0D563669332EC30EC120D480B6403928DA0 |
S315000007F0908DD560669332EC0E26480B6423918764 |
S315000008009087D55D669331EC0E16480B6413908184 |
S315000008109281D55A669332EC30EC1200480B640391 |
S31500000820927A907AD556669332EC0E26480B64235C |
S3150000083091749074D553669331EC0E16480B64137D |
S31500000840906E9268D550669332EC30EC1203480BEA |
S31500000850640392669066D54D669332EC0E26480B7D |
S31500000860642391609060D54A669331EC0E16480B6E |
S315000008706413905A924FD547669332EC30EC1206C9 |
S31500000880480B640392529052D543669332EC0E267F |
S31500000890480B6423914C904CD540669331EC0E1670 |
S315000008A0480B641390469236D53D669332EC30EC95 |
S315000008B01209480B6403923E903ED53A669332EC99 |
S315000008C00E26480B642391389038D537669331EC61 |
S315000008D00E16480B64139032921DD534669332EC93 |
S315000008E030EC120C480B6403922A902AD53066939A |
S315000008F032EC0E26A05E642302000194017C019C6A |
S3150000090001A001A8008801AC009400A000AC01B4CD |
S3150000091000B801B800C401BC00D001C000DC01C4AD |
S3150000092000E800F401CC010001D0010C011801D847 |
S31500000930012401DC0130013C01E4014801E80154D5 |
S31500000940016001F00000173C000015F4000017508C |
S31500000950000017640000177800001784000017983D |
S31500000960000017AC000017B8000017C4000017D02D |
S31500000970000017DC000017E8000017F4000018005C |
S315000009800000180C00001818000018240000183089 |
S315000009900000183C000018480000185400001860B9 |
S315000009A00000186C000018780000188400001890E9 |
S315000009B00000189C480B000991E490E4D57E6693EC |
S315000009C031EC0E16480B641390DE92DED57B6693EF |
S315000009D032EC30EC120F480B640392D790D7D578DF |
S315000009E0669332EC0E26480B6423DA76E4004A0B53 |
S315000009F065E3E4104A0B65B3DB734B0B0009DC734C |
S31500000A004C0B000988018D028802A10700094B0BD7 |
S31500000A10000990BDE4004A0B05EE98BAD96C6482D1 |
S31500000A20490B000990B6E4104A0B05EE5481490BB8 |
S31500000A3000094C0B00094B0B000990ACE4004A0B73 |
S31500000A4005EE5482490B0009E4104A0B65D3548322 |
S31500000A50490B00094C0B00094B0B0009909CE40064 |
S31500000A604A0B05EE5484490B00099096E4104A0B94 |
S31500000A7005EE5485490B00094C0B00094B0B000988 |
S31500000A80908CE4004A0B05EE5486490B0009907CD5 |
S31500000A90E4104A0B05EE5487490B00094C0B00097C |
S31500000AA04B0B0009907BE4004A0B05EE5488490B7A |
S31500000AB000099075E4104A0B05EE5489490B0009AC |
S31500000AC04C0B00094B0B0009906BE4004A0B05EE3A |
S31500000AD0548A490B00099065E4104A0B05EE548BC5 |
S31500000AE0490B00094C0B00094B0B0009905BE40015 |
S31500000AF04A0B05EE548C490B00099055E4104A0B3D |
S31500000B0005EE548D490B00094C0B00094B0B0009EF |
S31500000B10904BE4004A0B05EE548E490B00099045B4 |
S31500000B20E4104A0B05EE548F490B78404C0B000934 |
S31500000B304B0B0009903BE4004A0B05EE5480490B31 |
S31500000B4000099035E4104A0B05EE5481490B000963 |
S31500000B504C0B00094B0B0009902BE4004A0B05EEE9 |
S31500000B605482490B00099025E4104A0B05EE548384 |
S31500000B70490B00094C0B00094B0B0009901BE400C4 |
S31500000B80A02805EE016C01F4017801BC018401FC8A |
S31500000B9001A4030001A801AC01B001B401B801C071 |
S31500000BA001C401C801CC01D001D401D801DC01E0A7 |
S31500000BB001E401E801EC01F0000018A8000018B4F7 |
S31500000BC0000018C00000130C00000F9800000F6A08 |
S31500000BD00000124C4A0B00095484490B000990543A |
S31500000BE0E4104A0B05EE5485490B00094C0B00092D |
S31500000BF04B0B0009904AE4004A0B05EE5486490B5C |
S31500000C0000099044E4104A0B05EE5487490B00098D |
S31500000C104C0B00094B0B0009A02B00098F29E4009F |
S31500000C2090364A0B05EE9034E4104A0B05EED91BBC |
S31500000C309830519160E308166283D11932EC410B6A |
S31500000C40642388178F0CE40090254A0B05EE4B0BA6 |
S31500000C50000960E3018ED21319116192A008212BBD |
S31500000C60901A4A0B05EE4B0B00096192D20E212910 |
S31500000C70291297123E7C6FE34F266EF66DF66CF6E0 |
S31500000C806BF66AF669F6000B68F601F401F801FCEA |
S31500000C90019401980190019C01A00200ABCD0200D5 |
S31500000CA000000CAC01000000FEFFFFFF2F86D12CD8 |
S31500000CB02F962FA62FB62FC62FD62FE66C434F2280 |
S31500000CC0E418410B6EF3D127410B64C2D326430BC4 |
S31500000CD0E401ED002DD88B02D121410BE418D1237C |
S31500000CE0410B0009D122410B00096B03E30F3B3690 |
S31500000CF08D1662D3D11F410B64B3D11F410B640320 |
S31500000D0069DB79074908DA1DE40F4A0B6593610729 |
S31500000D1068C264B365934A0B2819280B2C8262D3E8 |
S31500000D20720142118D02612361D371084121E3FCF6 |
S31500000D302319333C431A011A6D233D18E10F3B1664 |
S31500000D408FC92DD8D308430BE40060B36FE34F2659 |
S31500000D506EF66DF66CF66BF66AF669F6000B68F6DB |
S31500000D600000136C0000124C000012A400000F9843 |
S31500000D7000000F6A00000F3400001340000014E06A |
S31500000D802F86D5502F96D8502FA62FB62FC62FD6E2 |
S31500000D902FE6E9114F2266937FA46EF3480B64E3B6 |
S31500000DA06AE37A14D54964A3480B669361E3712814 |
S31500000DB0E0480E16D546E609480B641363E3733420 |
S31500000DC0E04C0E36D5436433480B6693E100E040B1 |
S31500000DD030EC10161015D140E201410B1024D33F20 |
S31500000DE0E400430B65E3D03DE410400B65A3D83C1B |
S31500000DF0480B000988538BFB480B000988338D0389 |
S31500000E006C0388378F4EE054DD364D0BEA006303E2 |
S31500000E106833698379FBEB004D0B4A186303308C0A |
S31500000E20680C7B01E1033B178FF63A3CE05001EE7C |
S31500000E3021188D056BA3E24032EC12B6E3001234A2 |
S31500000E4049158B084D0B79FF6303308C680C2A30EB |
S31500000E5049158DF77A01D123410B00096303618798 |
S31500000E60E2FF681C3830612A60C388338D0321187D |
S31500000E70E301E0540E368D09E410D118E04C410B25 |
S31500000E8005EED119410B0009A010E058D117410B0E |
S31500000E90E410D117410B64B3E418D210E048420BBA |
S31500000EA005EEE05403EE23388DA1E05800EE7E5C9B |
S31500000EB06FE34F266EF66DF66CF66BF66AF669F61C |
S31500000EC0000B68F6000018CC000015F4000018E0CE |
S31500000ED0000018F400001900000011F80000130CBF |
S31500000EE0000011C400000EF400000F6A0000136C2D |
S31500000EF00000124C2F862F96D80C2FA62FE64F22D5 |
S31500000F00480B6EF3D90A490B6403480B6A03490B75 |
S31500000F10640361A341084108301C600C6FE34F264F |
S31500000F206EF66AF669F6000B68F60009000011C451 |
S31500000F3000000F4E2FE66043C90FE10930168F02FD |
S31500000F406EF3A0017037CB306FE3000B6EF62FE621 |
S31500000F50604CE13930168F036EF3E1C9A001301CF5 |
S31500000F6070D0C90F6FE3000B6EF62FE64F22A00379 |
S31500000F706EF3D107410BE408D106410B0009910538 |
S31500000F80301089F66FE34F26000B6EF600FF00095E |
S31500000F900000115400000FC42FE64F22A0036EF389 |
S31500000FA0D106410BE408D106410B0009910530102A |
S31500000FB08BF66FE34F26000B6EF600FF0000115410 |
S31500000FC000000FC42F862F96D8602FA62FB62FC6E7 |
S31500000FD02FD62FE6E1EF4F22E401D95D6EF32810FC |
S31500000FE0490B00096080ED1FE1F7E4012D09281087 |
S31500000FF0490B00096080EC1FE1FBE4012C09281075 |
S31500001000490B00096080EB1FE1FDE4012B09281064 |
S31500001010490B00096080EA1FE1FEE4012A09281055 |
S31500001020490B00096080E21FE10768D378E93816AA |
S315000010308D102209C701018C012300090818181810 |
S315000010400C181014A077E013A075E012A073E0113D |
S31500001050A071E010E10F68C378F138168917C7024E |
S31500001060018C01230009000912262626262626269B |
S31500001070162626261A261E22A05DE014A05BE00F87 |
S31500001080A059E00EA057E00DA055E00CE10F68B3A3 |
S3150000109078F138168D17E10FC701018C012300097D |
S315000010A010242424242424241424242418241C2036 |
S315000010B0A041E015A03FE00BA03DE00AA03BE009FF |
S315000010C0A039E008E10F68A378F138168D17E10F13 |
S315000010D0C701018C0123000910242424242424247C |
S315000010E01424242418241C20A025E016A023E0079D |
S315000010F0A021E006A01FE005A01DE004E10F682383 |
S3150000110078F138168916C702018C012300090009F7 |
S315000011101226262626262626162626261A261E22A5 |
S31500001120A009E017A007E003A005E002A003E00184 |
S31500001130A001E00090096FE34F266EF66DF66CF69F |
S315000011406BF66AF669F6000B68F600FFABCD000198 |
S31500001150000011542FE6644CE20032438D0B6EF30F |
S31500001160930C32378904D1067201611032378BFA3B |
S31500001170720132438BF46FE3000B6EF62710000901 |
S31500001180ABCD00002FE6644C6EF3D1056010C902AA |
S3150000119020088FFA71FE710321406FE3000B6EF693 |
S315000011A0ABCD01022FE66EF3D1056010C901200810 |
S315000011B08FFA71FE71036110601C6FE3000B6EF60F |
S315000011C0ABCD01022FE66EF3D10A6010C9012008EB |
S315000011D08FFA71FE71036110621CD1066010C9029C |
S315000011E020088FFA71FE7103212060236FE3000B44 |
S315000011F06EF60009ABCD01022FE6D30860306EF320 |
S31500001200A00573FE730362307102601073FDC9019D |
S3150000121020088DF761336FE3000B6EF6ABCD01024C |
S315000012202FE6D107E21221207101E2CF21206EF3D1 |
S31500001230D204D105611042108BFB6FE3000B6EF6F2 |
S31500001240ABCD010000010000ABCD00002F862F962C |
S315000012502FA6E81C2FE6E9074F226A436EF3D10D4D |
S31500001260E401410B6583D10C64A3410B6503D10BEB |
S31500001270C90F410B6403D10A410B640379FF49117D |
S315000012808DED78FC6FE34F266EF66AF669F6000B75 |
S3150000129068F60009000014E00000156800000F342D |
S315000012A0000013402F86D10B2FE668434F22688C2F |
S315000012B0410B6EF328888D05E400D107410BE50D3F |
S315000012C0A0030009D104410BE50C6FE34F266EF62F |
S315000012D0000B68F6000013A8000014182F86D10929 |
S315000012E02FE64F22644C410B6EF3E800D106410B0A |
S315000012F0E4207801E10F38178BF86FE34F266EF67E |
S31500001300000B68F60000136C000013402F86D10A0C |
S315000013102FE6644C4F226853A0026EF3D107780182 |
S31500001320410B0009648024488FF8644C6FE34F2614 |
S315000013306EF6000B68F600090000136C00001340FF |
S315000013402F86D1082FE668434F22688C410B6EF337 |
S31500001350D105E401410B65836FE34F266EF6000B62 |
S3150000136068F60009000013A8000014182F86E11F74 |
S315000013702FE668432819E10F4F2238168F016EF3C6 |
S315000013807830910C281BD106410B0009D105E400E9 |
S31500001390410B65836FE34F266EF6000B68F60080FF |
S315000013A0000013A8000014182FE64F226EF3D10593 |
S315000013B0410BE400C98020088BF96FE34F26000B30 |
S315000013C06EF60009000013C82FE66743D111E3014A |
S315000013D027396073CB0262137202220063106073B6 |
S315000013E06110CB0622006EF3E20BD30A6130421085 |
S315000013F08FFC613371036110E202272BE20B601C44 |
S31500001400613371022170D103611042108BFB6FE3CF |
S31500001410000B6EF6ABCD00002FE66743655CD10F7F |
S31500001420E3012150273971FD6213720222706310A5 |
S3150000143060736110CB0422006EF3E20BD3086130B7 |
S3150000144042108FFC613371022170E20BD1046110EE |
S3150000145042108BFB6FE3000B6EF60009ABCD000369 |
S31500001460ABCD00002F862F962FE6D919E4004F2228 |
S31500001470E530490B6EF3D217D117611042108FFB7E |
S31500001480E400490BE5309221D113611042108FFB25 |
S31500001490E400490BE530D811480B0009E400490B7C |
S315000014A0E538480B0009E400490BE50C480B000938 |
S315000014B0E400490BE501480B0009E400490BE50689 |
S315000014C06FE34F266EF669F6000B68F607D0000943 |
S315000014D00000141800014050ABCD0000000013A816 |
S315000014E0E01F2509C701055C05236043782E242CDF |
S315000014F0222A202838423640343E323C4E584C563A |
S315000015004A5448526470626E606C5E6A40084008D5 |
S31500001510000B4008400840084008000B4000400807 |
S3150000152040084008000B4018400840084008401892 |
S31500001530000B4000400840084008000B40284008C7 |
S31500001540400840084028000B40004008400840087A |
S315000015504028000B40184008400840084028401822 |
S31500001560000B4000000B0009E00000194424305431 |
S3150000157044243054442430544424305444243054B5 |
S3150000158044243054442430544424305444243054A5 |
S315000015904424305444243054442430544424305495 |
S315000015A04424305444243054442430544424305485 |
S315000015B04424305444243054442430544424305475 |
S315000015C04424305444243054442430544424305465 |
S315000015D04424305444243054442430544424305455 |
S315000015E04424305444243054442430544424000BBE |
S315000015F0604300006043306C3548E10B361275FFDE |
S315000016008B396353330C430167438902025C73FFD2 |
S315000016102024C80175FF77088B1DC802890273FF55 |
S31500001620015D20154301890E015D6119770475FC82 |
S31500001630025E212D20163072015E221D202689F7BA |
S31500001640A0197505000975FE015E3072201689FB2A |
S31500001650A0117503000943018903015D2014411996 |
S31500001660201475FE025E307220244219202542297C |
S31500001670202489F77503304089047401025C3040E8 |
S30D0000168020248BFB000B00097E |
S315000016904952513A205075736820746F2052544550 |
S315000016A0000000004E4D492F42524B3A476F746F6F |
S315000016B0204D6F6E00000000545241503A50757331 |
S315000016C06820746F2052544500000000496C6C6518 |
S315000016D067616C3A476F746F204D6F6E00000000B3 |
S315000016E0416472734572723A476F746F204D6F6E24 |
S315000016F00000000053482D32204D6F6E69746F72E2 |
S3150000170020762E3100000000284329203230303365 |
S3150000171020542E4169746368000000004D656D6FAA |
S3150000172072792D2D0000000052756E2D2D2D476FFC |
S315000017306F64204C75636B210000000042524B2DF4 |
S3150000174046756E632053656C6563743F0000000048 |
S31500001750313A5245472020323A42524B20534554A3 |
S315000017600000000053657420427265616B20506F63 |
S31500001770696E742E00000000416464726573733FE5 |
S3150000178000000000427265616B20416363657074FE |
S3150000179065642E2000000000427265616B20436183 |
S315000017A06E63656C65642E20000000005352202095 |
S315000017B02020203A00000000504320202020203A1C |
S315000017C000000000535028523135293A000000002D |
S315000017D0505220202020203A0000000052302020C5 |
S315000017E02020203A00000000523120202020203AFC |
S315000017F000000000523220202020203A0000000085 |
S31500001800523320202020203A0000000052342020AD |
S315000018102020203A00000000523520202020203AC7 |
S3150000182000000000523620202020203A0000000050 |
S31500001830523720202020203A000000005238202075 |
S315000018402020203A00000000523920202020203A93 |
S3150000185000000000523130202020203A0000000015 |
S31500001860523131202020203A00000000523132202F |
S315000018702020203A00000000523133202020203A58 |
S3150000188000000000523134202020203A00000000E1 |
S31500001890523135202020203A000000004D414348B7 |
S315000018A02020203A000000004D41434C2020203AE1 |
S315000018B000000000474252202020203A000000008D |
S315000018C0564252202020203A00000000476574202E |
S315000018D0532D466F726D6174285333290000000042 |
S315000018E0706C656173652073656E642E2E2E2E2EC8 |
S315000018F0000000002D2D2D2D2D4F4B210000000046 |
S315000019004552523A42616420532D466F726D61749E |
S3090000191000000000CD |
S70500000000FA |
/main.map
0,0 → 1,104
Archive member included because of file (symbol) |
|
/usr/local/lib/gcc-lib/sh-elf/2.95.3/m2/libgcc.a(_ashiftlt.o) |
main.o (__ashlsi3) |
/usr/local/lib/gcc-lib/sh-elf/2.95.3/m2/libgcc.a(_udivsi3.o) |
main.o (__udivsi3) |
/usr/local/sh-elf/lib/libc.a(memcpy.o) |
main.o (memcpy) |
|
Memory Configuration |
|
Name Origin Length Attributes |
ram 0x0000000000000000 0x0000000000003e00 |
stack 0x0000000000003e00 0x0000000000000200 |
*default* 0x0000000000000000 0xffffffffffffffff |
|
Linker script and memory map |
|
LOAD crt0.o |
LOAD main.o |
LOAD /usr/local/lib/gcc-lib/sh-elf/2.95.3/m2/libgcc.a |
LOAD /usr/local/sh-elf/lib/libc.a |
LOAD /usr/local/lib/gcc-lib/sh-elf/2.95.3/m2/libgcc.a |
|
.text 0x0000000000000000 0x1688 |
*(.text) |
.text 0x0000000000000000 0x440 crt0.o |
.text 0x0000000000000440 0x10a0 main.o |
0x00000000000011f8 uart_rx_flush |
0x0000000000001464 lcd_init |
0x000000000000136c lcd_pos |
0x0000000000000f4e asc2hex |
0x0000000000000f34 hex2asc |
0x0000000000001154 waitNms |
0x000000000000048c nmi_handler |
0x00000000000012a4 lcd_cursor |
0x0000000000000f6a key_wait_on |
0x00000000000005d0 main_sh |
0x000000000000072c utility |
0x0000000000001220 uart_set_baudrate |
0x0000000000000cac command |
0x00000000000013a8 lcd_ready |
0x00000000000011a4 uart_rx |
0x0000000000000440 irq_handler |
0x00000000000011c4 uart_rx_echo |
0x0000000000001418 lcd_wr |
0x00000000000012dc lcd_erase |
0x00000000000013c8 lcd_rd |
0x0000000000000ef4 get_byte_rx_echo |
0x00000000000004ec trap_handler |
0x0000000000000d80 get_sformat |
0x0000000000000584 error |
0x0000000000000fc4 key_scan |
0x0000000000000538 illegal |
0x000000000000124c lcd_disp_long |
0x0000000000001184 uart_tx |
0x0000000000000f98 key_wait_off |
0x0000000000001340 lcd_disp |
0x000000000000130c lcd_message |
.text 0x00000000000014e0 0x88 /usr/local/lib/gcc-lib/sh-elf/2.95.3/m2/libgcc.a(_ashiftlt.o) |
0x00000000000014e0 __ashlsi3 |
.text 0x0000000000001568 0x8a /usr/local/lib/gcc-lib/sh-elf/2.95.3/m2/libgcc.a(_udivsi3.o) |
0x0000000000001568 __udivsi3 |
*fill* 0x00000000000015f2 0xa04076800000002 00 |
.text 0x00000000000015f4 0x94 /usr/local/sh-elf/lib/libc.a(memcpy.o) |
0x00000000000015f4 memcpy |
*(.strings) |
0x0000000000001688 _etext = . |
|
.tors 0x0000000000001688 0x0 |
0x0000000000001688 ___ctors = . |
*(.ctors) |
0x0000000000001688 ___ctors_end = . |
0x0000000000001688 ___dtors = . |
*(.dtors) |
0x0000000000001688 ___dtors_end = . |
|
.rodata 0x0000000000001690 0x284 |
*(.rodata) |
.rodata 0x0000000000001690 0x284 main.o |
|
.rela.dyn |
0x000000000000190c __idata_start = (((ADDR (.text) + SIZEOF (.text)) + SIZEOF (.tors)) + SIZEOF (.rodata)) |
|
.data 0x0000000000001920 0x0 load address 0x0000000000001920 |
0x0000000000001920 __idata_start = . |
0x0000000000001920 _sdata = . |
*(.data) |
0x0000000000001920 _edata = . |
0x0000000000001920 __idata_end = (__idata_start + SIZEOF (.data)) |
|
.bss 0x0000000000001920 0x0 |
0x0000000000001920 _bss_start = . |
*(.bss) |
*(COMMON) |
0x0000000000001920 _end = . |
|
.stack 0x0000000000003e00 0x0 |
0x0000000000003e00 _stack = . |
*(.stack) |
OUTPUT(main.elf elf32-sh) |
|
.comment 0x0000000000000000 0x26 |
.comment 0x0000000000000000 0x26 main.o |
/startup/sh.x
0,0 → 1,56
/************************************** |
SuperH (SH-2) C Compiler Linker Script |
**************************************/ |
|
OUTPUT_FORMAT("elf32-sh") |
OUTPUT_ARCH(sh) |
|
MEMORY |
{ |
ram : o = 0x00000000, l = 0x3e00 |
stack : o = 0x00003e00, l = 0x0200 |
} |
|
SECTIONS |
{ |
.text : { |
*(.text) |
*(.strings) |
_etext = . ; |
} > ram |
|
.tors : { |
___ctors = . ; |
*(.ctors) |
___ctors_end = . ; |
___dtors = . ; |
*(.dtors) |
___dtors_end = . ; |
} > ram |
|
.rodata : { |
*(.rodata) |
} >ram |
|
__idata_start = ADDR(.text) + SIZEOF(.text) + SIZEOF(.tors) + SIZEOF(.rodata); |
.data : AT(__idata_start) { |
__idata_start = .; |
_sdata = . ; |
*(.data) |
_edata = . ; |
} > ram |
__idata_end = __idata_start + SIZEOF(.data); |
|
.bss : { |
_bss_start = .; |
*(.bss) |
*(COMMON) |
_end = .; |
} >ram |
|
.stack : |
{ |
_stack = .; |
*(.stack) |
} > stack |
} |
/startup/crt0.S
0,0 → 1,383
/**************************************** |
SuperH (SH-2) C compiler Startup Routine |
---------------------------------------- |
Rev1. March 21, 2003 by Thorn Aitch |
****************************************/ |
|
/******************** |
Section: .text (ROM) |
********************/ |
.section .text |
|
/************ |
Vector Table |
************/ |
_vector_top: |
.long _start ! #000 |
.long _stack+0x200 ! #001 |
.long _start ! #002 |
.long _stack+0x200 ! #003 |
.long _gnrl_ilgl ! #004 |
.long _unexpected ! #005 |
.long _slot_ilgl ! #006 |
.long _unexpected ! #007 |
.long _unexpected ! #008 |
.long _cpuerr ! #009 |
.long _dmaerr ! #010 |
.long _nmi ! #011 |
.long _unexpected ! #012 |
.long _unexpected ! #013 |
.long _unexpected ! #014 |
.long _unexpected ! #015 |
.long _unexpected ! #016 |
.long _unexpected ! #017 |
.long _unexpected ! #018 |
.long _unexpected ! #019 |
.long _unexpected ! #020 |
.long _unexpected ! #021 |
.long _unexpected ! #022 |
.long _unexpected ! #023 |
.long _unexpected ! #024 |
.long _unexpected ! #025 |
.long _unexpected ! #026 |
.long _unexpected ! #027 |
.long _unexpected ! #028 |
.long _unexpected ! #029 |
.long _unexpected ! #030 |
.long _unexpected ! #031 |
.long _trap ! #032 |
.long _trap ! #033 |
.long _trap ! #034 |
.long _trap ! #035 |
.long _trap ! #036 |
.long _trap ! #037 |
.long _trap ! #038 |
.long _trap ! #039 |
.long _trap ! #040 |
.long _trap ! #041 |
.long _trap ! #042 |
.long _trap ! #043 |
.long _trap ! #044 |
.long _trap ! #045 |
.long _trap ! #046 |
.long _trap ! #047 |
.long _trap ! #048 |
.long _trap ! #049 |
.long _trap ! #050 |
.long _trap ! #051 |
.long _trap ! #052 |
.long _trap ! #053 |
.long _trap ! #054 |
.long _trap ! #055 |
.long _trap ! #056 |
.long _trap ! #057 |
.long _trap ! #058 |
.long _trap ! #059 |
.long _trap ! #060 |
.long _trap ! #061 |
.long _trap ! #062 |
.long _trap ! #063 |
.long _irq0 ! #064 |
.long _irq1 ! #065 |
.long _irq2 ! #066 |
.long _irq3 ! #067 |
.long _irq4 ! #068 |
.long _irq5 ! #069 |
.long _irq6 ! #070 |
.long _irq7 ! #071 |
|
/*************** |
General Illegal |
Slot Illegal |
***************/ |
_gnrl_ilgl: |
_slot_ilgl: |
mov.l _pillegal, r0 |
jsr @r0 |
nop |
_restart: |
mov.l _pvector_top, r1 |
mov.l @r1, r0 |
jmp @r0 |
mov.l @(4, r1), r15 |
|
/***************** |
CPU Address Error |
DMA Address Error |
Unexpected Vector |
*****************/ |
_cpuerr: |
_dmaerr: |
_unexpected: |
mov.l _perror, r0 |
jsr @r0 |
nop |
bra _restart |
nop |
|
/**************************** |
NMI (Non Maskable Interrupt) |
****************************/ |
_nmi: |
mov.l r0, @-r15 |
mov.l r1, @-r15 |
mov.l _pbreak_reg_top, r1 |
|
mov.l @(12, r15), r0 ! sr |
mov.l r0, @r1 |
add #4, r1 |
mov.l @( 8, r15), r0 ! pc |
mov.l r0, @r1 |
add #4, r1 |
mov r15, r0 ! sp |
add #8, r0 |
mov.l r0, @r1 |
add #4, r1 |
sts pr, r0 ! pr |
mov.l r0, @r1 |
add #4, r1 |
mov.l @( 4, r15), r0 ! r0 |
mov.l r0, @r1 |
add #4, r1 |
mov.l @( 0, r15), r0 ! r1 |
mov.l r0, @r1 |
add #4, r1 |
mov.l r2, @r1 ! r2 |
add #4, r1 |
mov.l r3, @r1 ! r3 |
add #4, r1 |
mov.l r4, @r1 ! r4 |
add #4, r1 |
mov.l r5, @r1 ! r5 |
add #4, r1 |
mov.l r6, @r1 ! r6 |
add #4, r1 |
mov.l r7, @r1 ! r7 |
add #4, r1 |
mov.l r8, @r1 ! r8 |
add #4, r1 |
mov.l r9, @r1 ! r9 |
add #4, r1 |
mov.l r10, @r1 ! r10 |
add #4, r1 |
mov.l r11, @r1 ! r11 |
add #4, r1 |
mov.l r12, @r1 ! r12 |
add #4, r1 |
mov.l r13, @r1 ! r13 |
add #4, r1 |
mov.l r14, @r1 ! r14 |
add #4, r1 |
mov r15, r0 ! r15 |
add #8, r0 |
mov.l r0, @r1 |
add #4, r1 |
sts mach, r0 ! mach |
mov.l r0, @r1 |
add #4, r1 |
sts macl, r0 ! macl |
mov.l r0, @r1 |
add #4, r1 |
stc gbr, r0 ! gbr |
mov.l r0, @r1 |
add #4, r1 |
stc vbr, r0 ! vbr |
mov.l r0, @r1 |
|
mov.l _pnmi_handler, r0 |
jsr @r0 |
nop |
bra _restart |
nop |
|
/*********************** |
IRQ (Interrupt Request) |
***********************/ |
_irq0: |
_irq1: |
_irq2: |
_irq3: |
_irq4: |
_irq5: |
_irq6: |
_irq7: |
stc.l gbr, @-r15 |
stc.l vbr, @-r15 |
sts.l mach, @-r15 |
sts.l macl, @-r15 |
sts.l pr, @-r15 |
mov.l r14, @-r15 |
mov.l r13, @-r15 |
mov.l r12, @-r15 |
mov.l r11, @-r15 |
mov.l r10, @-r15 |
mov.l r9, @-r15 |
mov.l r8, @-r15 |
mov.l r7, @-r15 |
mov.l r6, @-r15 |
mov.l r5, @-r15 |
mov.l r4, @-r15 |
mov.l r3, @-r15 |
mov.l r2, @-r15 |
mov.l r1, @-r15 |
mov.l r0, @-r15 |
mov.l _pirq_handler, r0 |
jsr @r0 |
nop |
mov.l @r15+, r0 |
mov.l @r15+, r1 |
mov.l @r15+, r2 |
mov.l @r15+, r3 |
mov.l @r15+, r4 |
mov.l @r15+, r5 |
mov.l @r15+, r6 |
mov.l @r15+, r7 |
mov.l @r15+, r8 |
mov.l @r15+, r9 |
mov.l @r15+, r10 |
mov.l @r15+, r11 |
mov.l @r15+, r12 |
mov.l @r15+, r13 |
mov.l @r15+, r14 |
lds.l @r15+, pr |
lds.l @r15+, macl |
lds.l @r15+, mach |
ldc.l @r15+, vbr |
ldc.l @r15+, gbr |
rte |
nop |
|
/************ |
TRAP Handler |
************/ |
_trap: |
stc.l gbr, @-r15 |
stc.l vbr, @-r15 |
sts.l mach, @-r15 |
sts.l macl, @-r15 |
sts.l pr, @-r15 |
mov.l r14, @-r15 |
mov.l r13, @-r15 |
mov.l r12, @-r15 |
mov.l r11, @-r15 |
mov.l r10, @-r15 |
mov.l r9, @-r15 |
mov.l r8, @-r15 |
mov.l r7, @-r15 |
mov.l r6, @-r15 |
mov.l r5, @-r15 |
mov.l r4, @-r15 |
mov.l r3, @-r15 |
mov.l r2, @-r15 |
mov.l r1, @-r15 |
mov.l r0, @-r15 |
mov.l _ptrap_handler, r0 |
jsr @r0 |
nop |
mov.l @r15+, r0 |
mov.l @r15+, r1 |
mov.l @r15+, r2 |
mov.l @r15+, r3 |
mov.l @r15+, r4 |
mov.l @r15+, r5 |
mov.l @r15+, r6 |
mov.l @r15+, r7 |
mov.l @r15+, r8 |
mov.l @r15+, r9 |
mov.l @r15+, r10 |
mov.l @r15+, r11 |
mov.l @r15+, r12 |
mov.l @r15+, r13 |
mov.l @r15+, r14 |
lds.l @r15+, pr |
lds.l @r15+, macl |
lds.l @r15+, mach |
ldc.l @r15+, vbr |
ldc.l @r15+, gbr |
rte |
nop |
|
/********************** |
Break Information Area |
**********************/ |
.org _vector_top + 0x300 |
_break_reg_top: |
_break_sr: .long 0xffffffff |
_break_pc: .long 0xffffffff |
_break_sp: .long 0xffffffff |
_break_pr: .long 0xffffffff |
_break_r0: .long 0xffffffff |
_break_r1: .long 0xffffffff |
_break_r2: .long 0xffffffff |
_break_r3: .long 0xffffffff |
_break_r4: .long 0xffffffff |
_break_r5: .long 0xffffffff |
_break_r6: .long 0xffffffff |
_break_r7: .long 0xffffffff |
_break_r8: .long 0xffffffff |
_break_r9: .long 0xffffffff |
_break_r10: .long 0xffffffff |
_break_r11: .long 0xffffffff |
_break_r12: .long 0xffffffff |
_break_r13: .long 0xffffffff |
_break_r14: .long 0xffffffff |
_break_r15: .long 0xffffffff |
_break_mach: .long 0xffffffff |
_break_macl: .long 0xffffffff |
_break_gbr: .long 0xffffffff |
_break_vbr: .long 0xffffffff |
|
/************ |
Main Routine |
************/ |
.org _vector_top + 0x400 |
_start: |
mov.l _pvector_top, r8 |
ldc r8, vbr |
mov #0x00, r8 |
ldc r8, sr |
mov.l _pmain_sh, r8 |
jsr @r8 |
mov #0, r14 |
|
_endless: |
bra _endless |
nop |
|
.align 4 |
_pmain_sh : .long _main_sh |
_pvector_top: .long _vector_top |
_pillegal: .long _illegal |
_perror: .long _error |
_pnmi_handler: .long _nmi_handler |
_pirq_handler: .long _irq_handler |
_ptrap_handler: .long _trap_handler |
_pbreak_reg_top: .long _break_reg_top |
|
|
/********************** |
Section: .rodata (ROM) |
**********************/ |
.section .rodata |
.align 4 |
|
/******************** |
Section: .data (RAM) |
********************/ |
.section .data |
.align 4 |
|
/******************* |
Section: .bss (RAM) |
*******************/ |
.section .bss |
.align 4 |
|
/********************* |
Section: .stack (RAM) |
*********************/ |
.section .stack |
.align 4 |
_stack: |
.end |
|
/dump
0,0 → 1,4
#!/bin/bash |
|
sh-elf-objdump -D -msh2 $1 | less |
|
dump
Property changes :
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: main.s
===================================================================
--- main.s (nonexistent)
+++ main.s (revision 12)
@@ -0,0 +1,638 @@
+ .file "main.c"
+gcc2_compiled.:
+.section .rodata
+ .align 2
+.LC0:
+ .string ""
+ .text
+ .align 2
+ .global _main_sh
+ .type _main_sh,@function
+_main_sh:
+ mov.l r8,@-r15
+ mov.l r14,@-r15
+ sts.l pr,@-r15
+ add #-28,r15
+ mov r15,r14
+ mov r14,r1
+ mov.l .L10,r2
+ mov r14,r1
+ mov #17,r3
+ mov r15,r7
+ mov r1,r4
+ mov r2,r5
+ mov r3,r6
+ mov.l .L11,r8
+ jsr @r8
+ nop
+ mov.l r14,@(20,r14)
+ mov r15,r1
+ mov.l .L12,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov.l .L13,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov.w .L14,r2
+ mov #0,r4
+ mov r2,r5
+ mov.l .L15,r8
+ jsr @r8
+ nop
+.L3:
+ mov.l @(20,r14),r1
+ mov.b @r1,r2
+ extu.b r2,r1
+ tst r1,r1
+ bf .L5
+ bra .L4
+ nop
+ .align 2
+.L5:
+ mov r15,r1
+ mov.l .L13,r8
+ jsr @r8
+ nop
+ mov r15,r2
+ mov r14,r1
+ add #20,r1
+ mov.l @r1,r2
+ mov.b @r2,r7
+ extu.b r7,r3
+ add #1,r2
+ mov.l r2,@r1
+ mov #1,r4
+ mov r3,r5
+ mov.l .L15,r8
+ jsr @r8
+ nop
+ bra .L3
+ nop
+ .align 2
+.L4:
+ mov r14,r1
+ mov r14,r2
+ add #24,r2
+ mov #0,r1
+ mov.b r1,@r2
+.L6:
+ bra .L8
+ nop
+ bra .L7
+ nop
+ .align 2
+.L8:
+ mov r14,r1
+ mov r14,r2
+ add #24,r2
+ mov.b @r2,r1
+ extu.b r1,r2
+ mov r2,r1
+ shlr2 r1
+ shlr2 r1
+ extu.b r1,r2
+ tst r2,r2
+ bf .L9
+ mov r15,r1
+ mov.l .L13,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov.w .L16,r2
+ mov #0,r4
+ mov r2,r5
+ mov.l .L15,r8
+ jsr @r8
+ nop
+.L9:
+ mov r15,r1
+ mov.l .L13,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov r14,r2
+ mov r14,r1
+ add #24,r1
+ mov.b @r1,r2
+ mov r2,r3
+ add #1,r3
+ mov.b r3,@r1
+ extu.b r2,r1
+ mov #1,r4
+ mov r1,r5
+ mov.l .L15,r8
+ jsr @r8
+ nop
+ bra .L6
+ nop
+ .align 2
+.L7:
+.L2:
+ add #28,r14
+ mov r14,r15
+ lds.l @r15+,pr
+ mov.l @r15+,r14
+ mov.l @r15+,r8
+ rts
+ nop
+ .align 1
+.L14:
+ .short 128
+.L16:
+ .short 192
+.L17:
+ .align 2
+.L10:
+ .long .LC0
+.L11:
+ .long _memcpy
+.L12:
+ .long _lcdinit
+.L13:
+ .long _lcdready
+.L15:
+ .long _lcdwr
+.Lfe1:
+ .size _main_sh,.Lfe1-_main_sh
+ .align 2
+ .global _lcdready
+ .type _lcdready,@function
+_lcdready:
+ mov.l r8,@-r15
+ mov.l r14,@-r15
+ sts.l pr,@-r15
+ mov r15,r14
+.L19:
+ mov r15,r1
+ mov #0,r4
+ mov.l .L22,r8
+ jsr @r8
+ nop
+ mov.w .L23,r1
+ and r0,r1
+ extu.b r1,r2
+ tst r2,r2
+ bf .L21
+ bra .L20
+ nop
+ .align 2
+.L21:
+ bra .L19
+ nop
+ .align 2
+.L20:
+.L18:
+ mov r14,r15
+ lds.l @r15+,pr
+ mov.l @r15+,r14
+ mov.l @r15+,r8
+ rts
+ nop
+ .align 1
+.L23:
+ .short 128
+.L24:
+ .align 2
+.L22:
+ .long _lcdrd
+.Lfe2:
+ .size _lcdready,.Lfe2-_lcdready
+ .align 2
+ .global _lcdrd
+ .type _lcdrd,@function
+_lcdrd:
+ mov.l r14,@-r15
+ add #-12,r15
+ mov r15,r14
+ mov.l r4,@r14
+ mov.l .L34,r1
+ mov r14,r3
+ mov r14,r2
+ add #3,r2
+ mov r1,r3
+ add #2,r1
+ mov.b @r2,r3
+ mov #1,r2
+ and r3,r2
+ mov.b @r1,r3
+ mov.w .L35,r7
+ and r3,r7
+ mov r7,r3
+ or r2,r3
+ mov.b r3,@r1
+ mov.l .L34,r1
+ mov r1,r2
+ add #2,r1
+ mov.b @r1,r2
+ mov #2,r3
+ or r2,r3
+ mov.b r3,@r1
+ mov.l .L34,r1
+ mov r1,r2
+ add #2,r1
+ mov.b @r1,r2
+ mov.w .L36,r3
+ and r2,r3
+ mov.b r3,@r1
+ mov r14,r2
+ mov r14,r1
+ add #8,r1
+ mov.l .L34,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+ mov r14,r2
+ mov r14,r1
+ add #8,r1
+ mov.l .L34,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+ mov r14,r2
+ mov r14,r1
+ add #8,r1
+ mov.l .L34,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+ mov.l .L34,r1
+ mov r1,r2
+ add #2,r1
+ mov.b @r1,r2
+ mov #4,r3
+ or r2,r3
+ mov.b r3,@r1
+ mov #0,r1
+ mov.l r1,@(4,r14)
+.L26:
+ mov.l @(4,r14),r1
+ mov #25,r2
+ cmp/gt r2,r1
+ bf .L29
+ bra .L27
+ nop
+ .align 2
+.L29:
+ mov r14,r2
+ mov r14,r1
+ add #8,r1
+ mov.l .L34,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+.L28:
+ mov.l @(4,r14),r1
+ mov r1,r2
+ add #1,r2
+ mov.l r2,@(4,r14)
+ bra .L26
+ nop
+ .align 2
+.L27:
+ mov r14,r2
+ mov r14,r1
+ add #9,r1
+ mov.l .L34,r3
+ mov r3,r2
+ add #3,r3
+ mov.b @r3,r2
+ mov.b r2,@r1
+ mov.l .L34,r1
+ mov r1,r2
+ add #2,r1
+ mov.b @r1,r2
+ mov.w .L36,r3
+ and r2,r3
+ mov.b r3,@r1
+ mov #0,r1
+ mov.l r1,@(4,r14)
+.L30:
+ mov.l @(4,r14),r1
+ mov #25,r2
+ cmp/gt r2,r1
+ bf .L33
+ bra .L31
+ nop
+ .align 2
+.L33:
+ mov r14,r2
+ mov r14,r1
+ add #8,r1
+ mov.l .L34,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+.L32:
+ mov.l @(4,r14),r1
+ mov r1,r2
+ add #1,r2
+ mov.l r2,@(4,r14)
+ bra .L30
+ nop
+ .align 2
+.L31:
+ mov r14,r1
+ mov r14,r2
+ add #9,r2
+ mov.b @r2,r3
+ extu.b r3,r1
+ mov r1,r0
+ bra .L25
+ nop
+ .align 2
+.L25:
+ add #12,r14
+ mov r14,r15
+ mov.l @r15+,r14
+ rts
+ nop
+ .align 1
+.L35:
+ .short 254
+.L36:
+ .short 251
+.L37:
+ .align 2
+.L34:
+ .long -1412628480
+.Lfe3:
+ .size _lcdrd,.Lfe3-_lcdrd
+ .align 2
+ .global _lcdwr
+ .type _lcdwr,@function
+_lcdwr:
+ mov.l r14,@-r15
+ add #-16,r15
+ mov r15,r14
+ mov.l r4,@r14
+ mov r5,r1
+ mov r14,r2
+ mov r14,r3
+ add #4,r3
+ mov.b r1,@r3
+ mov.l .L47,r1
+ mov r1,r2
+ add #3,r1
+ mov r14,r2
+ mov r14,r3
+ add #4,r3
+ mov.b @r3,r2
+ mov.b r2,@r1
+ mov.l .L47,r1
+ mov r14,r3
+ mov r14,r2
+ add #3,r2
+ mov r1,r3
+ add #2,r1
+ mov.b @r2,r3
+ mov #1,r2
+ and r3,r2
+ mov.b @r1,r3
+ mov.w .L48,r7
+ and r3,r7
+ mov r7,r3
+ or r2,r3
+ mov.b r3,@r1
+ mov.l .L47,r1
+ mov r1,r2
+ add #2,r1
+ mov.b @r1,r2
+ mov.w .L49,r3
+ and r2,r3
+ mov.b r3,@r1
+ mov.l .L47,r1
+ mov r1,r2
+ add #2,r1
+ mov.b @r1,r2
+ mov.w .L50,r3
+ and r2,r3
+ mov.b r3,@r1
+ mov r14,r2
+ mov r14,r1
+ add #12,r1
+ mov.l .L47,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+ mov r14,r2
+ mov r14,r1
+ add #12,r1
+ mov.l .L47,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+ mov r14,r2
+ mov r14,r1
+ add #12,r1
+ mov.l .L47,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+ mov.l .L47,r1
+ mov r1,r2
+ add #2,r1
+ mov.b @r1,r2
+ mov #4,r3
+ or r2,r3
+ mov.b r3,@r1
+ mov #0,r1
+ mov.l r1,@(8,r14)
+.L39:
+ mov.l @(8,r14),r1
+ mov #25,r2
+ cmp/gt r2,r1
+ bf .L42
+ bra .L40
+ nop
+ .align 2
+.L42:
+ mov r14,r2
+ mov r14,r1
+ add #12,r1
+ mov.l .L47,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+.L41:
+ mov.l @(8,r14),r1
+ mov r1,r2
+ add #1,r2
+ mov.l r2,@(8,r14)
+ bra .L39
+ nop
+ .align 2
+.L40:
+ mov.l .L47,r1
+ mov r1,r2
+ add #2,r1
+ mov.b @r1,r2
+ mov.w .L50,r3
+ and r2,r3
+ mov.b r3,@r1
+ mov #0,r1
+ mov.l r1,@(8,r14)
+.L43:
+ mov.l @(8,r14),r1
+ mov #25,r2
+ cmp/gt r2,r1
+ bf .L46
+ bra .L44
+ nop
+ .align 2
+.L46:
+ mov r14,r2
+ mov r14,r1
+ add #12,r1
+ mov.l .L47,r2
+ mov.b @r2,r3
+ mov.b r3,@r1
+.L45:
+ mov.l @(8,r14),r1
+ mov r1,r2
+ add #1,r2
+ mov.l r2,@(8,r14)
+ bra .L43
+ nop
+ .align 2
+.L44:
+.L38:
+ add #16,r14
+ mov r14,r15
+ mov.l @r15+,r14
+ rts
+ nop
+ .align 1
+.L48:
+ .short 254
+.L49:
+ .short 253
+.L50:
+ .short 251
+.L51:
+ .align 2
+.L47:
+ .long -1412628480
+.Lfe4:
+ .size _lcdwr,.Lfe4-_lcdwr
+ .align 2
+ .global _lcdinit
+ .type _lcdinit,@function
+_lcdinit:
+ mov.l r8,@-r15
+ mov.l r14,@-r15
+ sts.l pr,@-r15
+ add #-4,r15
+ mov r15,r14
+ mov r15,r1
+ mov #0,r4
+ mov #48,r5
+ mov.l .L61,r8
+ jsr @r8
+ nop
+ mov #0,r1
+ mov.l r1,@r14
+.L53:
+ mov.l @r14,r1
+ mov.l .L62,r2
+ cmp/gt r2,r1
+ bf .L55
+ bra .L54
+ nop
+ .align 2
+.L56:
+.L55:
+ mov.l @r14,r1
+ mov r1,r2
+ add #1,r2
+ mov.l r2,@r14
+ bra .L53
+ nop
+ .align 2
+.L54:
+ mov r15,r1
+ mov #0,r4
+ mov #48,r5
+ mov.l .L61,r8
+ jsr @r8
+ nop
+ mov #0,r1
+ mov.l r1,@r14
+.L57:
+ mov.l @r14,r1
+ mov.w .L63,r2
+ cmp/gt r2,r1
+ bf .L59
+ bra .L58
+ nop
+ .align 2
+.L60:
+.L59:
+ mov.l @r14,r1
+ mov r1,r2
+ add #1,r2
+ mov.l r2,@r14
+ bra .L57
+ nop
+ .align 2
+.L58:
+ mov r15,r1
+ mov #0,r4
+ mov #48,r5
+ mov.l .L61,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov.l .L64,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov #0,r4
+ mov #56,r5
+ mov.l .L61,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov.l .L64,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov #0,r4
+ mov #12,r5
+ mov.l .L61,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov.l .L64,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov #0,r4
+ mov #1,r5
+ mov.l .L61,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov.l .L64,r8
+ jsr @r8
+ nop
+ mov r15,r1
+ mov #0,r4
+ mov #6,r5
+ mov.l .L61,r8
+ jsr @r8
+ nop
+.L52:
+ add #4,r14
+ mov r14,r15
+ lds.l @r15+,pr
+ mov.l @r15+,r14
+ mov.l @r15+,r8
+ rts
+ nop
+ .align 1
+.L63:
+ .short 4999
+.L65:
+ .align 2
+.L61:
+ .long _lcdwr
+.L62:
+ .long 204999
+.L64:
+ .long _lcdready
+.Lfe5:
+ .size _lcdinit,.Lfe5-_lcdinit
+ .ident "GCC: (GNU) 2.95.3 20010315 (release)"
Index: main.c
===================================================================
--- main.c (nonexistent)
+++ main.c (revision 12)
@@ -0,0 +1,1140 @@
+//===============================
+// Monitor Program
+//-------------------------------
+// for VirtexE Evaluation Board
+// May.1 2003 Ver.1
+//===============================
+
+//======================================================
+// Address Map
+//======================================================
+// address sz wt wd device
+// 00000000-00001FFF 8K 0 32 ROM (code)
+// 00002000-00003DFF 6K 0 32 RAM (data)
+// 00003E00-00003FFF 512 0 32 RAM (stack)
+//
+// 00000000-0000FFFF 64K 0 32 RAM (shadow every 16KB)
+// 00010000-0001FFFF 64K 3 32 RAM (shadow every 16KB)
+// 00020000-0002FFFF 64K 0 16 RAM (shadow every 16KB)
+// 00030000-0003FFFF 64K 3 16 RAM (shadow every 16KB)
+// 00040000-ABCCFFFF (shadow RAM)
+// ABCD0000-ABCD00FF 256 3 32 PIO (shadow every 4B)
+// ABCD0100-ABCD01FF 256 3 32 UART(shadow every 4B)
+// ABCD0200-ABCD02FF 256 3 32 SYS (shadow every 8B)
+// ABCD0300-FFFBFFFF (shadow RAM)
+// FFFC0000-FFFCFFFF 64K 0 32 RAM (shadow every 16KB)
+// FFFD0000-FFFDFFFF 64K 3 32 RAM (shadow every 16KB)
+// FFFE0000-FFFEFFFF 64K 0 16 RAM (shadow every 16KB)
+// FFFF0000-FFFFFFFF 64K 3 16 RAM (shadow every 16KB)
+//
+//======================================================
+// PORT OUTPUT
+//======================================================
+// ABCD0000 : reserved
+// 31 30 29 28 27 26 25 24
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | | | | | | | | |
+// -----------------------------------------------;
+//
+// ABCD0001 : KEYYO (Key SCAN Y-axis out)
+// 23 22 21 20 19 18 17 16
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | | | | KY4 | KY3 | KY2 | KY1 | KY0 |
+// -----------------------------------------------
+//
+// ABCD0002 : LCDCON (LCD Control Signal)
+// 15 14 13 12 11 10 9 8
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | | | | | | E | R/W | RS |
+// -----------------------------------------------
+//
+// ABCD0003 : LCDOUT (Write Data to LCD)
+// 7 6 5 4 3 2 1 0
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | DW7 | DW6 | DW5 | DW4 | DW3 | DW2 | DW1 | DW0 |
+// -----------------------------------------------
+//
+//======================================================
+// PORT INPUT
+//======================================================
+// ABCD0000 : reserved
+// 31 30 29 28 27 26 25 24
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | | | | | | | | |
+// -----------------------------------------------;
+//
+// ABCD0001 : KEYXI (Key SCAN X-axis in)
+// 23 22 21 20 19 18 17 16
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | | | | KX4 | KX3 | KX2 | KX1 | KX0 |
+// -----------------------------------------------
+//
+// ABCD0002 : reserved
+// 15 14 13 12 11 10 9 8
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | | | | | | | | |
+// -----------------------------------------------
+//
+// ABCD0003 : LCDIN (Read Data from LCD)
+// 7 6 5 4 3 2 1 0
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | DR7 | DR6 | DR5 | DR4 | DR3 | DR2 | DR1 | DR0 |
+// -----------------------------------------------
+//
+//======================================================
+// UART: SASC (www.opencores.com)
+// Simple Asynchronous Serial Communication Device
+//======================================================
+// ABCD0100 : UARTBG0 Baud Rate Generator Div0 (R/W)
+// 31 30 29 28 27 26 25 24
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | B07 | B06 | B05 | B04 | B03 | B02 | B01 | B00 |
+// -----------------------------------------------
+//
+// ABCD0101 : UARTBG1 Baud Rate Generator Div1 (R/W)
+// 23 22 21 20 19 18 17 16
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | B17 | B16 | B15 | B14 | B13 | B12 | B11 | B10 |
+// -----------------------------------------------
+//
+// ABCD0102 : UARTCON (TXF=full_o, RXE=empty_o) (R only)
+// 15 14 13 12 11 10 9 8
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | | | | | | | TXF | RXE |
+// -----------------------------------------------
+//
+// ABCD0103 : UARTTXD(W only)/UARTRXD(R only)
+// 7 6 5 4 3 2 1 0
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// | TR7 | TR6 | TR5 | TR4 | TR3 | TR2 | TR1 | TR0 |
+// -----------------------------------------------
+//
+//======================================================
+// System Controller
+// Interrupt and Exception Controller
+//======================================================
+// ABCD0200 : INTCTL Interrupt Control (32bit R/W only)
+// 31 30 29 28 27 26 25 24
+// -----------------------------------------------
+// |E_NMI|E_IRQ|E_CER|E_DER|E_MRS| |TMRON|BRKON|
+// -----------------------------------------------
+// 23 22 21 20 19 18 17 16
+// -----------------------------------------------
+// |ILVL3|ILVL2|ILVL1|ILVL0|IVEC7|IVEC6|IVEC5|IVEC4|
+// -----------------------------------------------
+// 15 14 13 12 11 10 9 8
+// -----------------------------------------------
+// |IVEC3|IVEC2|IVEC1|IVEC0|TMR11|TMR10|TMR09|TMR08|
+// -----------------------------------------------
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// |TMR07|TMR06|TMR05|TMR04|TMR03|TMR02|TMR01|TMR00|
+// -----------------------------------------------
+// bit31: E_NMI Emulate NMI Interrupt (W only)
+// bit30: E_IRQ Emulate IRQ Interrupt (W only)
+// bit29: E_CER Emulate CPU Address Error (W only)
+// bit28: E_DER Emulate DMA Address Error (W only)
+// bit27: E_MRS Emulate Manual Reset (W only)
+// bit26: reserved
+// bit25: TMRON INTTMR OFF/ON (0:OFF, 1:ON)
+// bit24: BRKON Address Break(NMI) OFF/ON (0:OFF, 1:ON)
+// bit23: ILVL3 IRQ ILevel 3
+// bit22: ILVL2 IRQ ILevel 2
+// bit21: ILVL1 IRQ ILevel 1
+// bit20: ILVL0 IRQ ILevel 0
+// bit19: IVEC7 IRQ Vector 7
+// bit18: IVEC6 IRQ Vector 6
+// bit17: IVEC5 IRQ Vector 5
+// bit16: IVEC4 IRQ Vector 4
+// bit15: IVEC3 IRQ Vector 3
+// bit14: IVEC2 IRQ Vector 2
+// bit13: IVEC1 IRQ Vector 1
+// bit12: IVEC0 IRQ Vector 0
+// bit11: TMR11 (12 bit interval timer to generate IRQ)
+// ...
+// bit 0: TMR00 (12 bit interval timer to generate IRQ)
+//
+// ABCD0204 : BRKADR Break Address (16bit R/W only)
+// 15 14 13 12 11 10 9 8
+// -----------------------------------------------
+// |ADR15|ADR14|ADR13|ADR12|ADR11|ADR10|ADR09|ADR08|
+// -----------------------------------------------
+// 7 6 5 4 3 2 1 0
+// -----------------------------------------------
+// |ADR07|ADR06|ADR05|ADR04|ADR03|ADR02|ADR01|ADR00|
+// -----------------------------------------------
+// bit15: ADR15 Break Address15
+// ...
+// bit00: ADR00 Break Address00
+//
+
+#include "common.h"
+
+//=================
+// Define Functions
+//=================
+void utility(void);
+unsigned char command(unsigned long *data);
+unsigned long get_sformat(void);
+unsigned char get_byte_rx_echo(void);
+unsigned char hex2asc(unsigned char hex);
+unsigned char asc2hex(unsigned char asc);
+
+void waitNms(unsigned char n);
+unsigned char key_scan();
+unsigned char key_wait_on(void);
+void key_wait_off(void);
+
+void uart_tx(unsigned char data);
+unsigned char uart_rx(void);
+unsigned char uart_rx_echo(void);
+void uart_rx_flush(void);
+void uart_set_baudrate(void);
+
+void lcd_disp_long(unsigned long data);
+void lcd_cursor(unsigned char con);
+void lcd_erase(unsigned char pos);
+void lcd_message(unsigned char pos, unsigned char *pstr);
+void lcd_disp(unsigned char chr);
+void lcd_pos(unsigned char pos);
+void lcd_ready(void);
+unsigned char lcd_rd(int);
+void lcd_wr(int, unsigned char);
+void lcd_init(void);
+
+//============
+// IRQ Handler
+//============
+void irq_handler(void)
+{
+ unsigned char mes_irq[] = "IRQ: Push to RTE";
+
+ lcd_message(16, mes_irq);
+ key_wait_off();
+ key_wait_on();
+ key_wait_off();
+}
+
+//============
+// NMI Handler
+//============
+void nmi_handler(void)
+{
+ unsigned char mes_nmi[] = "NMI/BRK:Goto Mon";
+
+ SYS.INTCTL = SYS.INTCTL & 0xfeffffff; // BRK off
+
+ lcd_message(16, mes_nmi);
+ key_wait_off();
+ key_wait_on();
+ key_wait_off();
+}
+
+//=============
+// TRAP Handler
+//=============
+void trap_handler(void)
+{
+ unsigned char mes_trap[] = "TRAP:Push to RTE";
+
+ lcd_message(16, mes_trap);
+ key_wait_off();
+ key_wait_on();
+ key_wait_off();
+}
+
+//====================
+// Illegal Instruction
+//====================
+void illegal(void)
+{
+ unsigned char mes_ilgl[] = "Illegal:Goto Mon";
+
+ lcd_message(16, mes_ilgl);
+ key_wait_off();
+ key_wait_on();
+ key_wait_off();
+}
+
+//==============
+// Address Error
+//==============
+void error(void)
+{
+ unsigned char mes_error[]= "AdrsErr:Goto Mon";
+
+ lcd_message(16, mes_error);
+ key_wait_off();
+ key_wait_on();
+ key_wait_off();
+}
+
+//=============
+// Main Routine
+//=============
+void main_sh(void)
+{
+ unsigned char mes_welcome[] = "SH-2 Monitor v.1";
+ unsigned char mes_copyright[] = "(C) 2003 T.Aitch";
+ unsigned char mes_memory[] = "Memory--";
+ unsigned char mes_run[] = "Run---Good Luck!";
+
+ unsigned char key;
+ unsigned long adrs;
+ unsigned long data;
+ unsigned long data_edit;
+
+ void (* userfunc)(void);
+ long i;
+
+ //-----------
+ // Initialize
+ //-----------
+ lcd_init();
+ uart_set_baudrate();
+ uart_rx_flush();
+ key_wait_off();
+
+ //----------------
+ // Welcome Message
+ //----------------
+ lcd_message( 0, mes_welcome);
+ lcd_message(16, mes_copyright);
+ for (i = 0 ; i < 2000000 ; i++);
+
+ //----------
+ // Clear LCD
+ //----------
+ key_wait_off();
+ lcd_erase(0);
+ lcd_erase(16);
+
+ //----------------
+ // Main Event Loop
+ //----------------
+ adrs = 0x00000000;
+
+ while(1)
+ {
+ adrs = adrs & 0xfffffffc;
+ data = * (unsigned long *) adrs;
+ lcd_pos(0);
+ lcd_disp_long(adrs);
+ lcd_disp_long(data);
+
+ lcd_message(16, mes_memory);
+
+ data_edit = data;
+ key = command(&data_edit);
+
+ switch(key)
+ {
+ case KEYUTL: utility();
+ break;
+ case KEYRUN: lcd_message(16, mes_run);
+ key_wait_off();
+ adrs = adrs & 0xfffffffe;
+ userfunc = (void (*)) adrs;
+ (* userfunc)();
+ break;
+ case KEYGET: adrs = get_sformat();
+ break;
+ case KEYPUT: break;
+ case KEYADR: adrs = data_edit;
+ break;
+ case KEYINC: adrs = adrs + 4;
+ break;
+ case KEYDEC: adrs = adrs - 4;
+ break;
+ case KEYDAT: * (unsigned long *) adrs = data_edit;
+ adrs = adrs + 4;
+ break;
+ default: break;
+ }
+ }
+}
+
+//****************************************************
+//* *
+//* Service Utilities *
+//* *
+//****************************************************
+
+//====================
+// "Utility" Functions
+//--------------------
+// Input : none
+// Output : none
+//====================
+void utility(void)
+{
+ unsigned char mes_util[] = "BRK-Func Select?";
+ unsigned char mes_menu[] = "1:REG 2:BRK SET";
+ unsigned char mes_break[] = "Set Break Point.";
+ unsigned char mes_adrs[] = "Address?";
+ unsigned char mes_brkok[] = "Break Accepted. ";
+ unsigned char mes_brkng[] = "Break Canceled. ";
+ unsigned char mes_SR[] = "SR :";
+ unsigned char mes_PC[] = "PC :";
+ unsigned char mes_SP[] = "SP(R15):";
+ unsigned char mes_PR[] = "PR :";
+ unsigned char mes_R0[] = "R0 :";
+ unsigned char mes_R1[] = "R1 :";
+ unsigned char mes_R2[] = "R2 :";
+ unsigned char mes_R3[] = "R3 :";
+ unsigned char mes_R4[] = "R4 :";
+ unsigned char mes_R5[] = "R5 :";
+ unsigned char mes_R6[] = "R6 :";
+ unsigned char mes_R7[] = "R7 :";
+ unsigned char mes_R8[] = "R8 :";
+ unsigned char mes_R9[] = "R9 :";
+ unsigned char mes_R10[] = "R10 :";
+ unsigned char mes_R11[] = "R11 :";
+ unsigned char mes_R12[] = "R12 :";
+ unsigned char mes_R13[] = "R13 :";
+ unsigned char mes_R14[] = "R14 :";
+ unsigned char mes_R15[] = "R15 :";
+ unsigned char mes_MACH[] = "MACH :";
+ unsigned char mes_MACL[] = "MACL :";
+ unsigned char mes_GBR[] = "GBR :";
+ unsigned char mes_VBR[] = "VBR :";
+ unsigned char key;
+ unsigned long adrs;
+
+ lcd_message(0, mes_util);
+ lcd_message(16, mes_menu);
+ key_wait_off();
+
+ key = key_wait_on();
+ if (key == KEY1) // Register Watcher
+ {
+ key_wait_off();
+ lcd_message(0, mes_SR); lcd_disp_long(REG.SR);
+ lcd_message(16, mes_PC); lcd_disp_long(REG.PC);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_SP); lcd_disp_long(REG.SP);
+ lcd_message(16, mes_PR); lcd_disp_long(REG.PR);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_R0); lcd_disp_long(REG.R0);
+ lcd_message(16, mes_R1); lcd_disp_long(REG.R1);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_R2); lcd_disp_long(REG.R2);
+ lcd_message(16, mes_R3); lcd_disp_long(REG.R3);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_R4); lcd_disp_long(REG.R4);
+ lcd_message(16, mes_R5); lcd_disp_long(REG.R5);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_R6); lcd_disp_long(REG.R6);
+ lcd_message(16, mes_R7); lcd_disp_long(REG.R7);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_R8); lcd_disp_long(REG.R8);
+ lcd_message(16, mes_R9); lcd_disp_long(REG.R9);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_R10); lcd_disp_long(REG.R10);
+ lcd_message(16, mes_R11); lcd_disp_long(REG.R11);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_R12); lcd_disp_long(REG.R12);
+ lcd_message(16, mes_R13); lcd_disp_long(REG.R13);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_R14); lcd_disp_long(REG.R14);
+ lcd_message(16, mes_R15); lcd_disp_long(REG.R15);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_MACH); lcd_disp_long(REG.MACH);
+ lcd_message(16, mes_MACL); lcd_disp_long(REG.MACL);
+ key_wait_on();
+ key_wait_off();
+ lcd_message(0, mes_GBR); lcd_disp_long(REG.GBR);
+ lcd_message(16, mes_VBR); lcd_disp_long(REG.VBR);
+ key_wait_on();
+ key_wait_off();
+ }
+ else if (key == KEY2) // Break Setting
+ {
+ lcd_message(0, mes_break);
+ lcd_message(16, mes_adrs);
+ adrs = SYS.BRKADR;
+ key = command(&adrs);
+ if (key == KEYDAT)
+ {
+ lcd_message(0, mes_brkok);
+ key_wait_off();
+ SYS.BRKADR = adrs;
+ SYS.INTCTL = SYS.INTCTL | 0x01000000; // BRK on
+ }
+ else
+ {
+ lcd_message(0, mes_brkng);
+ key_wait_off();
+ SYS.INTCTL = SYS.INTCTL & 0xfeffffff; // BRK off
+ }
+ }
+}
+
+//=========================================
+// Command Handler
+//-----------------------------------------
+// Input : data = display long data
+// Output : command = input command
+// data = input long data
+//=========================================
+unsigned char command(unsigned long *data)
+{
+ unsigned char key;
+ int i;
+
+ lcd_pos(24);
+ lcd_disp_long(*data);
+
+ lcd_cursor(1);
+ i = 0;
+
+ do
+ {
+ if (i == 0) lcd_pos(24);
+
+ key_wait_off();
+ key = key_wait_on();
+ if (key <= KEYF)
+ {
+ lcd_disp(hex2asc(key));
+ *data = (*data & ~((0x0000000F) << ((7-i) * 4))) | (key << ((7-i) * 4));
+ }
+
+ i = (i + 1) % 8;
+ } while (key <= KEYF);
+
+ lcd_cursor(0);
+ return(key);
+}
+
+//=================================================
+// Get S-Format
+//-------------------------------------------------
+// Input : none
+// Output : get_sformat = address of top-record
+//=================================================
+unsigned long get_sformat(void)
+{
+ unsigned char mes_get[] = "Get S-Format(S3)";
+ unsigned char mes_send[] = "please send.....";
+ unsigned char mes_receive[] = "-----OK!";
+ unsigned char mes_get_error[] = "ERR:Bad S-Format";
+
+ int topflag;
+ int endflag;
+ unsigned char rc;
+ unsigned char rxdata;
+ unsigned long adrs;
+ unsigned long adrs_record;
+ unsigned long adrs_top = 0;
+ int count;
+ unsigned char checksum;
+ int error;
+ int i;
+
+ error = 0;
+ topflag = 1;
+ endflag = 0;
+
+ uart_rx_flush();
+ lcd_message( 0, mes_get);
+ lcd_message(16, mes_send);
+
+ while(endflag == 0)
+ {
+ //
+ // Wait 'S' character
+ //
+ while (uart_rx_echo() != 'S');
+ //
+ // Check Record Type
+ //
+ switch(rc = uart_rx_echo())
+ {
+ case '3': //-------- Record of 4 byte length address
+ case '7': //-------- End of Record
+ //
+ // Get Record Length
+ //
+ rxdata = get_byte_rx_echo();
+ checksum = rxdata;
+ count = rxdata - 5;
+ //
+ // Get Record Address
+ //
+ adrs = 0;
+ for (i = 0 ; i < 4 ; i++)
+ {
+ rxdata = get_byte_rx_echo();
+ checksum = checksum + rxdata;
+ adrs = (adrs << 8) + (unsigned long) rxdata;
+ }
+ adrs_record = adrs;
+ if (topflag)
+ {
+ adrs_top = adrs;
+ topflag = 0;
+ }
+ //
+ // Get Record Data and Save to memory
+ //
+ while(count > 0)
+ {
+ rxdata = get_byte_rx_echo();
+ checksum = checksum + rxdata;
+ * (unsigned char *) adrs = rxdata;
+ adrs = adrs + 1;
+ count = count - 1;
+ }
+ //
+ // Check checksum
+ //
+ rxdata = get_byte_rx_echo();
+ checksum = (~checksum) & 0x0ff;
+ error = (checksum != rxdata);
+ //
+ // Continue ? or Finish ?
+ //
+ if (rc == '3') // S3 format
+ break;
+ else // S7 format
+ {
+ endflag = 1;
+ break;
+ }
+ //
+ // ignore another Record
+ //
+ default : continue;
+ }
+ if (error)
+ {
+ lcd_message(16, mes_get_error);
+ rc = key_wait_on();
+ break;
+ }
+ else
+ {
+ lcd_pos(16);
+ lcd_disp_long(adrs_record);
+ lcd_message(24, mes_receive);
+ }
+ }
+ return(adrs_top);
+}
+
+//==============================================
+// Get Byte from Rx with echo
+//----------------------------------------------
+// Input : none
+// Output : get_byte_rx_echo = received byte
+//==============================================
+unsigned char get_byte_rx_echo(void)
+{
+ unsigned char hex;
+
+ hex = asc2hex(uart_rx_echo());
+ hex = (hex << 4) + asc2hex(uart_rx_echo());
+
+ return(hex);
+}
+
+//=============================
+// Convert Hex(nibble) to Ascii
+//-----------------------------
+// Input : hex (0x00-0x0F)
+// Output : hex2asc
+//=============================
+unsigned char hex2asc(unsigned char hex)
+{
+ hex = hex & 0x0f;
+ if (hex <= 0x09)
+ return(hex + '0');
+ else
+ return(hex - 0x0a + 'A');
+}
+
+//=============================
+// Convert Ascii to Hex(nibble)
+//-----------------------------
+// Input : asc(0-9, A-F)
+// Output : asc2hex
+//=============================
+unsigned char asc2hex(unsigned char asc)
+{
+ if (asc <= '9')
+ return((asc - '0') & 0x0f);
+ else
+ return((asc - 'A' + 0x0a) & 0x0f);
+}
+
+//****************************************************
+//* *
+//* Key Utilities *
+//* *
+//****************************************************
+
+//===================================
+// Wait until Key On
+//-----------------------------------
+// Input : none
+// Output : key = pushed key code
+//===================================
+unsigned char key_wait_on(void)
+{
+ unsigned char key;
+
+ while((key = key_scan()) == KEYNONE) waitNms(8);
+
+ return(key);
+}
+
+//===================
+// Wait until Key Off
+//-------------------
+// Input : none
+// Output : none
+//===================
+void key_wait_off(void)
+{
+ while(key_scan() != KEYNONE) waitNms(8);
+}
+
+//===================================
+// Key Scan
+//-----------------------------------
+// Input : none
+// Output : key = pushed key code
+//===================================
+unsigned char key_scan()
+{
+ unsigned char keyx4;
+ unsigned char keyx3;
+ unsigned char keyx2;
+ unsigned char keyx1;
+ unsigned char keyx0;
+
+ PORTO.KEYYO.BYTE = 0xef; // KEYY4
+ waitNms(1);
+ keyx4 = PORTI.KEYXI.BYTE & 0x1f;
+
+ PORTO.KEYYO.BYTE = 0xf7; // KEYY3
+ waitNms(1);
+ keyx3 = PORTI.KEYXI.BYTE & 0x1f;
+
+ PORTO.KEYYO.BYTE = 0xfb; // KEYY2
+ waitNms(1);
+ keyx2 = PORTI.KEYXI.BYTE & 0x1f;
+
+ PORTO.KEYYO.BYTE = 0xfd; // KEYY1
+ waitNms(1);
+ keyx1 = PORTI.KEYXI.BYTE & 0x1f;
+
+ PORTO.KEYYO.BYTE = 0xfe; // KEYY0
+ waitNms(1);
+ keyx0 = PORTI.KEYXI.BYTE & 0x1f;
+
+ switch(keyx4)
+ {
+ case 0x17 : return(KEYPUT);
+ case 0x1b : return(KEYGET);
+ case 0x1d : return(KEYRUN);
+ case 0x1e : return(KEYUTL);
+ }
+ switch(keyx3)
+ {
+ case 0x0f : return(KEYADR);
+ case 0x17 : return(KEYF);
+ case 0x1b : return(KEYE);
+ case 0x1d : return(KEYD);
+ case 0x1e : return(KEYC);
+ }
+ switch(keyx2)
+ {
+ case 0x0f : return(KEYINC);
+ case 0x17 : return(KEYB);
+ case 0x1b : return(KEYA);
+ case 0x1d : return(KEY9);
+ case 0x1e : return(KEY8);
+ }
+ switch(keyx1)
+ {
+ case 0x0f : return(KEYDEC);
+ case 0x17 : return(KEY7);
+ case 0x1b : return(KEY6);
+ case 0x1d : return(KEY5);
+ case 0x1e : return(KEY4);
+ }
+ switch(keyx0)
+ {
+ case 0x0f : return(KEYDAT);
+ case 0x17 : return(KEY3);
+ case 0x1b : return(KEY2);
+ case 0x1d : return(KEY1);
+ case 0x1e : return(KEY0);
+ }
+ return(KEYNONE);
+}
+
+//==================
+// Wait n ms
+//------------------
+// Input : n ms
+// Output : none
+//==================
+void waitNms(unsigned char n)
+{
+ int i, j;
+ unsigned char dummy;
+
+ for (i = 0 ; i < n ; i++)
+ {
+ // 1ms = 20000 * 50ns (20MHz)
+ for (j = 0 ; i <= 10000 ; i++) dummy = PORTI.RESERVED_0;
+ }
+}
+
+//****************************************************
+//* *
+//* UART Utilities *
+//* *
+//****************************************************
+
+//==============================
+// Send Tx
+// -----------------------------
+// Input : data = send data
+// Output : none
+//==============================
+void uart_tx(unsigned char data)
+{
+ while(UART.UARTCON.BIT.TXF);
+ UART.BYTE.TX = data;
+}
+
+//====================================
+// Receive RX
+// -----------------------------------
+// Input : none
+// Output : uart_rx = receive data
+//====================================
+unsigned char uart_rx(void)
+{
+ while(UART.UARTCON.BIT.RXE);
+ return(UART.BYTE.RX);
+}
+
+//=========================================
+// Receive RX with echo to TX
+// ----------------------------------------
+// Input : none
+// Output : uart_rx_echo = receive data
+//=========================================
+unsigned char uart_rx_echo(void)
+{
+ unsigned char data;
+
+ while(UART.UARTCON.BIT.RXE);
+ data = UART.BYTE.RX;
+
+ while(UART.UARTCON.BIT.TXF);
+ UART.BYTE.TX = data;
+
+ return(data);
+}
+
+//==================
+// Flush RXD FIFO
+//------------------
+// Input : none
+// Output : none
+//==================
+void uart_rx_flush(void)
+{
+ unsigned char dummy;
+
+ while(UART.UARTCON.BIT.RXE == 0) dummy = UART.BYTE.RX;
+}
+
+//==============================
+// Set Baud Rate 9600bps
+//------------------------------
+// 9600*4=38.4KHz
+// 20MHz/38.4KHz=520.8=20*26
+// (BRG0 + 2) = 20, BRG0=18 =0x12
+// (BRG1 + 1) = 26, BRG1=25 =0x19
+//
+// 4800*4=19.2KHz
+// 20MHz/19.2KHz=1041.7=20*52
+// (BRG0 + 2) = 20, BRG0=18 =0x12
+// (BRG1 + 1) = 52, BRG1=51 =0x33
+//
+// 2400*4=9.6KHz
+// 20MHz/9.6KHz=2083.3=20*104
+// (BRG0 + 2) = 20, BRG0=18 =0x12
+// (BRG1 + 1) =104, BRG1=103=0x67
+//
+// 1200*4=4.8KHz
+// 20MHz/4.8KHz=4166.7=20*208
+// (BRG0 + 2) = 20, BRG0=18 =0x12
+// (BRG1 + 1) =208, BRG1=207=0xcf
+//
+// Input : none
+// Output : none
+//==============================
+void uart_set_baudrate(void)
+{
+ int i;
+ unsigned char dummy;
+
+ UART.UARTBG0 = 18;
+ UART.UARTBG1 = 207;
+
+ for (i = 0; i < 65536; i++) dummy = PORTI.RESERVED_0;
+}
+
+//****************************************************
+//* *
+//* LCD Utilities *
+//* *
+//****************************************************
+
+//======================================
+// LCD Display Long Hex data (8 digit)
+//--------------------------------------
+// Input : data = display long data
+// Output : none
+//======================================
+void lcd_disp_long(unsigned long data)
+{
+ int i;
+ unsigned char digit;
+
+ for (i = 7 ; i >= 0 ; i--)
+ {
+ digit = (unsigned char) (data / (1 << i * 4)) % 0x10;
+ lcd_disp(hex2asc(digit));
+ }
+}
+
+//================================
+// Cursor On/Off
+//--------------------------------
+// Input : cur = off(0)/on(1)
+// Output : none
+//================================
+void lcd_cursor(unsigned char con)
+{
+ lcd_ready();
+ if (con)
+ lcd_wr(INST, 0x0d);
+ else
+ lcd_wr(INST, 0x0c);
+}
+
+
+//===============================
+// Erase 1 line from the position
+//-------------------------------
+// Input : pos = position
+// 1st line = 00-15
+// 2nd line = 16-31
+// Ouput : none
+//===============================
+void lcd_erase(unsigned char pos)
+{
+ int i;
+
+ lcd_pos(pos);
+ for (i = 0; i < 16; i++) lcd_disp(' ');
+}
+
+//========================================
+// Print a Message from Current Position
+//----------------------------------------
+// Input : pstr = message top address
+// Outpur : none
+//========================================
+void lcd_message(unsigned char pos, unsigned char *pstr)
+{
+ unsigned char *pmessage;
+
+ lcd_pos(pos);
+ pmessage = pstr;
+ while (*pmessage) lcd_disp(*pmessage++);
+}
+
+//==========================================
+// Display One Character on Current Position
+//------------------------------------------
+// Input : chr = display charcter
+// Output : none
+//==========================================
+void lcd_disp(unsigned char chr)
+{
+ lcd_ready();
+ lcd_wr(DATA, chr);
+}
+
+//================================
+// Set LCD Display Position
+//--------------------------------
+// Input : pos = position
+// 1st line = 00-15
+// 2nd line = 16-31
+// Ouput : none
+//================================
+void lcd_pos(unsigned char pos)
+{
+ unsigned char phypos;
+
+ phypos = pos % 32;
+ if (phypos >= 16)
+ phypos = (phypos - 16) + 64;
+ phypos = phypos | 0x80;
+
+ lcd_ready();
+ lcd_wr(INST, phypos);
+}
+
+//=====================
+// Wait until LCD ready
+//---------------------
+// Input : none
+// Output : none
+//=====================
+void lcd_ready(void)
+{
+ while ((lcd_rd(INST) & 0x80) == 0x80);
+}
+
+//=================================
+// LCD Read
+//---------------------------------
+// Input : rs (0=Instr,1=Data)
+// Output : lcd_rd (Read Data)
+//=================================
+unsigned char lcd_rd(int rs)
+{
+ int i;
+ unsigned char dummy;
+ unsigned char data;
+
+ PORTO.LCDCON.BYTE = 0x02 | (rs & 0x01);
+
+ // wait 60ns = 2cyc@20MHz
+ dummy = PORTI.RESERVED_0;
+ dummy = PORTI.RESERVED_0;
+
+
+ PORTO.LCDCON.BYTE = 0x06 | (rs & 0x01);
+
+ // wait 500ns = 10cyc@20MHz
+ for (i = 0 ; i <= 10 ; i++) dummy = PORTI.RESERVED_0;
+
+ data = PORTI.LCDIN;
+
+ PORTO.LCDCON.BYTE = 0x02 | (rs & 0x01);
+
+ // wait 500ns = 10cyc@20MHz
+ for (i = 0 ; i <= 10 ; i++) dummy = PORTI.RESERVED_0;
+
+ return(data);
+}
+
+//=================================
+// LCD Write
+//---------------------------------
+// Input : rs (0=Instr,1=Data)
+// wd (Write Data)
+// Output : none
+//=================================
+void lcd_wr(int rs, unsigned char wd)
+{
+ int i;
+ unsigned char dummy;
+
+ PORTO.LCDOUT = wd;
+
+ PORTO.LCDCON.BYTE = 0x00 | (rs & 0x01);
+
+ // wait 60ns = 2cyc@20MHz
+ dummy = PORTI.RESERVED_0;
+ dummy = PORTI.RESERVED_0;
+
+ PORTO.LCDCON.BYTE = 0x04 | (rs & 0x01);
+
+ // wait 500ns = 10cyc@20MHz
+ for (i = 0 ; i <= 10 ; i++) dummy = PORTI.RESERVED_0;
+
+ PORTO.LCDCON.BYTE = 0x00 | (rs & 0x01);
+
+ // wait 500ns = 10cyc@20MHz
+ for (i = 0 ; i <= 10 ; i++) dummy = PORTI.RESERVED_0;
+}
+
+//==================
+// LCD Initialize
+//------------------
+// Input : none
+// Output : none
+//==================
+void lcd_init(void)
+{
+ int i;
+ unsigned char dummy;
+
+ lcd_wr(INST, 0x30);
+
+ // wait 4100us=82000cyc@20MHz
+ for (i = 0 ; i < 82000 ; i++) dummy = PORTI.RESERVED_0;
+
+ lcd_wr(INST, 0x30);
+
+ // wait 100us=2000cyc@20MHz
+ for (i = 0 ; i < 2000 ; i++) dummy = PORTI.RESERVED_0;
+
+ lcd_wr(INST, 0x30);
+
+ // set function (8bit, 2lines)
+ lcd_ready();
+ lcd_wr(INST, 0x38);
+
+ // display (disp on, cursor off, blink off)
+ lcd_ready();
+ lcd_wr(INST, 0x0c);
+
+ // clear
+ lcd_ready();
+ lcd_wr(INST, 0x01);
+
+ // entry mode (increment, no-shift)
+ lcd_ready();
+ lcd_wr(INST, 0x06);
+}
+
+//===============
+// End of Program
+//===============
Index: main.elf
===================================================================
--- main.elf (nonexistent)
+++ main.elf (revision 12)
@@ -0,0 +1,27 @@
+ELF * 4 4 ( @ @ . . . . . 8 . . . . . . . . . . . . . . . . . . . . @ ѿ`@+_п@ //ѿP!qP!q`p!q *!qP!qP!q!"q!2q!Bq!Rq!bq!rq!q!q!q!q!q!q!q`p!q
+!q !q !q "!О@ OO#OOO"////////v/f/V/F/6/&//В@ `abcdefghijklmnO&OOO'O + OO#OOO"////////v/f/V/F/6/&//}@ `abcdefghijklmnO&OOO'O + H. HH 8 @ /
+/O"nAd
+Ae H A H ~oO&n