From d0f9cb62f246782a8c17505ff28d441554a8f7e6 Mon Sep 17 00:00:00 2001 From: Dagen Brock Date: Sun, 31 Jan 2016 10:26:43 -0600 Subject: [PATCH] remove svn metadata (ick) --- .svn/entries | 1 - .svn/format | 1 - ...3b5e7190c853845b4bb5275858cf0f901.svn-base | Bin 18964 -> 0 bytes ...acdcea788a99a6b1a2cc5a79e7e8756f8.svn-base | 2747 ------------ ...a4175a133c07354aef7060327cc3fc059.svn-base | 3690 ----------------- ...428369977586a16832d535248f30140d4.svn-base | 31 - ...59fcd08864bffac3c7c6e470f8b1614a4.svn-base | 241 -- ...f3dd6dc0a4dc1cc06ed55cc6b1f49107a.svn-base | 76 - ...71e079bcd0d1852044309e04ff384eb45.svn-base | 71 - ...09b97304e0c03fbdfa9da944e6d4f5d56.svn-base | 523 --- ...7d03f17f2d60eed4203aff0c5c8341793.svn-base | 1417 ------- ...91fa1ca61ea51c89c6f7c646c6d29ed09.svn-base | 19 - ...2d5169777e5b5707a5f6a66bc544d9501.svn-base | 45 - ...d0e94d5e5aa72beec8016b87cb340b17b.svn-base | 2481 ----------- ...54419cc50e3e7bc6f69b99059830ac2c0.svn-base | 217 - ...a045ffaa4a41741db125d0a9ead0f3435.svn-base | 20 - ...388e7eefe796f5334913f0608b75dd875.svn-base | 36 - ...79384fef9512b62b92360fc5cd0fee82e.svn-base | 2605 ------------ ...4ccdffc14327173abfe972ad04f4c35c6.svn-base | 11 - ...b131c471b0b35b3dc9c222b3c0e153b03.svn-base | Bin 6677 -> 0 bytes ...8a3af6727f96d51e2ceb5ba10225c8f78.svn-base | 117 - ...a218149b7d2af7bfdc73d94e4ccac37f9.svn-base | 327 -- ...365d39bad3c562d05f8c377b16955c1a6.svn-base | 555 --- ...4a26a47ab778f7b856c289fba2fc4d9b5.svn-base | 118 - ...11e87c9d06da303322557cd3866b82208.svn-base | 66 - ...a618f69519a244dd4c4aced112023c296.svn-base | 2075 --------- ...a82003ae56632dbb99e1acd5afbe90c93.svn-base | 218 - ...c5dcb1de44a3473104bad0d97daf99732.svn-base | 76 - ...28192608eef72b89375fd3ef235c3a5e4.svn-base | 905 ---- ...ac25309e1dc0fdc8c47f7d8df664b08f7.svn-base | 148 - ...3633b6120617290cb55de307eede9bd39.svn-base | 470 --- ...b301a533b3e708d14f4fc64e7ee9f375d.svn-base | 85 - ...0244481a920e2f016f1de00dd5e916304.svn-base | 27 - ...670c4a13a5ea7ecd57a80775c9f91ad83.svn-base | 54 - ...0a0f92c0a510491a87ae378f319298cb7.svn-base | 542 --- ...01a26e7be2d51460cb66f1d88f92f9031.svn-base | 30 - ...26519f515393148edcffec4f8f0a05384.svn-base | 246 -- ...ddacd817baceaaf4e010e8b720a82101c.svn-base | 169 - ...6d6f30a49a0e295e4d2e7ca0df76b7a65.svn-base | 2 - ...6a454a8c892b589b58a629a52689419e7.svn-base | 27 - ...25a0e339985def2fd05de0bd2ee6e4009.svn-base | 184 - ...809c0e68d5bdd25b52ea36fd9ec49d23b.svn-base | 239 -- ...7402df86add5c9cd68692c126b7e79707.svn-base | Bin 36356 -> 0 bytes ...415c013f8428a300e50f4413a3e9ed2dd.svn-base | 37 - ...8d0bc92b2aa9b3baba50f5cdcf83d5f33.svn-base | 64 - ...9e518e5bc89095fac1b9ca5a21b0b924a.svn-base | 153 - ...b72a31e06d8e6e388b1e477a43bb1d4fc.svn-base | 46 - ...642c04343075acd8cab21487bd6526274.svn-base | 57 - ...1d513d740a309d091c1b5817a0256ca38.svn-base | 280 -- ...9c16c05d9169160cd390820650c5512d6.svn-base | 449 -- ...4e6fed77e1218e6e611d6cbbbba14e1c3.svn-base | Bin 6742 -> 0 bytes ...f408a900f28dc0f1e7b545bf1822174c8.svn-base | 458 -- ...46e478636f7b4a7087f6d0c99a607894f.svn-base | 744 ---- ...6cec8f601bfeb069bc843583ebc37a45a.svn-base | 53 - ...3799f715974819caed4bcd6144763f890.svn-base | 76 - ...a2f4b78c882d8f039b1c849a5de1663ab.svn-base | Bin 74738 -> 0 bytes ...c321fa4a9f2605ff43dcf468d1c016ffe.svn-base | 279 -- ...ef67724bcb76b861ec0988035086fe7a9.svn-base | Bin 9867 -> 0 bytes ...d1d607df9ff042ddf7054584e6f8c1a26.svn-base | 86 - ...0fe1fd10e5a8321f46c4f59394282008b.svn-base | 17 - ...58c6161d1cb345a63988572e7abcc9722.svn-base | 18 - ...1ef4ce4aefab3de8c8a1085c7dd23ee77.svn-base | 66 - ...571f945b269eb36cad0409038ff9f3d36.svn-base | Bin 10368 -> 0 bytes ...ed139d71f20196b52c1af5602aa8993e7.svn-base | Bin 2666500 -> 0 bytes ...aa1a11f91517a9ff90cf0b56f999e7163.svn-base | Bin 915485 -> 0 bytes ...2a3b0cd79753f8e768a865d45fec7100b.svn-base | 17 - ...611e950d7dd6d1f03e66515574e7b9cb3.svn-base | 104 - ...4bb9fba17ef44a3bb19a66e6988e15a7d.svn-base | 44 - ...e5f8d5cc664c4cd7b09585878dfdaef50.svn-base | 76 - ...3c95785570bac94650f394cff0efa3063.svn-base | 108 - ...8021e4dc59cf8a6b580a53587dea2650c.svn-base | 274 -- ...cea112020f2fb8114011a5e9be1068d3d.svn-base | 7 - ...607118c566c5f7446b19e44211cbcdb37.svn-base | 48 - ...fd50f994df8537bce6cffc22e9b769e4e.svn-base | 188 - ...b6caa2b8c995370e796eddcb8741e7388.svn-base | 69 - ...521f2ef1838194f0af9434e56f0328121.svn-base | 332 -- ...2884d38da9b5263947325a1c5bdadb8ac.svn-base | 66 - ...56e0e7a7b4ee973b954cded5572ef98df.svn-base | 58 - ...908174b5efe3da54f2722ce4facde33e0.svn-base | 48 - ...bf59c91aeb61aea1ed1075aca0200c185.svn-base | 123 - ...cc01560645bc07f69bcf8ebcd67a3e7ea.svn-base | Bin 10401 -> 0 bytes ...ff9a25e013319f42828119d3338b7db18.svn-base | 6 - ...cc976fc1bc1c4e03d1598b83be619258e.svn-base | 10 - ...e6f3870c23e9b08f9d17018ff4170d443.svn-base | 426 -- ...c09c4661cccf7ab01b7edb2d0e11bf0cc.svn-base | 54 - ...27633a03503d30e9440e1d6c7b54d8e00.svn-base | 835 ---- ...d155c6876c20b21d63616e262dcd917c3.svn-base | 440 -- ...6c6088974af273c8a5d0060478b3fdae0.svn-base | 396 -- ...51a786a0f946287bde6e91bc0feb7e23c.svn-base | 789 ---- ...f8a822f3ae05f6c5d29584ef7cd747bb8.svn-base | 230 - ...14bf0cae817c0ba1d276be710f9340201.svn-base | 281 -- ...5d8560838ab5add14cac584b404673e19.svn-base | 47 - ...e270f515bf8cd5c6c3b1df82ffc0f0278.svn-base | 58 - ...d0752225599a763a8f818be5d07538f0a.svn-base | 20 - ...4667b6d6ad4b5c12b6d8a698aa972ca93.svn-base | 557 --- ...4859f53ddabd54705dae2ef5e9954d614.svn-base | 240 -- ...2116d430a5205ceb79b3e9ac8bc4c38c5.svn-base | 20 - ...91f485f60c72df423906aa63c67418288.svn-base | 20 - ...1dae8dd66d4a90df8f98106c5e023ea8d.svn-base | 312 -- ...d73756f15ae32a7c2b10fa6b3bdb95b51.svn-base | Bin 42280 -> 0 bytes ...3b882d5020562ba0b3a2db9a19b879a5c.svn-base | 44 - ...882a0a59da775bcd6a348294f2b299822.svn-base | Bin 8837 -> 0 bytes ...6cb31d60d5a797cdbcbc26db149d80942.svn-base | 734 ---- ...765e99c43e49398b14e5525cc147828a6.svn-base | Bin 62990 -> 0 bytes ...75bed63d1d86c492c8ca716e7843ec909.svn-base | 11 - ...0b450362f0dfb331223f78559a4de66b7.svn-base | Bin 29742 -> 0 bytes ...43c061bc186f5b2955daeeb2482fd1571.svn-base | 273 -- ...83663819cb2a29fe20f5d09f0ebb71cc4.svn-base | 9 - ...5e59c4c9dc4012f5f53930c6ca2a7ca0e.svn-base | 52 - ...d323ca5e2b6cffd7b6accf15635b00212.svn-base | 1990 --------- ...25f49e18a574a32aab34eae0f71ffa46a.svn-base | 1063 ----- ...191753b38e4a92b74a5045d6640bedb3b.svn-base | 203 - ...e40e38054ce2a172aeb4327f2e3464fd5.svn-base | 1627 -------- ...8b7c82138acba831d0ca41ea328160cc3.svn-base | 73 - ...683ed6a68ce5c71194b464bc9385d8544.svn-base | Bin 7127 -> 0 bytes ...393fe92d73e1af300477a4131ba0f2ea7.svn-base | Bin 34404 -> 0 bytes ...de6c1aec9339b7da028d62dccecbb7c64.svn-base | 96 - ...e0b4b1ffc561fee8b756be5d4c312141b.svn-base | Bin 50904 -> 0 bytes ...09c36a2c5c9bc47bf41e987468f2abf6a.svn-base | Bin 76671 -> 0 bytes ...837b3492a9c833d7d9bdc6fb7ddf2b7ec.svn-base | Bin 453112 -> 0 bytes ...9d3643c8e08971f45b3763b2b65846145.svn-base | 68 - ...d4bfb38e01463049e501ba0eebc65396f.svn-base | 159 - ...65d17d5375352e7fbba2f215950960286.svn-base | 165 - ...626079598ab212c8d36259367a213d2c9.svn-base | 109 - ...541880b4f17f5e8c44beaf7a9173e83a1.svn-base | 3426 --------------- ...21919a7467b74f1c22f187cc19b9145df.svn-base | Bin 16990 -> 0 bytes ...fae1866f1989fb5bc24fd4d1eba8bcb04.svn-base | 2257 ---------- ...2fedbc2f51ba81bd8784ae81feebdd2be.svn-base | 159 - ...c9a0317767425e146dfdf318355929ea0.svn-base | 45 - ...9f4436b14529a48f6d44277a1e48c4582.svn-base | Bin 787228 -> 0 bytes ...e7767bb48683a2663910cc8870e000ad2.svn-base | Bin 164039 -> 0 bytes ...8a6e6e95ecc7a91c40e08e4ff1051ca11.svn-base | 222 - ...db53232b1c6fecac5f2647aa0466f4772.svn-base | 1183 ------ ...e71196e8106bb26b4989709ee567194c8.svn-base | 337 -- ...63007fb2ae505073d3466e09db61f8769.svn-base | Bin 507918 -> 0 bytes ...b497331edafb880aebe4af262187b7b06.svn-base | 1626 -------- ...8bc84d7fa706d48bfca602fb35ccf8c43.svn-base | 44 - ...b8667448a8d00303f2b0b30f86609b829.svn-base | 22 - ...dc1323a740498a6e202c3c85a5a3cb8bd.svn-base | Bin 274353 -> 0 bytes ...f407ced0dafacede6506d6e4c278356df.svn-base | 209 - ...5ee939df42f679fbd452829fd9c441235.svn-base | 4 - ...65e4c573601146b294aa6af317a01d127.svn-base | 12 - ...7e6e707911f8d8c16f03f8dbc11ee6c26.svn-base | 533 --- ...4e8bc8b10d8dbb88e2d82d8845d9d9626.svn-base | 139 - ...80a9dd3726b3f72e01d18d703a9afdcec.svn-base | Bin 8478 -> 0 bytes ...b3c1542dad57d42972bdbf543afbb3406.svn-base | 36 - ...b2bbc95dd7eccde8492333b4b6ac1c4ad.svn-base | Bin 10489 -> 0 bytes ...e7f7951fd47a46703ed835b43ce2054f5.svn-base | 155 - ...4b8cc9923eaf37f78786f9b2fbb829077.svn-base | 177 - ...6872f901c71852f4dd354829558e38eca.svn-base | 108 - ...d4f494d9c473976dd78fc39d5102fd6c2.svn-base | 44 - ...a98453f0aa69f6c0575d2dd2a30897fda.svn-base | 10 - ...0134a83f0921a7befec781eb80c1ada2a.svn-base | 203 - ...f1e2e2d8ea6e594296cccb3267cd53748.svn-base | 39 - ...7ea5d6758eae1d14474b3636c4fb4cebe.svn-base | 172 - ...3f6ea4a682f711bbc4ab3dddb36feac84.svn-base | 10 - ...34393acbe7cc57481556231626b32e491.svn-base | 137 - ...589cbcc1ad4ab4f63676af7abadd86f5b.svn-base | Bin 256 -> 0 bytes ...c4b9e11e809c5f471f0ed1bd3f4d52a52.svn-base | 37 - ...cc1043a88788937e976db5b514c99d438.svn-base | 2707 ------------ ...3821907a4f238351738c7e31a56147ca9.svn-base | Bin 758 -> 0 bytes ...934d52ab70912a377cd893d0bd21aa193.svn-base | 302 -- ...cbe25907b76bcf5360eb0eeaeba09329a.svn-base | 4 - ...9d8759aebf71fdb3149c932b67406e9fa.svn-base | 370 -- ...22a405253b1ccbda8560f48847a41b572.svn-base | 26 - ...a814e8f4b03c84a250852725f721c8903.svn-base | 58 - ...77871c228ccee946203458f87e811d8c4.svn-base | 171 - ...ede1cc0e7b3f2c25068d9d2389a5765e9.svn-base | 180 - ...bc294072f6928ef9143cd2a71aa89b906.svn-base | Bin 324096 -> 0 bytes ...13ee7d392db29830d73010fd307cc0c06.svn-base | Bin 874 -> 0 bytes ...819a132a1015d743d90a6c6f8f94e8317.svn-base | 36 - ...d77c808200667764673cc9f1324b93af3.svn-base | Bin 10258 -> 0 bytes ...e93e78fc7ff7e89cd7333532144b4cfa2.svn-base | 28 - ...49ca36eb35149c98a87a92d513124ae64.svn-base | 20 - ...e9b9d5d8dc3fab7bc7f1cc8c6e1a317d7.svn-base | 316 -- ...eee82921e337118dafdf900dc7e2ded87.svn-base | 1206 ------ ...0ab2ab02fc4c704353a82be36121c1e2b.svn-base | 18 - ...7d24b4024a1d73ee733338d66543141ea.svn-base | 2120 ---------- ...298ca41fa94d993911d51399fcddb39ac.svn-base | 170 - ...0dfedae5b98ae41a6269cf93572710282.svn-base | 119 - ...c8353063426e81ad475d4c480263f8c8d.svn-base | 560 --- ...d1a0471d21b960d01683808527a53c958.svn-base | 58 - ...14bc52a030d6308b9b2b6d51bb76a2940.svn-base | Bin 77838 -> 0 bytes ...31ccc5ecd1ed1f622ecaf4daa2799a911.svn-base | 16 - ...85d59bc83a6bca6f1d5a0b318c7a24ea1.svn-base | 860 ---- ...56d5e3010a44054e29096f7b6f3044600.svn-base | Bin 512 -> 0 bytes ...c28fb8dfcdaaf201592e770e7b73578ea.svn-base | 1922 --------- ...0ce1273d7c8ecce4f5b675969ff7a0f20.svn-base | 218 - ...2016957d38a7f5879b45af5ac6efc3669.svn-base | 124 - ...180d7a4c1b3ba2a46d8f648326bf37755.svn-base | Bin 17766 -> 0 bytes ...6656692e2bc165c8bb97a9215c89c7d83.svn-base | 18 - ...e732cebaefd73faad262008557eba884f.svn-base | 22 - ...25ecf89a223b2ef031eb700bbb482fada.svn-base | 2395 ----------- ...3fa7d5413373f192adaeb1e38a259d2c9.svn-base | Bin 58798 -> 0 bytes .svn/wc.db | Bin 229376 -> 0 bytes 195 files changed, 62164 deletions(-) delete mode 100644 .svn/entries delete mode 100644 .svn/format delete mode 100644 .svn/pristine/00/0090c863b5e7190c853845b4bb5275858cf0f901.svn-base delete mode 100644 .svn/pristine/01/0190f9cacdcea788a99a6b1a2cc5a79e7e8756f8.svn-base delete mode 100644 .svn/pristine/01/01e3186a4175a133c07354aef7060327cc3fc059.svn-base delete mode 100644 .svn/pristine/02/024ac9e428369977586a16832d535248f30140d4.svn-base delete mode 100644 .svn/pristine/02/0294b7959fcd08864bffac3c7c6e470f8b1614a4.svn-base delete mode 100644 .svn/pristine/04/04cf089f3dd6dc0a4dc1cc06ed55cc6b1f49107a.svn-base delete mode 100644 .svn/pristine/06/061799371e079bcd0d1852044309e04ff384eb45.svn-base delete mode 100644 .svn/pristine/09/09f94df09b97304e0c03fbdfa9da944e6d4f5d56.svn-base delete mode 100644 .svn/pristine/0c/0cd133a7d03f17f2d60eed4203aff0c5c8341793.svn-base delete mode 100644 .svn/pristine/0f/0f6c49891fa1ca61ea51c89c6f7c646c6d29ed09.svn-base delete mode 100644 .svn/pristine/12/12a41b22d5169777e5b5707a5f6a66bc544d9501.svn-base delete mode 100644 .svn/pristine/14/1408da0d0e94d5e5aa72beec8016b87cb340b17b.svn-base delete mode 100644 .svn/pristine/15/1531d8854419cc50e3e7bc6f69b99059830ac2c0.svn-base delete mode 100644 .svn/pristine/15/15868e5a045ffaa4a41741db125d0a9ead0f3435.svn-base delete mode 100644 .svn/pristine/16/1653de2388e7eefe796f5334913f0608b75dd875.svn-base delete mode 100644 .svn/pristine/16/168f48f79384fef9512b62b92360fc5cd0fee82e.svn-base delete mode 100644 .svn/pristine/18/18f01034ccdffc14327173abfe972ad04f4c35c6.svn-base delete mode 100644 .svn/pristine/19/19ca9bab131c471b0b35b3dc9c222b3c0e153b03.svn-base delete mode 100644 .svn/pristine/1a/1a4a0128a3af6727f96d51e2ceb5ba10225c8f78.svn-base delete mode 100644 .svn/pristine/1b/1b8d878a218149b7d2af7bfdc73d94e4ccac37f9.svn-base delete mode 100644 .svn/pristine/1b/1bbe989365d39bad3c562d05f8c377b16955c1a6.svn-base delete mode 100644 .svn/pristine/1b/1bed4af4a26a47ab778f7b856c289fba2fc4d9b5.svn-base delete mode 100644 .svn/pristine/1f/1f84a0c11e87c9d06da303322557cd3866b82208.svn-base delete mode 100644 .svn/pristine/1f/1fb8ac3a618f69519a244dd4c4aced112023c296.svn-base delete mode 100644 .svn/pristine/21/212ffeea82003ae56632dbb99e1acd5afbe90c93.svn-base delete mode 100644 .svn/pristine/21/218d63fc5dcb1de44a3473104bad0d97daf99732.svn-base delete mode 100644 .svn/pristine/21/21e37c628192608eef72b89375fd3ef235c3a5e4.svn-base delete mode 100644 .svn/pristine/22/22a63d0ac25309e1dc0fdc8c47f7d8df664b08f7.svn-base delete mode 100644 .svn/pristine/23/2331e4c3633b6120617290cb55de307eede9bd39.svn-base delete mode 100644 .svn/pristine/23/2361841b301a533b3e708d14f4fc64e7ee9f375d.svn-base delete mode 100644 .svn/pristine/24/244d7210244481a920e2f016f1de00dd5e916304.svn-base delete mode 100644 .svn/pristine/26/26b482b670c4a13a5ea7ecd57a80775c9f91ad83.svn-base delete mode 100644 .svn/pristine/27/2729ed10a0f92c0a510491a87ae378f319298cb7.svn-base delete mode 100644 .svn/pristine/28/28069ec01a26e7be2d51460cb66f1d88f92f9031.svn-base delete mode 100644 .svn/pristine/29/29bd21d26519f515393148edcffec4f8f0a05384.svn-base delete mode 100644 .svn/pristine/2a/2a5afa4ddacd817baceaaf4e010e8b720a82101c.svn-base delete mode 100644 .svn/pristine/2a/2ab4b536d6f30a49a0e295e4d2e7ca0df76b7a65.svn-base delete mode 100644 .svn/pristine/2b/2b546066a454a8c892b589b58a629a52689419e7.svn-base delete mode 100644 .svn/pristine/2b/2beadec25a0e339985def2fd05de0bd2ee6e4009.svn-base delete mode 100644 .svn/pristine/2c/2ccf5d1809c0e68d5bdd25b52ea36fd9ec49d23b.svn-base delete mode 100644 .svn/pristine/32/328b2ec7402df86add5c9cd68692c126b7e79707.svn-base delete mode 100644 .svn/pristine/33/3335c87415c013f8428a300e50f4413a3e9ed2dd.svn-base delete mode 100644 .svn/pristine/33/337858f8d0bc92b2aa9b3baba50f5cdcf83d5f33.svn-base delete mode 100644 .svn/pristine/34/3485e5e9e518e5bc89095fac1b9ca5a21b0b924a.svn-base delete mode 100644 .svn/pristine/34/34bc5c5b72a31e06d8e6e388b1e477a43bb1d4fc.svn-base delete mode 100644 .svn/pristine/36/36d719e642c04343075acd8cab21487bd6526274.svn-base delete mode 100644 .svn/pristine/37/37d35b31d513d740a309d091c1b5817a0256ca38.svn-base delete mode 100644 .svn/pristine/38/38d277d9c16c05d9169160cd390820650c5512d6.svn-base delete mode 100644 .svn/pristine/39/392f2384e6fed77e1218e6e611d6cbbbba14e1c3.svn-base delete mode 100644 .svn/pristine/3c/3c02d8bf408a900f28dc0f1e7b545bf1822174c8.svn-base delete mode 100644 .svn/pristine/3d/3d7222c46e478636f7b4a7087f6d0c99a607894f.svn-base delete mode 100644 .svn/pristine/3e/3e6de946cec8f601bfeb069bc843583ebc37a45a.svn-base delete mode 100644 .svn/pristine/3f/3f8eaa53799f715974819caed4bcd6144763f890.svn-base delete mode 100644 .svn/pristine/41/41f097fa2f4b78c882d8f039b1c849a5de1663ab.svn-base delete mode 100644 .svn/pristine/42/42ded6ec321fa4a9f2605ff43dcf468d1c016ffe.svn-base delete mode 100644 .svn/pristine/46/4659fb6ef67724bcb76b861ec0988035086fe7a9.svn-base delete mode 100644 .svn/pristine/48/48cb6ded1d607df9ff042ddf7054584e6f8c1a26.svn-base delete mode 100644 .svn/pristine/4b/4b5f1360fe1fd10e5a8321f46c4f59394282008b.svn-base delete mode 100644 .svn/pristine/4c/4c0dda058c6161d1cb345a63988572e7abcc9722.svn-base delete mode 100644 .svn/pristine/4c/4c1941c1ef4ce4aefab3de8c8a1085c7dd23ee77.svn-base delete mode 100644 .svn/pristine/4c/4c7df4d571f945b269eb36cad0409038ff9f3d36.svn-base delete mode 100644 .svn/pristine/4c/4cc8a15ed139d71f20196b52c1af5602aa8993e7.svn-base delete mode 100644 .svn/pristine/4e/4ed8dfeaa1a11f91517a9ff90cf0b56f999e7163.svn-base delete mode 100644 .svn/pristine/4f/4fa06cf2a3b0cd79753f8e768a865d45fec7100b.svn-base delete mode 100644 .svn/pristine/52/520e6aa611e950d7dd6d1f03e66515574e7b9cb3.svn-base delete mode 100644 .svn/pristine/52/5246e514bb9fba17ef44a3bb19a66e6988e15a7d.svn-base delete mode 100644 .svn/pristine/53/53c6955e5f8d5cc664c4cd7b09585878dfdaef50.svn-base delete mode 100644 .svn/pristine/55/558432a3c95785570bac94650f394cff0efa3063.svn-base delete mode 100644 .svn/pristine/56/56586f48021e4dc59cf8a6b580a53587dea2650c.svn-base delete mode 100644 .svn/pristine/58/58a40f6cea112020f2fb8114011a5e9be1068d3d.svn-base delete mode 100644 .svn/pristine/59/59353cd607118c566c5f7446b19e44211cbcdb37.svn-base delete mode 100644 .svn/pristine/5a/5a3f50efd50f994df8537bce6cffc22e9b769e4e.svn-base delete mode 100644 .svn/pristine/5a/5a6a946b6caa2b8c995370e796eddcb8741e7388.svn-base delete mode 100644 .svn/pristine/5a/5a854ac521f2ef1838194f0af9434e56f0328121.svn-base delete mode 100644 .svn/pristine/5c/5c0ba5c2884d38da9b5263947325a1c5bdadb8ac.svn-base delete mode 100644 .svn/pristine/5c/5ca7bc756e0e7a7b4ee973b954cded5572ef98df.svn-base delete mode 100644 .svn/pristine/5d/5d39d4d908174b5efe3da54f2722ce4facde33e0.svn-base delete mode 100644 .svn/pristine/5e/5eb04f0bf59c91aeb61aea1ed1075aca0200c185.svn-base delete mode 100644 .svn/pristine/60/6076211cc01560645bc07f69bcf8ebcd67a3e7ea.svn-base delete mode 100644 .svn/pristine/61/61a1064ff9a25e013319f42828119d3338b7db18.svn-base delete mode 100644 .svn/pristine/62/62ba250cc976fc1bc1c4e03d1598b83be619258e.svn-base delete mode 100644 .svn/pristine/63/632af2ce6f3870c23e9b08f9d17018ff4170d443.svn-base delete mode 100644 .svn/pristine/63/63613aec09c4661cccf7ab01b7edb2d0e11bf0cc.svn-base delete mode 100644 .svn/pristine/64/645c49227633a03503d30e9440e1d6c7b54d8e00.svn-base delete mode 100644 .svn/pristine/69/69d8045d155c6876c20b21d63616e262dcd917c3.svn-base delete mode 100644 .svn/pristine/6b/6b5b1976c6088974af273c8a5d0060478b3fdae0.svn-base delete mode 100644 .svn/pristine/6c/6ceb07451a786a0f946287bde6e91bc0feb7e23c.svn-base delete mode 100644 .svn/pristine/6d/6d92ab4f8a822f3ae05f6c5d29584ef7cd747bb8.svn-base delete mode 100644 .svn/pristine/6d/6dfe96b14bf0cae817c0ba1d276be710f9340201.svn-base delete mode 100644 .svn/pristine/6e/6e279c35d8560838ab5add14cac584b404673e19.svn-base delete mode 100644 .svn/pristine/6e/6e783dce270f515bf8cd5c6c3b1df82ffc0f0278.svn-base delete mode 100644 .svn/pristine/70/70cf15fd0752225599a763a8f818be5d07538f0a.svn-base delete mode 100644 .svn/pristine/72/72a6e704667b6d6ad4b5c12b6d8a698aa972ca93.svn-base delete mode 100644 .svn/pristine/76/76cabd14859f53ddabd54705dae2ef5e9954d614.svn-base delete mode 100644 .svn/pristine/77/77dd1772116d430a5205ceb79b3e9ac8bc4c38c5.svn-base delete mode 100644 .svn/pristine/78/789903c91f485f60c72df423906aa63c67418288.svn-base delete mode 100644 .svn/pristine/79/793bc1d1dae8dd66d4a90df8f98106c5e023ea8d.svn-base delete mode 100644 .svn/pristine/79/79d7764d73756f15ae32a7c2b10fa6b3bdb95b51.svn-base delete mode 100644 .svn/pristine/7a/7af26483b882d5020562ba0b3a2db9a19b879a5c.svn-base delete mode 100644 .svn/pristine/7c/7cef0ce882a0a59da775bcd6a348294f2b299822.svn-base delete mode 100644 .svn/pristine/7d/7d8fc266cb31d60d5a797cdbcbc26db149d80942.svn-base delete mode 100644 .svn/pristine/81/810aaed765e99c43e49398b14e5525cc147828a6.svn-base delete mode 100644 .svn/pristine/81/81842af75bed63d1d86c492c8ca716e7843ec909.svn-base delete mode 100644 .svn/pristine/87/8729d8c0b450362f0dfb331223f78559a4de66b7.svn-base delete mode 100644 .svn/pristine/87/878a7ee43c061bc186f5b2955daeeb2482fd1571.svn-base delete mode 100644 .svn/pristine/87/87d037c83663819cb2a29fe20f5d09f0ebb71cc4.svn-base delete mode 100644 .svn/pristine/88/88ac5b75e59c4c9dc4012f5f53930c6ca2a7ca0e.svn-base delete mode 100644 .svn/pristine/89/895b590d323ca5e2b6cffd7b6accf15635b00212.svn-base delete mode 100644 .svn/pristine/89/899ee9e25f49e18a574a32aab34eae0f71ffa46a.svn-base delete mode 100644 .svn/pristine/8c/8c374bd191753b38e4a92b74a5045d6640bedb3b.svn-base delete mode 100644 .svn/pristine/8d/8dc8969e40e38054ce2a172aeb4327f2e3464fd5.svn-base delete mode 100644 .svn/pristine/90/90768698b7c82138acba831d0ca41ea328160cc3.svn-base delete mode 100644 .svn/pristine/90/90a7067683ed6a68ce5c71194b464bc9385d8544.svn-base delete mode 100644 .svn/pristine/90/90edb4c393fe92d73e1af300477a4131ba0f2ea7.svn-base delete mode 100644 .svn/pristine/92/924585fde6c1aec9339b7da028d62dccecbb7c64.svn-base delete mode 100644 .svn/pristine/93/934b01ce0b4b1ffc561fee8b756be5d4c312141b.svn-base delete mode 100644 .svn/pristine/96/96a07d409c36a2c5c9bc47bf41e987468f2abf6a.svn-base delete mode 100644 .svn/pristine/96/96a90bd837b3492a9c833d7d9bdc6fb7ddf2b7ec.svn-base delete mode 100644 .svn/pristine/97/97d0a5c9d3643c8e08971f45b3763b2b65846145.svn-base delete mode 100644 .svn/pristine/97/97d8fa3d4bfb38e01463049e501ba0eebc65396f.svn-base delete mode 100644 .svn/pristine/98/9828bf465d17d5375352e7fbba2f215950960286.svn-base delete mode 100644 .svn/pristine/98/986c7da626079598ab212c8d36259367a213d2c9.svn-base delete mode 100644 .svn/pristine/99/992c6f9541880b4f17f5e8c44beaf7a9173e83a1.svn-base delete mode 100644 .svn/pristine/99/9930d5721919a7467b74f1c22f187cc19b9145df.svn-base delete mode 100644 .svn/pristine/9c/9c9ee8bfae1866f1989fb5bc24fd4d1eba8bcb04.svn-base delete mode 100644 .svn/pristine/9c/9cc560f2fedbc2f51ba81bd8784ae81feebdd2be.svn-base delete mode 100644 .svn/pristine/a0/a0d9bfec9a0317767425e146dfdf318355929ea0.svn-base delete mode 100644 .svn/pristine/a0/a0dc5bd9f4436b14529a48f6d44277a1e48c4582.svn-base delete mode 100644 .svn/pristine/a1/a18355de7767bb48683a2663910cc8870e000ad2.svn-base delete mode 100644 .svn/pristine/a2/a2efea18a6e6e95ecc7a91c40e08e4ff1051ca11.svn-base delete mode 100644 .svn/pristine/a3/a3fdbe7db53232b1c6fecac5f2647aa0466f4772.svn-base delete mode 100644 .svn/pristine/a3/a3fe448e71196e8106bb26b4989709ee567194c8.svn-base delete mode 100644 .svn/pristine/a4/a46f79a63007fb2ae505073d3466e09db61f8769.svn-base delete mode 100644 .svn/pristine/a5/a5a1325b497331edafb880aebe4af262187b7b06.svn-base delete mode 100644 .svn/pristine/a9/a90c2728bc84d7fa706d48bfca602fb35ccf8c43.svn-base delete mode 100644 .svn/pristine/a9/a911a4fb8667448a8d00303f2b0b30f86609b829.svn-base delete mode 100644 .svn/pristine/aa/aa2bd14dc1323a740498a6e202c3c85a5a3cb8bd.svn-base delete mode 100644 .svn/pristine/b0/b09a8e4f407ced0dafacede6506d6e4c278356df.svn-base delete mode 100644 .svn/pristine/b0/b0b52555ee939df42f679fbd452829fd9c441235.svn-base delete mode 100644 .svn/pristine/b1/b1dfdb665e4c573601146b294aa6af317a01d127.svn-base delete mode 100644 .svn/pristine/b3/b3a06b37e6e707911f8d8c16f03f8dbc11ee6c26.svn-base delete mode 100644 .svn/pristine/b5/b5bbf584e8bc8b10d8dbb88e2d82d8845d9d9626.svn-base delete mode 100644 .svn/pristine/b6/b61166d80a9dd3726b3f72e01d18d703a9afdcec.svn-base delete mode 100644 .svn/pristine/b6/b6b10f1b3c1542dad57d42972bdbf543afbb3406.svn-base delete mode 100644 .svn/pristine/bc/bc59d58b2bbc95dd7eccde8492333b4b6ac1c4ad.svn-base delete mode 100644 .svn/pristine/bc/bcb86e1e7f7951fd47a46703ed835b43ce2054f5.svn-base delete mode 100644 .svn/pristine/be/bed13364b8cc9923eaf37f78786f9b2fbb829077.svn-base delete mode 100644 .svn/pristine/bf/bfbcb286872f901c71852f4dd354829558e38eca.svn-base delete mode 100644 .svn/pristine/bf/bfe3908d4f494d9c473976dd78fc39d5102fd6c2.svn-base delete mode 100644 .svn/pristine/c1/c11742ea98453f0aa69f6c0575d2dd2a30897fda.svn-base delete mode 100644 .svn/pristine/c1/c14f70c0134a83f0921a7befec781eb80c1ada2a.svn-base delete mode 100644 .svn/pristine/c2/c2c4d23f1e2e2d8ea6e594296cccb3267cd53748.svn-base delete mode 100644 .svn/pristine/c3/c3354967ea5d6758eae1d14474b3636c4fb4cebe.svn-base delete mode 100644 .svn/pristine/c4/c4270473f6ea4a682f711bbc4ab3dddb36feac84.svn-base delete mode 100644 .svn/pristine/c6/c63a59634393acbe7cc57481556231626b32e491.svn-base delete mode 100644 .svn/pristine/c7/c75c751589cbcc1ad4ab4f63676af7abadd86f5b.svn-base delete mode 100644 .svn/pristine/c7/c7c7cc3c4b9e11e809c5f471f0ed1bd3f4d52a52.svn-base delete mode 100644 .svn/pristine/c9/c93cac6cc1043a88788937e976db5b514c99d438.svn-base delete mode 100644 .svn/pristine/ca/cacb6b23821907a4f238351738c7e31a56147ca9.svn-base delete mode 100644 .svn/pristine/cb/cb5a1d6934d52ab70912a377cd893d0bd21aa193.svn-base delete mode 100644 .svn/pristine/cd/cd64844cbe25907b76bcf5360eb0eeaeba09329a.svn-base delete mode 100644 .svn/pristine/cd/cdb3c039d8759aebf71fdb3149c932b67406e9fa.svn-base delete mode 100644 .svn/pristine/d4/d46895322a405253b1ccbda8560f48847a41b572.svn-base delete mode 100644 .svn/pristine/d6/d67be1ea814e8f4b03c84a250852725f721c8903.svn-base delete mode 100644 .svn/pristine/d8/d89e3b677871c228ccee946203458f87e811d8c4.svn-base delete mode 100644 .svn/pristine/d9/d920ea0ede1cc0e7b3f2c25068d9d2389a5765e9.svn-base delete mode 100644 .svn/pristine/dd/dd95d21bc294072f6928ef9143cd2a71aa89b906.svn-base delete mode 100644 .svn/pristine/de/de4c6a413ee7d392db29830d73010fd307cc0c06.svn-base delete mode 100644 .svn/pristine/df/df26a65819a132a1015d743d90a6c6f8f94e8317.svn-base delete mode 100644 .svn/pristine/e0/e0a7e1ed77c808200667764673cc9f1324b93af3.svn-base delete mode 100644 .svn/pristine/e0/e0b6f5ee93e78fc7ff7e89cd7333532144b4cfa2.svn-base delete mode 100644 .svn/pristine/e3/e3e502c49ca36eb35149c98a87a92d513124ae64.svn-base delete mode 100644 .svn/pristine/e4/e414a93e9b9d5d8dc3fab7bc7f1cc8c6e1a317d7.svn-base delete mode 100644 .svn/pristine/e7/e7acd61eee82921e337118dafdf900dc7e2ded87.svn-base delete mode 100644 .svn/pristine/eb/eb3779e0ab2ab02fc4c704353a82be36121c1e2b.svn-base delete mode 100644 .svn/pristine/ed/eda78687d24b4024a1d73ee733338d66543141ea.svn-base delete mode 100644 .svn/pristine/ee/eea45e1298ca41fa94d993911d51399fcddb39ac.svn-base delete mode 100644 .svn/pristine/ef/ef0603e0dfedae5b98ae41a6269cf93572710282.svn-base delete mode 100644 .svn/pristine/f1/f1ed9f4c8353063426e81ad475d4c480263f8c8d.svn-base delete mode 100644 .svn/pristine/f3/f331807d1a0471d21b960d01683808527a53c958.svn-base delete mode 100644 .svn/pristine/f3/f34693314bc52a030d6308b9b2b6d51bb76a2940.svn-base delete mode 100644 .svn/pristine/f3/f34ea4b31ccc5ecd1ed1f622ecaf4daa2799a911.svn-base delete mode 100644 .svn/pristine/f7/f77304585d59bc83a6bca6f1d5a0b318c7a24ea1.svn-base delete mode 100644 .svn/pristine/f8/f84aba256d5e3010a44054e29096f7b6f3044600.svn-base delete mode 100644 .svn/pristine/fa/fa482e6c28fb8dfcdaaf201592e770e7b73578ea.svn-base delete mode 100644 .svn/pristine/fa/fa74cf90ce1273d7c8ecce4f5b675969ff7a0f20.svn-base delete mode 100644 .svn/pristine/fa/faedf222016957d38a7f5879b45af5ac6efc3669.svn-base delete mode 100644 .svn/pristine/fb/fb916bb180d7a4c1b3ba2a46d8f648326bf37755.svn-base delete mode 100644 .svn/pristine/fb/fb9e61a6656692e2bc165c8bb97a9215c89c7d83.svn-base delete mode 100644 .svn/pristine/fd/fd2f27ae732cebaefd73faad262008557eba884f.svn-base delete mode 100644 .svn/pristine/fe/fec481825ecf89a223b2ef031eb700bbb482fada.svn-base delete mode 100644 .svn/pristine/ff/ff745a23fa7d5413373f192adaeb1e38a259d2c9.svn-base delete mode 100644 .svn/wc.db diff --git a/.svn/entries b/.svn/entries deleted file mode 100644 index 48082f7..0000000 --- a/.svn/entries +++ /dev/null @@ -1 +0,0 @@ -12 diff --git a/.svn/format b/.svn/format deleted file mode 100644 index 48082f7..0000000 --- a/.svn/format +++ /dev/null @@ -1 +0,0 @@ -12 diff --git a/.svn/pristine/00/0090c863b5e7190c853845b4bb5275858cf0f901.svn-base b/.svn/pristine/00/0090c863b5e7190c853845b4bb5275858cf0f901.svn-base deleted file mode 100644 index e40cb0b3ccc010692eb60b5688e2c00f24aa854d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18964 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

&8L5hqaGM_BxT@z25YS9B%m}{^aSX$+ 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 SDgZpziNVv=&t;ucLK6T9@}lPe diff --git a/.svn/pristine/01/0190f9cacdcea788a99a6b1a2cc5a79e7e8756f8.svn-base b/.svn/pristine/01/0190f9cacdcea788a99a6b1a2cc5a79e7e8756f8.svn-base deleted file mode 100644 index 8c09aa9..0000000 --- a/.svn/pristine/01/0190f9cacdcea788a99a6b1a2cc5a79e7e8756f8.svn-base +++ /dev/null @@ -1,2747 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2014 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include - -#include "defc.h" -#ifdef HAVE_TFE - #include "tfe/tfesupp.h" - #include "tfe/protos_tfe.h" -#endif - #include "printer.h" - #include "imagewriter.h" - -#ifdef UNDER_CE -#define vsnprintf _vsnprintf -#endif - -#if defined (_WIN32) || defined(__CYGWIN__) -#define WIN32_LEAN_AND_MEAN /* Tell windows we want less header gunk */ -#define STRICT /* Tell Windows we want compile type checks */ -#include /* Need a definition for LPTSTR in CYGWIN */ - -extern void get_cwd(LPTSTR buffer, int size); -#endif - -#define PC_LOG_LEN (8*1024) - -int g_speed_fast ; // OG Expose fast parameter -int g_initialized = 0; // OG To know if the emulator has finalized its initialization -int g_accept_events = 0; // OG To know if the emulator is ready to accept external events - -char g_argv0_path[256] = "./"; - -const char *g_gsport_default_paths[] = { "", "./", "${HOME}/","${PWD}/", -#ifdef MAC - "${0}/../", -#endif - "${HOME}/Library/GSport/", - "${0}/Contents/Resources/", "/usr/local/lib/", - "/usr/local/gsport/", "/usr/local/lib/gsport/", "/usr/share/gsport/", - "/var/lib/", "/usr/lib/gsport/", "${0}/", 0 }; - -#define MAX_EVENTS 64 - -/* All EV_* must be less than 256, since upper bits reserved for other use */ -/* e.g., DOC_INT uses upper bits to encode oscillator */ -#define EV_60HZ 1 -#define EV_STOP 2 -#define EV_SCAN_INT 3 -#define EV_DOC_INT 4 -#define EV_VBL_INT 5 -#define EV_SCC 6 -#define EV_VID_UPD 7 - -extern int g_stepping; - -extern int g_c068_statereg; -extern int g_cur_a2_stat; - -extern int g_c08x_wrdefram; -extern int g_c02d_int_crom; - -extern int g_c035_shadow_reg; -extern int g_c036_val_speed; - -extern int g_c023_val; -extern int g_c041_val; -extern int g_c046_val; -extern int g_zipgs_reg_c059; -extern int g_zipgs_reg_c05a; -extern int g_zipgs_reg_c05b; -extern int g_zipgs_unlock; - -extern int g_engine_c_mode; -extern int defs_instr_start_8; -extern int defs_instr_start_16; -extern int defs_instr_end_8; -extern int defs_instr_end_16; -extern int op_routs_start; -extern int op_routs_end; - -Engine_reg engine; -extern word32 table8[]; -extern word32 table16[]; - -extern byte doc_ram[]; - -extern int g_iwm_motor_on; -extern int g_fast_disk_emul; -extern int g_slow_525_emul_wr; -extern int g_c031_disk35; -extern int g_config_control_panel; - -extern int g_audio_enable; -extern int g_preferred_rate; - -void U_STACK_TRACE(); - -double g_fcycles_stop = 0.0; -int halt_sim = 0; -int enter_debug = 0; -int g_rom_version = -1; -int g_user_halt_bad = 0; -int g_halt_on_bad_read = 0; -int g_ignore_bad_acc = 1; -int g_ignore_halts = 1; -int g_code_red = 0; -int g_code_yellow = 0; -int g_use_alib = 0; -int g_serial_type[2]; -int g_iw2_emul = 0; -int g_serial_out_masking = 0; -int g_serial_modem[2] = { 0, 1 }; -int g_ethernet = 0; -int g_ethernet_interface = 0; -int g_parallel = 0; -int g_parallel_out_masking = 0; -int g_printer = 0; -int g_printer_dpi = 360; -char* g_printer_output = "bmp"; -int g_printer_multipage = 0; -int g_printer_timeout = 2; -char* g_printer_font_roman = "lib/letgothl.ttf"; -char* g_printer_font_sans = "sansserif.ttf"; -char* g_printer_font_courier = "courier.ttf"; -char* g_printer_font_prestige = "prestige.ttf"; -char* g_printer_font_script = "script.ttf"; -char* g_printer_font_ocra = "ocra.ttf"; - -int g_imagewriter = 0; -int g_imagewriter_dpi = 360; -char* g_imagewriter_output = "bmp"; -int g_imagewriter_multipage = 0; -int g_imagewriter_timeout = 2; -char* g_imagewriter_fixed_font = "lib/letgothl.ttf"; -char* g_imagewriter_prop_font = "lib/letgothl.ttf"; -int g_imagewriter_paper = 0; -int g_imagewriter_banner = 0; - -int g_config_iwm_vbl_count = 0; -extern const char g_gsport_version_str[] = "0.31"; -int g_pause=0; // OG Added pause - -#define START_DCYCS (0.0) - -double g_last_vbl_dcycs = START_DCYCS; -double g_cur_dcycs = START_DCYCS; - -double g_last_vbl_dadjcycs = 0.0; -double g_dadjcycs = 0.0; - - -int g_wait_pending = 0; -int g_stp_pending = 0; -extern int g_irq_pending; - -int g_num_irq = 0; -int g_num_brk = 0; -int g_num_cop = 0; -int g_num_enter_engine = 0; -int g_io_amt = 0; -int g_engine_action = 0; -int g_engine_halt_event = 0; -int g_engine_scan_int = 0; -int g_engine_doc_int = 0; - -int g_testing = 0; -int g_testing_enabled = 0; - -#define MAX_FATAL_LOGS 20 - -int g_debug_file_fd = -1; -int g_fatal_log = -1; -char *g_fatal_log_strs[MAX_FATAL_LOGS]; - -word32 stop_run_at; - -int g_25sec_cntr = 0; -int g_1sec_cntr = 0; - -double g_dnatcycs_1sec = 0.0; -word32 g_natcycs_lastvbl = 0; - -int Verbose = 0; -int Halt_on = 0; - -word32 g_mem_size_base = 256*1024; /* size of motherboard memory */ -word32 g_mem_size_exp = 8*1024*1024; /* size of expansion RAM card */ -word32 g_mem_size_total = 256*1024; /* Total contiguous RAM from 0 */ - -extern word32 slow_mem_changed[]; - -byte *g_slow_memory_ptr = 0; -byte *g_memory_ptr = 0; -byte *g_dummy_memory1_ptr = 0; -byte *g_rom_fc_ff_ptr = 0; -byte *g_rom_cards_ptr = 0; - -// OG Added allocated pointers -byte *g_slow_memory_ptr_allocated = 0; -byte *g_memory_ptr_allocated = 0; -byte *g_dummy_memory1_ptr_allocated = 0; -byte *g_rom_fc_ff_ptr_allocated = 0; -byte *g_rom_cards_ptr_allocated = 0; - -void *g_memory_alloc_ptr = 0; /* for freeing memory area */ - -Page_info page_info_rd_wr[2*65536 + PAGE_INFO_PAD_SIZE]; - -Pc_log g_pc_log_array[PC_LOG_LEN + 2]; -Data_log g_data_log_array[PC_LOG_LEN + 2]; - -Pc_log *g_log_pc_ptr = &(g_pc_log_array[0]); -Pc_log *g_log_pc_start_ptr = &(g_pc_log_array[0]); -Pc_log *g_log_pc_end_ptr = &(g_pc_log_array[PC_LOG_LEN]); - -Data_log *g_log_data_ptr = &(g_data_log_array[0]); -Data_log *g_log_data_start_ptr = &(g_data_log_array[0]); -Data_log *g_log_data_end_ptr = &(g_data_log_array[PC_LOG_LEN]); - -// OG Added sim65816_initglobals() -void sim65816_initglobals() -{ - - g_fcycles_stop = 0.0; - halt_sim = 0; - enter_debug = 0; - g_rom_version = -1; - g_user_halt_bad = 0; - g_halt_on_bad_read = 0; - g_ignore_bad_acc = 1; - g_ignore_halts = 1; - g_code_red = 0; - g_code_yellow = 0; - g_use_alib = 0; - g_iw2_emul = 0; - g_serial_out_masking = 0; - //g_serial_modem[2] = { 0, 1 }; - - g_config_iwm_vbl_count = 0; - - g_pause=0; - - g_last_vbl_dcycs = START_DCYCS; - g_cur_dcycs = START_DCYCS; - - g_last_vbl_dadjcycs = 0.0; - g_dadjcycs = 0.0; - - - g_wait_pending = 0; - g_stp_pending = 0; - - g_num_irq = 0; - g_num_brk = 0; - g_num_cop = 0; - g_num_enter_engine = 0; - g_io_amt = 0; - g_engine_action = 0; - g_engine_halt_event = 0; - g_engine_scan_int = 0; - g_engine_doc_int = 0; - - g_testing = 0; - g_testing_enabled = 0; - - g_debug_file_fd = -1; - g_fatal_log = -1; - - g_25sec_cntr = 0; - g_1sec_cntr = 0; - - g_dnatcycs_1sec = 0.0; - g_natcycs_lastvbl = 0; - - Verbose = 0; - Halt_on = 0; - - g_mem_size_base = 256*1024; /* size of motherboard memory */ - g_mem_size_exp = 8*1024*1024; /* size of expansion RAM card */ - g_mem_size_total = 256*1024; /* Total contiguous RAM from 0 */ -} - -void -show_pc_log() -{ - FILE *pcfile; - Pc_log *log_pc_ptr; - Data_log *log_data_ptr; - double dcycs; - double start_dcycs; - word32 instr; - word32 psr; - word32 acc, xreg, yreg; - word32 stack, direct; - word32 dbank; - word32 kpc; - int data_wrap; - int accsize, xsize; - int num; - int i; - - pcfile = fopen("pc_log_out", "w"); - if(pcfile == 0) { - fprintf(stderr,"fopen failed...errno: %d\n", errno); - exit(2); - } - - log_pc_ptr = g_log_pc_ptr; - log_data_ptr = g_log_data_ptr; -#if 0 - fprintf(pcfile, "current pc_log_ptr: %p, start: %p, end: %p\n", - log_pc_ptr, log_pc_start_ptr, log_pc_end_ptr); -#endif - - start_dcycs = log_pc_ptr->dcycs; - dcycs = start_dcycs; - - data_wrap = 0; - /* find first data entry */ - while(data_wrap < 2 && (log_data_ptr->dcycs < dcycs)) { - log_data_ptr++; - if(log_data_ptr >= g_log_data_end_ptr) { - log_data_ptr = g_log_data_start_ptr; - data_wrap++; - } - } - fprintf(pcfile, "start_dcycs: %9.2f\n", start_dcycs); - - for(i = 0; i < PC_LOG_LEN; i++) { - dcycs = log_pc_ptr->dcycs; - while((data_wrap < 2) && (log_data_ptr->dcycs <= dcycs) && - (log_data_ptr->dcycs >= start_dcycs)) { - fprintf(pcfile, "DATA set %06x = %06x (%d) %9.2f\n", - log_data_ptr->addr, log_data_ptr->val, - log_data_ptr->size, - log_data_ptr->dcycs - start_dcycs); - log_data_ptr++; - if(log_data_ptr >= g_log_data_end_ptr) { - log_data_ptr = g_log_data_start_ptr; - data_wrap++; - } - } - dbank = (log_pc_ptr->dbank_kpc >> 24) & 0xff; - kpc = log_pc_ptr->dbank_kpc & 0xffffff; - instr = log_pc_ptr->instr; - psr = (log_pc_ptr->psr_acc >> 16) & 0xffff;; - acc = log_pc_ptr->psr_acc & 0xffff;; - xreg = (log_pc_ptr->xreg_yreg >> 16) & 0xffff;; - yreg = log_pc_ptr->xreg_yreg & 0xffff;; - stack = (log_pc_ptr->stack_direct >> 16) & 0xffff;; - direct = log_pc_ptr->stack_direct & 0xffff;; - - num = log_pc_ptr - g_log_pc_start_ptr; - - accsize = 2; - xsize = 2; - if(psr & 0x20) { - accsize = 1; - } - if(psr & 0x10) { - xsize = 1; - } - - fprintf(pcfile, "%04x: A:%04x X:%04x Y:%04x P:%03x " - "S:%04x D:%04x B:%02x %9.2f ", i, - acc, xreg, yreg, psr, stack, direct, dbank, - (dcycs-start_dcycs)); - - do_dis(pcfile, kpc, accsize, xsize, 1, instr); - log_pc_ptr++; - if(log_pc_ptr >= g_log_pc_end_ptr) { - log_pc_ptr = g_log_pc_start_ptr; - } - } - - fclose(pcfile); -} - - -#define TOOLBOX_LOG_LEN 64 - -int g_toolbox_log_pos = 0; -word32 g_toolbox_log_array[TOOLBOX_LOG_LEN][8]; - -word32 -toolbox_debug_4byte(word32 addr) -{ - word32 part1, part2; - - /* If addr looks safe, use it */ - if(addr > 0xbffc) { - return (word32)-1; - } - - part1 = get_memory16_c(addr, 0); - part1 = (part1 >> 8) + ((part1 & 0xff) << 8); - part2 = get_memory16_c(addr+2, 0); - part2 = (part2 >> 8) + ((part2 & 0xff) << 8); - - return (part1 << 16) + part2; -} - -void -toolbox_debug_c(word32 xreg, word32 stack, double *cyc_ptr) -{ - int pos; - - pos = g_toolbox_log_pos; - - stack += 9; - g_toolbox_log_array[pos][0] = (word32)(g_last_vbl_dcycs + *cyc_ptr); - g_toolbox_log_array[pos][1] = stack+1; - g_toolbox_log_array[pos][2] = xreg; - g_toolbox_log_array[pos][3] = toolbox_debug_4byte(stack+1); - g_toolbox_log_array[pos][4] = toolbox_debug_4byte(stack+5); - g_toolbox_log_array[pos][5] = toolbox_debug_4byte(stack+9); - g_toolbox_log_array[pos][6] = toolbox_debug_4byte(stack+13); - g_toolbox_log_array[pos][7] = toolbox_debug_4byte(stack+17); - - pos++; - if(pos >= TOOLBOX_LOG_LEN) { - pos = 0; - } - - g_toolbox_log_pos = pos; -} - -void -show_toolbox_log() -{ - int pos; - int i; - - pos = g_toolbox_log_pos; - - for(i = TOOLBOX_LOG_LEN - 1; i >= 0; i--) { - printf("%2d:%2d: %08x %06x %04x: %08x %08x %08x %08x %08x\n", - i, pos, - g_toolbox_log_array[pos][0], - g_toolbox_log_array[pos][1], - g_toolbox_log_array[pos][2], - g_toolbox_log_array[pos][3], - g_toolbox_log_array[pos][4], - g_toolbox_log_array[pos][5], - g_toolbox_log_array[pos][6], - g_toolbox_log_array[pos][7]); - pos++; - if(pos >= TOOLBOX_LOG_LEN) { - pos = 0; - } - } -} - -#if 0 -/* get_memory_c is not used, get_memory_asm is, but this does what the */ -/* assembly language would do */ -word32 -get_memory_c(word32 loc, int diff_cycles) -{ - byte *addr; - word32 result; - int index; - -#ifdef CHECK_BREAKPOINTS - check_breakpoints_c(loc); -#endif - - index = loc >> 8; - result = page_info[index].rd; - if(result & BANK_IO_BIT) { - return get_memory_io(loc, diff_cycles); - } - - addr = (byte *)((result & 0xffffff00) + (loc & 0xff)); - - return *addr; -} -#endif - - -word32 -get_memory_io(word32 loc, double *cyc_ptr) -{ - int tmp; - - if(loc > 0xffffff) { - halt_printf("get_memory_io:%08x out of range==halt!\n", loc); - return 0; - } - tmp = loc & 0xfef000; - if(tmp == 0xc000 || tmp == 0xe0c000) { - return(io_read(loc & 0xfff, cyc_ptr)); - } - - /* Else it's an illegal addr...skip if memory sizing */ - if(loc >= g_mem_size_total) { - if((loc & 0xfffe) == 0) { -#if 0 - printf("get_io assuming mem sizing, not halting\n"); -#endif - return 0; - } - } - - /* Skip reads to f80000 and f00000, just return 0 */ - if((loc & 0xf70000) == 0xf00000) { - return 0; - } - - if((loc & 0xff0000) == 0xef0000) { - /* DOC RAM */ - return (doc_ram[loc & 0xffff]); - } - - g_code_yellow++; - if(g_ignore_bad_acc && !g_user_halt_bad) { - /* print no message, just get out. User doesn't want */ - /* to be bothered by buggy programs */ - return 0; - } - - printf("get_memory_io for addr: %06x\n", loc); - printf("stat for addr: %06x = %p\n", loc, - GET_PAGE_INFO_RD((loc >> 8) & 0xffff)); - set_halt(g_halt_on_bad_read | g_user_halt_bad); - - return 0; -} - -#if 0 -word32 -get_memory16_pieces(word32 loc, int diff_cycles) -{ - return(get_memory_c(loc, diff_cycles) + - (get_memory_c(loc+1, diff_cycles) << 8)); -} - -word32 -get_memory24(word32 loc, int diff_cycles) -{ - return(get_memory_c(loc, diff_cycles) + - (get_memory_c(loc+1, diff_cycles) << 8) + - (get_memory_c(loc+2, diff_cycles) << 16)); -} -#endif - -#if 0 -void -set_memory(word32 loc, int val, int diff_cycles) -{ - byte *ptr; - word32 new_addr; - word32 tmp; - word32 or_val; - int or_pos; - int old_slow_val; - -#ifdef CHECK_BREAKPOINTS - check_breakpoints_c(loc); -#endif - - tmp = GET_PAGE_INFO_WR((loc>>8) & 0xffff); - if(tmp & BANK_IO) { - set_memory_io(loc, val, diff_cycles); - return; - } - - if((loc & 0xfef000) == 0xe0c000) { - printf("set_memory_special: non-io for addr %08x, %02x, %d\n", - loc, val, diff_cycles); - halt_printf("tmp: %08x\n", tmp); - } - - ptr = (byte *)(tmp & (~0xff)); - - new_addr = loc & 0xffff; - old_slow_val = val; - - if(tmp & BANK_SHADOW) { - old_slow_val = g_slow_memory_ptr[new_addr]; - } else if(tmp & BANK_SHADOW2) { - new_addr += 0x10000; - old_slow_val = g_slow_memory_ptr[new_addr]; - } - - if(old_slow_val != val) { - g_slow_memory_ptr[new_addr] = val; - or_pos = (new_addr >> SHIFT_PER_CHANGE) & 0x1f; - or_val = DEP1(1, or_pos, 0); - if((new_addr >> CHANGE_SHIFT) >= SLOW_MEM_CH_SIZE) { - printf("new_addr: %08x\n", new_addr); - exit(12); - } - slow_mem_changed[(new_addr & 0xffff) >> CHANGE_SHIFT] |= or_val; - } - - ptr[loc & 0xff] = val; - -} -#endif - -void -set_memory_io(word32 loc, int val, double *cyc_ptr) -{ - word32 tmp; - tmp = loc & 0xfef000; - if(tmp == 0xc000 || tmp == 0xe0c000) { - io_write(loc, val, cyc_ptr); - return; - } - - /* Else it's an illegal addr */ - if(loc >= g_mem_size_total) { - if((loc & 0xfffe) == 0) { -#if 0 - printf("set_io assuming mem sizing, not halting\n"); -#endif - return; - } - } - - /* ignore writes to ROM */ - if((loc & 0xfc0000) == 0xfc0000) { - return; - } - - if((loc & 0xff0000) == 0xef0000) { - /* DOC RAM */ - doc_ram[loc & 0xffff] = val; - return; - } - - if(g_ignore_bad_acc && !g_user_halt_bad) { - /* print no message, just get out. User doesn't want */ - /* to be bothered by buggy programs */ - return; - } - - if((loc & 0xffc000) == 0x00c000) { - printf("set_memory %06x = %02x, warning\n", loc, val); - return; - } - - halt_printf("set_memory %06x = %02x, stopping\n", loc, val); - - return; -} - - -#if 0 -void -check_breakpoints_c(word32 loc) -{ - int index; - int count; - int i; - - index = (loc & (MAX_BP_INDEX-1)); - count = breakpoints[index].count; - if(count) { - for(i = 0; i < count; i++) { - if(loc == breakpoints[index].addrs[i]) { - halt_printf("Write hit breakpoint %d!\n", i); - } - } - } -} -#endif - - -void -show_regs_act(Engine_reg *eptr) -{ - int tmp_acc, tmp_x, tmp_y, tmp_psw; - int kpc; - int direct_page, dbank; - int stack; - - kpc = eptr->kpc; - tmp_acc = eptr->acc; - direct_page = eptr->direct; - dbank = eptr->dbank; - stack = eptr->stack; - - tmp_x = eptr->xreg; - tmp_y = eptr->yreg; - - tmp_psw = eptr->psr; - - printf(" PC=%02x.%04x A=%04x X=%04x Y=%04x P=%03x", - kpc>>16, kpc & 0xffff ,tmp_acc,tmp_x,tmp_y,tmp_psw); - printf(" S=%04x D=%04x B=%02x,cyc:%.3f\n", stack, direct_page, - dbank, g_cur_dcycs); -} - -void -show_regs() -{ - show_regs_act(&engine); -} - -//OG for regular exit, use quitEmulator() - -void quitEmulator() -{ - printf("set_halt(HALT_WANTTOQUIT)\n"); - set_halt(HALT_WANTTOQUIT); -} - -//OG change exit to fatal_exit() - -#ifndef ACTIVEGS - // use standard exit function - #define fatalExit exit -#else - extern void fatalExit(int); -#endif - -void my_exit(int ret) -{ - end_screen(); - imagewriter_close(); - printer_close(); - printf("exiting (ret=%d)\n",ret); - fatalExit(ret); -} - - -void -do_reset() -{ - - // OG Cleared remaining IRQS on RESET - extern int g_irq_pending; - extern int g_scan_int_events ; - extern int g_c023_val; - - g_c068_statereg = 0x08 + 0x04 + 0x01; /* rdrom, lcbank2, intcx */ - g_c035_shadow_reg = 0; - - g_c08x_wrdefram = 1; - g_c02d_int_crom = 0; - g_c023_val = 0; - g_c041_val = 0; - - engine.psr = (engine.psr | 0x134) & ~(0x08); - engine.stack = 0x100 + (engine.stack & 0xff); - engine.dbank = 0; - engine.direct = 0; - engine.xreg &= 0xff; - engine.yreg &= 0xff; - g_wait_pending = 0; - g_stp_pending = 0; - - - video_reset(); - adb_reset(); - iwm_reset(); - scc_reset(); - sound_reset(g_cur_dcycs); - setup_pageinfo(); - change_display_mode(g_cur_dcycs); - - g_irq_pending = 0; - - engine.kpc = get_memory16_c(0x00fffc, 0); - - g_stepping = 0; - - if (g_irq_pending) - halt_printf("*** irq remainings...\n"); - -} - -#define CHECK(start, var, value, var1, var2) \ - var2 = PTR2WORD(&(var)); \ - var1 = PTR2WORD((start)); \ - if((var2 - var1) != value) { \ - printf("CHECK: " #var " is 0x%x, but " #value " is 0x%x\n", \ - (var2 - var1), value); \ - exit(5); \ - } - -void -check_engine_asm_defines() -{ - Fplus fplus; - Fplus *fplusptr; - Pc_log pclog; - Pc_log *pcptr; - Engine_reg ereg; - Engine_reg *eptr; - word32 val1; - word32 val2; - - eptr = &ereg; - CHECK(eptr, eptr->fcycles, ENGINE_FCYCLES, val1, val2); - CHECK(eptr, eptr->fplus_ptr, ENGINE_FPLUS_PTR, val1, val2); - CHECK(eptr, eptr->acc, ENGINE_REG_ACC, val1, val2); - CHECK(eptr, eptr->xreg, ENGINE_REG_XREG, val1, val2); - CHECK(eptr, eptr->yreg, ENGINE_REG_YREG, val1, val2); - CHECK(eptr, eptr->stack, ENGINE_REG_STACK, val1, val2); - CHECK(eptr, eptr->dbank, ENGINE_REG_DBANK, val1, val2); - CHECK(eptr, eptr->direct, ENGINE_REG_DIRECT, val1, val2); - CHECK(eptr, eptr->psr, ENGINE_REG_PSR, val1, val2); - CHECK(eptr, eptr->kpc, ENGINE_REG_KPC, val1, val2); - - pcptr = &pclog; - CHECK(pcptr, pcptr->dbank_kpc, LOG_PC_DBANK_KPC, val1, val2); - CHECK(pcptr, pcptr->instr, LOG_PC_INSTR, val1, val2); - CHECK(pcptr, pcptr->psr_acc, LOG_PC_PSR_ACC, val1, val2); - CHECK(pcptr, pcptr->xreg_yreg, LOG_PC_XREG_YREG, val1, val2); - CHECK(pcptr, pcptr->stack_direct, LOG_PC_STACK_DIRECT, val1, val2); - if(LOG_PC_SIZE != sizeof(pclog)) { - printf("LOG_PC_SIZE: %d != sizeof=%d\n", LOG_PC_SIZE, - (int)sizeof(pclog)); - exit(2); - } - - fplusptr = &fplus; - CHECK(fplusptr, fplusptr->plus_1, FPLUS_PLUS_1, val1, val2); - CHECK(fplusptr, fplusptr->plus_2, FPLUS_PLUS_2, val1, val2); - CHECK(fplusptr, fplusptr->plus_3, FPLUS_PLUS_3, val1, val2); - CHECK(fplusptr, fplusptr->plus_x_minus_1, FPLUS_PLUS_X_M1, val1, val2); -} - -byte * -memalloc_align(int size, int skip_amt, void **alloc_ptr) -{ - byte *bptr; - word32 addr; - word32 offset; - - skip_amt = MAX(256, skip_amt); - bptr = (byte*)calloc(size + skip_amt + 256, 1); // OG Added cast - if(alloc_ptr) { - /* Save allocation address */ - *alloc_ptr = bptr; - } - - addr = PTR2WORD(bptr) & 0xff; - - /* must align bptr to be 256-byte aligned */ - /* this code should work even if ptrs are > 32 bits */ - - offset = ((addr + skip_amt - 1) & (~0xff)) - addr; - - return (bptr + offset); -} - -void -memory_ptr_init() -{ - word32 mem_size; - - /* This routine may be called several times--each time the ROM file */ - /* changes this will be called */ - mem_size = MIN(0xdf0000, g_mem_size_base + g_mem_size_exp); - g_mem_size_total = mem_size; - - // OG using memory_ptr_shut() instead - memory_ptr_shut(); - /* - if(g_memory_alloc_ptr) { - free(g_memory_alloc_ptr); - g_memory_alloc_ptr = 0; - } - */ - g_memory_ptr = memalloc_align(mem_size, 256, &g_memory_alloc_ptr); - - printf("RAM size is 0 - %06x (%.2fMB)\n", mem_size, - (double)mem_size/(1024.0*1024.0)); -} - -// OG Added memory_ptr_shut -void -memory_ptr_shut() -{ - if(g_memory_alloc_ptr) - { - free(g_memory_alloc_ptr); - g_memory_alloc_ptr = 0; - } - g_memory_ptr = 0; -} - - -extern int g_screen_redraw_skip_amt; -extern int g_use_shmem; -extern int g_use_dhr140; -extern int g_use_bw_hires; - -char g_display_env[512]; -int g_force_depth = -1; -int g_screen_depth = 8; - - -int -gsportmain(int argc, char **argv) -{ - int diff; - int skip_amt; - int tmp1; - int i; - char *final_arg = 0; - - // OG Restoring globals - sim65816_initglobals(); - moremem_init(); - -//OG Disabling argument parsing -#ifndef ACTIVEGS - - /* parse args */ - for(i = 1; i < argc; i++) { - if(!strcmp("-badrd", argv[i])) { - printf("Halting on bad reads\n"); - g_halt_on_bad_read = 2; - } else if(!strcmp("-noignbadacc", argv[i])) { - printf("Not ignoring bad memory accesses\n"); - g_ignore_bad_acc = 0; - } else if(!strcmp("-noignhalt", argv[i])) { - printf("Not ignoring code red halts\n"); - g_ignore_halts = 0; - } else if(!strcmp("-test", argv[i])) { - printf("Allowing testing\n"); - g_testing_enabled = 1; - } else if(!strcmp("-hpdev", argv[i])) { - printf("Using /dev/audio\n"); - g_use_alib = 0; - } else if(!strcmp("-alib", argv[i])) { - printf("Using Aserver audio server\n"); - g_use_alib = 1; - } else if(!strcmp("-24", argv[i])) { - printf("Using 24-bit visual\n"); - g_force_depth = 24; - } else if(!strcmp("-16", argv[i])) { - printf("Using 16-bit visual\n"); - g_force_depth = 16; - } else if(!strcmp("-15", argv[i])) { - printf("Using 15-bit visual\n"); - g_force_depth = 15; - } else if(!strcmp("-mem", argv[i])) { - if((i+1) >= argc) { - printf("Missing argument\n"); - exit(1); - } - g_mem_size_exp = strtol(argv[i+1], 0, 0) & 0x00ff0000; - printf("Using %d as memory size\n", g_mem_size_exp); - i++; - } else if(!strcmp("-skip", argv[i])) { - if((i+1) >= argc) { - printf("Missing argument\n"); - exit(1); - } - skip_amt = strtol(argv[i+1], 0, 0); - printf("Using %d as skip_amt\n", skip_amt); - g_screen_redraw_skip_amt = skip_amt; - i++; - } else if(!strcmp("-audio", argv[i])) { - if((i+1) >= argc) { - printf("Missing argument\n"); - exit(1); - } - tmp1 = strtol(argv[i+1], 0, 0); - printf("Using %d as audio enable val\n", tmp1); - g_audio_enable = tmp1; - i++; - } else if(!strcmp("-arate", argv[i])) { - if((i+1) >= argc) { - printf("Missing argument\n"); - exit(1); - } - tmp1 = strtol(argv[i+1], 0, 0); - printf("Using %d as preferred audio rate\n", tmp1); - g_preferred_rate = tmp1; - i++; - } else if(!strcmp("-v", argv[i])) { - if((i+1) >= argc) { - printf("Missing argument\n"); - exit(1); - } - tmp1 = strtol(argv[i+1], 0, 0); - printf("Setting Verbose = 0x%03x\n", tmp1); - Verbose = tmp1; - i++; -#ifndef __NeXT__ - } else if(!strcmp("-display", argv[i])) { - if((i+1) >= argc) { - printf("Missing argument\n"); - exit(1); - } - printf("Using %s as display\n", argv[i+1]); - sprintf(g_display_env, "DISPLAY=%s", argv[i+1]); - putenv(&g_display_env[0]); - i++; -#endif - } else if(!strcmp("-noshm", argv[i])) { - printf("Not using X shared memory\n"); - g_use_shmem = 0; - } else if(!strcmp("-joystick", argv[i])) { - printf("Ignoring -joystick option\n"); - } else if(!strcmp("-dhr140", argv[i])) { - printf("Using simple dhires color map\n"); - g_use_dhr140 = 1; - } else if(!strcmp("-bw", argv[i])) { - printf("Forcing black-and-white hires modes\n"); - g_cur_a2_stat |= ALL_STAT_COLOR_C021; - g_use_bw_hires = 1; - } else if(!strcmp("-enet", argv[i])) { - if((i+1) >= argc) { - printf("Missing argument\n"); - exit(1); - } - tmp1 = strtol(argv[i+1], 0, 0); - printf("Using %d as ethernet enable val\n", tmp1); - g_ethernet = tmp1; - i++; - } else { - if ((i == (argc - 1)) && (strncmp("-", argv[i], 1) != 0)) { - final_arg = argv[i]; - } else { - printf("Bad option: %s\n", argv[i]); - exit(3); - } - } - } -#endif - check_engine_asm_defines(); - fixed_memory_ptrs_init(); - - if(sizeof(word32) != 4) { - printf("sizeof(word32) = %d, must be 4!\n", - (int)sizeof(word32)); - exit(1); - } - - if(!g_engine_c_mode) { - diff = &defs_instr_end_8 - &defs_instr_start_8; - if(diff != 1) { - printf("defs_instr_end_8 - start is %d\n",diff); - exit(1); - } - - diff = &defs_instr_end_16 - &defs_instr_start_16; - if(diff != 1) { - printf("defs_instr_end_16 - start is %d\n", diff); - exit(1); - } - - diff = &op_routs_end - &op_routs_start; - if(diff != 1) { - printf("op_routs_end - start is %d\n", diff); - exit(1); - } - } - - iwm_init(); - config_init(); - // If the final argument was not a switch, then treat it like a disk image filename to insert - if (final_arg) { - // ...and flag it to boot - cfg_inspect_maybe_insert_file(final_arg, 1); - } - printer_init(g_printer_dpi,85,110,g_printer_output,g_printer_multipage != 0); - //If ethernet is enabled in config.gsport, let's initialize it -#ifdef HAVE_TFE - if (g_ethernet == 1) - { - int i = 0; - char *ppname = NULL; - char *ppdes = NULL; - if (tfe_enumadapter_open()) - { - //Loop through the available adapters until we reach the interface number specified in config.gsport - while(tfe_enumadapter(&ppname,&ppdes)) - { - if (i == g_ethernet_interface) break; - i++; - } - tfe_enumadapter_close(); - printf("Using host ethernet interface: %s\nUthernet support is ON.\n",ppdes); - } - else - { - printf("No ethernet host adapters found. Do you have PCap installed/enabled?\nUthernet support is OFF.\n"); - } - set_tfe_interface(ppname); //Connect the emulated ethernet device with the selected host adapter - lib_free(ppname); - lib_free(ppdes); - tfe_init(); - } -#endif - - load_roms_init_memory(); - - init_reg(); - clear_halt(); - - initialize_events(); - - video_init(); - -#ifndef _WIN32 - //sleep(1); -#endif - sound_init(); - scc_init(); - adb_init(); - joystick_init(); - if(g_rom_version >= 3) { - g_c036_val_speed |= 0x40; /* set power-on bit */ - } - - do_reset(); - g_stepping = 0; - - // OG Notify emulator has been initialized and ready to accept external events - g_initialized = 1; - g_accept_events = 1; - - do_go(); - - /* If we get here, we hit a breakpoint, call debug intfc */ - do_debug_intfc(); - - // OG Notify emulator is being closed, and cannot accept events anymore - g_accept_events = 0; - - sound_shutdown(); - - - // OG Cleaning up - adb_shut(); - iwm_shut(); - fixed_memory_ptrs_shut(); - load_roms_shut_memory(); - clear_fatal_logs(); - - // OG Not needed anymore : the emulator will quit gently - //my_exit(0); - end_screen(); - - return 0; -} - -void -load_roms_init_memory() -{ - config_load_roms(); - memory_ptr_init(); - clk_setup_bram_version(); /* Must be after config_load_roms */ - if(g_rom_version >= 3) { - g_c036_val_speed |= 0x40; /* set power-on bit */ - } else { - g_c036_val_speed &= (~0x40); /* clear the bit */ - } - do_reset(); - - /* if user booted ROM 01, switches to ROM 03, then switches back */ - /* to ROM 01, then the reset routines call to Tool $0102 looks */ - /* at uninitialized $e1/15fe and if it is negative it will JMP */ - /* through $e1/1688 which ROM 03 left pointing to fc/0199 */ - /* So set e1/15fe = 0 */ - set_memory16_c(0xe115fe, 0, 0); -} - -// OG Added load_roms_shut_memory -void load_roms_shut_memory() -{ - memory_ptr_shut(); -} - -#ifndef ACTIVEGS - -void -gsport_expand_path(char *out_ptr, const char *in_ptr, int maxlen) -{ - char name_buf[256]; - char *tmp_ptr; - int name_len; - int in_char; - int state; - - out_ptr[0] = 0; - - name_len = 0; - state = 0; - - /* See if in_ptr has ${} notation, replace with getenv or argv0 */ - while(maxlen > 0) { - in_char = *in_ptr++; - *out_ptr++ = in_char; - maxlen--; - if(state == 0) { - /* No $ seen yet, look for it */ - if(in_char == '$') { - state = 1; - } - } else if(state == 1) { - /* See if next char is '{' (dummy }) */ - if(in_char == '{') { /* add dummy } */ - state = 2; - name_len = 0; - out_ptr -= 2; - } else { - state = 0; - } - } else if(state == 2) { - /* fill name_buf ... dummy '{' */ - out_ptr--; - if(in_char == '}') { - name_buf[name_len] = 0; - - /* got token, now look it up */ - tmp_ptr = ""; - if(!strncmp("0", name_buf, 128)) { - /* Replace ${0} with g_argv0_path */ - tmp_ptr = &(g_argv0_path[0]); -#if defined (_WIN32) || defined(__CYGWIN__) - } else if(!strncmp("PWD", name_buf, 128)) { - /* Replace ${PWD} with cwd in Windows */ - get_cwd(out_ptr,128); - tmp_ptr = out_ptr; -#endif - } else { - tmp_ptr = getenv(name_buf); - if(tmp_ptr == 0) { - tmp_ptr = ""; - } - } - strncpy(out_ptr, tmp_ptr, maxlen); - out_ptr += strlen(tmp_ptr); - maxlen -= strlen(tmp_ptr); - state = 0; - } else { - name_buf[name_len++] = in_char; - } - } - if(in_char == 0) { - /* make sure its null terminated */ - *out_ptr++ = 0; - break; - } - } -} - -void -setup_gsport_file(char *outname, int maxlen, int ok_if_missing, - int can_create_file, const char **name_ptr) -{ - char local_path[256]; - struct stat stat_buf; - const char **path_ptr; - const char **cur_name_ptr, **save_path_ptr; - int ret; - - outname[0] = 0; - - path_ptr = &g_gsport_default_paths[0]; - - save_path_ptr = path_ptr; - while(*path_ptr) { - gsport_expand_path(&(local_path[0]), *path_ptr, 250); - cur_name_ptr = name_ptr; - while(*cur_name_ptr) { - strcpy(outname, &(local_path[0])); - strncat(outname, *cur_name_ptr, 255-strlen(outname)); - if(!ok_if_missing) { - printf("Trying '%s'\n", outname); - } - ret = stat(outname, &stat_buf); - if(ret == 0) { - /* got it! */ - return; - } - cur_name_ptr++; - } - path_ptr++; - } - - outname[0] = 0; - if(ok_if_missing > 0) { - return; - } - - /* couldn't find it, print out all the attempts */ - path_ptr = save_path_ptr; - fatal_printf("Could not find required file \"%s\" in any of these " - "directories:\n", *name_ptr); - while(*path_ptr) { - fatal_printf(" %s\n", *path_ptr++); - } - - if(can_create_file) { - // If we didn't find a file, pick a place to put it. - // Default is the current working directory. -#ifdef MAC - gsport_expand_path(&(local_path[0]), "${0}/../config.txt", 250); -#else - gsport_expand_path(&(local_path[0]), "${PWD}/config.txt", 250); -#endif - strcpy(outname, &(local_path[0])); - // Ask user if it's OK to create the file (or just create it) - x_dialog_create_gsport_conf(*name_ptr); - can_create_file = 0; - - // But clear out the fatal_printfs first - clear_fatal_logs(); - setup_gsport_file(outname, maxlen, ok_if_missing, - can_create_file, name_ptr); - // It's one-level of recursion--it cannot loop since we - // clear can_create_file. - // If it returns, then there was succes and we should get out - return; - } else if(ok_if_missing) { - /* Just show an alert and return if ok_if_missing < 0 */ - x_show_alert(0, 0); - return; - } - - my_exit(2); -} - -#endif - -Event g_event_list[MAX_EVENTS]; -Event g_event_free; -Event g_event_start; - -void -initialize_events() -{ - int i; - - for(i = 1; i < MAX_EVENTS; i++) { - g_event_list[i-1].next = &g_event_list[i]; - } - g_event_free.next = &g_event_list[0]; - g_event_list[MAX_EVENTS-1].next = 0; - - g_event_start.next = 0; - g_event_start.dcycs = 0.0; - - add_event_entry(DCYCS_IN_16MS, EV_60HZ); -} - -void -check_for_one_event_type(int type) -{ - Event *ptr; - int count; - int depth; - - count = 0; - depth = 0; - ptr = g_event_start.next; - while(ptr != 0) { - depth++; - if(ptr->type == type) { - count++; - if(count != 1) { - halt_printf("in check_for_1, type %d found at " - "depth: %d, count: %d, at %f\n", - type, depth, count, ptr->dcycs); - } - } - ptr = ptr->next; - } -} - - -void -add_event_entry(double dcycs, int type) -{ - Event *this_event; - Event *ptr, *prev_ptr; - int tmp_type; - int done; - - this_event = g_event_free.next; - if(this_event == 0) { - halt_printf("Out of queue entries!\n"); - show_all_events(); - return; - } - g_event_free.next = this_event->next; - - this_event->type = type; - - tmp_type = type & 0xff; - if((dcycs < 0.0) || (dcycs > (g_cur_dcycs + 50*1000*1000.0)) || - ((dcycs < g_cur_dcycs) && (tmp_type != EV_SCAN_INT))) { - halt_printf("add_event: dcycs: %f, type:%05x, cur_dcycs: %f!\n", - dcycs, type, g_cur_dcycs); - dcycs = g_cur_dcycs + 1000.0; - } - - ptr = g_event_start.next; - if(ptr && (dcycs < ptr->dcycs)) { - /* create event before next expected event */ - /* do this by setting HALT_EVENT */ - set_halt(HALT_EVENT); - } - - prev_ptr = &g_event_start; - ptr = g_event_start.next; - - done = 0; - while(!done) { - if(ptr == 0) { - this_event->next = ptr; - this_event->dcycs = dcycs; - prev_ptr->next = this_event; - return; - } else { - if(ptr->dcycs < dcycs) { - /* step across this guy */ - prev_ptr = ptr; - ptr = ptr->next; - } else { - /* go in front of this guy */ - this_event->dcycs = dcycs; - this_event->next = ptr; - prev_ptr->next = this_event; - return; - } - } - } -} - -extern int g_doc_saved_ctl; - -double -remove_event_entry(int type) -{ - Event *ptr, *prev_ptr; - Event *next_ptr; - - ptr = g_event_start.next; - prev_ptr = &g_event_start; - - while(ptr != 0) { - if((ptr->type & 0xffff) == type) { - /* got it, remove it */ - next_ptr = ptr->next; - prev_ptr->next = next_ptr; - - /* Add ptr to free list */ - ptr->next = g_event_free.next; - g_event_free.next = ptr; - - return ptr->dcycs; - } - prev_ptr = ptr; - ptr = ptr->next; - } - - halt_printf("remove event_entry: %08x, but not found!\n", type); - if((type & 0xff) == EV_DOC_INT) { - printf("DOC, g_doc_saved_ctl = %02x\n", g_doc_saved_ctl); - } -#ifdef HPUX - U_STACK_TRACE(); -#endif - show_all_events(); - - return 0.0; -} - -void -add_event_stop(double dcycs) -{ - add_event_entry(dcycs, EV_STOP); -} - -void -add_event_doc(double dcycs, int osc) -{ - if(dcycs < g_cur_dcycs) { - dcycs = g_cur_dcycs; -#if 0 - halt_printf("add_event_doc: dcycs: %f, cur_dcycs: %f\n", - dcycs, g_cur_dcycs); -#endif - } - - add_event_entry(dcycs, EV_DOC_INT + (osc << 8)); -} - -void -add_event_scc(double dcycs, int type) -{ - if(dcycs < g_cur_dcycs) { - dcycs = g_cur_dcycs; - } - - add_event_entry(dcycs, EV_SCC + (type << 8)); -} - -void -add_event_vbl() -{ - double dcycs; - - dcycs = g_last_vbl_dcycs + (DCYCS_IN_16MS * (192.0/262.0)); - add_event_entry(dcycs, EV_VBL_INT); -} - -void -add_event_vid_upd(int line) -{ - double dcycs; - - dcycs = g_last_vbl_dcycs + ((DCYCS_IN_16MS * line) / 262.0); - add_event_entry(dcycs, EV_VID_UPD + (line << 8)); -} - -double -remove_event_doc(int osc) -{ - return remove_event_entry(EV_DOC_INT + (osc << 8)); -} - -double -remove_event_scc(int type) -{ - return remove_event_entry(EV_SCC + (type << 8)); -} - -void -show_all_events() -{ - Event *ptr; - int count; - double dcycs; - - count = 0; - ptr = g_event_start.next; - while(ptr != 0) { - dcycs = ptr->dcycs; - printf("Event: %02x: type: %05x, dcycs: %f (%f)\n", - count, ptr->type, dcycs, dcycs - g_cur_dcycs); - ptr = ptr->next; - count++; - } - -} - -word32 g_vbl_count = 0; -int g_vbl_index_count = 0; -double dtime_array[60]; -double g_dadjcycs_array[60]; -double g_dtime_diff3_array[60]; -double g_dtime_this_vbl_array[60]; -double g_dtime_exp_array[60]; -double g_dtime_pmhz_array[60]; -double g_dtime_eff_pmhz_array[60]; -int g_limit_speed = 2; -double sim_time[60]; -double g_sim_sum = 0.0; - -double g_cur_sim_dtime = 0.0; -double g_projected_pmhz = 1.0; -double g_zip_pmhz = 8.0; -double g_sim_mhz = 100.0; -int g_line_ref_amt = 1; -int g_video_line_update_interval = 0; - -Fplus g_recip_projected_pmhz_slow; -Fplus g_recip_projected_pmhz_fast; -Fplus g_recip_projected_pmhz_zip; -Fplus g_recip_projected_pmhz_unl; - -void -show_pmhz() -{ - printf("Pmhz: %f, c036:%02x, limit: %d\n", - g_projected_pmhz, g_c036_val_speed, g_limit_speed); - -} - -void -setup_zip_speeds() -{ - double frecip; - double fmhz; - int mult; - - mult = 16 - ((g_zipgs_reg_c05a >> 4) & 0xf); - // 16 = full speed, 1 = 1/16th speed - fmhz = (8.0 * mult) / 16.0; -#if 0 - if(mult == 16) { - /* increase full speed by 19% to make zipgs freq measuring */ - /* programs work correctly */ - fmhz = fmhz * 1.19; - } -#endif - frecip = 1.0 / fmhz; - g_zip_pmhz = fmhz; - g_recip_projected_pmhz_zip.plus_1 = frecip; - g_recip_projected_pmhz_zip.plus_2 = 2.0 * frecip; - g_recip_projected_pmhz_zip.plus_3 = 3.0 * frecip; - if(frecip >= 0.5) { - g_recip_projected_pmhz_zip.plus_x_minus_1 = 1.01; - } else { - g_recip_projected_pmhz_zip.plus_x_minus_1 = 1.01 - frecip; - } -} - -void -run_prog() -{ - Fplus *fplus_ptr; - Event *this_event; - Event *db1; - double dcycs; - double now_dtime; - double prev_dtime; - double prerun_fcycles; - double fspeed_mult; - double fcycles_stop; - word32 ret; - word32 zip_speed_0tof, zip_speed_0tof_new; - int zip_en, zip_follow_cps; - int type; - int motor_on; - int iwm_1; - int iwm_25; - int limit_speed; - int apple35_sel; - int fast, zip_speed, faster_than_28, unl_speed; - int this_type; - - fflush(stdout); - - g_cur_sim_dtime = 0.0; - - g_recip_projected_pmhz_slow.plus_1 = 1.0; - g_recip_projected_pmhz_slow.plus_2 = 2.0; - g_recip_projected_pmhz_slow.plus_3 = 3.0; - g_recip_projected_pmhz_slow.plus_x_minus_1 = 0.9; - - g_recip_projected_pmhz_fast.plus_1 = (1.0 / 2.5); - g_recip_projected_pmhz_fast.plus_2 = (2.0 / 2.5); - g_recip_projected_pmhz_fast.plus_3 = (3.0 / 2.5); - g_recip_projected_pmhz_fast.plus_x_minus_1 = (1.98 - (1.0/2.5)); - - zip_speed_0tof = g_zipgs_reg_c05a & 0xf0; - setup_zip_speeds(); - - if(engine.fplus_ptr == 0) { - g_recip_projected_pmhz_unl = g_recip_projected_pmhz_slow; - } - - while(1) { - fflush(stdout); - -// OG Disabling control panel -#ifndef ACTIVEGS - if(g_config_control_panel) { - config_control_panel(); - } -#endif - if(g_irq_pending && !(engine.psr & 0x4)) { - irq_printf("taking an irq!\n"); - take_irq(0); - /* Interrupt! */ - } - - motor_on = g_iwm_motor_on; - limit_speed = g_limit_speed; - apple35_sel = g_c031_disk35 & 0x40; - zip_en = ((g_zipgs_reg_c05b & 0x10) == 0); - zip_follow_cps = ((g_zipgs_reg_c059 & 0x8) != 0); - zip_speed_0tof_new = g_zipgs_reg_c05a & 0xf0; - fast = (g_c036_val_speed & 0x80) || (zip_en && !zip_follow_cps); - // OG Make fast parameter public - g_speed_fast = fast; - if(zip_speed_0tof_new != zip_speed_0tof) { - zip_speed_0tof = zip_speed_0tof_new; - setup_zip_speeds(); - } - - iwm_1 = motor_on && !apple35_sel && - (g_c036_val_speed & 0x4) && - (g_slow_525_emul_wr || !g_fast_disk_emul); - iwm_25 = (motor_on && apple35_sel) && !g_fast_disk_emul; - faster_than_28 = fast && (!iwm_1 && !iwm_25) && zip_en && - ((limit_speed == 0) || (limit_speed == 3)); - zip_speed = faster_than_28 && - ((zip_speed_0tof != 0) || (limit_speed == 3) || - (g_zipgs_unlock >= 4) ); - - // OG unlimited speed should not be affected by zip. - // unl_speed = faster_than_28 && !zip_speed; - unl_speed = (limit_speed == 0) && faster_than_28; - - if(unl_speed) { - /* use unlimited speed */ - fspeed_mult = g_projected_pmhz; - fplus_ptr = &g_recip_projected_pmhz_unl; - } else if(zip_speed) { - fspeed_mult = g_zip_pmhz; - fplus_ptr = &g_recip_projected_pmhz_zip; - } else if(fast && !iwm_1 && !(limit_speed == 1)) { - fspeed_mult = 2.5; - fplus_ptr = &g_recip_projected_pmhz_fast; - } else { - /* else run slow */ - fspeed_mult = 1.0; - fplus_ptr = &g_recip_projected_pmhz_slow; - } - - engine.fplus_ptr = fplus_ptr; - - this_type = g_event_start.next->type; - - prerun_fcycles = g_cur_dcycs - g_last_vbl_dcycs; - engine.fcycles = prerun_fcycles; - fcycles_stop = (g_event_start.next->dcycs - g_last_vbl_dcycs) + - 0.001; - if(g_stepping) { - fcycles_stop = prerun_fcycles; - } - g_fcycles_stop = fcycles_stop; - -#if 0 - printf("Enter engine, fcycs: %f, stop: %f\n", - prerun_fcycles, fcycles_stop); - printf("g_cur_dcycs: %f, last_vbl_dcyc: %f\n", g_cur_dcycs, - g_last_vbl_dcycs); -#endif - - g_num_enter_engine++; - prev_dtime = get_dtime(); - - ret = enter_engine(&engine); - - now_dtime = get_dtime(); - - g_cur_sim_dtime += (now_dtime - prev_dtime); - - dcycs = g_last_vbl_dcycs + (double)(engine.fcycles); - - g_dadjcycs += (engine.fcycles - prerun_fcycles) * - fspeed_mult; - -#if 0 - printf("...back, engine.fcycles: %f, dcycs: %f\n", - (double)engine.fcycles, dcycs); -#endif - - g_cur_dcycs = dcycs; - - if(ret != 0) { - g_engine_action++; - handle_action(ret); - } - - if(halt_sim == HALT_EVENT) { - g_engine_halt_event++; - /* if we needed to stop to check for interrupts, */ - /* clear halt */ - halt_sim = 0; - } - -#if 0 - if(!g_testing && run_cycles < -2000000) { - halt_printf("run_cycles: %d, cycles: %d\n", run_cycles, - cycles); - printf("this_type: %05x\n", this_type); - printf("duff_cycles: %d\n", duff_cycles); - printf("start.next->rel_time: %d, type: %05x\n", - g_event_start.next->rel_time, - g_event_start.next->type); - } -#endif - - this_event = g_event_start.next; - while(dcycs >= this_event->dcycs) { - /* Pop this guy off of the queue */ - g_event_start.next = this_event->next; - - type = this_event->type; - this_event->next = g_event_free.next; - g_event_free.next = this_event; - switch(type & 0xff) { - case EV_60HZ: - update_60hz(dcycs, now_dtime); - break; - case EV_STOP: - printf("type: EV_STOP\n"); - printf("next: %p, dcycs: %f\n", - g_event_start.next, dcycs); - db1 = g_event_start.next; - halt_printf("next.dcycs: %f\n", db1->dcycs); - break; - case EV_SCAN_INT: - g_engine_scan_int++; - irq_printf("type: scan int\n"); - do_scan_int(dcycs, type >> 8); - break; - case EV_DOC_INT: - g_engine_doc_int++; - doc_handle_event(type >> 8, dcycs); - break; - case EV_VBL_INT: - do_vbl_int(); - break; - case EV_SCC: - do_scc_event(type >> 8, dcycs); - break; - case EV_VID_UPD: - video_update_event_line(type >> 8); - break; - default: - printf("Unknown event: %d!\n", type); - exit(3); - } - - this_event = g_event_start.next; - - } - - if(g_event_start.next == 0) { - halt_printf("ERROR...run_prog, event_start.n=0!\n"); - } - -#if 0 - if(!g_testing && g_event_start.next->rel_time > 2000000) { - printf("Z:start.next->rel_time: %d, duff_cycles: %d\n", - g_event_start.next->rel_time, duff_cycles); - halt_printf("Zrun_cycles:%d, cycles:%d\n", run_cycles, - cycles); - - show_all_events(); - } -#endif - - if(halt_sim != 0 && halt_sim != HALT_EVENT) { - break; - } - if(g_stepping) { - break; - } - } - - if(!g_testing) { - printf("leaving run_prog, halt_sim:%d\n", halt_sim); - } - - x_auto_repeat_on(0); -} - -void -add_irq(word32 irq_mask) -{ - if(g_irq_pending & irq_mask) { - /* Already requested, just get out */ - return; - } - g_irq_pending |= irq_mask; - set_halt(HALT_EVENT); -} - -void -remove_irq(word32 irq_mask) -{ - g_irq_pending = g_irq_pending & (~irq_mask); -} - -void -take_irq(int is_it_brk) -{ - word32 new_kpc; - word32 va; - - irq_printf("Taking irq, at: %02x/%04x, psw: %02x, dcycs: %f\n", - engine.kpc>>16, engine.kpc & 0xffff, engine.psr, - g_cur_dcycs); - - g_num_irq++; - if(g_wait_pending) { - /* step over WAI instruction */ - engine.kpc++; - g_wait_pending = 0; - } - - if(engine.psr & 0x100) { - /* Emulation */ - set_memory_c(engine.stack, (engine.kpc >> 8) & 0xff, 0); - engine.stack = ((engine.stack -1) & 0xff) + 0x100; - - set_memory_c(engine.stack, engine.kpc & 0xff, 0); - engine.stack = ((engine.stack -1) & 0xff) + 0x100; - - set_memory_c(engine.stack, - (engine.psr & 0xef)|(is_it_brk<<4),0); - /* Clear B bit in psr on stack */ - engine.stack = ((engine.stack -1) & 0xff) + 0x100; - - va = 0xfffffe; - if(g_c035_shadow_reg & 0x40) { - /* I/O shadowing off...use ram locs */ - va = 0x00fffe; - } - - } else { - /* native */ - set_memory_c(engine.stack, (engine.kpc >> 16) & 0xff, 0); - engine.stack = ((engine.stack -1) & 0xffff); - - set_memory_c(engine.stack, (engine.kpc >> 8) & 0xff, 0); - engine.stack = ((engine.stack -1) & 0xffff); - - set_memory_c(engine.stack, engine.kpc & 0xff, 0); - engine.stack = ((engine.stack -1) & 0xffff); - - set_memory_c(engine.stack, engine.psr & 0xff, 0); - engine.stack = ((engine.stack -1) & 0xffff); - - if(is_it_brk) { - /* break */ - va = 0xffffe6; - if(g_c035_shadow_reg & 0x40) { - va = 0xffe6; - } - } else { - /* irq */ - va = 0xffffee; - if(g_c035_shadow_reg & 0x40) { - va = 0xffee; - } - } - - } - - new_kpc = get_memory_c(va, 0); - new_kpc = new_kpc + (get_memory_c(va+1, 0) << 8); - - engine.psr = ((engine.psr & 0x1f3) | 0x4); - - engine.kpc = new_kpc; - HALT_ON(HALT_ON_IRQ, "Halting on IRQ\n"); - -} - -double g_dtime_last_vbl = 0.0; -double g_dtime_expected = (1.0/60.0); - -int g_scan_int_events = 0; - - - -void -show_dtime_array() -{ - double dfirst_time; - double first_total_cycs; - int i; - int pos; - - dfirst_time = 0.0; - first_total_cycs = 0.0; - - - for(i = 0; i < 60; i++) { - pos = (g_vbl_index_count + i) % 60; - printf("%2d:%2d dt:%.5f adjc:%9.1f this_vbl:%.6f " - "exp:%.5f p:%2.2f ep:%2.2f\n", - i, pos, - dtime_array[pos] - dfirst_time, - g_dadjcycs_array[pos] - first_total_cycs, - g_dtime_this_vbl_array[pos], - g_dtime_exp_array[pos] - dfirst_time, - g_dtime_pmhz_array[pos], - g_dtime_eff_pmhz_array[pos]); - dfirst_time = dtime_array[pos]; - first_total_cycs = g_dadjcycs_array[pos]; - } -} - -extern word32 g_cycs_in_40col; -extern word32 g_cycs_in_xredraw; -extern word32 g_cycs_in_check_input; -extern word32 g_cycs_in_refresh_line; -extern word32 g_cycs_in_refresh_ximage; -extern word32 g_cycs_in_io_read; -extern word32 g_cycs_in_sound1; -extern word32 g_cycs_in_sound2; -extern word32 g_cycs_in_sound3; -extern word32 g_cycs_in_sound4; -extern word32 g_cycs_in_start_sound; -extern word32 g_cycs_in_est_sound; -extern word32 g_refresh_bytes_xfer; - -extern int g_num_snd_plays; -extern int g_num_doc_events; -extern int g_num_start_sounds; -extern int g_num_scan_osc; -extern int g_num_recalc_snd_parms; -extern float g_fvoices; - -extern int g_doc_vol; -extern int g_a2vid_palette; - -extern int g_status_refresh_needed; - - -void -update_60hz(double dcycs, double dtime_now) -{ - register word32 end_time; - char status_buf[1024]; - char sim_mhz_buf[128]; - char total_mhz_buf[128]; - char *sim_mhz_ptr, *total_mhz_ptr; - char *code_str1, *code_str2, *sp_str; - double eff_pmhz; - double planned_dcycs; - double predicted_pmhz; - double recip_predicted_pmhz; - double dtime_this_vbl_sim; - double dtime_diff_1sec; - double dratio; - double dtime_till_expected; - double dtime_diff; - double dtime_this_vbl; - double dadjcycs_this_vbl; - double dadj_cycles_1sec; - double dtmp1, dtmp2, dtmp3, dtmp4, dtmp5; - double dnatcycs_1sec; - int tmp; - int doit_3_persec; - int cur_vbl_index; - int prev_vbl_index; - - g_vbl_count++; - - /* NOTE: this event is defined to occur before line 0 */ - /* It's actually happening at the start of the border for line (-1) */ - /* All other timings should be adjusted for this */ - - irq_printf("vbl_60hz: vbl: %d, dcycs: %f, last_vbl_dcycs: %f\n", - g_vbl_count, dcycs, g_last_vbl_dcycs); - - planned_dcycs = DCYCS_IN_16MS; - - g_last_vbl_dcycs = g_last_vbl_dcycs + planned_dcycs; - - add_event_entry(g_last_vbl_dcycs + planned_dcycs, EV_60HZ); - check_for_one_event_type(EV_60HZ); - - cur_vbl_index = g_vbl_index_count; - - /* figure out dtime spent running SIM, not all the overhead */ - dtime_this_vbl_sim = g_cur_sim_dtime; - g_cur_sim_dtime = 0.0; - g_sim_sum = g_sim_sum - sim_time[cur_vbl_index] + dtime_this_vbl_sim; - sim_time[cur_vbl_index] = dtime_this_vbl_sim; - - dadj_cycles_1sec = g_dadjcycs - g_dadjcycs_array[cur_vbl_index]; - - /* dtime_diff_1sec is dtime total spent over the last 60 ticks */ - dtime_diff_1sec = dtime_now - dtime_array[cur_vbl_index]; - - dtime_array[cur_vbl_index] = dtime_now; - g_dadjcycs_array[cur_vbl_index] = g_dadjcycs; - - prev_vbl_index = cur_vbl_index; - cur_vbl_index = prev_vbl_index + 1; - if(cur_vbl_index >= 60) { - cur_vbl_index = 0; - } - g_vbl_index_count = cur_vbl_index; - - GET_ITIMER(end_time); - g_dnatcycs_1sec += (double)(end_time - g_natcycs_lastvbl); - g_natcycs_lastvbl = end_time; - - if(prev_vbl_index == 0) { - if(g_sim_sum < (1.0/250.0)) { - sim_mhz_ptr = "???"; - g_sim_mhz = 250.0; - } else { - g_sim_mhz = (dadj_cycles_1sec / g_sim_sum) / - (1000.0*1000.0); - sprintf(sim_mhz_buf, "%6.2f", g_sim_mhz); - sim_mhz_ptr = sim_mhz_buf; - } - if(dtime_diff_1sec < (1.0/250.0)) { - total_mhz_ptr = "???"; - } else { - sprintf(total_mhz_buf, "%6.2f", - (dadj_cycles_1sec / dtime_diff_1sec) / - (1000000.0)); - total_mhz_ptr = total_mhz_buf; - } - - switch(g_limit_speed) { - case 1: sp_str = "1Mhz"; break; - case 2: sp_str = "2.8Mhz"; break; - case 3: sp_str = "8.0Mhz"; break; - default: sp_str = "Unlimited"; break; - } - -// OG Pass speed info to the control (ActiveX specific) -#ifdef ACTIVEGS - { - extern void updateInfo(const char* target,const char *speed); - updateInfo(sp_str,total_mhz_ptr); - } -#endif - sprintf(status_buf, "dcycs:%9.1f sim MHz:%s " - "Eff MHz:%s, sec:%1.3f vol:%02x pal:%x, Limit:%s", - dcycs/(1000.0*1000.0), sim_mhz_ptr, total_mhz_ptr, - dtime_diff_1sec, g_doc_vol, g_a2vid_palette, - sp_str); - video_update_status_line(0, status_buf); - - if(g_video_line_update_interval == 0) { - if(g_sim_mhz > 12.0) { - /* just set video line_ref_amt to 1 */ - g_line_ref_amt = 1; - } else if(g_line_ref_amt == 1 && g_sim_mhz < 4.0) { - g_line_ref_amt = 8; - } - } else { - g_line_ref_amt = g_video_line_update_interval; - } - - if(g_dnatcycs_1sec < (1000.0*1000.0)) { - /* make it so large that all %'s become 0 */ - g_dnatcycs_1sec = 800.0*1000.0*1000.0*1000.0; - } - dnatcycs_1sec = g_dnatcycs_1sec / 100.0; /* eff mult by 100 */ - - dtmp2 = (double)(g_cycs_in_check_input) / dnatcycs_1sec; - dtmp3 = (double)(g_cycs_in_refresh_line) / dnatcycs_1sec; - dtmp4 = (double)(g_cycs_in_refresh_ximage) / dnatcycs_1sec; - sprintf(status_buf, "xfer:%08x, %5.1f ref_amt:%d " - "ch_in:%4.1f%% ref_l:%4.1f%% ref_x:%4.1f%%", - g_refresh_bytes_xfer, g_dnatcycs_1sec/(1000.0*1000.0), - g_line_ref_amt, dtmp2, dtmp3, dtmp4); - video_update_status_line(1, status_buf); - - sprintf(status_buf, "Ints:%3d I/O:%4dK BRK:%3d COP:%2d " - "Eng:%3d act:%3d hev:%3d esi:%3d edi:%3d", - g_num_irq, g_io_amt>>10, g_num_brk, g_num_cop, - g_num_enter_engine, g_engine_action, - g_engine_halt_event, g_engine_scan_int, - g_engine_doc_int); - video_update_status_line(2, status_buf); - - dtmp1 = (double)(g_cycs_in_sound1) / dnatcycs_1sec; - dtmp2 = (double)(g_cycs_in_sound2) / dnatcycs_1sec; - dtmp3 = (double)(g_cycs_in_sound3) / dnatcycs_1sec; - dtmp4 = (double)(g_cycs_in_start_sound) / dnatcycs_1sec; - dtmp5 = (double)(g_cycs_in_est_sound) / dnatcycs_1sec; - sprintf(status_buf, "snd1:%4.1f%%, 2:%4.1f%%, " - "3:%4.1f%%, st:%4.1f%% est:%4.1f%% %4.2f", - dtmp1, dtmp2, dtmp3, dtmp4, dtmp5, g_fvoices); - video_update_status_line(3, status_buf); - - code_str1 = ""; - code_str2 = ""; - if(g_code_yellow) { - code_str1 = "Code: Yellow"; - code_str2 = "Emulated system state suspect, save work"; - } - if(g_code_red) { - code_str1 = "Code: RED"; - code_str2 = "Emulated system state probably corrupt"; - } - sprintf(status_buf, "snd_plays:%4d, doc_ev:%4d, st_snd:%4d " - "snd_parms: %4d %s", - g_num_snd_plays, g_num_doc_events, g_num_start_sounds, - g_num_recalc_snd_parms, code_str1); - video_update_status_line(4, status_buf); - - draw_iwm_status(5, status_buf); - - sprintf(status_buf, "GSport v%-6s " - "Press F4 for Config Menu %s", - g_gsport_version_str, code_str2); - video_update_status_line(6, status_buf); - - g_status_refresh_needed = 1; - - g_num_irq = 0; - g_num_brk = 0; - g_num_cop = 0; - g_num_enter_engine = 0; - g_io_amt = 0; - g_engine_action = 0; - g_engine_halt_event = 0; - g_engine_scan_int = 0; - g_engine_doc_int = 0; - - g_cycs_in_40col = 0; - g_cycs_in_xredraw = 0; - g_cycs_in_check_input = 0; - g_cycs_in_refresh_line = 0; - g_cycs_in_refresh_ximage = 0; - g_cycs_in_io_read = 0; - g_cycs_in_sound1 = 0; - g_cycs_in_sound2 = 0; - g_cycs_in_sound3 = 0; - g_cycs_in_sound4 = 0; - g_cycs_in_start_sound = 0; - g_cycs_in_est_sound = 0; - g_dnatcycs_1sec = 0.0; - g_refresh_bytes_xfer = 0; - - g_num_snd_plays = 0; - g_num_doc_events = 0; - g_num_start_sounds = 0; - g_num_scan_osc = 0; - g_num_recalc_snd_parms = 0; - - g_fvoices = (float)0.0; - } - - dtime_this_vbl = dtime_now - g_dtime_last_vbl; - if(dtime_this_vbl < 0.001) { - dtime_this_vbl = 0.001; - } - - g_dtime_last_vbl = dtime_now; - - dadjcycs_this_vbl = g_dadjcycs - g_last_vbl_dadjcycs; - g_last_vbl_dadjcycs = g_dadjcycs; - - g_dtime_expected += (1.0/60.0); - - eff_pmhz = ((dadjcycs_this_vbl) / (dtime_this_vbl)) / - DCYCS_1_MHZ; - - /* using eff_pmhz, predict how many cycles can be run by */ - /* g_dtime_expected */ - - dtime_till_expected = g_dtime_expected - dtime_now; - - dratio = 60.0 * dtime_till_expected; - - predicted_pmhz = eff_pmhz * dratio; - - if(! (predicted_pmhz < (1.4 * g_projected_pmhz))) { - predicted_pmhz = 1.4 * g_projected_pmhz; - } - - if(! (predicted_pmhz > (0.7 * g_projected_pmhz))) { - predicted_pmhz = 0.7 * g_projected_pmhz; - } - - if(!(predicted_pmhz >= 1.0)) { - irq_printf("predicted: %f, setting to 1.0\n", predicted_pmhz); - predicted_pmhz = 1.0; - } - - if(!(predicted_pmhz < 250.0)) { - irq_printf("predicted: %f, setting to 250.0\n", predicted_pmhz); - predicted_pmhz = 250.0; - } - - recip_predicted_pmhz = 1.0/predicted_pmhz; - g_projected_pmhz = predicted_pmhz; - - g_recip_projected_pmhz_unl.plus_1 = 1.0*recip_predicted_pmhz; - g_recip_projected_pmhz_unl.plus_2 = 2.0*recip_predicted_pmhz; - g_recip_projected_pmhz_unl.plus_3 = 3.0*recip_predicted_pmhz; - g_recip_projected_pmhz_unl.plus_x_minus_1 = 1.01 - recip_predicted_pmhz; - - if(dtime_till_expected < -0.125) { - /* If we were way off, get back on track */ - /* this happens because our sim took much longer than */ - /* expected, so we're going to skip some VBL */ - irq_printf("adj1: dtexp:%f, dt_new:%f\n", - g_dtime_expected, dtime_now); - - dtime_diff = -dtime_till_expected; - - irq_printf("dtime_till_exp: %f, dtime_diff: %f, dcycs: %f\n", - dtime_till_expected, dtime_diff, dcycs); - - g_dtime_expected += dtime_diff; - } - - if(dtime_till_expected > (3/60.0)) { - /* we're running fast, usleep */ - micro_sleep(dtime_till_expected - (1/60.0)); - } - - g_dtime_this_vbl_array[prev_vbl_index] = dtime_this_vbl; - g_dtime_exp_array[prev_vbl_index] = g_dtime_expected; - g_dtime_pmhz_array[prev_vbl_index] = predicted_pmhz; - g_dtime_eff_pmhz_array[prev_vbl_index] = eff_pmhz; - - - if(g_c041_val & C041_EN_VBL_INTS) { - add_event_vbl(); - } - - g_25sec_cntr++; - if(g_25sec_cntr >= 16) { - g_25sec_cntr = 0; - if(g_c041_val & C041_EN_25SEC_INTS) { - add_irq(IRQ_PENDING_C046_25SEC); - g_c046_val |= 0x10; - irq_printf("Setting c046 .25 sec int, g_irq_pend:%d\n", - g_irq_pending); - } - } - - g_1sec_cntr++; - if(g_1sec_cntr >= 60) { - g_1sec_cntr = 0; - tmp = g_c023_val; - tmp |= 0x40; /* set 1sec int */ - if(tmp & 0x04) { - tmp |= 0x80; - add_irq(IRQ_PENDING_C023_1SEC); - irq_printf("Setting c023 to %02x irq_pend: %d\n", - tmp, g_irq_pending); - } - g_c023_val = tmp; - } - - if(!g_scan_int_events) { - check_scan_line_int(dcycs, 0); - } - - doit_3_persec = 0; - if(g_config_iwm_vbl_count > 0) { - g_config_iwm_vbl_count--; - } else { - g_config_iwm_vbl_count = 20; - doit_3_persec = 1; - } - - iwm_vbl_update(doit_3_persec); - -// OG Disabling config update -#ifndef ACTIVEGS - config_vbl_update(doit_3_persec); -#else -// OG Added disk update - { - extern void checkImages(); - checkImages(); - } -#endif - - video_update(); - sound_update(dcycs); - clock_update(); - scc_update(dcycs); - //Check and see if virtual printer timeout has been reached. - if (g_printer_timeout) - { - printer_update(); - } - if (g_imagewriter_timeout) - { - imagewriter_update(); - } - paddle_update_buttons(); -} - -void -do_vbl_int() -{ - if(g_c041_val & C041_EN_VBL_INTS) { - g_c046_val |= 0x08; - add_irq(IRQ_PENDING_C046_VBL); - irq_printf("Setting c046 vbl_int_status to 1, irq_pend: %d\n", - g_irq_pending); - } -} - - -void -do_scan_int(double dcycs, int line) -{ - int c023_val; - g_scan_int_events = 0; - - c023_val = g_c023_val; - if(c023_val & 0x20) { - halt_printf("c023 scan_int and another on line %03x\n", line); - } - - /* make sure scan int is still enabled for this line */ - if((g_slow_memory_ptr[0x19d00 + line] & 0x40) && - (g_cur_a2_stat & ALL_STAT_SUPER_HIRES)) { - /* valid interrupt, do it */ - c023_val |= 0xa0; /* vgc_int and scan_int */ - if(c023_val & 0x02) { - add_irq(IRQ_PENDING_C023_SCAN); - irq_printf("Setting c023 to %02x, irq_pend: %d\n", - c023_val, g_irq_pending); - } - g_c023_val = c023_val; - HALT_ON(HALT_ON_SCAN_INT, "In do_scan_int\n"); - } else { - /* scan int bit cleared on scan line control byte */ - /* look for next line, if any */ - check_scan_line_int(dcycs, line+1); - } -} - -void -check_scan_line_int(double dcycs, int cur_video_line) -{ - int delay; - int start; - int line; - int i; - /* Called during VBL interrupt phase */ - - if(!(g_cur_a2_stat & ALL_STAT_SUPER_HIRES)) { - return; - } - - if(g_c023_val & 0x20) { - /* don't check for any more */ - return; - } - - start = cur_video_line; - if(start < 0) { - halt_printf("check_scan_line_int: cur_video_line: %d\n", - cur_video_line); - start = 0; - } - - for(line = start; line < 200; line++) { - i = line; - - if(i < 0 || i >= 200) { - halt_printf("check_new_scan_int:i:%d, line:%d, st:%d\n", - i, line, start); - i = 0; - } - if(g_slow_memory_ptr[0x19d00+i] & 0x40) { - irq_printf("Adding scan_int for line %d\n", i); - delay = (int)( (DCYCS_IN_16MS/262.0) * ((double)line) ); - add_event_entry(g_last_vbl_dcycs + delay, EV_SCAN_INT + - (line << 8)); - g_scan_int_events = 1; - check_for_one_event_type(EV_SCAN_INT); - break; - } - } -} - -void -check_for_new_scan_int(double dcycs) -{ - int cur_video_line; - - cur_video_line = get_lines_since_vbl(dcycs) >> 8; - - check_scan_line_int(dcycs, cur_video_line); -} - -void -init_reg() -{ - engine.acc = 0; - engine.xreg = 0; - engine.yreg = 0; - engine.stack = 0x1ff; - engine.direct = 0; - engine.psr = 0x134; - engine.fplus_ptr = 0; - -} - - -void -handle_action(word32 ret) -{ - int type; - - type = EXTRU(ret,3,4); - switch(type) { - case RET_BREAK: - do_break(ret & 0xff); - break; - case RET_COP: - do_cop(ret & 0xff); - break; -#if 0 - case RET_MVN: - do_mvn(ret & 0xffff); - break; -#endif - case RET_C700: - do_c700(ret); - break; - case RET_C70A: - do_c70a(ret); - break; - case RET_C70D: - do_c70d(ret); - break; -#if 0 - case RET_ADD_DEC_8: - do_add_dec_8(ret); - break; - case RET_ADD_DEC_16: - do_add_dec_16(ret); - break; -#endif - case RET_IRQ: - irq_printf("Special fast IRQ response. irq_pending: %x\n", - g_irq_pending); - break; - case RET_WDM: - do_wdm(ret & 0xff); - break; - case RET_STP: - do_stp(); - break; - default: - halt_printf("Unknown special action: %08x!\n", ret); - } - -} - -#if 0 -void -do_add_dec_8(word32 ret) -{ - halt_printf("do_add_dec_8 called, ret: %08x\n", ret); -} - -void -do_add_dec_16(word32 ret) -{ - halt_printf("do_add_dec_16 called, ret: %08x\n", ret); -} -#endif - -void -do_break(word32 ret) -{ - if(!g_testing) { - printf("I think I got a break, second byte: %02x!\n", ret); - printf("kpc: %06x\n", engine.kpc); - } - - halt_printf("do_break, kpc: %06x\n", engine.kpc); - enter_debug = 1; -} - -void -do_cop(word32 ret) -{ - halt_printf("COP instr %02x!\n", ret); - fflush(stdout); -} - -#if 0 -void -do_mvn(word32 banks) -{ - int src_bank, dest_bank; - int dest, src; - int num; - int i; - int val; - - halt_printf("In MVN...just quitting\n"); - return; - printf("MVN instr with %04x, cycles: %08x\n", banks, engine.cycles); - src_bank = banks >> 8; - dest_bank = banks & 0xff; - printf("psr: %03x\n", engine.psr); - if((engine.psr & 0x30) != 0) { - halt_printf("MVN in non-native mode unimplemented!\n"); - } - - dest = dest_bank << 16 | engine.yreg; - src = src_bank << 16 | engine.xreg; - num = engine.acc; - printf("Moving %08x+1 bytes from %08x to %08x\n", num, src, dest); - - for(i = 0; i <= num; i++) { - val = get_memory_c(src, 0); - set_memory_c(dest, val, 0); - src = (src_bank << 16) | ((src + 1) & 0xffff); - dest = (dest_bank << 16) | ((dest + 1) & 0xffff); - } - engine.dbank = dest_bank; - engine.acc = 0xffff; - engine.yreg = dest & 0xffff; - engine.xreg = src & 0xffff; - engine.kpc = (engine.kpc + 3); - printf("move done. db: %02x, acc: %04x, y: %04x, x: %04x, num: %08x\n", - engine.dbank, engine.acc, engine.yreg, engine.xreg, num); -} -#endif - -void -do_wdm(word32 arg) -{ - switch(arg) { - case 0x8d: /* Bouncin Ferno does WDM 8d */ - break; - default: - halt_printf("do_wdm: %02x!\n", arg); - } -} - -void -do_wai() -{ - halt_printf("do_wai!\n"); -} - -void -do_stp() -{ - if(!g_stp_pending) { - g_stp_pending = 1; - halt_printf("Hit STP instruction at: %06x, press RESET to " - "continue\n", engine.kpc); - } -} - -void -size_fail(int val, word32 v1, word32 v2) -{ - halt_printf("Size failure, val: %08x, %08x %08x\n", val, v1, v2); -} - -int -fatal_printf(const char *fmt, ...) -{ - va_list ap; - int ret; - - va_start(ap, fmt); - - if(g_fatal_log < 0) { - g_fatal_log = 0; - } - ret = gsport_vprintf(fmt, ap); - va_end(ap); - - return ret; -} - -int -gsport_vprintf(const char *fmt, va_list ap) -{ - char *bufptr, *buf2ptr; - int len; - int ret; - - bufptr = (char*)malloc(4096); // OG Added Cast - ret = vsnprintf(bufptr, 4090, fmt, ap); - - // OG Display warning - printf("Warning:%s",bufptr); - - len = strlen(bufptr); - if(g_fatal_log >= 0 && g_fatal_log < MAX_FATAL_LOGS) { - buf2ptr = (char*)malloc(len+1); // OG Added Cast - memcpy(buf2ptr, bufptr, len+1); - g_fatal_log_strs[g_fatal_log++] = buf2ptr; - } - must_write(1, bufptr, len); - if(g_debug_file_fd >= 0) { - must_write(g_debug_file_fd, bufptr, len); - } - free(bufptr); - - return ret; -} - -void -must_write(int fd, char *bufptr, int len) -{ - int ret; -#ifndef __OS2__ - while(len > 0) { - ret = write(fd, bufptr, len); - if(ret >= 0) { - len -= ret; - bufptr += ret; - } else if(errno != EAGAIN && errno != EINTR) { - return; // just get out - } - } -#else - printf("%s\n",bufptr); -#endif -} - -void -clear_fatal_logs() -{ - int i; - - for(i = 0; i < g_fatal_log; i++) { - free(g_fatal_log_strs[i]); - g_fatal_log_strs[i] = 0; - } - g_fatal_log = -1; -} - -char * -gsport_malloc_str(char *in_str) -{ - char *str; - int len; - - len = strlen(in_str) + 1; - str = (char*)malloc(len); // OG Added cast - memcpy(str, in_str, len); - - return str; -} diff --git a/.svn/pristine/01/01e3186a4175a133c07354aef7060327cc3fc059.svn-base b/.svn/pristine/01/01e3186a4175a133c07354aef7060327cc3fc059.svn-base deleted file mode 100644 index 7095b3a..0000000 --- a/.svn/pristine/01/01e3186a4175a133c07354aef7060327cc3fc059.svn-base +++ /dev/null @@ -1,3690 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2012 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include - -#include "defc.h" - -extern int Verbose; - -int g_a2_line_stat[200]; -int g_a2_line_left_edge[200]; -int g_a2_line_right_edge[200]; -Kimage *g_a2_line_kimage[200]; - -int g_mode_text[2][200]; -int g_mode_hires[2][200]; -int g_mode_superhires[200]; -int g_mode_border[200]; - -byte g_cur_border_colors[270]; -byte g_new_special_border[64][64]; -byte g_cur_special_border[64][64]; - -word32 g_a2_screen_buffer_changed = (word32)-1; -word32 g_full_refresh_needed = (word32)-1; - -word32 g_cycs_in_40col = 0; -word32 g_cycs_in_xredraw = 0; -word32 g_refresh_bytes_xfer = 0; - -extern byte *g_slow_memory_ptr; -extern int g_screen_depth; -extern int g_screen_mdepth; - -extern double g_cur_dcycs; - -extern int g_line_ref_amt; - -extern int g_c034_val; -extern int g_config_control_panel; - -typedef byte Change; - -word32 slow_mem_changed[SLOW_MEM_CH_SIZE]; - -word32 g_font40_even_bits[0x100][8][16/4]; -word32 g_font40_odd_bits[0x100][8][16/4]; -word32 g_font80_off0_bits[0x100][8][12/4]; -word32 g_font80_off1_bits[0x100][8][12/4]; -word32 g_font80_off2_bits[0x100][8][12/4]; -word32 g_font80_off3_bits[0x100][8][12/4]; - -word32 g_superhires_scan_save[256]; - -Kimage g_kimage_text[2]; -Kimage g_kimage_hires[2]; -Kimage g_kimage_superhires; -Kimage g_kimage_border_special; -Kimage g_kimage_border_sides; - -Kimage g_mainwin_kimage; - -extern double g_last_vbl_dcycs; - -double g_video_dcycs_check_input = 0.0; -int g_video_extra_check_inputs = 0; // OG Not recommended to use it (or apps might miss mouse changes) -int g_video_act_margin_left = BASE_MARGIN_LEFT; -int g_video_act_margin_right = BASE_MARGIN_RIGHT; -int g_video_act_margin_top = BASE_MARGIN_TOP; -int g_video_act_margin_bottom = BASE_MARGIN_BOTTOM; -int g_video_act_width = X_A2_WINDOW_WIDTH; -int g_video_act_height = X_A2_WINDOW_HEIGHT; - -int g_need_redraw = 1; -int g_palette_change_summary = 0; -word32 g_palette_change_cnt[16]; -int g_border_sides_refresh_needed = 1; -int g_border_special_refresh_needed = 1; -int g_border_line24_refresh_needed = 1; -int g_status_refresh_needed = 1; - -int g_vbl_border_color = 0; -int g_border_last_vbl_changes = 0; - -int g_use_dhr140 = 0; -int g_use_bw_hires = 0; - -int g_a2_new_all_stat[200]; -int g_a2_cur_all_stat[200]; -int g_new_a2_stat_cur_line = 0; -int g_vid_update_last_line = 0; - -int g_expanded_col_0[16]; -int g_expanded_col_1[16]; -int g_expanded_col_2[16]; - - -int g_cur_a2_stat = ALL_STAT_TEXT | ALL_STAT_ANNUNC3 | - (0xf << BIT_ALL_STAT_TEXT_COLOR); -extern int g_save_cur_a2_stat; /* from config.c */ - -int g_a2vid_palette = 0xe; -int g_installed_full_superhires_colormap = 0; - -int Max_color_size = 256; - -word32 g_palette_8to1624[256]; -word32 g_a2palette_8to1624[256]; - -word32 g_saved_line_palettes[200][8]; -int g_saved_a2vid_palette = -1; -word32 g_a2vid_palette_remap[16]; - -word32 g_cycs_in_refresh_line = 0; -word32 g_cycs_in_refresh_ximage = 0; - -int g_num_lines_superhires = 0; -int g_num_lines_superhires640 = 0; -int g_num_lines_prev_superhires = 0; -int g_num_lines_prev_superhires640 = 0; - -word32 g_red_mask = 0xff; -word32 g_green_mask = 0xff; -word32 g_blue_mask = 0xff; -int g_red_left_shift = 16; -int g_green_left_shift = 8; -int g_blue_left_shift = 0; -int g_red_right_shift = 0; -int g_green_right_shift = 0; -int g_blue_right_shift = 0; - -char g_status_buf[MAX_STATUS_LINES][STATUS_LINE_LENGTH + 1]; -char *g_status_ptrs[MAX_STATUS_LINES] = { 0 }; - -// These LORES/DHIRES RGB values were extracted from ROM 3 IIgs video signals by Koichi Nishida -#define BLACK_RGB 0x000 -#define DEEP_RED_RGB 0xd03 -#define BROWN_RGB 0x850 -#define ORANGE_RGB 0xf60 -#define DARK_GREEN_RGB 0x072 -#define DARK_GRAY_RGB 0x555 -#define GREEN_RGB 0x1d0 -#define YELLOW_RGB 0xff0 -#define DARK_BLUE_RGB 0x009 -#define PURPLE_RGB 0xd2d -#define LIGHT_GRAY_RGB 0xaaa -#define PINK_RGB 0xf98 -#define MEDIUM_BLUE_RGB 0x22f -#define LIGHT_BLUE_RGB 0x6af -#define AQUAMARINE_RGB 0x4f9 -#define WHITE_RGB 0xfff - -const int g_dbhires_colors[] = { - BLACK_RGB, // 0x0 black - DEEP_RED_RGB, // 0x1 deep red - BROWN_RGB, // 0x2 brown - ORANGE_RGB, // 0x3 orange - DARK_GREEN_RGB, // 0x4 dark green - DARK_GRAY_RGB, // 0x5 dark gray - GREEN_RGB, // 0x6 green - YELLOW_RGB, // 0x7 yellow - DARK_BLUE_RGB, // 0x8 dark blue - PURPLE_RGB, // 0x9 purple - LIGHT_GRAY_RGB, // 0xa light gray - PINK_RGB, // 0xb pink - MEDIUM_BLUE_RGB, // 0xc medium blue - LIGHT_BLUE_RGB, // 0xd light blue - AQUAMARINE_RGB, // 0xe aquamarine - WHITE_RGB // 0xf white -}; - -word32 g_dhires_convert[4096]; /* look up table of 7 bits (concat): */ - /* { 4 bits, |3 prev bits| } */ - -const byte g_dhires_colors_16[] = { - 0x00, // 0x0 black - 0x02, // 0x1 dark blue - 0x04, // 0x2 dark green - 0x06, // 0x3 medium blue - 0x08, // 0x4 brown - 0x0a, // 0x5 light gray - 0x0c, // 0x6 green - 0x0e, // 0x7 aquamarine - 0x01, // 0x8 deep red - 0x03, // 0x9 purple - 0x05, // 0xa dark gray - 0x07, // 0xb light blue - 0x09, // 0xc orange - 0x0b, // 0xd pink - 0x0d, // 0xe yellow - 0x0f // 0xf white -}; - -int g_lores_colors[] = { - BLACK_RGB, // 0x0 black - DEEP_RED_RGB, // 0x1 deep red - DARK_BLUE_RGB, // 0x2 dark blue - PURPLE_RGB, // 0x3 purple - DARK_GREEN_RGB, // 0x4 dark green - DARK_GRAY_RGB, // 0x5 dark gray - MEDIUM_BLUE_RGB, // 0x6 medium blue - LIGHT_BLUE_RGB, // 0x7 light blue - BROWN_RGB, // 0x8 brown - ORANGE_RGB, // 0x9 orange - LIGHT_GRAY_RGB, // 0xa light gray - PINK_RGB, // 0xb pink - GREEN_RGB, // 0xc green - YELLOW_RGB, // 0xd yellow - AQUAMARINE_RGB, // 0xe aquamarine - WHITE_RGB // 0xf white -}; - -const word32 g_bw_hires_convert[4] = { - BIGEND(0x00000000), - BIGEND(0x0f0f0000), - BIGEND(0x00000f0f), - BIGEND(0x0f0f0f0f) -}; - -const word32 g_bw_dhires_convert[16] = { - BIGEND(0x00000000), - BIGEND(0x0f000000), - BIGEND(0x000f0000), - BIGEND(0x0f0f0000), - - BIGEND(0x00000f00), - BIGEND(0x0f000f00), - BIGEND(0x000f0f00), - BIGEND(0x0f0f0f00), - - BIGEND(0x0000000f), - BIGEND(0x0f00000f), - BIGEND(0x000f000f), - BIGEND(0x0f0f000f), - - BIGEND(0x00000f0f), - BIGEND(0x0f000f0f), - BIGEND(0x000f0f0f), - BIGEND(0x0f0f0f0f), -}; - -const word32 g_hires_convert[64] = { - BIGEND(0x00000000), /* 00,0000 = black, black, black, black */ - BIGEND(0x00000000), /* 00,0001 = black, black, black, black */ - BIGEND(0x03030000), /* 00,0010 = purp , purp , black, black */ - BIGEND(0x0f0f0000), /* 00,0011 = white, white, black, black */ - BIGEND(0x00000c0c), /* 00,0100 = black, black, green, green */ - BIGEND(0x0c0c0c0c), /* 00,0101 = green, green, green, green */ - BIGEND(0x0f0f0f0f), /* 00,0110 = white, white, white, white */ - BIGEND(0x0f0f0f0f), /* 00,0111 = white, white, white, white */ - BIGEND(0x00000000), /* 00,1000 = black, black, black, black */ - BIGEND(0x00000000), /* 00,1001 = black, black, black, black */ - BIGEND(0x03030303), /* 00,1010 = purp , purp , purp , purp */ - BIGEND(0x0f0f0303), /* 00,1011 = white ,white, purp , purp */ - BIGEND(0x00000f0f), /* 00,1100 = black ,black, white, white */ - BIGEND(0x0c0c0f0f), /* 00,1101 = green ,green, white, white */ - BIGEND(0x0f0f0f0f), /* 00,1110 = white ,white, white, white */ - BIGEND(0x0f0f0f0f), /* 00,1111 = white ,white, white, white */ - - BIGEND(0x00000000), /* 01,0000 = black, black, black, black */ - BIGEND(0x00000000), /* 01,0001 = black, black, black, black */ - BIGEND(0x06060000), /* 01,0010 = blue , blue , black, black */ - BIGEND(0x0f0f0000), /* 01,0011 = white, white, black, black */ - BIGEND(0x00000c0c), /* 01,0100 = black, black, green, green */ - BIGEND(0x09090c0c), /* 01,0101 = orang, orang, green, green */ - BIGEND(0x0f0f0f0f), /* 01,0110 = white, white, white, white */ - BIGEND(0x0f0f0f0f), /* 01,0111 = white, white, white, white */ - BIGEND(0x00000000), /* 01,1000 = black, black, black, black */ - BIGEND(0x00000000), /* 01,1001 = black, black, black, black */ - BIGEND(0x06060303), /* 01,1010 = blue , blue , purp , purp */ - BIGEND(0x0f0f0303), /* 01,1011 = white ,white, purp , purp */ - BIGEND(0x00000f0f), /* 01,1100 = black ,black, white, white */ - BIGEND(0x09090f0f), /* 01,1101 = orang ,orang, white, white */ - BIGEND(0x0f0f0f0f), /* 01,1110 = white ,white, white, white */ - BIGEND(0x0f0f0f0f), /* 01,1111 = white ,white, white, white */ - - BIGEND(0x00000000), /* 10,0000 = black, black, black, black */ - BIGEND(0x00000000), /* 10,0001 = black, black, black, black */ - BIGEND(0x03030000), /* 10,0010 = purp , purp , black, black */ - BIGEND(0x0f0f0000), /* 10,0011 = white, white, black, black */ - BIGEND(0x00000909), /* 10,0100 = black, black, orang, orang */ - BIGEND(0x0c0c0909), /* 10,0101 = green, green, orang, orang */ - BIGEND(0x0f0f0f0f), /* 10,0110 = white, white, white, white */ - BIGEND(0x0f0f0f0f), /* 10,0111 = white, white, white, white */ - BIGEND(0x00000000), /* 10,1000 = black, black, black, black */ - BIGEND(0x00000000), /* 10,1001 = black, black, black, black */ - BIGEND(0x03030606), /* 10,1010 = purp , purp , blue , blue */ - BIGEND(0x0f0f0606), /* 10,1011 = white ,white, blue , blue */ - BIGEND(0x00000f0f), /* 10,1100 = black ,black, white, white */ - BIGEND(0x0c0c0f0f), /* 10,1101 = green ,green, white, white */ - BIGEND(0x0f0f0f0f), /* 10,1110 = white ,white, white, white */ - BIGEND(0x0f0f0f0f), /* 10,1111 = white ,white, white, white */ - - BIGEND(0x00000000), /* 11,0000 = black, black, black, black */ - BIGEND(0x00000000), /* 11,0001 = black, black, black, black */ - BIGEND(0x06060000), /* 11,0010 = blue , blue , black, black */ - BIGEND(0x0f0f0000), /* 11,0011 = white, white, black, black */ - BIGEND(0x00000909), /* 11,0100 = black, black, orang, orang */ - BIGEND(0x09090909), /* 11,0101 = orang, orang, orang, orang */ - BIGEND(0x0f0f0f0f), /* 11,0110 = white, white, white, white */ - BIGEND(0x0f0f0f0f), /* 11,0111 = white, white, white, white */ - BIGEND(0x00000000), /* 11,1000 = black, black, black, black */ - BIGEND(0x00000000), /* 11,1001 = black, black, black, black */ - BIGEND(0x06060606), /* 11,1010 = blue , blue , blue , blue */ - BIGEND(0x0f0f0606), /* 11,1011 = white ,white, blue , blue */ - BIGEND(0x00000f0f), /* 11,1100 = black ,black, white, white */ - BIGEND(0x09090f0f), /* 11,1101 = orang ,orang, white, white */ - BIGEND(0x0f0f0f0f), /* 11,1110 = white ,white, white, white */ - BIGEND(0x0f0f0f0f), /* 11,1111 = white ,white, white, white */ -}; - - int g_screen_index[] = { - 0x000, 0x080, 0x100, 0x180, 0x200, 0x280, 0x300, 0x380, - 0x028, 0x0a8, 0x128, 0x1a8, 0x228, 0x2a8, 0x328, 0x3a8, - 0x050, 0x0d0, 0x150, 0x1d0, 0x250, 0x2d0, 0x350, 0x3d0 -}; - - -void -video_init() -{ - word32 col[4]; - Kimage *kimage_ptr; - word32 *ptr; - word32 val0, val1, val2, val3; - word32 match_col; - word32 next_col, next2_col, next3_col; - word32 val; - word32 cur_col; - int width, height; - int total_bytes; - int i, j; -/* Initialize video system */ - -// OG Reinit globals - g_a2_screen_buffer_changed = (word32)-1; - g_full_refresh_needed = (word32)-1; - g_cycs_in_40col = 0; - g_cycs_in_xredraw = 0; - g_refresh_bytes_xfer = 0; - - g_video_dcycs_check_input = 0.0; - //g_video_extra_check_inputs = 0; - g_video_act_margin_left = BASE_MARGIN_LEFT; - g_video_act_margin_right = BASE_MARGIN_RIGHT; - g_video_act_margin_top = BASE_MARGIN_TOP; - g_video_act_margin_bottom = BASE_MARGIN_BOTTOM; - g_video_act_width = X_A2_WINDOW_WIDTH; - g_video_act_height = X_A2_WINDOW_HEIGHT; - - g_need_redraw = 1; - g_palette_change_summary = 0; - - g_border_sides_refresh_needed = 1; - g_border_special_refresh_needed = 1; - g_border_line24_refresh_needed = 1; - g_status_refresh_needed = 1; - - g_vbl_border_color = 0; - g_border_last_vbl_changes = 0; - - g_use_dhr140 = 0; - g_use_bw_hires = 0; - - g_new_a2_stat_cur_line = 0; - g_vid_update_last_line = 0; - - g_cur_a2_stat = ALL_STAT_TEXT | ALL_STAT_ANNUNC3 |(0xf << BIT_ALL_STAT_TEXT_COLOR); - - - g_a2vid_palette = 0xe; - g_installed_full_superhires_colormap = 0; - - Max_color_size = 256; - - g_saved_a2vid_palette = -1; - - g_cycs_in_refresh_line = 0; - g_cycs_in_refresh_ximage = 0; - - g_num_lines_superhires = 0; - g_num_lines_superhires640 = 0; - g_num_lines_prev_superhires = 0; - g_num_lines_prev_superhires640 = 0; - - /* - g_red_mask = 0xff; - g_green_mask = 0xff; - g_blue_mask = 0xff; - g_red_left_shift = 16; - g_green_left_shift = 8; - g_blue_left_shift = 0; - g_red_right_shift = 0; - g_green_right_shift = 0; - g_blue_right_shift = 0; -*/ - -/* Initialize video system */ - - for(i = 0; i < 200; i++) { - g_a2_line_kimage[i] = (Kimage *)0; // OG Changed from void* to kimage* - g_a2_line_stat[i] = -1; - g_a2_line_left_edge[i] = 0; - g_a2_line_right_edge[i] = 0; - } - for(i = 0; i < 200; i++) { - g_a2_new_all_stat[i] = 0; - g_a2_cur_all_stat[i] = 1; - for(j = 0; j < 8; j++) { - g_saved_line_palettes[i][j] = (word32)-1; - } - } - for(i = 0; i < 262; i++) { - g_cur_border_colors[i] = -1; - } - - g_new_a2_stat_cur_line = 0; - - dev_video_init(); - - read_a2_font(); - - vid_printf("Zeroing out video memory\n"); - - for(i = 0; i < 7; i++) { - switch(i) { - case 0: - kimage_ptr = &(g_kimage_text[0]); - break; - case 1: - kimage_ptr = &(g_kimage_text[1]); - break; - case 2: - kimage_ptr = &(g_kimage_hires[0]); - break; - case 3: - kimage_ptr = &(g_kimage_hires[1]); - break; - case 4: - kimage_ptr = &g_kimage_superhires; - break; - case 5: - kimage_ptr = &g_kimage_border_sides; - break; - case 6: - kimage_ptr = &g_kimage_border_special; - break; - default: - printf("i: %d, unknown\n", i); - exit(3); - } - - ptr = (word32 *)kimage_ptr->data_ptr; - width = kimage_ptr->width_act; - height = kimage_ptr->height; - total_bytes = (kimage_ptr->mdepth >> 3) * width * height; - - for(j = 0; j < total_bytes >> 2; j++) { - *ptr++ = 0; - } - } - - for(i = 0; i < SLOW_MEM_CH_SIZE; i++) { - slow_mem_changed[i] = (word32)-1; - } - - /* create g_expanded_col_* */ - for(i = 0; i < 16; i++) { - val = (g_lores_colors[i] >> 0) & 0xf; - g_expanded_col_0[i] = val; - - val = (g_lores_colors[i] >> 4) & 0xf; - g_expanded_col_1[i] = val; - - val = (g_lores_colors[i] >> 8) & 0xf; - g_expanded_col_2[i] = val; - } - - /* create g_dhires_convert[] array */ - for(i = 0; i < 4096; i++) { - /* Convert index bits 11:0 where 3:0 is the previous color */ - /* and 7:4 is the current color to translate */ - /* Bit 4 will be the first pixel displayed on the screen */ - match_col = i & 0xf; - for(j = 0; j < 4; j++) { - cur_col = (i >> (1 + j)) & 0xf; - next_col = (i >> (2 + j)) & 0xf; - next2_col = (i >> (3 + j)) & 0xf; - next3_col = (i >> (4 + j)) & 0xf; - cur_col = (((cur_col << 4) + cur_col) >> (3 - j)) & 0xf; - - if((cur_col == 0xf) || (next_col == 0xf) || - (next2_col == 0xf) || - (next3_col == 0xf)) { - cur_col = 0xf; - col[j] = cur_col; - match_col = cur_col; - } else if((cur_col == 0) || (next_col == 0) || - (next2_col == 0) || (next3_col == 0)) { - cur_col = 0; - col[j] = cur_col; - match_col = cur_col; - } else { - col[j] = cur_col; - match_col = cur_col; - } - } - if(g_use_dhr140) { - for(j = 0; j < 4; j++) { - col[j] = (i >> 4) & 0xf; - } - } - val0 = g_dhires_colors_16[col[0] & 0xf]; - val1 = g_dhires_colors_16[col[1] & 0xf]; - val2 = g_dhires_colors_16[col[2] & 0xf]; - val3 = g_dhires_colors_16[col[3] & 0xf]; -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) // OSX needs to calculate endianness mid-compilation, can't be passed on compile command - val = (val3 << 24) + (val2 << 16) + (val1 << 8) + val0; -#else - val = (val0 << 24) + (val1 << 16) + (val2 << 8) + val3; -#endif - g_dhires_convert[i] = val; - } - - change_display_mode(g_cur_dcycs); - video_reset(); - display_screen(); - - fflush(stdout); -} - -void -show_a2_line_stuff() -{ - int i; - - for(i = 0; i < 200; i++) { - printf("line: %d: stat: %04x, ptr: %p, " - "left_edge:%d, right_edge:%d\n", - i, g_a2_line_stat[i], g_a2_line_kimage[i], - g_a2_line_left_edge[i], - g_a2_line_right_edge[i]); - } - - printf("new_a2_stat_cur_line: %d, cur_a2_stat:%04x\n", - g_new_a2_stat_cur_line, g_cur_a2_stat); - for(i = 0; i < 200; i++) { - printf("cur_all[%d]: %03x new_all: %03x\n", i, - g_a2_cur_all_stat[i], g_a2_new_all_stat[i]); - } - -} - -int g_flash_count = 0; - -void -video_reset() -{ - int stat; - int i; - - g_installed_full_superhires_colormap = (g_screen_depth != 8); - stat = ALL_STAT_TEXT | ALL_STAT_ANNUNC3 | - (0xf << BIT_ALL_STAT_TEXT_COLOR); - if(g_use_bw_hires) { - stat |= ALL_STAT_COLOR_C021; - } - if(g_config_control_panel) { - /* Don't update cur_a2_stat when in configuration panel */ - g_save_cur_a2_stat = stat; - } else { - g_cur_a2_stat = stat; - } - - g_palette_change_summary = 0; - for(i = 0; i < 16; i++) { - g_palette_change_cnt[i] = 0; - } - - /* install_a2vid_colormap(); */ - video_update_colormap(); -} - -int g_screen_redraw_skip_count = 0; -int g_screen_redraw_skip_amt = -1; - -word32 g_cycs_in_check_input = 0; - -int g_needfullrefreshfornextframe = 1 ; - -void video_update() -{ - int did_video; - - // OG g_needfullrefreshfornextframe - if (g_needfullrefreshfornextframe) - { - g_full_refresh_needed = -1; - g_a2_screen_buffer_changed = -1; - g_status_refresh_needed = 1; - g_border_sides_refresh_needed = 1; - g_border_special_refresh_needed = 1; - g_needfullrefreshfornextframe = 0; - } - - - update_border_info(); - - video_check_input_events(); - - g_screen_redraw_skip_count--; - did_video = 0; - if(g_screen_redraw_skip_count < 0) { - did_video = 1; - video_update_event_line(262); - g_screen_redraw_skip_count = g_screen_redraw_skip_amt; - } - - /* update flash */ - g_flash_count++; - if(g_flash_count >= 30) { - g_flash_count = 0; - g_cur_a2_stat ^= ALL_STAT_FLASH_STATE; - change_display_mode(g_cur_dcycs); - } - - - check_a2vid_palette(); - - - if(did_video) { - g_new_a2_stat_cur_line = 0; - g_a2_new_all_stat[0] = g_cur_a2_stat; - g_vid_update_last_line = 0; - video_update_through_line(0); - } - - -// OG Notify host that video has been uodated -#if defined(ACTIVEGSPLUGIN) && defined(MAC) - { - extern void x_need2refresh(); - x_need2refresh(); - } -#endif -} - - -int -video_all_stat_to_line_stat(int line, int new_all_stat) -{ - int page, color, dbl; - int st80, hires, annunc3, mix_t_gr; - int altchar, text_color, bg_color, flash_state; - int mode; - - st80 = new_all_stat & ALL_STAT_ST80; - hires = new_all_stat & ALL_STAT_HIRES; - annunc3 = new_all_stat & ALL_STAT_ANNUNC3; - mix_t_gr = new_all_stat & ALL_STAT_MIX_T_GR; - - page = EXTRU(new_all_stat, 31 - BIT_ALL_STAT_PAGE2, 1) && !st80; - color = EXTRU(new_all_stat, 31 - BIT_ALL_STAT_COLOR_C021, 1); - dbl = EXTRU(new_all_stat, 31 - BIT_ALL_STAT_VID80, 1); - - altchar = 0; text_color = 0; bg_color = 0; flash_state = 0; - - if(new_all_stat & ALL_STAT_SUPER_HIRES) { - mode = MODE_SUPER_HIRES; - page = 0; dbl = 0; color = 0; - } else { - if(line >= 192) { - mode = MODE_BORDER; - page = 0; dbl = 0; color = 0; - } else if((new_all_stat & ALL_STAT_TEXT) || - (line >= 160 && mix_t_gr)) { - mode = MODE_TEXT; - color = 0; - altchar = EXTRU(new_all_stat, - 31 - BIT_ALL_STAT_ALTCHARSET, 1); - text_color = EXTRU(new_all_stat, - 31 - BIT_ALL_STAT_TEXT_COLOR, 4); - bg_color = EXTRU(new_all_stat, - 31 - BIT_ALL_STAT_BG_COLOR, 4); - flash_state = EXTRU(new_all_stat, - 31 - BIT_ALL_STAT_FLASH_STATE, 1); - if(altchar) { - /* don't bother flashing if altchar on */ - flash_state = 0; - } - } else { - /* obey the graphics mode */ - dbl = dbl && !annunc3; - if(hires) { - color = color | EXTRU(new_all_stat, - 31 - BIT_ALL_STAT_DIS_COLOR_DHIRES, 1); - mode = MODE_HGR; - } else { - mode = MODE_GR; - } - } - } - - return((text_color << 12) + (bg_color << 8) + (altchar << 7) + - (mode << 4) + (flash_state << 3) + (page << 2) + - (color << 1) + dbl); -} - -int * -video_update_kimage_ptr(int line, int new_stat) -{ - Kimage *kimage_ptr; - int *mode_ptr; - int page; - int mode; - - page = (new_stat >> 2) & 1; - mode = (new_stat >> 4) & 7; - - switch(mode) { - case MODE_TEXT: - case MODE_GR: - kimage_ptr = &(g_kimage_text[page]); - mode_ptr = &(g_mode_text[page][0]); - break; - case MODE_HGR: - kimage_ptr = &(g_kimage_hires[page]); - mode_ptr = &(g_mode_hires[page][0]); - /* arrange to force superhires reparse since we use the */ - /* same memory */ - g_mode_superhires[line] = -1; - break; - case MODE_SUPER_HIRES: - kimage_ptr = &g_kimage_superhires; - mode_ptr = &(g_mode_superhires[0]); - /* arrange to force hires reparse since we use the */ - /* same memory */ - g_mode_hires[0][line] = -1; - g_mode_hires[1][line] = -1; - break; - case MODE_BORDER: - /* Hack: reuse text page last line as the special border */ - kimage_ptr = &(g_kimage_text[0]); - mode_ptr = &(g_mode_border[0]); - break; - default: - halt_printf("update_a2_ptrs: mode: %d unknown!\n", mode); - return &(g_mode_superhires[0]); - } - - g_a2_line_kimage[line] = kimage_ptr; - return mode_ptr; -} - -void -change_a2vid_palette(int new_palette) -{ - int i; - - for(i = 0; i < 200; i++) { - g_mode_text[0][i] = -1; - g_mode_text[1][i] = -1; - g_mode_hires[0][i] = -1; - g_mode_hires[1][i] = -1; - g_mode_superhires[i] = -1; - g_mode_border[i] = -1; - } - - printf("Changed a2vid_palette to %x\n", new_palette); - - g_a2vid_palette = new_palette; - g_cur_a2_stat = (g_cur_a2_stat & (~ALL_STAT_A2VID_PALETTE)) + - (new_palette << BIT_ALL_STAT_A2VID_PALETTE); - change_display_mode(g_cur_dcycs); - - g_border_sides_refresh_needed = 1; - g_border_special_refresh_needed = 1; - g_status_refresh_needed = 1; - g_palette_change_cnt[new_palette]++; - g_border_last_vbl_changes = 1; - for(i = 0; i < 262; i++) { - g_cur_border_colors[i] = -1; - } -} - -int g_num_a2vid_palette_checks = 1; -int g_shr_palette_used[16]; - -void -check_a2vid_palette() -{ - int sum; - int min; - int val; - int min_pos; - int count_cur; - int i; - - /* determine if g_a2vid_palette should change */ - /* This is the palette of least use on superhires so that the */ - /* borders don't change when all 256 superhires colors are used */ - - g_num_a2vid_palette_checks--; - if(g_num_a2vid_palette_checks || g_installed_full_superhires_colormap){ - return; - } - - g_num_a2vid_palette_checks = 60; - - sum = 0; - min = 0x100000; - min_pos = -1; - count_cur = g_shr_palette_used[g_a2vid_palette]; - - for(i = 0; i < 16; i++) { - val = g_shr_palette_used[i]; - g_shr_palette_used[i] = 0; - if(val < min) { - min = val; - min_pos = i; - } - sum += val; - } - - if(g_a2vid_palette != min_pos && (count_cur > min)) { - change_a2vid_palette(min_pos); - } -} - -void -change_display_mode(double dcycs) -{ - int line, tmp_line; - - line = ((get_lines_since_vbl(dcycs) + 0xff) >> 8); - if(line < 0) { - line = 0; - halt_printf("Line < 0!\n"); - } - tmp_line = MIN(199, line); - - video_update_all_stat_through_line(tmp_line); - - if(line < 200) { - g_a2_new_all_stat[line] = g_cur_a2_stat; - } - /* otherwise, g_cur_a2_stat is covered at the end of vbl */ -} - -void -video_update_all_stat_through_line(int line) -{ - int start_line; - int prev_stat; - int max_line; - int i; - - start_line = g_new_a2_stat_cur_line; - prev_stat = g_a2_new_all_stat[start_line]; - - max_line = MIN(199, line); - - for(i = start_line + 1; i <= max_line; i++) { - g_a2_new_all_stat[i] = prev_stat; - } - g_new_a2_stat_cur_line = max_line; -} - - -#define MAX_BORDER_CHANGES 16384 - -STRUCT(Border_changes) { - float fcycs; - int val; -}; - -int g_border_color = 0; // OG Expose border color - -Border_changes g_border_changes[MAX_BORDER_CHANGES]; -int g_num_border_changes = 0; - -void -change_border_color(double dcycs, int val) -{ - int pos; - - g_border_color = val; // OG Expose border color - - pos = g_num_border_changes; - g_border_changes[pos].fcycs = (float)(dcycs - g_last_vbl_dcycs); - g_border_changes[pos].val = val; - - pos++; - g_num_border_changes = pos; - - if(pos >= MAX_BORDER_CHANGES) { - halt_printf("num border changes: %d\n", pos); - g_num_border_changes = 0; - } -} - -extern int first; - -void -update_border_info() -{ - double dlines_per_dcyc; - double dcycs, dline, dcyc_line_start; - int offset; - int new_line_offset, last_line_offset; - int new_line; - int new_val; - int limit; - int color_now; - int i; - - /* to get this routine to redraw the border, change */ - /* g_vbl_border_color, set g_border_last_vbl_changes = 1 */ - /* and change the cur_border_colors[] array */ - - color_now = g_vbl_border_color; - - dlines_per_dcyc = (double)(1.0 / 65.0); - limit = g_num_border_changes; - if(g_border_last_vbl_changes || limit) { - /* add a dummy entry */ - g_border_changes[limit].fcycs = DCYCS_IN_16MS + 21.0; - g_border_changes[limit].val = (g_c034_val & 0xf); - limit++; - } - last_line_offset = (-1 << 8) + 44; - for(i = 0; i < limit; i++) { - dcycs = g_border_changes[i].fcycs; - dline = dcycs * dlines_per_dcyc; - new_line = (int)dline; - dcyc_line_start = (double)new_line * 65.0; - offset = ((int)(dcycs - dcyc_line_start)) & 0xff; - - /* here comes the tricky part */ - /* offset is from 0 to 65, where 0-3 is the right border of */ - /* the previous line, 4-20 is horiz blanking, 21-24 is the */ - /* left border and 25-64 is the main window */ - /* Convert this to a new notation which is 0-3 is the left */ - /* border, 4-43 is the main window, and 44-47 is the right */ - /* basically, add -21 to offset, and wrap < 0 to previous ln */ - /* note this makes line -1 offset 44-47 the left hand border */ - /* for true line 261 on the screen */ - offset -= 21; - if(offset < 0) { - new_line--; - offset += 64; - } - new_val = g_border_changes[i].val; - new_line_offset = (new_line << 8) + offset; - - if(new_line_offset < -256 || new_line_offset >(262*256 + 0x80)){ - printf("new_line_offset: %05x\n", new_line_offset); - new_line_offset = last_line_offset; - } - while(last_line_offset < new_line_offset) { - /* see if this will finish it */ - if((last_line_offset & -256)==(new_line_offset & -256)){ - update_border_line(last_line_offset, - new_line_offset, color_now); - last_line_offset = new_line_offset; - } else { - update_border_line(last_line_offset, - (last_line_offset & -256) + 65, - color_now); - last_line_offset =(last_line_offset & -256)+256; - } - } - - color_now = new_val; - } - -#if 0 - if(g_num_border_changes) { - printf("Border changes: %d\n", g_num_border_changes); - } -#endif - - if(limit > 1) { - g_border_last_vbl_changes = 1; - } else { - g_border_last_vbl_changes = 0; - } - - g_num_border_changes = 0; - g_vbl_border_color = (g_c034_val & 0xf); -} - -void -update_border_line(int st_line_offset, int end_line_offset, int color) -{ - word32 val; - int st_offset, end_offset; - int left, right; - int line; - - line = st_line_offset >> 8; - if(line != (end_line_offset >> 8)) { - halt_printf("ubl, %04x %04x %02x!\n", st_line_offset, - end_line_offset, color); - } - if(line < -1 || line >= 262) { - halt_printf("ubl-b, mod line is %d\n", line); - line = 0; - } - if(line < 0 || line >= 262) { - line = 0; - } - - st_offset = st_line_offset & 0xff; - end_offset = end_line_offset & 0xff; - - if((st_offset == 0) && (end_offset >= 0x41)) { - /* might be the same as last time, save some work */ - if(g_cur_border_colors[line] == color) { - return; - } - g_cur_border_colors[line] = color; - } else { - g_cur_border_colors[line] = -1; - } - - val = (color + (g_a2vid_palette << 4)); - val = (val << 24) + (val << 16) + (val << 8) + val; - - /* 0-3: left border, 4-43: main window, 44-47: right border */ - /* 48-65: horiz blanking */ - /* first, do the sides from line 0 to line 199 */ - if((line < 200) || (line >= 262)) { - if(line >= 262) { - line = 0; - } - if(st_offset < 4) { - /* left side */ - left = st_offset; - right = MIN(4, end_offset); - video_border_pixel_write(&g_kimage_border_sides, - 2*line, 2, val, (left * BORDER_WIDTH)/4, - (right * BORDER_WIDTH) / 4); - - g_border_sides_refresh_needed = 1; - } - if((st_offset < 48) && (end_offset >= 44)) { - /* right side */ - left = MAX(0, st_offset - 44); - right = MIN(4, end_offset - 44); - video_border_pixel_write(&g_kimage_border_sides, - 2*line, 2, val, - BORDER_WIDTH + (left * EFF_BORDER_WIDTH/4), - BORDER_WIDTH + (right * EFF_BORDER_WIDTH/4)); - g_border_sides_refresh_needed = 1; - } - } - - if((line >= 192) && (line < 200)) { - if(st_offset < 44 && end_offset > 4) { - left = MAX(0, st_offset - 4); - right = MIN(40, end_offset - 4); - video_border_pixel_write(&g_kimage_text[0], - 2*line, 2, val, left * 640 / 40, - right * 640 / 40); - g_border_line24_refresh_needed = 1; - } - } - - /* now do the bottom, lines 200 to 215 */ - if((line >= 200) && (line < (200 + BASE_MARGIN_BOTTOM/2)) ) { - line -= 200; - left = st_offset; - right = MIN(48, end_offset); - video_border_pixel_write(&g_kimage_border_special, 2*line, 2, - val, (left * X_A2_WINDOW_WIDTH / 48), - (right * X_A2_WINDOW_WIDTH / 48)); - g_border_special_refresh_needed = 1; - } - - /* and top, lines 236 to 262 */ - if((line >= (262 - BASE_MARGIN_TOP/2)) && (line < 262)) { - line -= (262 - BASE_MARGIN_TOP/2); - left = st_offset; - right = MIN(48, end_offset); - video_border_pixel_write(&g_kimage_border_special, - BASE_MARGIN_BOTTOM + 2*line, 2, val, - (left * X_A2_WINDOW_WIDTH / 48), - (right * X_A2_WINDOW_WIDTH / 48)); - g_border_special_refresh_needed = 1; - } -} - -void -video_border_pixel_write(Kimage *kimage_ptr, int starty, int num_lines, - word32 val, int st_off, int end_off) -{ - word32 *ptr; - int width; - int width_act; - int mdepth; - int num_words, num_bytes; - int bytes_per_pix; - int i, j; - - if(end_off <= st_off) { - return; - } - - width = end_off - st_off; - width_act = kimage_ptr->width_act; - mdepth = kimage_ptr->mdepth; - bytes_per_pix = mdepth >> 3; - num_bytes = width * bytes_per_pix; - num_words = num_bytes >> 2; - - if(width > width_act) { - halt_printf("border write but width %d > act %d\n", width, - width_act); - } - - if(mdepth == 16) { - val = g_a2palette_8to1624[val & 0xff]; - val = (val << 16) + val; - } else if(mdepth == 32) { - /* 32-bit pixels */ - val = g_a2palette_8to1624[val & 0xff]; - } - - for(i = 0; i < num_lines; i++) { - ptr = (word32 *)&(kimage_ptr->data_ptr[ - (starty + i)*width_act*bytes_per_pix]); - ptr += ((st_off * bytes_per_pix) / 4); - /* HACK: the above isn't really right when bytes_per_pix is */ - /* less than four... */ - for(j = 0; j < num_words; j++) { - *ptr++ = val; - } - } -} - - -#define CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, do_clear) \ - ch_ptr = &(slow_mem_changed[mem_ptr >> CHANGE_SHIFT]); \ - ch_bitpos = 0; \ - bits_per_line = 40 >> SHIFT_PER_CHANGE; \ - ch_shift_amount = (mem_ptr >> SHIFT_PER_CHANGE) & 0x1f; \ - mask_per_line = (-(1 << (32 - bits_per_line))); \ - mask_per_line = mask_per_line >> ch_shift_amount; \ - ch_mask = *ch_ptr & mask_per_line; \ - if(do_clear) { \ - *ch_ptr = *ch_ptr & (~ch_mask); \ - } \ - ch_mask = ch_mask << ch_shift_amount; \ - \ - if(reparse) { \ - ch_mask = - (1 << (32 - bits_per_line)); \ - } - -#define CH_LOOP_A2_VID(ch_mask, ch_tmp) \ - ch_tmp = ch_mask & 0x80000000; \ - ch_mask = ch_mask << 1; \ - \ - if(!ch_tmp) { \ - continue; \ - } - -void -redraw_changed_text_40(int start_offset, int start_line, int num_lines, - int reparse, byte *screen_data, int altcharset, int bg_val, int fg_val, - int pixels_per_line) -{ - register word32 start_time, end_time; - word32 *img_ptr, *img_ptr2; - word32 *save_img_ptr, *save_img_ptr2; - word32 *ch_ptr; - const word32 *font_ptr1; - const word32 *font_ptr2; - byte *slow_mem_ptr; - byte *b_ptr; - word32 ch_mask; - word32 ch_tmp; - word32 line_mask; - word32 mask_per_line; - word32 mem_ptr; - word32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; - word32 palette_add; - word32 diff_val; - word32 and_val; - word32 add_val; - word32 ff_val; - word32 val0, val1; - int flash_state; - int y; - int x1, x2; - int ch_bitpos; - int bits_per_line; - int ch_shift_amount; - int shift_per; - int left, right; - int st_line_mod8, st_line; - int i; - - /* always redraws to the next multiple of 8 lines due to redraw */ - /* issues: char changed on one screen redraw at line 0 with */ - /* num_lines=1. We need to have drawn lines 1-7 also since line 1 */ - /* will not see any changed bytes */ - st_line_mod8 = start_line & 7; - st_line = start_line; - - start_line = start_line >> 3; - - y = start_line; - line_mask = 1 << (y); - mem_ptr = 0x400 + g_screen_index[y] + start_offset; - if(mem_ptr < 0x400 || mem_ptr >= 0xc00) { - halt_printf("redraw_changed_text: mem_ptr: %08x\n", mem_ptr); - } - - CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, (st_line_mod8 == 0)); - /* avoid clearing changed bits unless we are line 0 (mod 8) */ - - if(ch_mask == 0) { - return; - } - - GET_ITIMER(start_time); - - shift_per = (1 << SHIFT_PER_CHANGE); - - g_a2_screen_buffer_changed |= line_mask; - - palette_add = (g_a2vid_palette << 4); - palette_add = palette_add + (palette_add << 8) + (palette_add << 16) + - (palette_add << 24); - - left = 40; - right = 0; - - diff_val = (fg_val - bg_val) & 0xf; - and_val = diff_val + (diff_val << 8) + (diff_val << 16) +(diff_val<<24); - add_val = bg_val + (bg_val << 8) + (bg_val << 16) + (bg_val << 24); - ff_val = 0x0f0f0f0f; - - - flash_state = (g_cur_a2_stat & ALL_STAT_FLASH_STATE); - - for(x1 = 0; x1 < 40; x1 += shift_per) { - - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - left = MIN(x1, left); - right = MAX(x1 + shift_per, right); - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - b_ptr = &screen_data[(8*y + st_line_mod8)*2*pixels_per_line + - x1*14]; - img_ptr = (word32 *)b_ptr; - img_ptr2 = (word32 *)(b_ptr + pixels_per_line); - - - for(x2 = 0; x2 < shift_per; x2 += 2) { - val0 = *slow_mem_ptr++; - val1 = *slow_mem_ptr++; - - if(!altcharset) { - if(val0 >= 0x40 && val0 < 0x80) { - if(flash_state) { - val0 += 0x40; - } else { - val0 -= 0x40; - } - } - if(val1 >= 0x40 && val1 < 0x80) { - if(flash_state) { - val1 += 0x40; - } else { - val1 -= 0x40; - } - } - } - save_img_ptr = img_ptr; - save_img_ptr2 = img_ptr2; - - for(i = st_line_mod8; i < 8; i++) { - font_ptr1 = &(g_font40_even_bits[val0][i][0]); - tmp0 = (font_ptr1[0] & and_val) + add_val; - tmp1 = (font_ptr1[1] & and_val) + add_val; - tmp2 = (font_ptr1[2] & and_val) + add_val; - - font_ptr2 = &(g_font40_odd_bits[val1][i][0]); - tmp3 = ((font_ptr1[3]+font_ptr2[0]) & and_val)+ - add_val; - - tmp4 = (font_ptr2[1] & and_val) + add_val; - tmp5 = (font_ptr2[2] & and_val) + add_val; - tmp6 = (font_ptr2[3] & and_val) + add_val; - - tmp0 = (tmp0 & ff_val) + palette_add; - tmp1 = (tmp1 & ff_val) + palette_add; - tmp2 = (tmp2 & ff_val) + palette_add; - tmp3 = (tmp3 & ff_val) + palette_add; - tmp4 = (tmp4 & ff_val) + palette_add; - tmp5 = (tmp5 & ff_val) + palette_add; - tmp6 = (tmp6 & ff_val) + palette_add; - - img_ptr[0] = tmp0; - img_ptr[1] = tmp1; - img_ptr[2] = tmp2; - img_ptr[3] = tmp3; - img_ptr[4] = tmp4; - img_ptr[5] = tmp5; - img_ptr[6] = tmp6; - - img_ptr2[0] = tmp0; - img_ptr2[1] = tmp1; - img_ptr2[2] = tmp2; - img_ptr2[3] = tmp3; - img_ptr2[4] = tmp4; - img_ptr2[5] = tmp5; - img_ptr2[6] = tmp6; - - img_ptr += (2*pixels_per_line)/4; - img_ptr2 += (2*pixels_per_line)/4; - } - - img_ptr = save_img_ptr + 7; - img_ptr2 = save_img_ptr2 + 7; - } - } - GET_ITIMER(end_time); - - for(i = 0; i < (8 - st_line_mod8); i++) { - g_a2_line_left_edge[st_line + i] = (left*14); - g_a2_line_right_edge[st_line + i] = (right*14); - } - - if(left >= right || left < 0 || right < 0) { - printf("line %d, 40: left >= right: %d >= %d\n", - start_line, left, right); - } - - g_cycs_in_40col += (end_time - start_time); - - g_need_redraw = 0; -} - -void -redraw_changed_text_80(int start_offset, int start_line, int num_lines, - int reparse, byte *screen_data, int altcharset, int bg_val, int fg_val, - int pixels_per_line) -{ - const word32 *font_ptr0, *font_ptr1, *font_ptr2, *font_ptr3; - word32 *ch_ptr; - word32 *img_ptr, *img_ptr2; - word32 *save_img_ptr, *save_img_ptr2; - byte *b_ptr; - byte *slow_mem_ptr; - word32 ch_mask; - word32 ch_tmp; - word32 mask_per_line; - word32 mem_ptr; - word32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; - word32 diff_val; - word32 add_val, and_val, ff_val; - word32 palette_add; - word32 line_mask; - word32 val0, val1, val2, val3; - int st_line_mod8, st_line; - int flash_state; - int y; - int x1, x2; - int i; - int ch_bitpos; - int bits_per_line; - int ch_shift_amount; - int shift_per; - int left, right; - - st_line_mod8 = start_line & 7; - st_line = start_line; - - start_line = start_line >> 3; - - y = start_line; - line_mask = 1 << (y); - mem_ptr = 0x400 + g_screen_index[y] + start_offset; - if(mem_ptr < 0x400 || mem_ptr >= 0xc00) { - halt_printf("redraw_changed_text: mem_ptr: %08x\n", mem_ptr); - } - - CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, (st_line_mod8 == 0)); - - if(ch_mask == 0) { - return; - } - - shift_per = (1 << SHIFT_PER_CHANGE); - - g_a2_screen_buffer_changed |= line_mask; - - palette_add = (g_a2vid_palette << 4); - palette_add = palette_add + (palette_add << 8) + (palette_add << 16) + - (palette_add << 24); - - left = 40; - right = 0; - - diff_val = (fg_val - bg_val) & 0xf; - add_val = bg_val + (bg_val << 8) + (bg_val << 16) + (bg_val << 24); - and_val = diff_val + (diff_val << 8) + (diff_val << 16) +(diff_val<<24); - ff_val = 0x0f0f0f0f; - - flash_state = (g_cur_a2_stat & ALL_STAT_FLASH_STATE); - - for(x1 = 0; x1 < 40; x1 += shift_per) { - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - left = MIN(x1, left); - right = MAX(x1 + shift_per, right); - - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - b_ptr = &screen_data[(y*8 + st_line_mod8)*2*pixels_per_line + - x1*14]; - img_ptr = (word32 *)b_ptr; - img_ptr2 = (word32 *)(b_ptr + pixels_per_line); - - for(x2 = 0; x2 < shift_per; x2 += 2) { - /* do 4 chars at once! */ - - val1 = slow_mem_ptr[0]; - val3 = slow_mem_ptr[1]; - val0 = slow_mem_ptr[0x10000]; - val2 = slow_mem_ptr[0x10001]; - slow_mem_ptr += 2; - - if(!altcharset) { - if(val0 >= 0x40 && val0 < 0x80) { - if(flash_state) { - val0 += 0x40; - } else { - val0 -= 0x40; - } - } - if(val1 >= 0x40 && val1 < 0x80) { - if(flash_state) { - val1 += 0x40; - } else { - val1 -= 0x40; - } - } - if(val2 >= 0x40 && val2 < 0x80) { - if(flash_state) { - val2 += 0x40; - } else { - val2 -= 0x40; - } - } - if(val3 >= 0x40 && val3 < 0x80) { - if(flash_state) { - val3 += 0x40; - } else { - val3 -= 0x40; - } - } - } - save_img_ptr = img_ptr; - save_img_ptr2 = img_ptr2; - - for(i = st_line_mod8; i < 8; i++) { - font_ptr0 = &(g_font80_off0_bits[val0][i][0]); - tmp0 = (font_ptr0[0] & and_val) + add_val; - - font_ptr3 = &(g_font80_off3_bits[val1][i][0]); - tmp1 = ((font_ptr0[1]+font_ptr3[0]) & and_val)+ - add_val; - /* 3 bytes from ptr0, 1 from ptr3 */ - tmp2 = (font_ptr3[1] & and_val) + add_val; - - font_ptr2 = &(g_font80_off2_bits[val2][i][0]); - tmp3 = ((font_ptr3[2]+font_ptr2[0]) & and_val)+ - add_val; - /* 2 bytes from ptr3, 2 from ptr2*/ - tmp4 = (font_ptr2[1] & and_val) + add_val; - - font_ptr1 = &(g_font80_off1_bits[val3][i][0]); - tmp5 = ((font_ptr2[2]+font_ptr1[0]) & and_val)+ - add_val; - /* 1 byte from ptr2, 3 from ptr1 */ - tmp6 = (font_ptr1[1] & and_val) + add_val; - - tmp0 = (tmp0 & ff_val) + palette_add; - tmp1 = (tmp1 & ff_val) + palette_add; - tmp2 = (tmp2 & ff_val) + palette_add; - tmp3 = (tmp3 & ff_val) + palette_add; - tmp4 = (tmp4 & ff_val) + palette_add; - tmp5 = (tmp5 & ff_val) + palette_add; - tmp6 = (tmp6 & ff_val) + palette_add; - - img_ptr[0] = tmp0; - img_ptr[1] = tmp1; - img_ptr[2] = tmp2; - img_ptr[3] = tmp3; - img_ptr[4] = tmp4; - img_ptr[5] = tmp5; - img_ptr[6] = tmp6; - - img_ptr2[0] = tmp0; - img_ptr2[1] = tmp1; - img_ptr2[2] = tmp2; - img_ptr2[3] = tmp3; - img_ptr2[4] = tmp4; - img_ptr2[5] = tmp5; - img_ptr2[6] = tmp6; - - img_ptr += (2*pixels_per_line)/4; - img_ptr2 += (2*pixels_per_line)/4; - } - - img_ptr = save_img_ptr + 7; - img_ptr2 = save_img_ptr2 + 7; - - } - } - - for(i = 0; i < (8 - st_line_mod8); i++) { - g_a2_line_left_edge[st_line + i] = (left*14); - g_a2_line_right_edge[st_line + i] = (right*14); - } - - if(left >= right || left < 0 || right < 0) { - printf("line %d, 80: left >= right: %d >= %d\n", - start_line, left, right); - } - - g_need_redraw = 0; -} - -void -redraw_changed_gr(int start_offset, int start_line, int num_lines, int reparse, - byte *screen_data, int pixels_per_line) -{ - word32 *img_ptr; - word32 *save_img_ptr; - word32 *ch_ptr; - byte *b_ptr; - byte *slow_mem_ptr; - word32 mask_per_line; - word32 ch_mask; - word32 ch_tmp; - word32 mem_ptr; - word32 line_mask; - word32 val0, val1; - word32 val0_wd, val1_wd; - word32 val01_wd; - word32 val_even, val_odd; - word32 palette_add; - int half; - int x1, x2; - int y; - int y2; - int ch_bitpos; - int bits_per_line; - int ch_shift_amount; - int shift_per; - int left, right; - int st_line_mod8, st_line, eff_line, end_line; - int i; - - st_line_mod8 = start_line & 7; - st_line = start_line; - end_line = 8; // st_line_mod8 + num_lines; - - start_line = start_line >> 3; - - y = start_line; - line_mask = 1 << y; - mem_ptr = 0x400 + g_screen_index[y] + start_offset; - if(mem_ptr < 0x400 || mem_ptr >= 0xc00) { - printf("redraw_changed_gr: mem_ptr: %08x\n", mem_ptr); - } - - CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, (st_line_mod8 == 0)); - - if(ch_mask == 0) { - return; - } - - shift_per = (1 << SHIFT_PER_CHANGE); - - g_a2_screen_buffer_changed |= line_mask; - - palette_add = (g_a2vid_palette << 4); - palette_add = palette_add + (palette_add << 8) + (palette_add << 16) + - (palette_add << 24); - - left = 40; - right = 0; - - for(x1 = 0; x1 < 40; x1 += shift_per) { - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - left = MIN(x1, left); - right = MAX(x1 + shift_per, right); - - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - b_ptr = &screen_data[(y*8 + st_line_mod8)*2*pixels_per_line + - x1*14]; - img_ptr = (word32 *)b_ptr; - - for(x2 = 0; x2 < shift_per; x2 += 2) { - val_even = *slow_mem_ptr++; - val_odd = *slow_mem_ptr++; - - save_img_ptr = img_ptr; - - for(half = 0; half < 2; half++) { - val0 = val_even & 0xf; - val1 = val_odd & 0xf; - val0_wd = (val0 << 24) + (val0 << 16) + - (val0 << 8) + val0; - val1_wd = (val1 << 24) + (val1 << 16) + - (val1 << 8) + val1; -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) // OSX needs to calculate endianness mid-compilation, can't be passed on compile command - val01_wd = (val1_wd << 16) + (val0_wd & 0xffff); -#else - val01_wd = (val0_wd << 16) + (val1_wd & 0xffff); -#endif - - for(y2 = 0; y2 < 8; y2++) { - eff_line = half*4 + (y2 >> 1); - if((eff_line < st_line_mod8) || - (eff_line > end_line)) { - continue; - } - - img_ptr[0] = val0_wd + palette_add; - img_ptr[1] = val0_wd + palette_add; - img_ptr[2] = val0_wd + palette_add; - img_ptr[3] = val01_wd + palette_add; - img_ptr[4] = val1_wd + palette_add; - img_ptr[5] = val1_wd + palette_add; - img_ptr[6] = val1_wd + palette_add; - img_ptr += (pixels_per_line)/4; - } - - - val_even = val_even >> 4; - val_odd = val_odd >> 4; - } - - img_ptr = save_img_ptr + 7; - } - } - - for(i = 0; i < (8 - st_line_mod8); i++) { - g_a2_line_left_edge[st_line + i] = (left*14); - g_a2_line_right_edge[st_line + i] = (right*14); - } - - g_need_redraw = 0; -} - -void -redraw_changed_dbl_gr(int start_offset, int start_line, int num_lines, - int reparse, byte *screen_data, int pixels_per_line) -{ - word32 *img_ptr; - word32 *save_img_ptr; - word32 *ch_ptr; - byte *b_ptr; - byte *slow_mem_ptr; - word32 mask_per_line; - word32 ch_mask; - word32 ch_tmp; - word32 mem_ptr; - word32 line_mask; - word32 val0, val1, val2, val3; - word32 val0_wd, val1_wd, val2_wd, val3_wd; - word32 val01_wd, val12_wd, val23_wd; - word32 val_even_main, val_odd_main; - word32 val_even_aux, val_odd_aux; - word32 palette_add; - int half; - int x1, x2; - int y; - int y2; - int ch_bitpos; - int bits_per_line; - int ch_shift_amount; - int shift_per; - int left, right; - int st_line_mod8, st_line, eff_line, end_line; - int i; - - st_line_mod8 = start_line & 7; - end_line = 8; // st_line_mod8 + num_lines - st_line = start_line; - - start_line = start_line >> 3; - - y = start_line; - line_mask = 1 << y; - mem_ptr = 0x400 + g_screen_index[y] + start_offset; - if(mem_ptr < 0x400 || mem_ptr >= 0xc00) { - printf("redraw_changed_dbl_gr: mem_ptr: %08x\n", mem_ptr); - } - - CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, (st_line_mod8 == 0)); - - if(ch_mask == 0) { - return; - } - - shift_per = (1 << SHIFT_PER_CHANGE); - - g_a2_screen_buffer_changed |= line_mask; - - palette_add = (g_a2vid_palette << 4); - palette_add = palette_add + (palette_add << 8) + (palette_add << 16) + - (palette_add << 24); - - left = 40; - right = 0; - - for(x1 = 0; x1 < 40; x1 += shift_per) { - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - left = MIN(x1, left); - right = MAX(x1 + shift_per, right); - - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - b_ptr = &screen_data[(y*8 + st_line_mod8)*2*pixels_per_line + - x1*14]; - img_ptr = (word32 *)b_ptr; - - for(x2 = 0; x2 < shift_per; x2 += 2) { - val_even_main = slow_mem_ptr[0]; - val_odd_main = slow_mem_ptr[1]; - val_even_aux = slow_mem_ptr[0x10000]; - val_odd_aux = slow_mem_ptr[0x10001]; - slow_mem_ptr += 2; - - save_img_ptr = img_ptr; - - for(half = 0; half < 2; half++) { - val0 = val_even_aux & 0xf; - val1 = val_even_main & 0xf; - val2 = val_odd_aux & 0xf; - val3 = val_odd_main & 0xf; - - /* Handle funny pattern of dbl gr aux mem */ - val0 = ((val0 << 1) & 0xf) + (val0 >> 3); - val2 = ((val2 << 1) & 0xf) + (val2 >> 3); - - val0_wd = (val0 << 24) + (val0 << 16) + - (val0 << 8) + val0; - val1_wd = (val1 << 24) + (val1 << 16) + - (val1 << 8) + val1; - val2_wd = (val2 << 24) + (val2 << 16) + - (val2 << 8) + val2; - val3_wd = (val3 << 24) + (val3 << 16) + - (val3 << 8) + val3; -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) // OSX needs to calculate endianness mid-compilation, can't be passed on compile command - val01_wd = (val1_wd << 24) + (val0_wd&0xffffff); - val12_wd = (val2_wd << 16) + (val1_wd & 0xffff); - val23_wd = (val3_wd << 8) + (val2_wd & 0xff); -#else - val01_wd = (val0_wd << 8) + (val1_wd & 0xff); - val12_wd = (val1_wd << 16) + (val2_wd & 0xffff); - val23_wd = (val2_wd << 24) + (val3_wd&0xffffff); -#endif - - for(y2 = 0; y2 < 8; y2++) { - eff_line = half*4 + (y2 >> 1); - if((eff_line < st_line_mod8) || - (eff_line > end_line)) { - continue; - } - img_ptr[0] = val0_wd + palette_add; - img_ptr[1] = val01_wd + palette_add; - img_ptr[2] = val1_wd + palette_add; - img_ptr[3] = val12_wd + palette_add; - img_ptr[4] = val2_wd + palette_add; - img_ptr[5] = val23_wd + palette_add; - img_ptr[6] = val3_wd + palette_add; - img_ptr += (pixels_per_line)/4; - } - - val_even_aux = val_even_aux >> 4; - val_even_main = val_even_main >> 4; - val_odd_aux = val_odd_aux >> 4; - val_odd_main = val_odd_main >> 4; - } - - img_ptr = save_img_ptr + 7; - } - } - - for(i = 0; i < (8 - st_line_mod8); i++) { - g_a2_line_left_edge[st_line + i] = (left*14); - g_a2_line_right_edge[st_line + i] = (right*14); - } - - g_need_redraw = 0; -} - -void -redraw_changed_hires(int start_offset, int start_line, int num_lines, - int color, int reparse, byte *screen_data, int pixels_per_line) -{ - if(!color) { - redraw_changed_hires_color(start_offset, start_line, num_lines, - reparse, screen_data, pixels_per_line); - } else { - redraw_changed_hires_bw(start_offset, start_line, num_lines, - reparse, screen_data, pixels_per_line); - } -} - -void -redraw_changed_hires_bw(int start_offset, int start_line, int num_lines, - int reparse, byte *screen_data, int pixels_per_line) -{ - word32 *img_ptr, *img_ptr2; - word32 *ch_ptr; - byte *b_ptr; - byte *slow_mem_ptr; - word32 mask_per_line; - word32 ch_mask; - word32 ch_tmp; - word32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; - word32 mem_ptr; - word32 val0, val1; - word32 val_whole; - word32 line_mask; - word32 palette_add; - int y; - int x1, x2; - int ch_bitpos; - int bits_per_line; - int ch_shift_amount; - int shift_per; - int left, right; - int st_line; - int i; - - st_line = start_line; - start_line = start_line >> 3; - - palette_add = (g_a2vid_palette << 4); - palette_add = palette_add + (palette_add << 8) + (palette_add << 16) + - (palette_add << 24); - - left = 40; - right = 0; - - for(y = st_line; y < (st_line + num_lines); y++) { - line_mask = 1 << (y >> 3); - mem_ptr = 0x2000 + (((y & 7) * 0x400) + - g_screen_index[y >> 3]) + start_offset; - - CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, 1); - - if(ch_mask == 0) { - continue; - } - - /* Hires depends on adjacent bits, so also reparse adjacent */ - /* regions so that if bits on the edge change, redrawing is */ - /* correct */ - ch_mask = ch_mask | (ch_mask >> 1) | (ch_mask << 1); - - shift_per = (1 << SHIFT_PER_CHANGE); - - g_a2_screen_buffer_changed |= line_mask; - - for(x1 = 0; x1 < 40; x1 += shift_per) { - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - left = MIN(x1, left); - right = MAX(x1 + shift_per, right); - - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - b_ptr = &screen_data[(y*2)*pixels_per_line + x1*14]; - img_ptr = (word32 *)b_ptr; - img_ptr2 = (word32 *)(b_ptr + pixels_per_line); - - for(x2 = 0; x2 < shift_per; x2 += 2) { - val0 = *slow_mem_ptr++; - val1 = *slow_mem_ptr++; - - val_whole = ((val1 & 0x7f) << 7) +(val0 & 0x7f); - - tmp0 = g_bw_hires_convert[val_whole & 3]; - val_whole = val_whole >> 2; - tmp1 = g_bw_hires_convert[val_whole & 3]; - val_whole = val_whole >> 2; - tmp2 = g_bw_hires_convert[val_whole & 3]; - val_whole = val_whole >> 2; - tmp3 = g_bw_hires_convert[val_whole & 3]; - val_whole = val_whole >> 2; - tmp4 = g_bw_hires_convert[val_whole & 3]; - val_whole = val_whole >> 2; - tmp5 = g_bw_hires_convert[val_whole & 3]; - val_whole = val_whole >> 2; - tmp6 = g_bw_hires_convert[val_whole & 3]; - - img_ptr[0] = tmp0 + palette_add; - img_ptr[1] = tmp1 + palette_add; - img_ptr[2] = tmp2 + palette_add; - img_ptr[3] = tmp3 + palette_add; - img_ptr[4] = tmp4 + palette_add; - img_ptr[5] = tmp5 + palette_add; - img_ptr[6] = tmp6 + palette_add; - - img_ptr2[0] = tmp0 + palette_add; - img_ptr2[1] = tmp1 + palette_add; - img_ptr2[2] = tmp2 + palette_add; - img_ptr2[3] = tmp3 + palette_add; - img_ptr2[4] = tmp4 + palette_add; - img_ptr2[5] = tmp5 + palette_add; - img_ptr2[6] = tmp6 + palette_add; - - img_ptr += 7; - img_ptr2 += 7; - } - } - } - - for(i = 0; i < num_lines; i++) { - g_a2_line_left_edge[st_line + i] = (left*14); - g_a2_line_right_edge[st_line + i] = (right*14); - } - - g_need_redraw = 0; -} - -void -redraw_changed_hires_color(int start_offset, int start_line, int num_lines, - int reparse, byte *screen_data, int pixels_per_line) -{ - word32 *img_ptr, *img_ptr2; - word32 *ch_ptr; - byte *b_ptr; - byte *slow_mem_ptr; - word32 mask_per_line; - word32 ch_mask; - word32 ch_tmp; - word32 mem_ptr; - word32 val0, val1; - word32 val_whole; - word32 pix_val; - word32 line_mask; - word32 prev_pixel; - word32 prev_hi; - word32 loc_hi; - word32 val_hi; - word32 tmp_val; - word32 palette_add; - int y; - int x1, x2; - int ch_bitpos; - int bits_per_line; - int ch_shift_amount; - int shift_per; - int left, right; - int st_line; - int i, j; - - st_line = start_line; - - start_line = start_line >> 3; - - palette_add = (g_a2vid_palette << 4); - palette_add = palette_add + (palette_add << 8) + (palette_add << 16) + - (palette_add << 24); - - left = 40; - right = 0; - - for(y = st_line; y < (st_line + num_lines); y++) { - line_mask = 1 << (y >> 3); - mem_ptr = 0x2000 + (((y & 7) * 0x400) + - g_screen_index[y >> 3]) + start_offset; - - CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, 1); - - if(ch_mask == 0) { - continue; - } - - /* Hires depends on adjacent bits, so also reparse adjacent */ - /* regions so that if bits on the edge change, redrawing is */ - /* correct */ - ch_mask = ch_mask | (ch_mask >> 1) | (ch_mask << 1); - - shift_per = (1 << SHIFT_PER_CHANGE); - - g_a2_screen_buffer_changed |= line_mask; - - for(x1 = 0; x1 < 40; x1 += shift_per) { - - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - left = MIN(x1, left); - right = MAX(x1 + shift_per, right); - - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - b_ptr = &screen_data[(y*2)*pixels_per_line + x1*14]; - img_ptr = (word32 *)b_ptr; - img_ptr2 = (word32 *)(b_ptr + pixels_per_line); - - prev_pixel = 0; - prev_hi = 0; - - if(x1 > 0) { - tmp_val = slow_mem_ptr[-1]; - prev_pixel = (tmp_val >> 6) & 1; - prev_hi = (tmp_val >> 7) & 0x1; - } - - for(x2 = 0; x2 < shift_per; x2 += 2) { - val0 = *slow_mem_ptr++; - val1 = *slow_mem_ptr++; - - val_whole = ((val1 & 0x7f) << 8) + - ((val0 & 0x7f) << 1) + - prev_pixel; - - loc_hi = prev_hi; - if(((val1 >> 7) & 1) != 0) { - loc_hi += 0x7f00; - } - if(((val0 >> 7) & 1) != 0) { - loc_hi += 0xfe; - } - - prev_pixel = (val1 >> 6) & 1; - prev_hi = (val1 >> 7) & 1; - if((x1 + x2 + 2) < 40) { - tmp_val = slow_mem_ptr[0]; - if(tmp_val & 1) { - val_whole |= 0x8000; - } - if(tmp_val & 0x80) { - loc_hi |= 0x8000; - } - } - - loc_hi = loc_hi >> 1; - - for(j = 0; j < 7; j++) { - tmp_val = val_whole & 0xf; - val_hi = loc_hi & 0x3; - - pix_val = g_hires_convert[(val_hi<<4) + - tmp_val]; - *img_ptr++ = pix_val + palette_add; - *img_ptr2++ = pix_val + palette_add; - val_whole = val_whole >> 2; - loc_hi = loc_hi >> 2; - } - } - } - } - - for(i = 0; i < num_lines; i++) { - g_a2_line_left_edge[st_line + i] = (left*14); - g_a2_line_right_edge[st_line + i] = (right*14); - } - - g_need_redraw = 0; -} - - -void -redraw_changed_dbl_hires(int start_offset, int start_line, int num_lines, - int color, int reparse, byte *screen_data, int pixels_per_line) -{ - if(!color) { - redraw_changed_dbl_hires_color(start_offset, start_line, - num_lines, reparse, screen_data, pixels_per_line); - } else { - redraw_changed_dbl_hires_bw(start_offset, start_line, - num_lines, reparse, screen_data, pixels_per_line); - } -} - - -void -redraw_changed_dbl_hires_bw(int start_offset, int start_line, int num_lines, - int reparse, byte *screen_data, int pixels_per_line) -{ - word32 *img_ptr, *img_ptr2; - word32 *ch_ptr; - byte *b_ptr; - byte *slow_mem_ptr; - word32 mask_per_line; - word32 ch_mask; - word32 ch_tmp; - word32 mem_ptr; - word32 val0, val1, val2, val3; - word32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; - word32 val_whole; - word32 line_mask; - word32 palette_add; - int y; - int x1, x2; - int ch_bitpos; - int bits_per_line; - int ch_shift_amount; - int shift_per; - int left, right; - int st_line; - int i; - - st_line = start_line; - start_line = start_line >> 3; - - palette_add = (g_a2vid_palette << 4); - palette_add = palette_add + (palette_add << 8) + (palette_add << 16) + - (palette_add << 24); - - left = 40; - right = 0; - - for(y = st_line; y < (st_line + num_lines); y++) { - line_mask = 1 << (y >> 3); - mem_ptr = 0x2000 + (((y & 7) * 0x400) + g_screen_index[y >> 3] + - start_offset); - - CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, 1); - - if(ch_mask == 0) { - continue; - } - - shift_per = (1 << SHIFT_PER_CHANGE); - - g_a2_screen_buffer_changed |= line_mask; - - for(x1 = 0; x1 < 40; x1 += shift_per) { - - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - left = MIN(x1, left); - right = MAX(x1 + shift_per, right); - - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - b_ptr = &screen_data[(y*2)*pixels_per_line + x1*14]; - img_ptr = (word32 *)b_ptr; - img_ptr2 = (word32 *)(b_ptr + pixels_per_line); - - for(x2 = 0; x2 < shift_per; x2 += 2) { - val0 = slow_mem_ptr[0x10000]; - val1 = slow_mem_ptr[0]; - val2 = slow_mem_ptr[0x10001]; - val3 = slow_mem_ptr[1]; - slow_mem_ptr += 2; - - val_whole = ((val3 & 0x7f) << 21) + - ((val2 & 0x7f) << 14) + - ((val1 & 0x7f) << 7) + - (val0 & 0x7f); - - tmp0 = g_bw_dhires_convert[val_whole & 0xf]; - val_whole = val_whole >> 4; - tmp1 = g_bw_dhires_convert[val_whole & 0xf]; - val_whole = val_whole >> 4; - tmp2 = g_bw_dhires_convert[val_whole & 0xf]; - val_whole = val_whole >> 4; - tmp3 = g_bw_dhires_convert[val_whole & 0xf]; - val_whole = val_whole >> 4; - tmp4 = g_bw_dhires_convert[val_whole & 0xf]; - val_whole = val_whole >> 4; - tmp5 = g_bw_dhires_convert[val_whole & 0xf]; - val_whole = val_whole >> 4; - tmp6 = g_bw_dhires_convert[val_whole & 0xf]; - - img_ptr[0] = tmp0 + palette_add; - img_ptr[1] = tmp1 + palette_add; - img_ptr[2] = tmp2 + palette_add; - img_ptr[3] = tmp3 + palette_add; - img_ptr[4] = tmp4 + palette_add; - img_ptr[5] = tmp5 + palette_add; - img_ptr[6] = tmp6 + palette_add; - - img_ptr2[0] = tmp0 + palette_add; - img_ptr2[1] = tmp1 + palette_add; - img_ptr2[2] = tmp2 + palette_add; - img_ptr2[3] = tmp3 + palette_add; - img_ptr2[4] = tmp4 + palette_add; - img_ptr2[5] = tmp5 + palette_add; - img_ptr2[6] = tmp6 + palette_add; - - img_ptr += 7; - img_ptr2 += 7; - } - } - } - - for(i = 0; i < num_lines; i++) { - g_a2_line_left_edge[st_line + i] = (left*14); - g_a2_line_right_edge[st_line + i] = (right*14); - } - - g_need_redraw = 0; -} - -void -redraw_changed_dbl_hires_color(int start_offset, int start_line, int num_lines, - int reparse, byte *screen_data, int pixels_per_line) -{ - word32 *ch_ptr; - word32 *img_ptr, *img_ptr2; - byte *slow_mem_ptr; - byte *b_ptr; - word32 mask_per_line; - word32 ch_mask; - word32 ch_tmp; - word32 mem_ptr; - word32 val0, val1, val2, val3; - word32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6; - word32 val_whole; - word32 prev_val; - word32 line_mask; - word32 palette_add; - int y; - int x1, x2; - int ch_bitpos; - int bits_per_line; - int ch_shift_amount; - int shift_per; - int left, right; - int st_line; - int i; - - st_line = start_line; - start_line = start_line >> 3; - - palette_add = (g_a2vid_palette << 4); - palette_add = palette_add + (palette_add << 8) + (palette_add << 16) + - (palette_add << 24); - - left = 40; - right = 0; - - for(y = st_line; y < (st_line + num_lines); y++) { - line_mask = 1 << (y >> 3); - mem_ptr = 0x2000 + (((y & 7) * 0x400) + g_screen_index[y >> 3] + - start_offset); - - CH_SETUP_A2_VID(mem_ptr, ch_mask, reparse, 1); - - if(ch_mask == 0) { - continue; - } - - /* dbl-hires also depends on adjacent bits, so reparse */ - /* adjacent regions so that if bits on the edge change, */ - /* redrawing is correct */ - ch_mask = ch_mask | (ch_mask >> 1) | (ch_mask << 1); - ch_mask = -1; - - shift_per = (1 << SHIFT_PER_CHANGE); - - g_a2_screen_buffer_changed |= line_mask; - - for(x1 = 0; x1 < 40; x1 += shift_per) { - - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - left = MIN(x1, left); - right = MAX(x1 + shift_per, right); - - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - b_ptr = &screen_data[(y*2)*pixels_per_line + x1*14]; - img_ptr = (word32 *)b_ptr; - img_ptr2 = (word32 *)(b_ptr + pixels_per_line); - - for(x2 = 0; x2 < shift_per; x2 += 2) { - val0 = slow_mem_ptr[0x10000]; - val1 = slow_mem_ptr[0]; - val2 = slow_mem_ptr[0x10001]; - val3 = slow_mem_ptr[1]; - - prev_val = 0; - if((x1 + x2) > 0) { - prev_val = (slow_mem_ptr[-1] >> 3) &0xf; - } - val_whole = ((val3 & 0x7f) << 25) + - ((val2 & 0x7f) << 18) + - ((val1 & 0x7f) << 11) + - ((val0 & 0x7f) << 4) + prev_val; - - tmp0 = g_dhires_convert[val_whole & 0xfff]; - val_whole = val_whole >> 4; - tmp1 = g_dhires_convert[val_whole & 0xfff]; - val_whole = val_whole >> 4; - tmp2 = g_dhires_convert[val_whole & 0xfff]; - val_whole = val_whole >> 4; - tmp3 = g_dhires_convert[val_whole & 0xfff]; - val_whole = val_whole >> 4; - tmp4 = g_dhires_convert[val_whole & 0xfff]; - val_whole = val_whole >> 4; - tmp5 = g_dhires_convert[val_whole & 0xfff]; - val_whole = val_whole >> 4; - if((x1 + x2 + 2) < 40) { - val_whole += (slow_mem_ptr[0x10002]<<8); - } - tmp6 = g_dhires_convert[val_whole & 0xfff]; - - img_ptr[0] = tmp0 + palette_add; - img_ptr[1] = tmp1 + palette_add; - img_ptr[2] = tmp2 + palette_add; - img_ptr[3] = tmp3 + palette_add; - img_ptr[4] = tmp4 + palette_add; - img_ptr[5] = tmp5 + palette_add; - img_ptr[6] = tmp6 + palette_add; - - img_ptr2[0] = tmp0 + palette_add; - img_ptr2[1] = tmp1 + palette_add; - img_ptr2[2] = tmp2 + palette_add; - img_ptr2[3] = tmp3 + palette_add; - img_ptr2[4] = tmp4 + palette_add; - img_ptr2[5] = tmp5 + palette_add; - img_ptr2[6] = tmp6 + palette_add; - - slow_mem_ptr += 2; - img_ptr += 7; - img_ptr2 += 7; - } - } - } - - for(i = 0; i < num_lines; i++) { - g_a2_line_left_edge[st_line + i] = (left*14); - g_a2_line_right_edge[st_line + i] = (right*14); - } - - g_need_redraw = 0; -} - -int -video_rebuild_super_hires_palette(word32 scan_info, int line, int reparse) -{ - word32 *word_ptr; - word32 *ch_ptr; - byte *byte_ptr; - word32 ch_mask, mask_per_line; - word32 tmp; - word32 scan, old_scan; - int palette_changed; - int diff0, diff1, diff2; - int val0, val1, val2; - int diffs; - int low_delta, low_color; - int delta; - int full; - int ch_bit_offset, ch_word_offset; - int bits_per_line; - int palette; - int j, k; - - palette_changed = 0; - palette = scan_info & 0xf; - - ch_ptr = &(slow_mem_changed[0x9e00 >> CHANGE_SHIFT]); - ch_bit_offset = (palette << 5) >> SHIFT_PER_CHANGE; - ch_word_offset = ch_bit_offset >> 5; - ch_bit_offset = ch_bit_offset & 0x1f; - bits_per_line = (0x20 >> SHIFT_PER_CHANGE); - mask_per_line = -(1 << (32 - bits_per_line)); - mask_per_line = mask_per_line >> ch_bit_offset; - - ch_mask = ch_ptr[ch_word_offset] & mask_per_line; - ch_ptr[ch_word_offset] &= ~mask_per_line; /* clear the bits */ - - old_scan = g_superhires_scan_save[line]; - scan = (scan_info & 0xfaf) + (g_palette_change_cnt[palette] << 12); - g_superhires_scan_save[line] = scan; - -#if 0 - if(line == 1) { - word_ptr = (word32 *)&(g_slow_memory_ptr[0x19e00+palette*0x20]); - printf("y1vrshp, ch:%08x, s:%08x,os:%08x %d = %08x %08x %08x %08x %08x %08x %08x %08x\n", - ch_mask, scan, old_scan, reparse, - word_ptr[0], word_ptr[1], word_ptr[2], word_ptr[3], - word_ptr[4], word_ptr[5], word_ptr[6], word_ptr[7]); - } -#endif - - diffs = reparse | ((scan ^ old_scan) & 0xf0f); - /* we must do full reparse if palette changed for this line */ - - if(!diffs && (ch_mask == 0) && (((scan ^ old_scan) & (~0xf0)) == 0)) { - /* nothing changed, get out fast */ - return 0; - } - - if(ch_mask) { - /* indicates the palette has changed, and other scan lines */ - /* using this palette need to do a full 32-byte compare to */ - /* decide if they need to update or not */ - g_palette_change_cnt[palette]++; - } - - word_ptr = (word32 *)&(g_slow_memory_ptr[0x19e00 + palette*0x20]); - for(j = 0; j < 8; j++) { - if(word_ptr[j] != g_saved_line_palettes[line][j]) { - diffs = 1; - break; - } - } - - if(diffs == 0) { - return 0; - } - - /* first, save this word_ptr into saved_line_palettes */ - byte_ptr = (byte *)word_ptr; - for(j = 0; j < 8; j++) { - g_saved_line_palettes[line][j] = word_ptr[j]; - } - - full = g_installed_full_superhires_colormap; - - if(!full && palette == g_a2vid_palette) { - /* construct new color approximations from lores */ - for(j = 0; j < 16; j++) { - tmp = *byte_ptr++; - val2 = (*byte_ptr++) & 0xf; - val0 = tmp & 0xf; - val1 = (tmp >> 4) & 0xf; - low_delta = 0x1000; - low_color = 0x0; - for(k = 0; k < 16; k++) { - diff0 = g_expanded_col_0[k] - val0; - diff1 = g_expanded_col_1[k] - val1; - diff2 = g_expanded_col_2[k] - val2; - if(diff0 < 0) { - diff0 = -diff0; - } - if(diff1 < 0) { - diff1 = -diff1; - } - if(diff2 < 0) { - diff2 = -diff2; - } - delta = diff0 + diff1 + diff2; - if(delta < low_delta) { - low_delta = delta; - low_color = k; - } - } - - g_a2vid_palette_remap[j] = low_color; - } - } - - byte_ptr = (byte *)word_ptr; - /* this palette has changed */ - for(j = 0; j < 16; j++) { - val0 = *byte_ptr++; - val1 = *byte_ptr++; - video_update_color_array(palette*16 + j, (val1<<8) + val0); - } - - g_palette_change_summary = 1; - - return 1; -} - -#define SUPER_TYPE redraw_changed_super_hires_oneline_nofill_8 -#define SUPER_FILL 0 -#define SUPER_PIXEL_SIZE 8 -#include "superhires.h" -#undef SUPER_TYPE -#undef SUPER_FILL -#undef SUPER_PIXEL_SIZE - -#define SUPER_TYPE redraw_changed_super_hires_oneline_nofill_16 -#define SUPER_FILL 0 -#define SUPER_PIXEL_SIZE 16 -#include "superhires.h" -#undef SUPER_TYPE -#undef SUPER_FILL -#undef SUPER_PIXEL_SIZE - -#define SUPER_TYPE redraw_changed_super_hires_oneline_nofill_32 -#define SUPER_FILL 0 -#define SUPER_PIXEL_SIZE 32 -#include "superhires.h" -#undef SUPER_TYPE -#undef SUPER_FILL -#undef SUPER_PIXEL_SIZE - -#define SUPER_TYPE redraw_changed_super_hires_oneline_fill_8 -#define SUPER_FILL 1 -#define SUPER_PIXEL_SIZE 8 -#include "superhires.h" -#undef SUPER_TYPE -#undef SUPER_FILL -#undef SUPER_PIXEL_SIZE - -#define SUPER_TYPE redraw_changed_super_hires_oneline_fill_16 -#define SUPER_FILL 1 -#define SUPER_PIXEL_SIZE 16 -#include "superhires.h" -#undef SUPER_TYPE -#undef SUPER_FILL -#undef SUPER_PIXEL_SIZE - -#define SUPER_TYPE redraw_changed_super_hires_oneline_fill_32 -#define SUPER_FILL 1 -#define SUPER_PIXEL_SIZE 32 -#include "superhires.h" -#undef SUPER_TYPE -#undef SUPER_FILL -#undef SUPER_PIXEL_SIZE - - - -void -redraw_changed_super_hires(int start_offset, int start_line, int num_lines, - int in_reparse, byte *screen_data) -{ - word32 *ch_ptr; - word32 mask_per_line; - word32 all_checks; - word32 check0, check1, mask0, mask1; - word32 this_check; - word32 tmp; - word32 line_mask; - word32 pal; - word32 scan, old_scan; - word32 kd_tmp_debug; - int y; - int bits_per_line; - int a2vid_palette; - int type; - int left, right; - int st_line; - int check_bit_pos, check_word_off; - int pixel_size, pixel_size_type; - int use_a2vid_palette, mode_640; - int pixels_per_line; - int ret; - int i; - - st_line = start_line; - start_line = start_line >> 3; - - pixel_size = g_kimage_superhires.mdepth; - pixels_per_line = g_kimage_superhires.width_act; - - pixel_size_type = (pixel_size >> 3) - 1; - /* pixel_size_type is now: 0=8bit, 1=16bit, 3=32bit */ - if(pixel_size_type >= 3) { - pixel_size_type = 2; - } - - kd_tmp_debug = g_a2_screen_buffer_changed; - - line_mask = 1 << (start_line); - - ch_ptr = &(slow_mem_changed[(0x2000) >> CHANGE_SHIFT]); - bits_per_line = 160 >> SHIFT_PER_CHANGE; - mask_per_line = -(1 << (32 - bits_per_line)); - - if(SHIFT_PER_CHANGE != 3) { - halt_printf("SHIFT_PER_CHANGE must be 3!\n"); - return; - } - - a2vid_palette = g_a2vid_palette; - if(g_installed_full_superhires_colormap) { - a2vid_palette = -1; - } else { - /* handle palette counting for finding least-used palette */ - if(pixel_size == 8) { - for(y = 8*start_line; y < 8*(start_line + 1); y++) { - scan = g_slow_memory_ptr[0x19d00 + y]; - pal = scan & 0xf; - g_shr_palette_used[pal]++; - } - } - } - - all_checks = 0; - check0 = 0; - check1 = 0; - for(y = st_line; y < (st_line + num_lines); y++) { - scan = g_slow_memory_ptr[0x19d00 + y]; - check_bit_pos = bits_per_line * y; - check_word_off = check_bit_pos >> 5; /* 32 bits per word */ - check_bit_pos = check_bit_pos & 0x1f; /* 5-bit bit_pos */ - check0 = ch_ptr[check_word_off]; - check1 = ch_ptr[check_word_off+1]; - mask0 = mask_per_line >> check_bit_pos; - mask1 = 0; - this_check = check0 << check_bit_pos; - /* move indicated bit to MSbit position */ - if((check_bit_pos + bits_per_line) > 32) { - this_check |= (check1 >> (32 - check_bit_pos)); - mask1 = mask_per_line << (32 - check_bit_pos); - } - - ch_ptr[check_word_off] = check0 & ~mask0; - ch_ptr[check_word_off+1] = check1 & ~mask1; - - this_check = this_check & mask_per_line; - old_scan = g_superhires_scan_save[y]; - use_a2vid_palette = ((scan & 0xf) == (word32)a2vid_palette); - scan = (scan + (a2vid_palette << 8)) & 0xfff; - - ret = video_rebuild_super_hires_palette(scan, y, in_reparse); -#if 0 - if(y == 1) { - printf("y1, ch:%08x, ret:%d, scan:%03x, os:%03x\n", - this_check, ret, scan, old_scan); - } -#endif - if(ret || in_reparse || ((scan ^ old_scan) & 0xa0)) { - /* 0x80 == mode640, 0x20 = fill */ - this_check = -1; - } - - if(this_check == 0) { - continue; - } - - mode_640 = (scan & 0x80); - if(mode_640) { - g_num_lines_superhires640++; - } - - type = ((scan >> 5) & 1) + (pixel_size_type << 1); - if(type & 1) { - /* fill mode--redraw whole line */ - this_check = -1; - } - - all_checks |= this_check; - - g_a2_screen_buffer_changed |= line_mask; - - - switch(type) { - case 0: /* nofill, 8 bit pixels */ - redraw_changed_super_hires_oneline_nofill_8( - screen_data, pixels_per_line, y, scan, - this_check, use_a2vid_palette, mode_640); - break; - case 1: /* fill, 8 bit pixels */ - redraw_changed_super_hires_oneline_fill_8( - screen_data, pixels_per_line, y, scan, - this_check, use_a2vid_palette, mode_640); - break; - case 2: /* nofill, 16 bit pixels */ - redraw_changed_super_hires_oneline_nofill_16( - screen_data, pixels_per_line, y, scan, - this_check, use_a2vid_palette, mode_640); - break; - case 3: /* fill, 16 bit pixels */ - redraw_changed_super_hires_oneline_fill_16( - screen_data, pixels_per_line, y, scan, - this_check, use_a2vid_palette, mode_640); - break; - case 4: /* nofill, 32 bit pixels */ - redraw_changed_super_hires_oneline_nofill_32( - screen_data, pixels_per_line, y, scan, - this_check, use_a2vid_palette, mode_640); - break; - case 5: /* fill, 32 byte pixels */ - redraw_changed_super_hires_oneline_fill_32( - screen_data, pixels_per_line, y, scan, - this_check, use_a2vid_palette, mode_640); - break; - default: - halt_printf("type: %d bad!\n", type); - } - } - - left = 4*40; - right = 0; - - tmp = all_checks; - if(all_checks) { - for(i = 0; i < 160; i += 8) { - if(tmp & 0x80000000) { - left = MIN(i, left); - right = MAX(i + 8, right); - } - tmp = tmp << 1; - } - } - - for(i = 0; i < num_lines; i++) { - g_a2_line_left_edge[st_line + i] = 4*left; - g_a2_line_right_edge[st_line + i] = 4*right; - } - -#if 0 - if((g_a2_screen_buffer_changed & (1 << start_line)) != 0) { - if(((g_full_refresh_needed & (1 << start_line)) == 0) && - left >= right) { - halt_printf("shr: line: %d, left: %d, right:%d\n", - start_line, left, right); - printf("mask_per_line: %08x, all_checks: %08x\n", - mask_per_line, all_checks); - printf("check0,1 = %08x,%08x\n", check0, check1); - printf("a2_screen_chang: %08x\n", kd_tmp_debug); -#ifdef HPUX - U_STACK_TRACE(); -#endif - } - } -#endif - - g_need_redraw = 0; -} - -void -display_screen() -{ - video_update_through_line(262); -} - -void -video_update_event_line(int line) -{ - int new_line; - - video_update_through_line(line); - - new_line = line + g_line_ref_amt; - if(new_line < 200) { - if(!g_config_control_panel) { - add_event_vid_upd(new_line); - } - } else if(line >= 262) { - video_update_through_line(0); - if(!g_config_control_panel) { - add_event_vid_upd(1); /* add event for new screen */ - } - } - - if(g_video_extra_check_inputs) { - if(g_video_dcycs_check_input < g_cur_dcycs) { - video_check_input_events(); - } - } -} - -void -video_check_input_events() -{ - word32 start_time, end_time; - - g_video_dcycs_check_input = g_cur_dcycs + 4000.0; - - GET_ITIMER(start_time); - check_input_events(); - GET_ITIMER(end_time); - - g_cycs_in_check_input += (end_time - start_time); -} - -void -video_update_through_line(int line) -{ - register word32 start_time; - register word32 end_time; - int *mode_ptr; - word32 mask; - int last_line, num_lines; - int must_reparse; - int new_all_stat, prev_all_stat; - int new_stat, prev_stat; - int i; - -#if 0 - vid_printf("\nvideo_upd for line %d, lines: %06x\n", line, - get_lines_since_vbl(g_cur_dcycs)); -#endif - - GET_ITIMER(start_time); - - video_update_all_stat_through_line(line); - - i = g_vid_update_last_line; - - last_line = MIN(200, line+1); /* go through line, but not past 200 */ - - prev_stat = -2; - prev_all_stat = -2; - num_lines = 0; - must_reparse = 0; - for(i = g_vid_update_last_line; i < last_line; i++) { - new_all_stat = g_a2_new_all_stat[i]; - if(new_all_stat != g_a2_cur_all_stat[i]) { - /* regen line_stat for this line */ - g_a2_cur_all_stat[i] = new_all_stat; - if(new_all_stat == prev_all_stat) { - /* save a lookup */ - new_stat = prev_stat; - } else { - new_stat = video_all_stat_to_line_stat(i, - new_all_stat); - } - if(new_stat != g_a2_line_stat[i]) { - /* status changed */ - g_a2_line_stat[i] = new_stat; - mode_ptr = video_update_kimage_ptr(i, new_stat); - if(mode_ptr[i] != new_stat) { - must_reparse = 1; - mode_ptr[i] = new_stat; - } - mask = 1 << (line >> 3); - g_full_refresh_needed |= mask; - g_a2_screen_buffer_changed |= mask; - } - } - - new_stat = g_a2_line_stat[i]; - - if( ((new_stat == prev_stat) && ((i & 7) != 0)) || - (num_lines == 0) ) { - /* merge prev and this together */ - prev_stat = new_stat; - num_lines++; - continue; - } - - /* else, we must call refresh */ - video_refresh_lines(i - num_lines, num_lines, must_reparse); - num_lines = 1; - prev_all_stat = -1; - prev_stat = new_stat; - must_reparse = 0; - } - if(num_lines > 0) { - video_refresh_lines(i - num_lines, num_lines, must_reparse); - } - - g_vid_update_last_line = last_line; - - /* deal with border */ - if(line >= 262) { - if(g_num_lines_prev_superhires != g_num_lines_superhires) { - /* switched in/out from superhires--refresh borders */ - g_border_sides_refresh_needed = 1; - } - refresh_border(); - - if(g_status_refresh_needed) { - g_status_refresh_needed = 0; - x_redraw_status_lines(); - } - } - GET_ITIMER(end_time); - - g_cycs_in_refresh_line += (end_time - start_time); - - if(line >= 262) { - GET_ITIMER(start_time); - if(g_palette_change_summary) { - g_palette_change_summary = 0; - video_update_colormap(); - } - - video_push_kimages(); - GET_ITIMER(end_time); - g_cycs_in_refresh_ximage += (end_time - start_time); - - g_num_lines_prev_superhires = g_num_lines_superhires; - g_num_lines_prev_superhires640 = g_num_lines_superhires640; - g_num_lines_superhires = 0; - g_num_lines_superhires640 = 0; - } -} - -void -video_refresh_lines(int st_line, int num_lines, int must_reparse) -{ - byte *ptr; - int line; - int stat; - int mode; - int dbl, page, color; - int altchar, bg_color, text_color; - int pixels_per_line; - int i; - - line = st_line; - - /* do some basic checking, num_lines should be 1-8, and */ - /* st_line+num_lines-1 cannot roll over 8 */ - if((num_lines < 1) || (num_lines > 8) || - (((st_line & 7) + num_lines) > 8) ) { - halt_printf("video_refresh_lines called with %d, %d\n", - st_line, num_lines); - return; - } - - stat = g_a2_line_stat[line]; - ptr = g_a2_line_kimage[line]->data_ptr; - pixels_per_line = g_a2_line_kimage[line]->width_act; - - /* do not zero g_a2_line_left/right_edge here since text/gr routs */ - /* need to leave stale values around for drawing to work correctly */ - /* all routs force in new left/right when there are screen changes */ - - dbl = stat & 1; - color = (stat >> 1) & 1; - page = (stat >> 2) & 1; - mode = (stat >> 4) & 7; - -#if 0 - printf("refresh line: %d, stat: %04x\n", line, stat); -#endif - - switch(mode) { - case MODE_TEXT: - altchar = (stat >> 7) & 1; - bg_color = (stat >> 8) & 0xf; - text_color = (stat >> 12) & 0xf; - if(dbl) { - redraw_changed_text_80(0x000 + page*0x400, st_line, - num_lines, must_reparse, ptr, altchar, bg_color, - text_color, pixels_per_line); - } else { - redraw_changed_text_40(0x000 + page*0x400, st_line, - num_lines, must_reparse, ptr, altchar, bg_color, - text_color, pixels_per_line); - } - break; - case MODE_GR: - if(dbl) { - redraw_changed_dbl_gr(0x000 + page*0x400, st_line, - num_lines, must_reparse, ptr, pixels_per_line); - } else { - redraw_changed_gr(0x000 + page*0x400, st_line, - num_lines, must_reparse, ptr, pixels_per_line); - } - break; - case MODE_HGR: - if(dbl) { - redraw_changed_dbl_hires(0x000 + page*0x2000, st_line, - num_lines, color, must_reparse, ptr, - pixels_per_line); - } else { - redraw_changed_hires(0x000 + page*0x2000, st_line, - num_lines, color, must_reparse, ptr, - pixels_per_line); - } - break; - case MODE_SUPER_HIRES: - g_num_lines_superhires++; - redraw_changed_super_hires(0, st_line, num_lines, - must_reparse, ptr); - break; - case MODE_BORDER: - if(line < 192) { - halt_printf("Border line not 192: %d\n", line); - } - for(i = 0; i < num_lines; i++) { - g_a2_line_left_edge[line + i] = 0; - g_a2_line_right_edge[line + i] = 560; - } - if(g_border_line24_refresh_needed) { - g_border_line24_refresh_needed = 0; - g_a2_screen_buffer_changed |= (1 << 24); - } - break; - default: - halt_printf("refresh screen: mode: 0x%02x unknown!\n", mode); - exit(7); - } -} - -void -refresh_border() -{ - /**ZZZZ***/ -} - -// OG Added video_release_kimages proto -void video_release_kimages(); - -void -end_screen() -{ - printf("In end_screen\n"); - - // OG Free up allocated images - video_release_kimages(); - xdriver_end(); -} - -byte g_font_array[256][8] = { -#include "gsportfont.h" -}; - -void -read_a2_font() -{ - byte *f40_e_ptr; - byte *f40_o_ptr; - byte *f80_0_ptr, *f80_1_ptr, *f80_2_ptr, *f80_3_ptr; - int char_num; - int j, k; - int val0; - int mask; - int pix; - - for(char_num = 0; char_num < 0x100; char_num++) { - for(j = 0; j < 8; j++) { - val0 = g_font_array[char_num][j]; - - mask = 0x80; - - for(k = 0; k < 3; k++) { - g_font80_off0_bits[char_num][j][k] = 0; - g_font80_off1_bits[char_num][j][k] = 0; - g_font80_off2_bits[char_num][j][k] = 0; - g_font80_off3_bits[char_num][j][k] = 0; - g_font40_even_bits[char_num][j][k] = 0; - g_font40_odd_bits[char_num][j][k] = 0; - } - g_font40_even_bits[char_num][j][3] = 0; - g_font40_odd_bits[char_num][j][3] = 0; - - f40_e_ptr = (byte *)&g_font40_even_bits[char_num][j][0]; - f40_o_ptr = (byte *)&g_font40_odd_bits[char_num][j][0]; - - f80_0_ptr = (byte *)&g_font80_off0_bits[char_num][j][0]; - f80_1_ptr = (byte *)&g_font80_off1_bits[char_num][j][0]; - f80_2_ptr = (byte *)&g_font80_off2_bits[char_num][j][0]; - f80_3_ptr = (byte *)&g_font80_off3_bits[char_num][j][0]; - - for(k = 0; k < 7; k++) { - pix = 0; - if(val0 & mask) { - pix = 0xf; - } - - f40_e_ptr[2*k] = pix; - f40_e_ptr[2*k+1] = pix; - - f40_o_ptr[2*k+2] = pix; - f40_o_ptr[2*k+3] = pix; - - f80_0_ptr[k] = pix; - f80_1_ptr[k+1] = pix; - f80_2_ptr[k+2] = pix; - f80_3_ptr[k+3] = pix; - - mask = mask >> 1; - } - } - } -} - - -/* Helper routine for the *driver.c files */ - -void -video_get_kimage(Kimage *kimage_ptr, int extend_info, int depth, int mdepth) -{ - int width; - int height; - - width = A2_WINDOW_WIDTH; - height = A2_WINDOW_HEIGHT; - if(extend_info & 1) { - /* Border at top and bottom of screen */ - width = X_A2_WINDOW_WIDTH; - height = X_A2_WINDOW_HEIGHT - A2_WINDOW_HEIGHT + 2*8; - } - if(extend_info & 2) { - /* Border at sides of screen */ - width = BORDER_WIDTH + EFF_BORDER_WIDTH; - height = A2_WINDOW_HEIGHT; - } - - kimage_ptr->dev_handle = 0; - kimage_ptr->dev_handle2 = 0; - kimage_ptr->data_ptr = 0; - kimage_ptr->width_req = width; - kimage_ptr->width_act = width; - kimage_ptr->height = height; - kimage_ptr->depth = depth; - kimage_ptr->mdepth = mdepth; - kimage_ptr->aux_info = 0; - - x_get_kimage(kimage_ptr); -} - -void -video_get_kimages() -{ - video_get_kimage(&g_kimage_text[0], 0, 8, 8); - video_get_kimage(&g_kimage_text[1], 0, 8, 8); - video_get_kimage(&g_kimage_hires[0], 0, 8, 8); - video_get_kimage(&g_kimage_hires[1], 0, 8, 8); - video_get_kimage(&g_kimage_superhires, 0, g_screen_depth, - g_screen_mdepth); - video_get_kimage(&g_kimage_border_special, 1, g_screen_depth, - g_screen_mdepth); - video_get_kimage(&g_kimage_border_sides, 2, g_screen_depth, - g_screen_mdepth); -} - -// OG Added video_release_kimages (to match video_get_kimages) -void video_release_kimages() -{ - extern void x_release_kimage(Kimage *kimage_ptr); - - x_release_kimage(&g_kimage_text[0]); - x_release_kimage(&g_kimage_text[1]); - x_release_kimage(&g_kimage_hires[0]); - x_release_kimage(&g_kimage_hires[1]); - x_release_kimage(&g_kimage_superhires); - x_release_kimage(&g_kimage_border_special); - x_release_kimage(&g_kimage_border_sides); -} - - -void -video_convert_kimage_depth(Kimage *kim_in, Kimage *kim_out, int startx, - int starty, int width, int height) -{ - byte *indata, *inptr; - word32 *outdata32, *outptr32; - word16 *outdata16, *outptr16; - word32 *palptr; - int out_width, in_width; - int x, y; - - indata = (byte *)kim_in->data_ptr; - outdata32 = (word32 *)kim_out->data_ptr; - outdata16 = (word16 *)kim_out->data_ptr; - - if(kim_in == &g_kimage_superhires) { - palptr = &(g_palette_8to1624[0]); - } else { - palptr = &(g_a2palette_8to1624[0]); - } - if(kim_in->depth != 8) { - printf("x_convert_kimage_depth from non-8 bit depth: %p\n", - kim_in); - exit(1); - } - - out_width = kim_out->width_act; - in_width = kim_in->width_act; - indata += (starty * in_width + startx); - outdata32 += (starty * out_width + startx); - outdata16 += (starty * out_width + startx); - if(kim_out->mdepth == 16) { - for(y = 0; y < height; y++) { - outptr16 = outdata16; - inptr = indata; - for(x = 0; x < width; x++) { - *outptr16++ = palptr[*inptr++]; - } - outdata16 += out_width; - indata += in_width; - } - } else { - /* 32-bit depth */ - for(y = 0; y < height; y++) { - outptr32 = outdata32; - inptr = indata; - for(x = 0; x < width; x++) { - *outptr32++ = palptr[*inptr++]; - } - outdata32 += out_width; - indata += in_width; - } - } -} - -void -video_push_lines(Kimage *kimage_ptr, int start_line, int end_line, int left_pix, - int right_pix) -{ - int mdepth_mismatch; - int srcy; - int center = 0; // OG added variable to center screen - - //OG add null pointer check when emulator is restarted - if (!kimage_ptr) - { - printf("warning : video_push_lines(kimage_ptr=null)\n"); - return ; - } - - if(left_pix >= right_pix || left_pix < 0 || right_pix <= 0) { - halt_printf("video_push_lines: lines %d to %d, pix %d to %d\n", - start_line, end_line, left_pix, right_pix); - printf("a2_screen_buf_ch:%08x, g_full_refr:%08x\n", - g_a2_screen_buffer_changed, g_full_refresh_needed); - } - - srcy = 2*start_line; - - mdepth_mismatch = (kimage_ptr->mdepth != g_screen_mdepth); - if(mdepth_mismatch) { - /* translate from 8-bit pseudo to correct visual */ - video_convert_kimage_depth(kimage_ptr, &g_mainwin_kimage, - left_pix, srcy, (right_pix - left_pix), - 2*(end_line - start_line)); - kimage_ptr = &g_mainwin_kimage; - } - g_refresh_bytes_xfer += 2*(end_line - start_line) * - (right_pix - left_pix); - - // OG Calculating new center - if (g_cur_a2_stat & ALL_STAT_SUPER_HIRES) - center=0; - else - center=EFF_BORDER_WIDTH - BORDER_WIDTH; - - // OG shifting image to the center - x_push_kimage(kimage_ptr, g_video_act_margin_left + left_pix + center, - g_video_act_margin_top + srcy, left_pix, srcy, - (right_pix - left_pix), 2*(end_line - start_line)); -} - -void -video_push_border_sides_lines(int src_x, int dest_x, int width, int start_line, - int end_line) -{ - Kimage *kimage_ptr; - int srcy; - - if(start_line < 0 || width < 0) { - return; - } - -#if 0 - printf("push_border_sides lines:%d-%d from %d to %d\n", - start_line, end_line, end_x - width, end_x); -#endif - kimage_ptr = &g_kimage_border_sides; - g_refresh_bytes_xfer += 2 * (end_line - start_line) * width; - - srcy = 2 * start_line; - - // Adjust dext_x to accound for changed margins - dest_x = dest_x + g_video_act_margin_left - BASE_MARGIN_LEFT; - if(dest_x < BASE_MARGIN_LEFT) { - src_x = src_x + g_video_act_margin_left - BASE_MARGIN_LEFT; - // Don't adjust src_x if doing right border - } - if(dest_x < 0) { - width = width + dest_x; - src_x = src_x - dest_x; - dest_x = 0; - } - if(src_x < 0) { - width = width + src_x; - dest_x = dest_x - src_x; - src_x = 0; - } - if(dest_x + width > g_video_act_width) { - width = g_video_act_width - dest_x; - } - if(width > 0) { - x_push_kimage(kimage_ptr, dest_x, g_video_act_margin_top + srcy, - src_x, srcy, width, 2*(end_line - start_line)); - } -} - -void -video_push_border_sides() -{ - int old_width; - int prev_line; - int width; - int mode; - int i; - -#if 0 - printf("refresh border sides!\n"); -#endif - - /* redraw left sides */ - // OG Left side can alos be "jagged" as a2 screen is now being centered - - //video_push_border_sides_lines(0, 0, BORDER_WIDTH, 0, 200); - - prev_line = -1; - old_width = -1; - for(i = 0; i < 200; i++) { - mode = (g_a2_line_stat[i] >> 4) & 7; - width = EFF_BORDER_WIDTH; - if(mode == MODE_SUPER_HIRES) { - width = BORDER_WIDTH; - } - if(width != old_width) { - video_push_border_sides_lines(BORDER_WIDTH, - 0, old_width, - prev_line, i); - prev_line = i; - old_width = width; - } - } - video_push_border_sides_lines(0/*BORDER_WIDTH*/, - 0, old_width, prev_line, 200); - - /* right side--can be "jagged" */ - prev_line = -1; - old_width = -1; - for(i = 0; i < 200; i++) { - mode = (g_a2_line_stat[i] >> 4) & 7; - width = EFF_BORDER_WIDTH; - if(mode == MODE_SUPER_HIRES) { - width = BORDER_WIDTH; - } - if(width != old_width) { - video_push_border_sides_lines(BORDER_WIDTH, - X_A2_WINDOW_WIDTH - old_width, old_width, - prev_line, i); - prev_line = i; - old_width = width; - } - } - - video_push_border_sides_lines(0/*BORDER_WIDTH*/, - X_A2_WINDOW_WIDTH - old_width, old_width, prev_line, 200); -} - -void -video_push_border_special() -{ - Kimage *kimage_ptr; - int width, height; - int src_x, src_y; - int dest_x, dest_y; - - kimage_ptr = &g_kimage_border_special; - width = g_video_act_width; - g_refresh_bytes_xfer += width * (BASE_MARGIN_TOP + BASE_MARGIN_BOTTOM); - - // First do bottom border: dest_x from 0 to 640+MARGIN_LEFT+MARGIN_RIGHT - // and dest_y of BASE_MARGIN_BOTTOM starting at TOP+A2_HEIGHT - // src_x is dest_x, and src_y is 0. - dest_y = g_video_act_margin_top + A2_WINDOW_HEIGHT; - height = g_video_act_margin_bottom; - src_y = BASE_MARGIN_BOTTOM - height; - - dest_x = 0; - src_x = BASE_MARGIN_LEFT - g_video_act_margin_left; - - if(width > 0 && height > 0) { - x_push_kimage(kimage_ptr, dest_x, dest_y, src_x, src_y, - width, height); - } - - // Then fix top border: dest_x from 0 to 640+LEFT+RIGHT and - // dest_y from 0 to TOP. src_x is dest_x, but src_y is - // BOTTOM to BOTTOM+TOP - // Just use src_x and dest_x from earlier. - height = g_video_act_margin_top; - dest_y = 0; - src_y = BASE_MARGIN_BOTTOM; - if(width > 0 && height > 0) { - x_push_kimage(kimage_ptr, dest_x, dest_y, src_x, src_y, - width, height); - } -} - -// OG Added window ratio support -extern int x_calc_ratio(float ratiox,float ratioy); - -void -video_push_kimages() -{ - register word32 start_time; - register word32 end_time; - Kimage *last_kim, *cur_kim; - word32 mask; - int start; - int line; - int left_pix, right_pix; - int left, right; - int line_div8; - float ratiox = 0,ratioy = 0; - - if(g_border_sides_refresh_needed) { - g_border_sides_refresh_needed = 0; - video_push_border_sides(); - } - if(g_border_special_refresh_needed) { - g_border_special_refresh_needed = 0; - video_push_border_special(); - } - - if(g_a2_screen_buffer_changed == 0) { - return; - } - - GET_ITIMER(start_time); - - if (x_calc_ratio(ratiox,ratioy)) - { - line = 0; - while (1) - { - start = line; - cur_kim = g_a2_line_kimage[line]; - while(line < 200 && g_a2_line_kimage[line] == cur_kim) line++; - if (cur_kim == &g_kimage_superhires) - right = 640; - else - right = 560; - - video_push_lines(cur_kim, start, line,0,right); - if (line==200) break; - } - - } - else - { - start = -1; - last_kim = (Kimage *)-1; - cur_kim = (Kimage *)0; - - left_pix = 640; - right_pix = 0; - - for(line = 0; line < 200; line++) { - line_div8 = line >> 3; - mask = 1 << (line_div8); - cur_kim = g_a2_line_kimage[line]; - if((g_full_refresh_needed & mask) != 0) { - left = 0; - right = 560; - if(cur_kim == &g_kimage_superhires) { - right = 640; - } - } else { - left = g_a2_line_left_edge[line]; - right = g_a2_line_right_edge[line]; - } - - if(!(g_a2_screen_buffer_changed & mask) || (left > right)) { - /* No need to update this line */ - /* Refresh previous chunks of lines, if any */ - if(start >= 0) { - video_push_lines(last_kim, start, line, - left_pix, right_pix); - start = -1; - left_pix = 640; - right_pix = 0; - } - } else { - /* Need to update this line */ - if(start < 0) { - start = line; - last_kim = cur_kim; - } - if(cur_kim != last_kim) { - /* do the refresh */ - video_push_lines(last_kim, start, line, - left_pix, right_pix); - last_kim = cur_kim; - start = line; - left_pix = left; - right_pix = right; - } - left_pix = MIN(left, left_pix); - right_pix = MAX(right, right_pix); - } - } - - if(start >= 0) { - video_push_lines(last_kim, start, 200, left_pix, right_pix); - } - } - - g_a2_screen_buffer_changed = 0; - g_full_refresh_needed = 0; - - x_push_done(); - - GET_ITIMER(end_time); - - g_cycs_in_xredraw += (end_time - start_time); -} - - -void -video_update_color_raw(int col_num, int a2_color) -{ - word32 tmp; - int red, green, blue; - int newred, newgreen, newblue; - - red = (a2_color >> 8) & 0xf; - green = (a2_color >> 4) & 0xf; - blue = (a2_color) & 0xf; - red = ((red << 4) + red); - green = ((green << 4) + green); - blue = ((blue << 4) + blue); - - newred = red >> g_red_right_shift; - newgreen = green >> g_green_right_shift; - newblue = blue >> g_blue_right_shift; - - tmp = ((newred & g_red_mask) << g_red_left_shift) + - ((newgreen & g_green_mask) << g_green_left_shift) + - ((newblue & g_blue_mask) << g_blue_left_shift); - g_palette_8to1624[col_num] = tmp; - - x_update_color(col_num, red, green, blue, tmp); -} - -void -video_update_color_array(int col_num, int a2_color) -{ - int palette; - int full; - - if(col_num >= 256 || col_num < 0) { - halt_printf("video_update_color_array: col: %03x\n", col_num); - return; - } - - full = g_installed_full_superhires_colormap; - - palette = col_num >> 4; - if(!full && palette == g_a2vid_palette) { - return; - } - -#if 0 - if(g_screen_depth != 8) { - /* redraw whole superhires for now */ - g_full_refresh_needed = -1; - } -#endif - - video_update_color_raw(col_num, a2_color); -} - -void -video_update_colormap() -{ - int palette; - int full; - int i; - - full = g_installed_full_superhires_colormap; - - if(!full) { - palette = g_a2vid_palette << 4; - for(i = 0; i < 16; i++) { - video_update_color_raw(palette + i, g_lores_colors[i]); - } - x_update_physical_colormap(); - } -} - -void -video_update_status_line(int line, const char *string) -{ - char *buf; - const char *ptr; - int i; - - if(line >= MAX_STATUS_LINES || line < 0) { - printf("update_status_line: line: %d!\n", line); - exit(1); - } - - ptr = string; - buf = &(g_status_buf[line][0]); - g_status_ptrs[line] = buf; - for(i = 0; i < STATUS_LINE_LENGTH; i++) { - if(*ptr) { - buf[i] = *ptr++; - } else { - buf[i] = ' '; - } - } - - buf[STATUS_LINE_LENGTH] = 0; -} - -void -video_show_debug_info() -{ - word32 tmp1; - - printf("g_cur_dcycs: %f, last_vbl: %f\n", g_cur_dcycs, - g_last_vbl_dcycs); - tmp1 = get_lines_since_vbl(g_cur_dcycs); - printf("lines since vbl: %06x\n", tmp1); - printf("Last line updated: %d\n", g_vid_update_last_line); -} - -word32 -float_bus(double dcycs) -{ - word32 val; - int lines_since_vbl; - int line, eff_line, line24; - int all_stat; - int byte_offset; - int hires, page2; - int addr; - - lines_since_vbl = get_lines_since_vbl(dcycs); - -/* For floating bus, model hires style: Visible lines 0-191 are simply the */ -/* data being displayed at that time. Lines 192-255 are lines 0 - 63 again */ -/* and lines 256-261 are lines 58-63 again */ -/* For each line, figure out starting byte at -25 mod 128 bytes from this */ -/* line's start */ -/* This emulates an Apple II style floating bus. A reall IIgs does not */ -/* drive anything meaningful during the 25 horizontal blanking lines, */ -/* nor during veritical blanking. The data seems to be 0 or related to */ -/* the instruction fetches on a real IIgs during blankings */ - - line = lines_since_vbl >> 8; - byte_offset = lines_since_vbl & 0xff; - /* byte offset is from 0 to 65, where the visible screen is drawn */ - /* from 25 to 65 */ - - eff_line = line; - if(line >= 192) { - eff_line = line - 192; - if(line >= 256) { - eff_line = line - 262 + 64; - } - } - all_stat = g_cur_a2_stat; - hires = all_stat & ALL_STAT_HIRES; - if((all_stat & ALL_STAT_MIX_T_GR) && (line >= 160)) { - hires = 0; - } - page2 = EXTRU(all_stat, 31 - BIT_ALL_STAT_PAGE2, 1); - if(all_stat & ALL_STAT_ST80) { - page2 = 0; - } - - line24 = (eff_line >> 3) & 0x1f; - addr = g_screen_index[line24] & 0x3ff; - addr = (addr & 0x380) + (((addr & 0x7f) - 25 + byte_offset) & 0x7f); - if(hires) { - addr = 0x2000 + addr + ((eff_line & 7) << 10) + (page2 << 13); - } else { - addr = 0x400 + addr + (page2 << 10); - } - - val = g_slow_memory_ptr[addr]; - if(byte_offset < 10) { - /* Bob Bishop's sample program seems to get confused by */ - /* these bytes--so mask some off to prevent seeing some */ - val = 0; - } -#if 0 - printf("For %04x (%d) addr=%04x, val=%02x, dcycs:%9.2f\n", - lines_since_vbl, eff_line, addr, val, dcycs - g_last_vbl_dcycs); -#endif - return val; -} diff --git a/.svn/pristine/02/024ac9e428369977586a16832d535248f30140d4.svn-base b/.svn/pristine/02/024ac9e428369977586a16832d535248f30140d4.svn-base deleted file mode 100644 index b84f665..0000000 --- a/.svn/pristine/02/024ac9e428369977586a16832d535248f30140d4.svn-base +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/local/bin/perl -w - -# $KmKId: make_inst,v 1.5 2002-11-07 08:18:16-08 kadickey Exp $ - -$is_c = shift; -$repl = shift; - -$count = 0; - -while(<>) { - $line = $_; - if(/^inst(..)_SYM(.*)$/) { - if($is_c eq "c") { - if($count > 0) { - printf("\tbreak;\n"); - } - print "case 0x$1: $2\n"; - $count++; - } else { - print "\t.align\t8\n"; - print "inst" . "$1" . "_$repl" . "$2\n"; - } - } elsif(/^(.*)_SYM(.*)$/) { - print "$1" . "_$repl" . "$2\n"; - } else { - print $line; - } -} -# if(/^inst(..)_SYM (.*)$/) { -# print "OPCODE($1) /* $2 */\n"; -# } else if(/^( diff --git a/.svn/pristine/02/0294b7959fcd08864bffac3c7c6e470f8b1614a4.svn-base b/.svn/pristine/02/0294b7959fcd08864bffac3c7c6e470f8b1614a4.svn-base deleted file mode 100644 index 385b8a9..0000000 --- a/.svn/pristine/02/0294b7959fcd08864bffac3c7c6e470f8b1614a4.svn-base +++ /dev/null @@ -1,241 +0,0 @@ - ----- - Developing GSport - ----- - David Schmidt (david__schmidt at users dot souceforge dot net) - ----- - -Developing GSport - - Information, mostly concerning building, about various platforms: - -* General Build Instructions - - You need to build with a <<>> utility. -There's a default Makefile, which should work for nearly any environment. -The Makefile includes a file called <<>> which defines the platform- -dependent variables. You need to make <<>> point to (or be) the appropriate -file for your machine. - -* Win32 - - There is a different port of KEGS by Chea Chee Keong (akilgard) called -KEGS32. It was originally available from {{{http://web.archive.org/web/20071107082448/http://www.geocities.com/akilgard/kegs32/}http://www.geocities.com/akilgard/kegs32}}, -but geocities has since closed. -The Win32 code in GSport is leveraged from KEGS32. - - GSport can be compiled with {{{http://www.mingw.org/}Mingw}} -and {{{http://www.cygwin.com/}Cygwin}} as well as via standard Microsoft compiler suites. - - In order to compile with Cygwin: - ------------------- -cd into the src/ directory -rm vars -ln -s vars_win32 vars -make ------------------- - - You need to have a ROM file (named -ROM, ROM.01, or ROM.03) in the same directory as the resulting executable. - - To quit, either click the close box, or force quit the application. -You can also middle-click (if you have a 3-button mouse) or -Shift-F6 to get the debugger in the terminal window, and then type "q". - -* Mac OS X - - Use the <<>> file: - -------------------------------------- -cd into the src/ directory -rm vars; ln -s vars_mac vars -make -------------------------------------- - - After the <<>> has finished, it will create the application <<>>. - -* X86 Linux - - Use the <<>> file: - -------------------------------------- -cd into the src/ directory -rm vars; ln -s vars_x86linux vars -make -------------------------------------- - - The resulting executable is called <<>>. - - The build scripts assume perl is in your path. If it is somewhere else, -you need to edit the "PERL = perl" line in the vars file and make it point -to the correct place. - - For audio, GSport needs access to <<>>. If the permissions do not allow -GSport to access <<>>, it can fail with a cryptic error message. As root, -just do: <<>> . - - If you do not have the <<>> device, GSport will not start unless you -tell it to disable audio with the following command-line argument: -<<<./gsportx -audio 0>>> - -* PowerPC Linux - - Use the <<>> file: - -------------- -cd into the src/ directory -rm vars; ln -s vars_linuxppc vars -make ---------- - - The build scripts assume perl is in your path. If it is somewhere else, -you need to edit the "PERL = perl" line in the vars file and make it point -to the correct place. - - Audio is currently disabled by default, but you can try turning it on -by runnning the command: <<>>. It sounds horrible, but sounds do -come out. - -* Raspberry Pi - - At first, you may want to update/upgrade your base OS: - - * <<>> - - * <<>> - - [] - - Then, add a line with the value <<>> to the <<>> file and reboot to enable sound. - Change the permissions to the resulting device <<>> (after rebooting): <<>> - - Depending on the version of your OS, the following packages may need to be installed: - - * xfonts-base: <<>> - - * libX11-dev: <<>> - - * libxext-dev: <<>> - - * libpcap-dev: <<>> - - [] - - - Use the <<>> file for compilation: - -------------- -cd into the src/ directory -rm vars; ln -s vars_pi vars -make ---------- - - The resulting executable is called <<>>. - -* Solaris SPARC - - Use the <<>> file: - -------------------------------------- -cd into the src/ directory -rm vars; ln -s vars_solaris vars -make -------------------------------------- - - The build scripts assume perl is in your path. If it is somewhere else, -you need to edit the "PERL = perl" line in the vars file and make it point -to the correct place. - - Audio is currently disabled by default, but you can try turning it on -by runnning the command: <<>> - -* Solaris x86 - - Use the <<>> file: - -------------------------------------- -cd into the src/ directory -rm vars; ln -s vars_x86solaris vars -make -------------------------------------- - - The build scripts assume perl is in your path. If it is somewhere else, -you need to edit the "PERL = perl" line in the vars file and make it point -to the correct place. - - Audio is currently disabled by default, but you can try turning it on -by runnning the command: <<>> - -* Other platforms - "C" - - If you are porting to an X-windows and Unix-based machine, it should be -easy. Start with <<>> if you are a little-endian machine, or -<<>> if you are big endian. Don't define <<<-DGSPORT_LITTLE_ENDIAN>>> -unless your processor is little-endian (Alpha, x86, Mac Intel). Mac PPC, Sun, MIPS, -HP, Motorola, and IBM Power are big-endian. - -* Under Development - Autotools Integration - - With the autotools branch, the following sequence will -execute the build from the main directory: - ----------------- -autoreconf -automake --add-missing -autoheader -autoconf -sh configure -make ----------------- - -* Extended {Capabilities} by Platform - - All platforms have a common core of capabilities: - - * Base IIgs emulation - - * Ensoniq sound emulation - - * Virtual serial ports mapped to real hardware or IP-emulated ports - - * Text and graphical printers - - [] - - The table below notes where the various builds differ in the support they have in the - code base now for various extended capabilities. - Turning the "No" boxes into "Yes" are all opportunities for contributions! - -*-----:------:------:------+ -|| <> || <> || <> || <> -*-----:------:------:------+ - Linux | No | No | No | -*-----:------:------:------+ - Macintosh | No | No | Yes | -*-----:------:------:------+ - Windows | Yes | Yes | Yes | -*-----:------:------:------+ - -[] - -* Building Graphical Printer Support - - Until graphical parallel printer support is generally integrated into all builds, the following work needs to be done: - - * Install Simple DirectMedia Layer ({{{http://www.libsdl.org/}SDL}}) and Freetype in your build environment - you'll need to link to their libraries - - * Add the <<<-DHAVE_SDL>>> option to your <<>> and add the same (perhaps to a new) <<>> in your <<>> file - - * Add something like <<<-I/usr/include/freetype2>>> and <<<-I/usr/include/SDL>>> options to your <<>> and add the same (perhaps for a new) <<>> in your <<>> file to point to the SDL and Freetype include files - - * Include SDL and Freetype libraries to <<>> in your <<>> file (i.e. <<>>) - - * Include the Win32 common dialog library to <<>> as part of your final linkage if you're on Windows (i.e. <<>>) - - * After building, you'll need the file <<>> in the same directory that <<>> is found - - * You'll probably want a monospaced TrueType font file easily accessible to add as part of the GSport configuration - - * Run through the emulated printer {{{./printer.html}configuration}} steps - - [] \ No newline at end of file diff --git a/.svn/pristine/04/04cf089f3dd6dc0a4dc1cc06ed55cc6b1f49107a.svn-base b/.svn/pristine/04/04cf089f3dd6dc0a4dc1cc06ed55cc6b1f49107a.svn-base deleted file mode 100644 index 0b10e54..0000000 --- a/.svn/pristine/04/04cf089f3dd6dc0a4dc1cc06ed55cc6b1f49107a.svn-base +++ /dev/null @@ -1,76 +0,0 @@ -/* - -make_inst.cmd: - -Translation of the make_inst perl script and makefile to rexx for OS/2 - -8inst_s.h: instable.h - $(PERL) make_inst s 8 instable.h > 8inst_s.h - -16inst_s.h: instable.h - $(PERL) make_inst s 16 instable.h > 16inst_s.h - -8inst_c.h: instable.h - $(PERL) make_inst c 8 instable.h > 8inst_c.h - -16inst_c.h: instable.h - $(PERL) make_inst c 16 instable.h > 16inst_c.h - -*/ - -count = 0; - -FileNameIn = "..\..\instable.h" -FileNameOut8s = "..\..\8inst_s.h" -FileNameOut8c = "..\..\8inst_c.h" -FileNameOut16s = "..\..\16inst_s.h" -FileNameOut16c = "..\..\16inst_c.h" - -DEL FileNameOut8s -DEL FileNameOut8c -DEL FileNameOut16s -DEL FileNameOut16c -crud = STREAM(FileNameIn,"C","open read") -crud = STREAM(FileNameOut8s,"C","open write") -crud = STREAM(FileNameOut8c,"C","open write") -crud = STREAM(FileNameOut16s,"C","open write") -crud = STREAM(FileNameOut16c,"C","open write") - -Do while (STREAM(FileNameIn,"S") = "READY") - line = LINEIN(FileNameIn); - - SymPos = POS("_SYM",line) - if (SymPos > 0) Then - Do - if POS("inst",line) > 0 Then - Do - if (count > 0) Then - Do - crud = LINEOUT(FileNameOut8c," break;"); - crud = LINEOUT(FileNameOut16c," break;"); - End - newline = "case 0x"SUBSTR(line,SymPos-2,2)": "SUBSTR(line,SymPos+4) - crud = LINEOUT(FileNameOut8c, newline); - crud = LINEOUT(FileNameOut16c, newline); - count = count + 1; - End - Else - Do - crud = LINEOUT(FileNameOut8s,SUBSTR(line,1,SymPos)" . "8" . "SUBSTR(line,SymPos+4)); - crud = LINEOUT(FileNameOut16s,SUBSTR(line,1,SymPos)" . "16" . "SUBSTR(line,SymPos+4)); - End - End - Else - Do - crud = LINEOUT(FileNameOut8c,line); - crud = LINEOUT(FileNameOut8s,line); - crud = LINEOUT(FileNameOut16c,line); - crud = LINEOUT(FileNameOut16s,line); - End -End -say "Lines read: "Count -crud = STREAM(FileNameIn,"C","close") -crud = STREAM(FileNameOut8s,"C","close") -crud = STREAM(FileNameOut8c,"C","close") -crud = STREAM(FileNameOut16s,"C","close") -crud = STREAM(FileNameOut16c,"C","close") diff --git a/.svn/pristine/06/061799371e079bcd0d1852044309e04ff384eb45.svn-base b/.svn/pristine/06/061799371e079bcd0d1852044309e04ff384eb45.svn-base deleted file mode 100644 index 532739c..0000000 --- a/.svn/pristine/06/061799371e079bcd0d1852044309e04ff384eb45.svn-base +++ /dev/null @@ -1,71 +0,0 @@ -/* - -make_inst.cmd: - -Translation of the make_size perl script and makefile to rexx for OS/2 - -size_c.h: size_tab.h - $(PERL) make_size c size_tab.h > size_c.h - -size_s.h: size_tab.h - $(PERL) make_size s size_tab.h > size_s.h - -8size_s.h: size_tab.h - $(PERL) make_size 8 size_tab.h > 8size_s.h - -16size_s.h: size_tab.h - $(PERL) make_size 16 size_tab.h > 16size_s.h - -*/ - -FileNameIn = "..\..\size_tab.h" -FileNameOuts = "..\..\size_s.h" -FileNameOutc = "..\..\size_c.h" -FileNameOut8 = "..\..\8size_s.h" -FileNameOut16 = "..\..\16size_s.h" - -DEL FileNameOuts -DEL FileNameOutc -DEL FileNameOut8 -DEL FileNameOut16 -crud = STREAM(FileNameIn,"C","open read") -crud = STREAM(FileNameOuts,"C","open write") -crud = STREAM(FileNameOutc,"C","open write") -crud = STREAM(FileNameOut8,"C","open write") -crud = STREAM(FileNameOut16,"C","open write") - -Do while (STREAM(FileNameIn,"S") = "READY") - line = LINEIN(FileNameIn); - - SymPos = POS("_SYM",line) - if (SymPos > 0) Then - Do - newline = " .byte 0x"SUBSTR(line,SymPos+5,1)", /* "SUBSTR(line,SymPos-2,2)" */ "SUBSTR(line,SymPos+6) - crud = LINEOUT(FileNameOuts, newline); - newline = " 0x"SUBSTR(line,SymPos+5,1)", /* "SUBSTR(line,SymPos-2,2)" */ "SUBSTR(line,SymPos+6) - crud = LINEOUT(FileNameOutc, newline); - newline = " .word inst"SUBSTR(line,SymPos-2,2)" . 8 . /*"SUBSTR(line,SymPos+5,1)"*/ "SUBSTR(line,SymPos+6) - crud = LINEOUT(FileNameOut8, newline); - newline = " .word inst"SUBSTR(line,SymPos-2,2)" . 16 . /*"SUBSTR(line,SymPos+5,1)"*/ "SUBSTR(line,SymPos+6) - crud = LINEOUT(FileNameOut16, newline); - End - Else if (POS(".block",line) > 0) Then - Do - crud = LINEOUT(FileNameOuts, ""); - crud = LINEOUT(FileNameOutc, ""); - crud = LINEOUT(FileNameOut8, line); - crud = LINEOUT(FileNameOut16, line); - End - Else - Do - crud = LINEOUT(FileNameOuts, line); - crud = LINEOUT(FileNameOutc, line); - crud = LINEOUT(FileNameOut8, line); - crud = LINEOUT(FileNameOut16, line); - End -End -crud = STREAM(FileNameIn,"C","close") -crud = STREAM(FileNameOuts,"C","close") -crud = STREAM(FileNameOutc,"C","close") -crud = STREAM(FileNameOut8,"C","close") -crud = STREAM(FileNameOut16,"C","close") diff --git a/.svn/pristine/09/09f94df09b97304e0c03fbdfa9da944e6d4f5d56.svn-base b/.svn/pristine/09/09f94df09b97304e0c03fbdfa9da944e6d4f5d56.svn-base deleted file mode 100644 index 51f9ecb..0000000 --- a/.svn/pristine/09/09f94df09b97304e0c03fbdfa9da944e6d4f5d56.svn-base +++ /dev/null @@ -1,523 +0,0 @@ -/*- - * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from the Stanford/CMU enet packet filter, - * (net/enet.c) distributed as part of 4.3BSD, and code contributed - * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence - * Berkeley Laboratory. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)bpf.h 7.1 (Berkeley) 5/7/91 - * - * @(#) $Header$ (LBL) - */ - -#ifndef BPF_MAJOR_VERSION - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _MSC_VER -#include -typedef unsigned int u_int; -typedef unsigned char u_char; -typedef unsigned short u_short; -#endif - -/* BSD style release date */ -#define BPF_RELEASE 199606 - -typedef int bpf_int32; -typedef u_int bpf_u_int32; - -/* - * Alignment macros. BPF_WORDALIGN rounds up to the next - * even multiple of BPF_ALIGNMENT. - */ -#ifndef __NetBSD__ -#define BPF_ALIGNMENT sizeof(bpf_int32) -#else -#define BPF_ALIGNMENT sizeof(long) -#endif -#define BPF_WORDALIGN(x) (((x)+(BPF_ALIGNMENT-1))&~(BPF_ALIGNMENT-1)) - -#define BPF_MAXINSNS 512 -#define BPF_MAXBUFSIZE 0x8000 -#define BPF_MINBUFSIZE 32 - -/* - * Structure for BIOCSETF. - */ -struct bpf_program { - u_int bf_len; - struct bpf_insn *bf_insns; -}; - -/* - * Struct returned by BIOCGSTATS. - */ -struct bpf_stat { - u_int bs_recv; /* number of packets received */ - u_int bs_drop; /* number of packets dropped */ -}; - -/* - * Struct return by BIOCVERSION. This represents the version number of - * the filter language described by the instruction encodings below. - * bpf understands a program iff kernel_major == filter_major && - * kernel_minor >= filter_minor, that is, if the value returned by the - * running kernel has the same major number and a minor number equal - * equal to or less than the filter being downloaded. Otherwise, the - * results are undefined, meaning an error may be returned or packets - * may be accepted haphazardly. - * It has nothing to do with the source code version. - */ -struct bpf_version { - u_short bv_major; - u_short bv_minor; -}; -/* Current version number of filter architecture. */ -#define BPF_MAJOR_VERSION 1 -#define BPF_MINOR_VERSION 1 - -/* - * BPF ioctls - * - * The first set is for compatibility with Sun's pcc style - * header files. If your using gcc, we assume that you - * have run fixincludes so the latter set should work. - */ -#if (defined(sun) || defined(ibm032)) && !defined(__GNUC__) -#define BIOCGBLEN _IOR(B,102, u_int) -#define BIOCSBLEN _IOWR(B,102, u_int) -#define BIOCSETF _IOW(B,103, struct bpf_program) -#define BIOCFLUSH _IO(B,104) -#define BIOCPROMISC _IO(B,105) -#define BIOCGDLT _IOR(B,106, u_int) -#define BIOCGETIF _IOR(B,107, struct ifreq) -#define BIOCSETIF _IOW(B,108, struct ifreq) -#define BIOCSRTIMEOUT _IOW(B,109, struct timeval) -#define BIOCGRTIMEOUT _IOR(B,110, struct timeval) -#define BIOCGSTATS _IOR(B,111, struct bpf_stat) -#define BIOCIMMEDIATE _IOW(B,112, u_int) -#define BIOCVERSION _IOR(B,113, struct bpf_version) -#define BIOCSTCPF _IOW(B,114, struct bpf_program) -#define BIOCSUDPF _IOW(B,115, struct bpf_program) -#else -#define BIOCGBLEN _IOR('B',102, u_int) -#define BIOCSBLEN _IOWR('B',102, u_int) -#define BIOCSETF _IOW('B',103, struct bpf_program) -#define BIOCFLUSH _IO('B',104) -#define BIOCPROMISC _IO('B',105) -#define BIOCGDLT _IOR('B',106, u_int) -#define BIOCGETIF _IOR('B',107, struct ifreq) -#define BIOCSETIF _IOW('B',108, struct ifreq) -#define BIOCSRTIMEOUT _IOW('B',109, struct timeval) -#define BIOCGRTIMEOUT _IOR('B',110, struct timeval) -#define BIOCGSTATS _IOR('B',111, struct bpf_stat) -#define BIOCIMMEDIATE _IOW('B',112, u_int) -#define BIOCVERSION _IOR('B',113, struct bpf_version) -#define BIOCSTCPF _IOW('B',114, struct bpf_program) -#define BIOCSUDPF _IOW('B',115, struct bpf_program) -#endif - -/* - * Structure prepended to each packet. - */ -struct bpf_hdr { - struct timeval bh_tstamp; /* time stamp */ - bpf_u_int32 bh_caplen; /* length of captured portion */ - bpf_u_int32 bh_datalen; /* original length of packet */ - u_short bh_hdrlen; /* length of bpf header (this struct - plus alignment padding) */ -}; -/* - * Because the structure above is not a multiple of 4 bytes, some compilers - * will insist on inserting padding; hence, sizeof(struct bpf_hdr) won't work. - * Only the kernel needs to know about it; applications use bh_hdrlen. - */ -#if defined(KERNEL) || defined(_KERNEL) -#define SIZEOF_BPF_HDR 18 -#endif - -/* - * Data-link level type codes. - */ - -/* - * These are the types that are the same on all platforms; on other - * platforms, a should be supplied that defines the additional - * DLT_* codes appropriately for that platform (the BSDs, for example, - * should not just pick up this version of "bpf.h"; they should also define - * the additional DLT_* codes used by their kernels, as well as the values - * defined here - and, if the values they use for particular DLT_ types - * differ from those here, they should use their values, not the ones - * here). - */ -#define DLT_NULL 0 /* no link-layer encapsulation */ -#define DLT_EN10MB 1 /* Ethernet (10Mb) */ -#define DLT_EN3MB 2 /* Experimental Ethernet (3Mb) */ -#define DLT_AX25 3 /* Amateur Radio AX.25 */ -#define DLT_PRONET 4 /* Proteon ProNET Token Ring */ -#define DLT_CHAOS 5 /* Chaos */ -#define DLT_IEEE802 6 /* IEEE 802 Networks */ -#define DLT_ARCNET 7 /* ARCNET, with BSD-style header */ -#define DLT_SLIP 8 /* Serial Line IP */ -#define DLT_PPP 9 /* Point-to-point Protocol */ -#define DLT_FDDI 10 /* FDDI */ - -/* - * These are values from the traditional libpcap "bpf.h". - * Ports of this to particular platforms should replace these definitions - * with the ones appropriate to that platform, if the values are - * different on that platform. - */ -#define DLT_ATM_RFC1483 11 /* LLC/SNAP encapsulated atm */ -#define DLT_RAW 12 /* raw IP */ - -/* - * These are values from BSD/OS's "bpf.h". - * These are not the same as the values from the traditional libpcap - * "bpf.h"; however, these values shouldn't be generated by any - * OS other than BSD/OS, so the correct values to use here are the - * BSD/OS values. - * - * Platforms that have already assigned these values to other - * DLT_ codes, however, should give these codes the values - * from that platform, so that programs that use these codes will - * continue to compile - even though they won't correctly read - * files of these types. - */ -#ifdef __NetBSD__ -#ifndef DLT_SLIP_BSDOS -#define DLT_SLIP_BSDOS 13 /* BSD/OS Serial Line IP */ -#define DLT_PPP_BSDOS 14 /* BSD/OS Point-to-point Protocol */ -#endif -#else -#define DLT_SLIP_BSDOS 15 /* BSD/OS Serial Line IP */ -#define DLT_PPP_BSDOS 16 /* BSD/OS Point-to-point Protocol */ -#endif - -#define DLT_ATM_CLIP 19 /* Linux Classical-IP over ATM */ - -/* - * These values are defined by NetBSD; other platforms should refrain from - * using them for other purposes, so that NetBSD savefiles with link - * types of 50 or 51 can be read as this type on all platforms. - */ -#define DLT_PPP_SERIAL 50 /* PPP over serial with HDLC encapsulation */ -#define DLT_PPP_ETHER 51 /* PPP over Ethernet */ - -/* - * Values between 100 and 103 are used in capture file headers as - * link-layer types corresponding to DLT_ types that differ - * between platforms; don't use those values for new DLT_ new types. - */ - -/* - * This value was defined by libpcap 0.5; platforms that have defined - * it with a different value should define it here with that value - - * a link type of 104 in a save file will be mapped to DLT_C_HDLC, - * whatever value that happens to be, so programs will correctly - * handle files with that link type regardless of the value of - * DLT_C_HDLC. - * - * The name DLT_C_HDLC was used by BSD/OS; we use that name for source - * compatibility with programs written for BSD/OS. - * - * libpcap 0.5 defined it as DLT_CHDLC; we define DLT_CHDLC as well, - * for source compatibility with programs written for libpcap 0.5. - */ -#define DLT_C_HDLC 104 /* Cisco HDLC */ -#define DLT_CHDLC DLT_C_HDLC - -#define DLT_IEEE802_11 105 /* IEEE 802.11 wireless */ - -/* - * 106 is reserved for Linux Classical IP over ATM; it's like DLT_RAW, - * except when it isn't. (I.e., sometimes it's just raw IP, and - * sometimes it isn't.) We currently handle it as DLT_LINUX_SLL, - * so that we don't have to worry about the link-layer header.) - */ - -/* - * Frame Relay; BSD/OS has a DLT_FR with a value of 11, but that collides - * with other values. - * DLT_FR and DLT_FRELAY packets start with the Q.922 Frame Relay header - * (DLCI, etc.). - */ -#define DLT_FRELAY 107 - -/* - * OpenBSD DLT_LOOP, for loopback devices; it's like DLT_NULL, except - * that the AF_ type in the link-layer header is in network byte order. - * - * OpenBSD defines it as 12, but that collides with DLT_RAW, so we - * define it as 108 here. If OpenBSD picks up this file, it should - * define DLT_LOOP as 12 in its version, as per the comment above - - * and should not use 108 as a DLT_ value. - */ -#define DLT_LOOP 108 - -/* - * Values between 109 and 112 are used in capture file headers as - * link-layer types corresponding to DLT_ types that might differ - * between platforms; don't use those values for new DLT_ types - * other than the corresponding DLT_ types. - */ - -/* - * This is for Linux cooked sockets. - */ -#define DLT_LINUX_SLL 113 - -/* - * Apple LocalTalk hardware. - */ -#define DLT_LTALK 114 - -/* - * Acorn Econet. - */ -#define DLT_ECONET 115 - -/* - * Reserved for use with OpenBSD ipfilter. - */ -#define DLT_IPFILTER 116 - -/* - * Reserved for use in capture-file headers as a link-layer type - * corresponding to OpenBSD DLT_PFLOG; DLT_PFLOG is 17 in OpenBSD, - * but that's DLT_LANE8023 in SuSE 6.3, so we can't use 17 for it - * in capture-file headers. - */ -#define DLT_PFLOG 117 - -/* - * Registered for Cisco-internal use. - */ -#define DLT_CISCO_IOS 118 - -/* - * Reserved for 802.11 cards using the Prism II chips, with a link-layer - * header including Prism monitor mode information plus an 802.11 - * header. - */ -#define DLT_PRISM_HEADER 119 - -/* - * Reserved for Aironet 802.11 cards, with an Aironet link-layer header - * (see Doug Ambrisko's FreeBSD patches). - */ -#define DLT_AIRONET_HEADER 120 - -/* - * Reserved for Siemens HiPath HDLC. - */ -#define DLT_HHDLC 121 - -/* - * This is for RFC 2625 IP-over-Fibre Channel. - * - * This is not for use with raw Fibre Channel, where the link-layer - * header starts with a Fibre Channel frame header; it's for IP-over-FC, - * where the link-layer header starts with an RFC 2625 Network_Header - * field. - */ -#define DLT_IP_OVER_FC 122 - -/* - * This is for Full Frontal ATM on Solaris with SunATM, with a - * pseudo-header followed by an AALn PDU. - * - * There may be other forms of Full Frontal ATM on other OSes, - * with different pseudo-headers. - * - * If ATM software returns a pseudo-header with VPI/VCI information - * (and, ideally, packet type information, e.g. signalling, ILMI, - * LANE, LLC-multiplexed traffic, etc.), it should not use - * DLT_ATM_RFC1483, but should get a new DLT_ value, so tcpdump - * and the like don't have to infer the presence or absence of a - * pseudo-header and the form of the pseudo-header. - */ -#define DLT_SUNATM 123 /* Solaris+SunATM */ - -/* - * Reserved as per request from Kent Dahlgren - * for private use. - */ -#define DLT_RIO 124 /* RapidIO */ -#define DLT_PCI_EXP 125 /* PCI Express */ -#define DLT_AURORA 126 /* Xilinx Aurora link layer */ - -/* - * For future use with 802.11 captures - defined by AbsoluteValue - * Systems to store a number of bits of link-layer information: - * - * http://www.shaftnet.org/~pizza/software/capturefrm.txt - * - * but could and arguably should also be used by non-AVS Linux - * 802.11 drivers and BSD drivers; that may happen in the future. - */ -#define DLT_IEEE802_11_RADIO 127 /* 802.11 plus WLAN header */ - -/* - * Reserved for the TZSP encapsulation, as per request from - * Chris Waters - * TZSP is a generic encapsulation for any other link type, - * which includes a means to include meta-information - * with the packet, e.g. signal strength and channel - * for 802.11 packets. - */ -#define DLT_TZSP 128 /* Tazmen Sniffer Protocol */ - -/* - * BSD's ARCNET headers have the source host, destination host, - * and type at the beginning of the packet; that's what's handed - * up to userland via BPF. - * - * Linux's ARCNET headers, however, have a 2-byte offset field - * between the host IDs and the type; that's what's handed up - * to userland via PF_PACKET sockets. - * - * We therefore have to have separate DLT_ values for them. - */ -#define DLT_ARCNET_LINUX 129 /* ARCNET */ - -/* - * The instruction encodings. - */ -/* instruction classes */ -#define BPF_CLASS(code) ((code) & 0x07) -#define BPF_LD 0x00 -#define BPF_LDX 0x01 -#define BPF_ST 0x02 -#define BPF_STX 0x03 -#define BPF_ALU 0x04 -#define BPF_JMP 0x05 -#define BPF_RET 0x06 -#define BPF_MISC 0x07 - -/* ld/ldx fields */ -#define BPF_SIZE(code) ((code) & 0x18) -#define BPF_W 0x00 -#define BPF_H 0x08 -#define BPF_B 0x10 -#define BPF_MODE(code) ((code) & 0xe0) -#define BPF_IMM 0x00 -#define BPF_ABS 0x20 -#define BPF_IND 0x40 -#define BPF_MEM 0x60 -#define BPF_LEN 0x80 -#define BPF_MSH 0xa0 - -/* alu/jmp fields */ -#define BPF_OP(code) ((code) & 0xf0) -#define BPF_ADD 0x00 -#define BPF_SUB 0x10 -#define BPF_MUL 0x20 -#define BPF_DIV 0x30 -#define BPF_OR 0x40 -#define BPF_AND 0x50 -#define BPF_LSH 0x60 -#define BPF_RSH 0x70 -#define BPF_NEG 0x80 -#define BPF_JA 0x00 -#define BPF_JEQ 0x10 -#define BPF_JGT 0x20 -#define BPF_JGE 0x30 -#define BPF_JSET 0x40 -#define BPF_SRC(code) ((code) & 0x08) -#define BPF_K 0x00 -#define BPF_X 0x08 - -/* ret - BPF_K and BPF_X also apply */ -#define BPF_RVAL(code) ((code) & 0x18) -#define BPF_A 0x10 - -/* misc */ -#define BPF_MISCOP(code) ((code) & 0xf8) -#define BPF_TAX 0x00 -#define BPF_TXA 0x80 - -/* - * The instruction data structure. - */ -struct bpf_insn { - u_short code; - u_char jt; - u_char jf; - bpf_int32 k; -}; - -/* - * Macros for insn array initializers. - */ -#define BPF_STMT(code, k) { (u_short)(code), 0, 0, k } -#define BPF_JUMP(code, k, jt, jf) { (u_short)(code), jt, jf, k } - -#if defined(BSD) && (defined(KERNEL) || defined(_KERNEL)) -/* - * Systems based on non-BSD kernels don't have ifnet's (or they don't mean - * anything if it is in ) and won't work like this. - */ -# if __STDC__ -extern void bpf_tap(struct ifnet *, u_char *, u_int); -extern void bpf_mtap(struct ifnet *, struct mbuf *); -extern void bpfattach(struct ifnet *, u_int, u_int); -extern void bpfilterattach(int); -# else -extern void bpf_tap(); -extern void bpf_mtap(); -extern void bpfattach(); -extern void bpfilterattach(); -# endif /* __STDC__ */ -#endif /* BSD && (_KERNEL || KERNEL) */ -#if __STDC__ || defined(__cplusplus) -extern int bpf_validate(struct bpf_insn *, int); -extern u_int bpf_filter(struct bpf_insn *, u_char *, u_int, u_int); -#else -extern int bpf_validate(); -extern u_int bpf_filter(); -#endif - -/* - * Number of scratch memory words (for BPF_LD|BPF_MEM and BPF_ST). - */ -#define BPF_MEMWORDS 16 - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/.svn/pristine/0c/0cd133a7d03f17f2d60eed4203aff0c5c8341793.svn-base b/.svn/pristine/0c/0cd133a7d03f17f2d60eed4203aff0c5c8341793.svn-base deleted file mode 100644 index f31a316..0000000 --- a/.svn/pristine/0c/0cd133a7d03f17f2d60eed4203aff0c5c8341793.svn-base +++ /dev/null @@ -1,1417 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2012 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -# if !defined(__CYGWIN__) && !defined(__POWERPC__) -/* No shared memory on Cygwin */ -# define X_SHARED_MEM -#endif /* CYGWIN */ - -#include -#include -#include -#include -#include -#include - -#ifdef X_SHARED_MEM -# include -# include -# include -#endif - -int XShmQueryExtension(Display *display); - -#include "defc.h" -#include "protos_xdriver.h" - -#define FONT_NAME_STATUS "8x13" - -extern int Verbose; - -extern int g_warp_pointer; -extern int g_screen_depth; -extern int g_force_depth; -int g_screen_mdepth = 0; - -extern int _Xdebug; - -extern int g_send_sound_to_file; - -extern int g_quit_sim_now; - -int g_has_focus = 0; -int g_auto_repeat_on = -1; -int g_x_shift_control_state = 0; - - -Display *g_display = 0; -Visual *g_vis = 0; -Window g_a2_win; -GC g_a2_winGC; -Atom WM_DELETE_WINDOW; -XFontStruct *g_text_FontSt; -Colormap g_a2_colormap = 0; -Colormap g_default_colormap = 0; -int g_needs_cmap = 0; -int g_win_status_debug = 0; // Current visibility of status lines. -int g_win_status_debug_request = 0; // Desired visibility of status lines. - -extern word32 g_red_mask; -extern word32 g_green_mask; -extern word32 g_blue_mask; -extern int g_red_left_shift; -extern int g_green_left_shift; -extern int g_blue_left_shift; -extern int g_red_right_shift; -extern int g_green_right_shift; -extern int g_blue_right_shift; - -#ifdef X_SHARED_MEM -int g_use_shmem = 1; -#else -int g_use_shmem = 0; -#endif - -extern Kimage g_mainwin_kimage; - -extern int Max_color_size; - -XColor g_xcolor_a2vid_array[256]; - -extern word32 g_palette_8to1624[256]; -extern word32 g_a2palette_8to1624[256]; - -int g_alt_left_up = 1; -int g_alt_right_up = 1; - -extern word32 g_full_refresh_needed; - -extern int g_border_sides_refresh_needed; -extern int g_border_special_refresh_needed; -extern int g_status_refresh_needed; - -extern int g_lores_colors[]; -extern int g_cur_a2_stat; - -extern int g_a2vid_palette; - -extern int g_installed_full_superhires_colormap; - -extern int g_screen_redraw_skip_amt; - -extern word32 g_a2_screen_buffer_changed; - -extern char *g_status_ptrs[MAX_STATUS_LINES]; - -Cursor g_cursor; -Pixmap g_cursor_shape; -Pixmap g_cursor_mask; - -XColor g_xcolor_black = { 0, 0x0000, 0x0000, 0x0000, DoRed|DoGreen|DoBlue, 0 }; -XColor g_xcolor_white = { 0, 0xffff, 0xffff, 0xffff, DoRed|DoGreen|DoBlue, 0 }; - -int g_depth_attempt_list[] = { 16, 24, 15, 8 }; - - -#define X_EVENT_LIST_ALL_WIN \ - (ExposureMask | ButtonPressMask | ButtonReleaseMask | \ - OwnerGrabButtonMask | KeyPressMask | KeyReleaseMask | \ - KeymapStateMask | ColormapChangeMask | FocusChangeMask) - -#define X_BASE_WIN_EVENT_LIST \ - (X_EVENT_LIST_ALL_WIN | PointerMotionMask | ButtonMotionMask) - -#define X_A2_WIN_EVENT_LIST \ - (X_BASE_WIN_EVENT_LIST) - -int g_num_a2_keycodes = 0; - -int a2_key_to_xsym[][3] = { - { 0x35, XK_Escape, 0 }, - { 0x7a, XK_F1, 0 }, - { 0x78, XK_F2, 0 }, - { 0x63, XK_F3, 0 }, - { 0x76, XK_F4, 0 }, - { 0x60, XK_F5, 0 }, - { 0x61, XK_F6, 0 }, - { 0x62, XK_F7, 0 }, - { 0x64, XK_F8, 0 }, - { 0x65, XK_F9, 0 }, - { 0x6d, XK_F10, 0 }, - { 0x67, XK_F11, 0 }, - { 0x6f, XK_F12, 0 }, - { 0x69, XK_F13, 0 }, - { 0x6b, XK_F14, 0 }, - { 0x71, XK_F15, 0 }, - { 0x7f, XK_Pause, XK_Break }, - { 0x32, '`', '~' }, /* Key number 18? */ - { 0x12, '1', '!' }, - { 0x13, '2', '@' }, - { 0x14, '3', '#' }, - { 0x15, '4', '$' }, - { 0x17, '5', '%' }, - { 0x16, '6', '^' }, - { 0x1a, '7', '&' }, - { 0x1c, '8', '*' }, - { 0x19, '9', '(' }, - { 0x1d, '0', ')' }, - { 0x1b, '-', '_' }, - { 0x18, '=', '+' }, - { 0x33, XK_BackSpace, 0 }, - { 0x72, XK_Insert, XK_Help }, /* Help? */ -/* { 0x73, XK_Home, 0 }, alias XK_Home to be XK_KP_Equal! */ - { 0x74, XK_Page_Up, 0 }, - { 0x47, XK_Num_Lock, XK_Clear }, /* Clear */ - { 0x51, XK_KP_Equal, XK_Home }, /* Note XK_Home alias! */ - { 0x4b, XK_KP_Divide, 0 }, - { 0x43, XK_KP_Multiply, 0 }, - - { 0x30, XK_Tab, 0 }, - { 0x0c, 'q', 'Q' }, - { 0x0d, 'w', 'W' }, - { 0x0e, 'e', 'E' }, - { 0x0f, 'r', 'R' }, - { 0x11, 't', 'T' }, - { 0x10, 'y', 'Y' }, - { 0x20, 'u', 'U' }, - { 0x22, 'i', 'I' }, - { 0x1f, 'o', 'O' }, - { 0x23, 'p', 'P' }, - { 0x21, '[', '{' }, - { 0x1e, ']', '}' }, - { 0x2a, 0x5c, '|' }, /* backslash, bar */ - { 0x75, XK_Delete, 0 }, - { 0x77, XK_End, 0 }, - { 0x79, XK_Page_Down, 0 }, - { 0x59, XK_KP_7, XK_KP_Home }, - { 0x5b, XK_KP_8, XK_KP_Up }, - { 0x5c, XK_KP_9, XK_KP_Page_Up }, - { 0x4e, XK_KP_Subtract, 0 }, - - { 0x39, XK_Caps_Lock, 0 }, - { 0x00, 'a', 'A' }, - { 0x01, 's', 'S' }, - { 0x02, 'd', 'D' }, - { 0x03, 'f', 'F' }, - { 0x05, 'g', 'G' }, - { 0x04, 'h', 'H' }, - { 0x26, 'j', 'J' }, - { 0x28, 'k', 'K' }, - { 0x25, 'l', 'L' }, - { 0x29, ';', ':' }, - { 0x27, 0x27, '"' }, /* single quote */ - { 0x24, XK_Return, 0 }, - { 0x56, XK_KP_4, XK_KP_Left }, - { 0x57, XK_KP_5, 0 }, - { 0x58, XK_KP_6, XK_KP_Right }, - { 0x45, XK_KP_Add, 0 }, - - { 0x38, XK_Shift_L, XK_Shift_R }, - { 0x06, 'z', 'Z' }, - { 0x07, 'x', 'X' }, - { 0x08, 'c', 'C' }, - { 0x09, 'v', 'V' }, - { 0x0b, 'b', 'B' }, - { 0x2d, 'n', 'N' }, - { 0x2e, 'm', 'M' }, - { 0x2b, ',', '<' }, - { 0x2f, '.', '>' }, - { 0x2c, '/', '?' }, - { 0x3e, XK_Up, 0 }, - { 0x53, XK_KP_1, XK_KP_End }, - { 0x54, XK_KP_2, XK_KP_Down }, - { 0x55, XK_KP_3, XK_KP_Page_Down }, - - { 0x36, XK_Control_L, XK_Control_R }, - { 0x3a, XK_Print, XK_Sys_Req }, /* Option */ - { 0x37, XK_Scroll_Lock, 0 }, /* Command */ - { 0x31, ' ', 0 }, - { 0x3b, XK_Left, 0 }, - { 0x3d, XK_Down, 0 }, - { 0x3c, XK_Right, 0 }, - { 0x52, XK_KP_0, XK_KP_Insert }, - { 0x41, XK_KP_Decimal, XK_KP_Separator }, - { 0x4c, XK_KP_Enter, 0 }, - { -1, -1, -1 } -}; - -int -main(int argc, char **argv) -{ - return gsportmain(argc, argv); -} - -void -x_dialog_create_gsport_conf(const char *str) -{ - // Just write the config file already... - config_write_config_gsport_file(); -} - -int -x_show_alert(int is_fatal, const char *str) -{ - /* Not implemented yet */ - adb_all_keys_up(); - - clear_fatal_logs(); - return 0; -} - - -#define MAKE_2(val) ( (val << 8) + val) - -void -x_update_color(int col_num, int red, int green, int blue, word32 rgb) -{ - XColor *xcol; - - xcol = &(g_xcolor_a2vid_array[col_num]); - xcol->red = MAKE_2(red); - xcol->green = MAKE_2(green); - xcol->blue = MAKE_2(blue); - xcol->flags = DoRed | DoGreen | DoBlue; -} - -void -x_update_physical_colormap() -{ - if(g_needs_cmap) { - XStoreColors(g_display, g_a2_colormap, - &g_xcolor_a2vid_array[0], Max_color_size); - } -} - -void -show_xcolor_array() -{ - int i; - - for(i = 0; i < 256; i++) { - printf("%02x: %08x\n", i, g_palette_8to1624[i]); - -#if 0 - printf("%02x: %04x %04x %04x, %02x %x\n", - i, xcolor_array[i].red, xcolor_array[i].green, - xcolor_array[i].blue, (word32)xcolor_array[i].pixel, - xcolor_array[i].flags); -#endif - } -} - - -int -my_error_handler(Display *display, XErrorEvent *ev) -{ - char msg[1024]; - XGetErrorText(display, ev->error_code, msg, 1000); - printf("X Error code %s\n", msg); - fflush(stdout); - - return 0; -} - -void -xdriver_end() -{ - - printf("xdriver_end\n"); - if(g_display) { - x_auto_repeat_on(1); - XFlush(g_display); - } -} - -void -show_colormap(char *str, Colormap cmap, int index1, int index2, int index3) -{ - XColor xcol; - int i; - int pix; - - printf("Show colormap: %08x = %s, cmap cells: %d,%d,%d\n", - (int)cmap, str, index1, index2, index3); - for(i = 0; i < index1 + index2 + index3; i++) { - pix = i; - if(i >= index1) { - pix = (i-index1)*index1; - if(i >= (index1 + index2)) { - pix = (i - index1 - index2)*index2*index1; - } - } - if(i == 0 && index1 < 250) { - pix = 0x842; - } - xcol.pixel = pix; - XQueryColor(g_display, cmap, &xcol); - printf("Cell %03x: pix: %03x, R:%04x, G:%04x, B:%04x\n", - i, (int)xcol.pixel, xcol.red, xcol.green, xcol.blue); - } -} - -void -x_badpipe(int signum) -{ - /* restore normal sigpipe handling */ - signal(SIGPIPE, SIG_DFL); - - /* attempt to xset r */ - system("xset r"); - my_exit(5); -} - -void -dev_video_init() -{ - int tmp_array[0x80]; - XGCValues new_gc; - XSetWindowAttributes win_attr; - XSizeHints my_winSizeHints; - XClassHint my_winClassHint; - XTextProperty my_winText; - XVisualInfo *visualList; - char **font_ptr; - char cursor_data; - word32 create_win_list; - int depth; - int len; - int cmap_alloc_amt; - int cnt; - int font_height; - int base_height; - int screen_num; - char *myTextString[1]; - word32 lores_col; - int ret; - int i; - int keycode; - - printf("Preparing X Windows graphics system\n"); - ret = 0; - - signal(SIGPIPE, x_badpipe); - - g_num_a2_keycodes = 0; - for(i = 0; i <= 0x7f; i++) { - tmp_array[i] = 0; - } - for(i = 0; i < 0x7f; i++) { - keycode = a2_key_to_xsym[i][0]; - if(keycode < 0) { - g_num_a2_keycodes = i; - break; - } else if(keycode > 0x7f) { - printf("a2_key_to_xsym[%d] = %02x!\n", i, keycode); - exit(2); - } else { - if(tmp_array[keycode]) { - printf("a2_key_to_x[%d] = %02x used by %d\n", - i, keycode, tmp_array[keycode] - 1); - } - tmp_array[keycode] = i + 1; - } - } - -#if 0 - printf("Setting _Xdebug = 1, makes X synchronous\n"); - _Xdebug = 1; -#endif - - g_display = XOpenDisplay(NULL); - if(g_display == NULL) { - fprintf(stderr, "Can't open display\n"); - exit(1); - } - - vid_printf("Just opened display = %p\n", g_display); - fflush(stdout); - - screen_num = DefaultScreen(g_display); - - len = sizeof(g_depth_attempt_list)/sizeof(int); - if(g_force_depth > 0) { - /* Only use the requested user depth */ - len = 1; - g_depth_attempt_list[0] = g_force_depth; - } - g_vis = 0; - for(i = 0; i < len; i++) { - depth = g_depth_attempt_list[i]; - - g_vis = x_try_find_visual(depth, screen_num, - &visualList); - if(g_vis != 0) { - break; - } - } - if(g_vis == 0) { - fprintf(stderr, "Couldn't find any visuals at any depth!\n"); - exit(2); - } - - g_default_colormap = XDefaultColormap(g_display, screen_num); - if(!g_default_colormap) { - printf("g_default_colormap == 0!\n"); - exit(4); - } - - g_a2_colormap = -1; - cmap_alloc_amt = AllocNone; - if(g_needs_cmap) { - cmap_alloc_amt = AllocAll; - } - g_a2_colormap = XCreateColormap(g_display, - RootWindow(g_display,screen_num), g_vis, - cmap_alloc_amt); - - vid_printf("g_a2_colormap: %08x, main: %08x\n", - (word32)g_a2_colormap, (word32)g_default_colormap); - - if(g_needs_cmap && g_a2_colormap == g_default_colormap) { - printf("A2_colormap = default colormap!\n"); - exit(4); - } - - /* and define cursor */ - cursor_data = 0; - g_cursor_shape = XCreatePixmapFromBitmapData(g_display, - RootWindow(g_display,screen_num), &cursor_data, 1, 1, 1, 0, 1); - g_cursor_mask = XCreatePixmapFromBitmapData(g_display, - RootWindow(g_display,screen_num), &cursor_data, 1, 1, 1, 0, 1); - - g_cursor = XCreatePixmapCursor(g_display, g_cursor_shape, - g_cursor_mask, &g_xcolor_black, &g_xcolor_white, 0, 0); - - XFreePixmap(g_display, g_cursor_shape); - XFreePixmap(g_display, g_cursor_mask); - - XFlush(g_display); - - win_attr.event_mask = X_A2_WIN_EVENT_LIST; - win_attr.colormap = g_a2_colormap; - win_attr.backing_store = WhenMapped; - win_attr.border_pixel = 1; - win_attr.background_pixel = 0; - if(g_warp_pointer) { - win_attr.cursor = g_cursor; - } else { - win_attr.cursor = None; - } - - vid_printf("About to a2_win, depth: %d\n", g_screen_depth); - fflush(stdout); - - create_win_list = CWEventMask | CWBackingStore | CWCursor; - create_win_list |= CWColormap | CWBorderPixel | CWBackPixel; - - base_height = X_A2_WINDOW_HEIGHT; - if (g_win_status_debug) - base_height += MAX_STATUS_LINES * 13; - - g_a2_win = XCreateWindow(g_display, RootWindow(g_display, screen_num), - 0, 0, BASE_WINDOW_WIDTH, base_height, - 0, g_screen_depth, InputOutput, g_vis, - create_win_list, &win_attr); - - XSetWindowColormap(g_display, g_a2_win, g_a2_colormap); - - XFlush(g_display); - -/* Check for XShm */ -#ifdef X_SHARED_MEM - if(g_use_shmem) { - ret = XShmQueryExtension(g_display); - if(ret == 0) { - printf("XShmQueryExt ret: %d\n", ret); - printf("not using shared memory\n"); - g_use_shmem = 0; - } else { - printf("Will use shared memory for X\n"); - } - } -#endif - - video_get_kimages(); - if(g_screen_depth != 8) { - video_get_kimage(&g_mainwin_kimage, 0, g_screen_depth, - g_screen_mdepth); - } - - if(!g_use_shmem) { - if(g_screen_redraw_skip_amt < 0) { - g_screen_redraw_skip_amt = 3; - } - printf("Not using shared memory, setting skip_amt = %d\n", - g_screen_redraw_skip_amt); - } - - /* Done with visualList now */ - XFree(visualList); - - for(i = 0; i < 256; i++) { - g_xcolor_a2vid_array[i].pixel = i; - lores_col = g_lores_colors[i & 0xf]; - video_update_color_raw(i, lores_col); - g_a2palette_8to1624[i] = g_palette_8to1624[i]; - } - - x_update_physical_colormap(); - - g_installed_full_superhires_colormap = !g_needs_cmap; - - myTextString[0] = "GSport"; - - XStringListToTextProperty(myTextString, 1, &my_winText); - - my_winSizeHints.flags = PSize | PMinSize | PMaxSize; - my_winSizeHints.width = BASE_WINDOW_WIDTH; - my_winSizeHints.height = base_height; - my_winSizeHints.min_width = BASE_WINDOW_WIDTH; - my_winSizeHints.min_height = base_height; - my_winSizeHints.max_width = BASE_WINDOW_WIDTH; - my_winSizeHints.max_height = base_height; - my_winClassHint.res_name = "GSport"; - my_winClassHint.res_class = "GSport"; - - XSetWMProperties(g_display, g_a2_win, &my_winText, &my_winText, 0, - 0, &my_winSizeHints, 0, &my_winClassHint); - - WM_DELETE_WINDOW = XInternAtom(g_display, "WM_DELETE_WINDOW", False); - XSetWMProtocols(g_display, g_a2_win, &WM_DELETE_WINDOW, 1); - XMapRaised(g_display, g_a2_win); - - XSync(g_display, False); - - g_a2_winGC = XCreateGC(g_display, g_a2_win, 0, (XGCValues *) 0); - font_ptr = XListFonts(g_display, FONT_NAME_STATUS, 4, &cnt); - - vid_printf("act_cnt of fonts: %d\n", cnt); - for(i = 0; i < cnt; i++) { - vid_printf("Font %d: %s\n", i, font_ptr[i]); - } - fflush(stdout); - g_text_FontSt = XLoadQueryFont(g_display, FONT_NAME_STATUS); - vid_printf("font # returned: %08x\n", (word32)(g_text_FontSt->fid)); - font_height = g_text_FontSt->ascent + g_text_FontSt->descent; - vid_printf("font_height: %d\n", font_height); - - vid_printf("widest width: %d\n", g_text_FontSt->max_bounds.width); - - new_gc.font = g_text_FontSt->fid; - new_gc.fill_style = FillSolid; - XChangeGC(g_display, g_a2_winGC, GCFillStyle | GCFont, &new_gc); - - /* XSync(g_display, False); */ -#if 0 -/* MkLinux for Powermac depth 15 has bugs--this was to try to debug them */ - if(g_screen_depth == 15) { - /* draw phony screen */ - ptr16 = (word16 *)dint_main_win; - for(i = 0; i < 320*400; i++) { - ptr16[i] = 0; - } - for(i = 0; i < 400; i++) { - for(j = 0; j < 640; j++) { - sh = (j / 20) & 0x1f; - val = sh; - val = val; - *ptr16++ = val; - } - } - XPutImage(g_display, g_a2_win, g_a2_winGC, xint_main_win, - 0, 0, - BASE_MARGIN_LEFT, BASE_MARGIN_TOP, - 640, 400); - XFlush(g_display); - } -#endif - - - XFlush(g_display); - fflush(stdout); -} - -Visual * -x_try_find_visual(int depth, int screen_num, XVisualInfo **visual_list_ptr) -{ - XVisualInfo *visualList; - XVisualInfo *v_chosen; - XVisualInfo vTemplate; - int visualsMatched; - int mdepth; - int needs_cmap; - int visual_chosen; - int match8, match24; - int i; - - vTemplate.screen = screen_num; - vTemplate.depth = depth; - - visualList = XGetVisualInfo(g_display, - (VisualScreenMask | VisualDepthMask), - &vTemplate, &visualsMatched); - - vid_printf("visuals matched: %d\n", visualsMatched); - if(visualsMatched == 0) { - return (Visual *)0; - } - - visual_chosen = -1; - needs_cmap = 0; - for(i = 0; i < visualsMatched; i++) { - printf("Visual %d\n", i); - printf(" id: %08x, screen: %d, depth: %d, class: %d\n", - (word32)visualList[i].visualid, - visualList[i].screen, - visualList[i].depth, - visualList[i].class); - printf(" red: %08lx, green: %08lx, blue: %08lx\n", - visualList[i].red_mask, - visualList[i].green_mask, - visualList[i].blue_mask); - printf(" cmap size: %d, bits_per_rgb: %d\n", - visualList[i].colormap_size, - visualList[i].bits_per_rgb); - match8 = (visualList[i].class == PseudoColor); - match24 = (visualList[i].class == TrueColor); - if((depth == 8) && match8) { - visual_chosen = i; - Max_color_size = visualList[i].colormap_size; - needs_cmap = 1; - break; - } - if((depth != 8) && match24) { - visual_chosen = i; - Max_color_size = -1; - needs_cmap = 0; - break; - } - } - - if(visual_chosen < 0) { - printf("Couldn't find any good visuals at depth %d!\n", - depth); - return (Visual *)0; - } - - printf("Chose visual: %d, max_colors: %d\n", visual_chosen, - Max_color_size); - - v_chosen = &(visualList[visual_chosen]); - x_set_mask_and_shift(v_chosen->red_mask, &g_red_mask, - &g_red_left_shift, &g_red_right_shift); - x_set_mask_and_shift(v_chosen->green_mask, &g_green_mask, - &g_green_left_shift, &g_green_right_shift); - x_set_mask_and_shift(v_chosen->blue_mask, &g_blue_mask, - &g_blue_left_shift, &g_blue_right_shift); - - g_screen_depth = depth; - mdepth = depth; - if(depth > 8) { - mdepth = 16; - } - if(depth > 16) { - mdepth = 32; - } - g_screen_mdepth = mdepth; - g_needs_cmap = needs_cmap; - *visual_list_ptr = visualList; - - return v_chosen->visual; -} - -void -x_set_mask_and_shift(word32 x_mask, word32 *mask_ptr, int *shift_left_ptr, - int *shift_right_ptr) -{ - int shift; - int i; - - /* Shift until we find first set bit in mask, then remember mask,shift*/ - - shift = 0; - for(i = 0; i < 32; i++) { - if(x_mask & 1) { - /* we're done! */ - break; - } - x_mask = x_mask >> 1; - shift++; - } - *mask_ptr = x_mask; - *shift_left_ptr = shift; - /* Now, calculate shift_right_ptr */ - shift = 0; - x_mask |= 1; // make sure at least one bit is set - while(x_mask < 0x80) { - shift++; - x_mask = x_mask << 1; - } - - *shift_right_ptr = shift; - return; - -} - -int g_xshm_error = 0; - -int -xhandle_shm_error(Display *display, XErrorEvent *event) -{ - g_xshm_error = 1; - return 0; -} - -void -x_get_kimage(Kimage *kimage_ptr) { - if(g_use_shmem) { - g_use_shmem = get_shm(kimage_ptr); - } - if(!g_use_shmem) { - get_ximage(kimage_ptr); - } -} - -int -get_shm(Kimage *kimage_ptr) -{ -#ifdef X_SHARED_MEM - XShmSegmentInfo *seginfo; - XImage *xim; - int (*old_x_handler)(Display *, XErrorEvent *); - int width; - int height; - int depth; - - width = kimage_ptr->width_req; - height = kimage_ptr->height; - depth = kimage_ptr->depth; - - seginfo = (XShmSegmentInfo *)malloc(sizeof(XShmSegmentInfo)); - xim = XShmCreateImage(g_display, g_vis, depth, ZPixmap, - (char *)0, seginfo, width, height); - - /* check mdepth! */ - if(xim->bits_per_pixel != kimage_ptr->mdepth) { - printf("get_shm bits_per_pix: %d != %d\n", - xim->bits_per_pixel, g_screen_mdepth); - } - - vid_printf("xim: %p\n", xim); - kimage_ptr->dev_handle = xim; - kimage_ptr->dev_handle2 = seginfo; - if(xim == 0) { - return 0; - } - - /* It worked, we got it */ - seginfo->shmid = shmget(IPC_PRIVATE, xim->bytes_per_line * xim->height, - IPC_CREAT | 0777); - vid_printf("seginfo->shmid = %d\n", seginfo->shmid); - if(seginfo->shmid < 0) { - XDestroyImage(xim); - return 0; - } - - /* Still working */ - seginfo->shmaddr = (char *)shmat(seginfo->shmid, 0, 0); - vid_printf("seginfo->shmaddr: %p\n", seginfo->shmaddr); - if(seginfo->shmaddr == ((char *) -1)) { - XDestroyImage(xim); - return 0; - } - - /* Still working */ - xim->data = seginfo->shmaddr; - seginfo->readOnly = False; - - /* XShmAttach will trigger X error if server is remote, so catch it */ - g_xshm_error = 0; - old_x_handler = XSetErrorHandler(xhandle_shm_error); - - XShmAttach(g_display, seginfo); - XSync(g_display, False); - - - vid_printf("about to RMID the shmid\n"); - shmctl(seginfo->shmid, IPC_RMID, 0); - - XFlush(g_display); - XSetErrorHandler(old_x_handler); - - if(g_xshm_error) { - XDestroyImage(xim); - /* We could release the shared mem segment, but by doing the */ - /* RMID, it will go away when we die now, so just leave it */ - printf("Not using shared memory\n"); - return 0; - } - - kimage_ptr->data_ptr = (byte *)xim->data; - vid_printf("Sharing memory. xim: %p, xim->data: %p\n", xim, xim->data); - - return 1; -#else - return 0; /* No shared memory */ -#endif /* X_SHARED_MEM */ -} - -void -get_ximage(Kimage *kimage_ptr) -{ - XImage *xim; - byte *ptr; - int width; - int height; - int depth; - int mdepth; - - width = kimage_ptr->width_req; - height = kimage_ptr->height; - depth = kimage_ptr->depth; - mdepth = kimage_ptr->mdepth; - - ptr = (byte *)malloc((width * height * mdepth) >> 3); - - vid_printf("ptr: %p\n", ptr); - - if(ptr == 0) { - printf("malloc for data failed, mdepth: %d\n", mdepth); - exit(2); - } - - kimage_ptr->data_ptr = ptr; - - xim = XCreateImage(g_display, g_vis, depth, ZPixmap, 0, - (char *)ptr, width, height, 8, 0); - -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) // OSX needs to calculate endianness mid-compilation, can't be passed on compile command - xim->byte_order = LSBFirst; -#else - xim->byte_order = MSBFirst; -#endif - XInitImage(xim); /* adjust to new byte order */ - - /* check mdepth! */ - if(xim->bits_per_pixel != mdepth) { - printf("shm_ximage bits_per_pix: %d != %d\n", - xim->bits_per_pixel, mdepth); - } - - vid_printf("xim: %p\n", xim); - - kimage_ptr->dev_handle = xim; - - return; -} - - -void -x_toggle_status_lines() -{ - XSizeHints my_winSizeHints; - XClassHint my_winClassHint; - int base_height = X_A2_WINDOW_HEIGHT; - if ((g_win_status_debug = !g_win_status_debug)) - base_height += MAX_STATUS_LINES * 13; - //printf("Resize returns %d\n", XResizeWindow(g_display, g_a2_win, BASE_WINDOW_WIDTH, base_height)); - my_winSizeHints.flags = PSize | PMinSize | PMaxSize; - my_winSizeHints.width = BASE_WINDOW_WIDTH; - my_winSizeHints.height = base_height; - my_winSizeHints.min_width = BASE_WINDOW_WIDTH; - my_winSizeHints.min_height = base_height; - my_winSizeHints.max_width = BASE_WINDOW_WIDTH; - my_winSizeHints.max_height = base_height; - my_winClassHint.res_name = "GSport"; - my_winClassHint.res_class = "GSport"; - XSetWMProperties(g_display, g_a2_win, 0, 0, 0, - 0, &my_winSizeHints, 0, &my_winClassHint); - XMapRaised(g_display, g_a2_win); - XFlush(g_display); - x_redraw_status_lines(); -} - -void -x_redraw_status_lines() -{ - char *buf; - int line; - int height; - int margin; - word32 white, black; - - if (g_win_status_debug) - { - height = g_text_FontSt->ascent + g_text_FontSt->descent; - margin = g_text_FontSt->ascent; - - white = (g_a2vid_palette << 4) + 0xf; - black = (g_a2vid_palette << 4) + 0x0; - if(g_screen_depth != 8) { - white = (2 << (g_screen_depth - 1)) - 1; - black = 0; - } - XSetForeground(g_display, g_a2_winGC, white); - XSetBackground(g_display, g_a2_winGC, black); - - for(line = 0; line < MAX_STATUS_LINES; line++) { - buf = g_status_ptrs[line]; - if(buf == 0) { - /* skip it */ - continue; - } - XDrawImageString(g_display, g_a2_win, g_a2_winGC, 0, - X_A2_WINDOW_HEIGHT + height*line + margin, - buf, strlen(buf)); - } - - XFlush(g_display); - } -} - - -void -x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy, - int width, int height) -{ - XImage *xim; - - xim = (XImage *)kimage_ptr->dev_handle; - -#ifdef X_SHARED_MEM - if(g_use_shmem) { - XShmPutImage(g_display, g_a2_win, g_a2_winGC, xim, - srcx, srcy, destx, desty, width, height, False); - } -#endif - if(!g_use_shmem) { - XPutImage(g_display, g_a2_win, g_a2_winGC, xim, - srcx, srcy, destx, desty, width, height); - } -} - -void -x_push_done() -{ - XFlush(g_display); -} - - -#define KEYBUFLEN 128 - -int g_num_check_input_calls = 0; -int g_check_input_flush_rate = 2; - -int -x_update_mouse(int raw_x, int raw_y, int button_states, int buttons_valid) -{ - int x, y; - - x = raw_x - BASE_MARGIN_LEFT; - y = raw_y - BASE_MARGIN_TOP; - - if(g_warp_pointer && (x == A2_WINDOW_WIDTH/2) && - (y == A2_WINDOW_HEIGHT/2) && (buttons_valid == 0) ) { - /* tell adb routs to recenter but ignore this motion */ - update_mouse(x, y, 0, -1); - return 0; - } - return update_mouse(x, y, button_states, buttons_valid & 7); -} - -void -check_input_events() -{ - XEvent ev; - int len; - int motion; - int buttons; - int refresh_needed; - - g_num_check_input_calls--; - if(g_num_check_input_calls < 0) { - len = XPending(g_display); - g_num_check_input_calls = g_check_input_flush_rate; - } else { - len = QLength(g_display); - } - - motion = 0; - refresh_needed = 0; - while(len > 0) { - XNextEvent(g_display, &ev); - len--; - if(len == 0) { - /* Xaccel on linux only buffers one X event */ - /* must look for more now */ - len = XPending(g_display); - } - switch(ev.type) { - case FocusIn: - case FocusOut: - if(ev.xfocus.type == FocusOut) { - /* Allow keyrepeat again! */ - vid_printf("Left window, auto repeat on\n"); - x_auto_repeat_on(0); - g_has_focus = 0; - } else if(ev.xfocus.type == FocusIn) { - /* Allow keyrepeat again! */ - vid_printf("Enter window, auto repeat off\n"); - x_auto_repeat_off(0); - g_has_focus = 1; - } - break; - case EnterNotify: - case LeaveNotify: - /* These events are disabled now */ - printf("Enter/Leave event for winow %08x, sub: %08x\n", - (word32)ev.xcrossing.window, - (word32)ev.xcrossing.subwindow); - printf("Enter/L mode: %08x, detail: %08x, type:%02x\n", - ev.xcrossing.mode, ev.xcrossing.detail, - ev.xcrossing.type); - break; - case ButtonPress: - vid_printf("Got button press of button %d!\n", - ev.xbutton.button); - buttons = (1 << ev.xbutton.button) >> 1; - motion |= x_update_mouse(ev.xbutton.x, ev.xbutton.y, - buttons, buttons & 7); - - break; - case ButtonRelease: - buttons = (1 << ev.xbutton.button) >> 1; - motion |= x_update_mouse(ev.xbutton.x, ev.xbutton.y, 0, - buttons & 7); - break; - case MotionNotify: - if(ev.xmotion.window != g_a2_win) { - printf("Motion in window %08x unknown!\n", - (word32)ev.xmotion.window); - } - motion |= x_update_mouse(ev.xmotion.x, ev.xmotion.y, 0, - 0); - break; - case Expose: - refresh_needed = -1; - break; - case NoExpose: - /* do nothing */ - break; - case KeyPress: - case KeyRelease: - handle_keysym(&ev); - break; - case KeymapNotify: - break; - case ColormapNotify: - vid_printf("ColormapNotify for %08x\n", - (word32)(ev.xcolormap.window)); - vid_printf("colormap: %08x, new: %d, state: %d\n", - (word32)ev.xcolormap.colormap, - ev.xcolormap.new, ev.xcolormap.state); - break; - case ClientMessage: - if (ev.xclient.data.l[0] == (long)WM_DELETE_WINDOW) - { - iwm_shut(); - my_exit(1); - } - break; - default: - printf("X event 0x%08x is unknown!\n", - ev.type); - break; - } - } - - if(motion && g_warp_pointer) { - XWarpPointer(g_display, None, g_a2_win, 0, 0, 0, 0, - BASE_MARGIN_LEFT + (A2_WINDOW_WIDTH/2), - BASE_MARGIN_TOP + (A2_WINDOW_HEIGHT/2)); - } - - if(refresh_needed) { - printf("Full refresh needed\n"); - g_a2_screen_buffer_changed = -1; - g_full_refresh_needed = -1; - - g_border_sides_refresh_needed = 1; - g_border_special_refresh_needed = 1; - g_status_refresh_needed = 1; - - /* x_refresh_ximage(); */ - /* redraw_border(); */ - } - -} - -void -x_hide_pointer(int do_hide) -{ - if(do_hide) { - XDefineCursor(g_display, g_a2_win, g_cursor); - } else { - XDefineCursor(g_display, g_a2_win, None); - } -} - - -void -handle_keysym(XEvent *xev_in) -{ - KeySym keysym; - word32 state; - int keycode; - int a2code; - int type; - int is_up; - - keycode = xev_in->xkey.keycode; - type = xev_in->xkey.type; - - keysym = XLookupKeysym(&(xev_in->xkey), 0); - - state = xev_in->xkey.state; - - vid_printf("keycode: %d, type: %d, state:%d, sym: %08x\n", - keycode, type, state, (word32)keysym); - - x_update_modifier_state(state); - - is_up = 0; - if(type == KeyRelease) { - is_up = 1; - } - -#if 0 - if(keysym == XK_Alt_L || keysym == XK_Meta_L) { - g_alt_left_up = is_up; - } - - if(keysym == XK_Alt_R || keysym == XK_Meta_R) { - g_alt_right_up = is_up; - } - - if(g_alt_left_up == 0 && g_alt_right_up == 0) { - printf("Sending sound to file\n"); - g_send_sound_to_file = 1; - } else { - if(g_send_sound_to_file) { - printf("Stopping sending sound to file\n"); - close_sound_file(); - } - g_send_sound_to_file = 0; - } -#endif - - /* first, do conversions */ - switch(keysym) { - case XK_Alt_R: - case XK_Meta_R: - case XK_Super_R: - case XK_Mode_switch: - case XK_Cancel: - keysym = XK_Print; /* option */ - break; - case XK_Alt_L: - case XK_Meta_L: - case XK_Super_L: - case XK_Menu: - keysym = XK_Scroll_Lock; /* cmd */ - break; - case 0x1000003: - if(keycode == 0x3c) { - /* enter key on Mac OS X laptop--make it option */ - keysym = XK_Print; - } - break; - case NoSymbol: - switch(keycode) { - /* 94-95 are for my PC101 kbd + windows keys on HPUX */ - case 0x0095: - /* left windows key = option */ - keysym = XK_Print; - break; - case 0x0096: - case 0x0094: - /* right windows key = cmd */ - keysym = XK_Scroll_Lock; - break; - /* 0072 is for cra@WPI.EDU who says it's Break under XFree86 */ - case 0x0072: - /* 006e is break according to mic@research.nj.nec.com */ - case 0x006e: - keysym = XK_Break; - break; - - /* 0x0042, 0x0046, and 0x0048 are the windows keys according */ - /* to Geoff Weiss on Solaris x86 */ - case 0x0042: - case 0x0046: - /* flying windows == open apple */ - keysym = XK_Scroll_Lock; - break; - case 0x0048: - case 0x0076: /* Windows menu key on Mac OS X */ - /* menu windows == option */ - keysym = XK_Print; - break; - } - } - - a2code = x_keysym_to_a2code(keysym, is_up); - if(a2code >= 0) { - adb_physical_key_update(a2code, is_up); - } else if(a2code != -2) { - printf("Keysym: %04x of keycode: %02x unknown\n", - (word32)keysym, keycode); - } -} - -int -x_keysym_to_a2code(int keysym, int is_up) -{ - int i; - - if(keysym == 0) { - return -1; - } - - if((keysym == XK_Shift_L) || (keysym == XK_Shift_R)) { - if(is_up) { - g_x_shift_control_state &= ~ShiftMask; - } else { - g_x_shift_control_state |= ShiftMask; - } - } - if(keysym == XK_Caps_Lock) { - if(is_up) { - g_x_shift_control_state &= ~LockMask; - } else { - g_x_shift_control_state |= LockMask; - } - } - if((keysym == XK_Control_L) || (keysym == XK_Control_R)) { - if(is_up) { - g_x_shift_control_state &= ~ControlMask; - } else { - g_x_shift_control_state |= ControlMask; - } - } - - /* Look up Apple 2 keycode */ - for(i = g_num_a2_keycodes - 1; i >= 0; i--) { - if((keysym == a2_key_to_xsym[i][1]) || - (keysym == a2_key_to_xsym[i][2])) { - - vid_printf("Found keysym:%04x = a[%d] = %04x or %04x\n", - (int)keysym, i, a2_key_to_xsym[i][1], - a2_key_to_xsym[i][2]); - - return a2_key_to_xsym[i][0]; - } - } - - return -1; -} - -void -x_update_modifier_state(int state) -{ - int state_xor; - int is_up; - - state = state & (ControlMask | LockMask | ShiftMask); - state_xor = g_x_shift_control_state ^ state; - is_up = 0; - if(state_xor & ControlMask) { - is_up = ((state & ControlMask) == 0); - adb_physical_key_update(0x36, is_up); - } - if(state_xor & LockMask) { - is_up = ((state & LockMask) == 0); - adb_physical_key_update(0x39, is_up); - } - if(state_xor & ShiftMask) { - is_up = ((state & ShiftMask) == 0); - adb_physical_key_update(0x38, is_up); - } - - g_x_shift_control_state = state; -} - -void -x_auto_repeat_on(int must) -{ - if((g_auto_repeat_on <= 0) || must) { - g_auto_repeat_on = 1; - XAutoRepeatOn(g_display); - XFlush(g_display); - adb_kbd_repeat_off(); - } -} - -void -x_auto_repeat_off(int must) -{ - if((g_auto_repeat_on != 0) || must) { - XAutoRepeatOff(g_display); - XFlush(g_display); - g_auto_repeat_on = 0; - adb_kbd_repeat_off(); - } -} - -void -x_full_screen(int do_full) -{ - return; -} - -// OG Adding release -void x_release_kimage(Kimage* kimage_ptr) -{ - if (kimage_ptr->dev_handle == (void*)-1) - { - free(kimage_ptr->data_ptr); - kimage_ptr->data_ptr = NULL; - } -} - -// OG Addding ratio -int x_calc_ratio(float x,float y) -{ - return 1; -} - -void -clipboard_paste(void) -{ - // TODO: Add clipboard support -} - -int -clipboard_get_char(void) -{ - // TODO: Add clipboard support - return 0; -} diff --git a/.svn/pristine/0f/0f6c49891fa1ca61ea51c89c6f7c646c6d29ed09.svn-base b/.svn/pristine/0f/0f6c49891fa1ca61ea51c89c6f7c646c6d29ed09.svn-base deleted file mode 100644 index 4fcb7b8..0000000 --- a/.svn/pristine/0f/0f6c49891fa1ca61ea51c89c6f7c646c6d29ed09.svn-base +++ /dev/null @@ -1,19 +0,0 @@ - - - - - IBDocumentLocation - 152 85 356 240 0 0 1280 832 - IBEditorPositions - - 29 - 69 252 182 44 0 0 1280 832 - - IBFramework Version - 291.0 - IBSystem Version - 6R73 - targetFramework - IBCarbonFramework - - diff --git a/.svn/pristine/12/12a41b22d5169777e5b5707a5f6a66bc544d9501.svn-base b/.svn/pristine/12/12a41b22d5169777e5b5707a5f6a66bc544d9501.svn-base deleted file mode 100644 index 8119cee..0000000 --- a/.svn/pristine/12/12a41b22d5169777e5b5707a5f6a66bc544d9501.svn-base +++ /dev/null @@ -1,45 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -void show_simple_alert(char *str1, char *str2, char *str3, int num); -void x_dialog_create_kegs_conf(const char *str); -int x_show_alert(int is_fatal, const char *str);void update_window(void); - -void mac_update_modifiers(word32 state); -void mac_warp_mouse(void); -void check_input_events(void); -void temp_run_application_event_loop(void); -int main(int argc, char *argv[]); -void x_update_color(int col_num, int red, int green, int blue, word32 rgb); -void x_update_physical_colormap(void); -void show_xcolor_array(void); -void xdriver_end(void); -void x_get_kimage(Kimage *kimage_ptr); -void dev_video_init(void); -void x_redraw_status_lines(void); -void x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy, int width, int height); -void x_push_done(void); -void x_auto_repeat_on(int must); -void x_auto_repeat_off(int must); -void x_hide_pointer(int do_hide); -void x_full_screen(int do_full); -void update_main_window_size(void); - diff --git a/.svn/pristine/14/1408da0d0e94d5e5aa72beec8016b87cb340b17b.svn-base b/.svn/pristine/14/1408da0d0e94d5e5aa72beec8016b87cb340b17b.svn-base deleted file mode 100644 index 0f27dc8..0000000 --- a/.svn/pristine/14/1408da0d0e94d5e5aa72beec8016b87cb340b17b.svn-base +++ /dev/null @@ -1,2481 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - - .code - - .level 1.1 - -#include "defs.h" - -#define ASM - - -/* -#define COUNT_GET_CALLS -*/ - -#if 0 -# define CHECK_SIZE_CONSISTENCY -#endif - - -#define STACK_ENGINE_SIZE 512 - -#define STACK_SAVE_CMP_INDEX_REG -64 -#define STACK_GET_MEM_B0_DIRECT_SAVELINK -68 -#define STACK_SAVE_ARG0 -72 -#define STACK_SAVE_INSTR -76 -#define STACK_SRC_BANK -80 -#define STACK_INST_TAB_PTR_DONT_USE_THIS -84 -#if 0 -#define STACK_BP_ARG0_SAVE -88 -#define STACK_BP_ARG1_SAVE -92 -#define STACK_BP_ARG2_SAVE -96 -#define STACK_BP_ARG3_SAVE -100 -#define STACK_BP_RP_SAVE -104 -#define STACK_BP_SCRATCH4_SAVE -108 -#endif - -#define STACK_GET_MEMORY_SAVE_LINK -112 -#define STACK_SET_MEMORY_SAVE_LINK -116 - -#define STACK_MEMORY16_SAVE1 -120 -#define STACK_MEMORY16_SAVE2 -124 -#define STACK_MEMORY16_SAVE3 -128 - -#define STACK_SAVE_CYCLES_WORD2 -132 /* Cycles = dword */ -#define STACK_SAVE_CYCLES -136 - -#define STACK_SET_MEMORY24_SAVE1 -140 -#define STACK_SET_MEMORY24_SAVE2 -144 -#define STACK_SET_MEMORY24_SAVE3 -148 - -#define STACK_GET_MEMORY24_SAVE1 -152 -#define STACK_GET_MEMORY24_SAVE2 -156 -#define STACK_GET_MEMORY24_SAVE3 -160 - -/* #define STACK_SAVE_INIT_CYCLES -164 */ -#define STACK_SAVE_DECIMAL16_A -168 -#define STACK_SAVE_DECIMAL16_B -172 -#define STACK_SAVE_INSTR_TMP1 -176 - -#define STACK_SAVE_DISPATCH_LINK -180 -#define STACK_SAVE_OP_LINK -184 -#define STACK_GET_MEMORY16_ADDR_LATCH -188 -#define STACK_GET_MEMORY24_ADDR_LATCH -192 - -#define STACK_GET_MEM_B0_DIRECT_ARG0 -200 -#define STACK_GET_MEM_B0_DIRECT_RET0 -204 -#define STACK_SAVE_PUSH16_LINK -208 -#define STACK_SAVE_PUSH16_ARG1 -212 - -#define STACK_SAVE_PULL16_LINK -216 -#define STACK_SAVE_PULL16_RET0 -220 -#define STACK_SAVE_PULL24_LINK -224 -#define STACK_SAVE_PULL24_RET0 -228 - -#define STACK_SAVE_COP_ARG0 -232 -#define STACK_SAVE_TMP_INST0 -236 -#define STACK_SAVE_TMP_INST -240 -#define STACK_SAVE_TMP_INST1 -244 -#define STACK_SAVE_DISP_PIECES_LINK -248 -#define STACK_SAVE_DISPATCH_SCRATCH1 -252 - -#if 0 -#define STACK_BP_SCRATCH2_SAVE -256 -#define STACK_BP_SCRATCH3_SAVE -260 -#endif - - - -#define CYCLES_PLUS_1 fadd,dbl fr_plus_1,fcycles,fcycles -#define CYCLES_PLUS_2 fadd,dbl fr_plus_2,fcycles,fcycles -#define CYCLES_PLUS_3 fadd,dbl fr_plus_3,fcycles,fcycles -#define CYCLES_PLUS_5 fadd,dbl fr_plus_3,fcycles,fcycles ! \ - fadd,dbl fr_plus_2,fcycles,fcycles - -#define CYCLES_MINUS_1 fsub,dbl fcycles,fr_plus_1,fcycles -#define CYCLES_MINUS_2 fsub,dbl fcycles,fr_plus_2,fcycles - -#define CYCLES_FINISH fadd,dbl fcycles_stop,fr_plus_1,fcycles - -#define FCYCLES_ROUND_1 fadd,dbl fcycles,fr_plus_x_m1,ftmp1 -#define FCYCLES_ROUND_2 fcnvfxt,dbl,dbl ftmp1,ftmp1 -#define FCYCLES_ROUND_3 fcnvxf,dbl,dbl ftmp1,fcycles - -/* HACK: INC_KPC* and DEC_KPC2 should avoid overflow into kbank! */ -#define INC_KPC_1 addi 1,kpc,kpc -#define INC_KPC_2 addi 2,kpc,kpc -#define INC_KPC_3 addi 3,kpc,kpc -#define INC_KPC_4 addi 4,kpc,kpc -#define DEC_KPC2 addi -2,kpc,kpc - -#define get_mem_b0_8 get_memory_asm -#define get_mem_b0_16 get_memory16_asm -#define get_mem_b0_24 get_memory24_asm - -#define get_mem_long_8 get_memory_asm -#define get_mem_long_16 get_memory16_asm -#define get_mem_long_24 get_memory24_asm - -#define set_mem_long_8 set_memory_asm -#define set_mem_long_16 set_memory16_asm - -#define set_mem_b0_8 set_memory_asm -#define set_mem_b0_16 set_memory16_asm -#define set_mem_b0_24 set_memory24_asm - - .code - .import halt_sim,data - .import g_fcycles_stop,data - .import g_irq_pending,data - .import g_wait_pending,data - .import g_rom_version,data - .import g_num_brk,data - .import g_num_cop,data - .import g_testing,data - - .import log_pc,code - .import toolbox_debug_c,code - - .import get_memory_io,code - - .import set_memory_io,code - .import set_memory16_pieces,code - .import set_memory24_pieces,code - -#include "op_routs.h" - - .import do_break,code - .import do_cop,code - .import page_info_rd_wr,data - .import get_memory_calls,data - .import slow_mem_changed,data - .import g_cur_dcycs,data - .import g_last_vbl_dcycs,data - .import g_slow_memory_ptr,data - .import g_memory_ptr,data - .import g_dummy_memory1_ptr,data - .import g_rom_fc_ff_ptr,data - .import g_rom_cards_ptr,data - - .export fixed_memory_ptrs_init,code -fixed_memory_ptrs_init - LDC(slow_memory,arg0) - LDC(g_slow_memory_ptr,arg1) - stw arg0,(arg1) - - LDC(dummy_memory1,arg0) - LDC(g_dummy_memory1_ptr,arg1) - stw arg0,(arg1) - - LDC(rom_fc_ff,arg0) - LDC(g_rom_fc_ff_ptr,arg1) - stw arg0,(arg1) - - LDC(rom_cards,arg0) - LDC(g_rom_cards_ptr,arg1) - stw arg0,(arg1) - - bv 0(link) - nop - - .export get_itimer,code -get_itimer - bv 0(link) - mfctl %cr16,ret0 - - .export enter_asm,data -enter_asm - stwm page_info_ptr,STACK_ENGINE_SIZE(sp) - stw link,-STACK_ENGINE_SIZE+4(sp) - ldo -STACK_ENGINE_SIZE+16(sp),scratch2 - stw addr_latch,-STACK_ENGINE_SIZE+8(sp) - fstds,ma fcycles,8(scratch2) - fstds,ma fr_plus_1,8(scratch2) - fcpy,dbl 0,fcycles - fstds,ma fr_plus_2,8(scratch2) - fstds,ma fr_plus_3,8(scratch2) - fcpy,dbl 0,fr_plus_1 - fstds,ma fr_plus_x_m1,8(scratch2) - fstds,ma fcycles_stop,8(scratch2) - fcpy,dbl 0,fr_plus_2 - fstds,ma fcycles_last_dcycs,8(scratch2) - ldil l%g_cur_dcycs,scratch2 - - ldil l%g_last_vbl_dcycs,scratch3 - fcpy,dbl 0,fr_plus_3 - ldo r%g_cur_dcycs(scratch2),scratch2 - fcpy,dbl 0,fr_plus_x_m1 - ldo r%g_last_vbl_dcycs(scratch3),scratch3 - fldds 0(scratch2),ftmp1 - ldil l%page_info_rd_wr,page_info_ptr - fldds 0(scratch3),fcycles_last_dcycs - fcpy,dbl 0,fcycles_stop - ldo r%page_info_rd_wr(page_info_ptr),page_info_ptr - bv 0(scratch1) - fsub,dbl ftmp1,fcycles_last_dcycs,fcycles - - - .export leave_asm,data -leave_asm - ldw -STACK_ENGINE_SIZE+4(sp),link - ldo -STACK_ENGINE_SIZE+16(sp),scratch2 - ldw -STACK_ENGINE_SIZE+8(sp),addr_latch - fldds,ma 8(scratch2),fcycles - fldds,ma 8(scratch2),fr_plus_1 - fldds,ma 8(scratch2),fr_plus_2 - fldds,ma 8(scratch2),fr_plus_3 - fldds,ma 8(scratch2),fr_plus_x_m1 - fldds,ma 8(scratch2),fcycles_stop - fldds,ma 8(scratch2),fcycles_last_dcycs - - bv (link) - ldwm -STACK_ENGINE_SIZE(sp),page_info_ptr - - - .align 8 - .export get_memory_c -get_memory_c -; arg0 = addr -; arg1 = cycles - bl enter_asm,scratch1 - nop - bl get_memory_asm,link - nop - b leave_asm - nop - - .export get_memory16_c -get_memory16_c -; arg0 = addr -; arg1 = cycles - bl enter_asm,scratch1 - nop - bl get_memory16_asm,link - nop - b leave_asm - nop - - .export get_memory24_c -get_memory24_c -; arg0 = addr -; arg1 = cycles - bl enter_asm,scratch1 - nop - bl get_memory24_asm,link - nop - b leave_asm - nop - -#define GET_MEM8(upper16,lower8,ret0) \ - extru arg0,23,16,arg3 ! \ - CYCLES_PLUS_1 ! \ - ldwx,s arg3(page_info_ptr),scratch3 ! \ - copy arg0,addr_latch ! \ - copy scratch3,scratch2 ! \ - dep arg0,31,8,scratch3 ! \ - extru,= scratch2,BANK_IO_BIT,1,0 ! \ - bl,n get_memory_iocheck_stub_asm,link ! \ - ldb (scratch3),ret0 - - .align 32 - - .export get_memory_asm -get_memory_asm -; arg0 = addr - extru arg0,23,16,arg3 - copy arg0,addr_latch - - ldwx,s arg3(page_info_ptr),scratch2 - CYCLES_PLUS_1 - bb,<,n scratch2,BANK_IO_BIT,get_memory_iocheck_stub_asm - dep arg0,31,8,scratch2 - bv 0(link) - ldb (scratch2),ret0 - - - .align 8 - - .export get_memory16_asm -get_memory16_asm -; arg0 = addr - ldi 0xff,scratch3 - extru arg0,23,16,arg3 - - and scratch3,arg0,scratch4 - ldwx,s arg3(page_info_ptr),scratch2 - copy arg0,addr_latch - comb,= scratch4,scratch3,get_memory16_pieces_stub_asm - and scratch2,scratch3,scratch3 - comb,<> 0,scratch3,get_memory16_pieces_stub_asm - dep arg0,31,8,scratch2 - ldb (scratch2),ret0 - CYCLES_PLUS_2 - ldb 1(scratch2),scratch1 - bv 0(link) - dep scratch1,23,8,ret0 - - .align 8 - - .export get_memory24_asm -get_memory24_asm -; arg0 = addr - ldi 0xfe,scratch3 - extru arg0,23,16,arg3 - - and scratch3,arg0,scratch4 - ldwx,s arg3(page_info_ptr),scratch2 - copy arg0,addr_latch - comb,= scratch4,scratch3,get_memory24_pieces_stub_asm - extru scratch2,31,8,scratch3 - comb,<> 0,scratch3,get_memory24_pieces_stub_asm - dep arg0,31,8,scratch2 - ldb (scratch2),ret0 - ldb 1(scratch2),scratch1 - CYCLES_PLUS_3 - ldb 2(scratch2),scratch2 - dep scratch1,23,8,ret0 - bv 0(link) - dep scratch2,15,8,ret0 - - - .align 0x20 - .export get_memory_iocheck_stub_asm,code -get_memory_iocheck_stub_asm - extru,= scratch2,BANK_BREAK_BIT,1,0 - bl check_breakpoints_asm,scratch4 - stw link,STACK_GET_MEMORY_SAVE_LINK(sp) - bb,< scratch2,BANK_IO2_BIT,get_memory_io_stub_asm - dep arg0,31,8,scratch2 - bv 0(link) - ldb (scratch2),ret0 - - .export get_memory_io_stub_asm -get_memory_io_stub_asm - FCYCLES_ROUND_1 - ldo STACK_SAVE_CYCLES(sp),arg1 - FCYCLES_ROUND_2 - FCYCLES_ROUND_3 - bl get_memory_io,link - fstds fcycles,(arg1) - - ldw STACK_GET_MEMORY_SAVE_LINK(sp),link - ldo STACK_SAVE_CYCLES(sp),arg1 - bv (link) - fldds (arg1),fcycles - - - - .export get_memory16_pieces_stub_asm,code -get_memory16_pieces_stub_asm - stw addr_latch,STACK_GET_MEMORY16_ADDR_LATCH(sp) - addi 1,arg0,scratch1 - stw link,STACK_MEMORY16_SAVE2(sp) - bl get_memory_asm,link - stw scratch1,STACK_MEMORY16_SAVE1(sp) - - stw ret0,STACK_MEMORY16_SAVE3(sp) - bl get_memory_asm,link - ldw STACK_MEMORY16_SAVE1(sp),arg0 - - ldw STACK_MEMORY16_SAVE2(sp),link - copy ret0,scratch1 - ldw STACK_MEMORY16_SAVE3(sp),ret0 - ldw STACK_GET_MEMORY16_ADDR_LATCH(sp),addr_latch - bv (link) - dep scratch1,23,8,ret0 - - - .export get_memory24_pieces_stub_asm,code -get_memory24_pieces_stub_asm - stw addr_latch,STACK_GET_MEMORY16_ADDR_LATCH(sp) - addi 1,arg0,scratch1 - stw link,STACK_GET_MEMORY24_SAVE2(sp) - bl get_memory_asm,link - stw scratch1,STACK_GET_MEMORY24_SAVE1(sp) - - stw ret0,STACK_GET_MEMORY24_SAVE3(sp) - bl get_memory_asm,link - ldw STACK_GET_MEMORY24_SAVE1(sp),arg0 - - ldw STACK_GET_MEMORY24_SAVE1(sp),arg0 - stb ret0,STACK_GET_MEMORY24_SAVE3+2(sp) - bl get_memory_asm,link - addi 1,arg0,arg0 - - ldw STACK_GET_MEMORY24_SAVE2(sp),link - copy ret0,scratch1 - ldw STACK_GET_MEMORY24_SAVE3(sp),ret0 - ldw STACK_GET_MEMORY16_ADDR_LATCH(sp),addr_latch - bv (link) - dep scratch1,15,8,ret0 - - - - -; C callable routine to wrap around set_memory_asm - .export set_memory_c -set_memory_c -;arg0 = addr -;arg1 = val -;arg2 = cycles - bl enter_asm,scratch1 - nop - bl set_memory_asm,link - nop - b leave_asm - nop - - - .export set_memory16_c -set_memory16_c -;arg0 = addr -;arg1 = val -;arg2 = cycles - bl enter_asm,scratch1 - nop - bl set_memory16_asm,link - nop - b leave_asm - nop - - .export set_memory24_c -set_memory24_c -;arg0 = addr -;arg1 = val -;arg2 = cycles - bl enter_asm,scratch1 - nop - bl set_memory24_asm,link - nop - b leave_asm - nop - - - .align 32 - - .export set_memory_asm -set_memory_asm -; arg0 = addr -; arg1 = val - extru arg0,23,16,arg3 - addil l%PAGE_INFO_WR_OFFSET,arg3 - CYCLES_PLUS_1 - ldwx,s r1(page_info_ptr),scratch2 - ldi 0xff,scratch3 - and scratch2,scratch3,scratch3 - dep arg0,31,8,scratch2 - comib,<>,n 0,scratch3,set_memory_special_case -set_memory_cont_asm - bv 0(link) - stb arg1,(scratch2) - - - .export set_memory_special_case -set_memory_special_case - extru,= scratch3,BANK_BREAK_BIT,1,0 - bl check_breakpoints_asm,scratch4 - extru arg1,31,8,arg1 - -set_memory_special_case2 - bb,< scratch3,BANK_IO2_BIT,set_memory_io_stub_asm - ldil l%slow_memory,scratch4 - bb,< scratch3,BANK_SHADOW_BIT,set_memory_shadow1_asm - extru arg0,31,16,arg3 - bb,< scratch3,BANK_SHADOW2_BIT,set_memory_shadow2_asm - nop - bb,< scratch3,BANK_BREAK_BIT,set_memory_cont_asm - nop - break - - -set_memory_shadow1_asm -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_1 -#endif - add arg3,scratch4,scratch4 - extru arg3,31-SHIFT_PER_CHANGE,5,scratch1 - ldb r%slow_memory(scratch4),arg2 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_2 -#endif - mtctl scratch1,cr11 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_3 -#endif - comclr,<> arg2,arg1,0 - bv 0(link) - stb arg1,(scratch2) - zvdepi 1,1,arg2 - extru arg3,31-CHANGE_SHIFT,16-CHANGE_SHIFT,scratch2 - ldil l%slow_mem_changed,scratch1 - sh2add scratch2,scratch1,scratch1 - ldw r%slow_mem_changed(scratch1),scratch3 - stb arg1,r%slow_memory(scratch4) - or arg2,scratch3,scratch3 - bv 0(link) - stw scratch3,r%slow_mem_changed(scratch1) - -set_memory_shadow2_asm - depi 1,15,1,arg3 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_1 -#endif - add arg3,scratch4,scratch4 - extru arg3,31-SHIFT_PER_CHANGE,5,scratch1 - ldb r%slow_memory(scratch4),arg2 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_2 -#endif - mtctl scratch1,cr11 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_3 -#endif - comclr,<> arg2,arg1,0 - bv 0(link) - stb arg1,(scratch2) - zvdepi 1,1,arg2 - extru arg3,31-CHANGE_SHIFT,16-CHANGE_SHIFT,scratch2 - ldil l%slow_mem_changed,scratch1 - sh2add scratch2,scratch1,scratch1 - ldw r%slow_mem_changed(scratch1),scratch3 - stb arg1,r%slow_memory(scratch4) - or arg2,scratch3,scratch3 - bv 0(link) - stw scratch3,r%slow_mem_changed(scratch1) - - -set_memory_io_stub_asm - FCYCLES_ROUND_1 - ldo STACK_SAVE_CYCLES(sp),arg2 - FCYCLES_ROUND_2 - stw link,STACK_SET_MEMORY_SAVE_LINK(sp) - FCYCLES_ROUND_3 - bl set_memory_io,link - fstds fcycles,(arg2) - - ldw STACK_SET_MEMORY_SAVE_LINK(sp),link - ldo STACK_SAVE_CYCLES(sp),arg2 - bv (link) - fldds (arg2),fcycles - - .align 8 - .export set_memory16_asm -set_memory16_asm -; arg0 = addr -; arg1 = val - extru arg0,23,16,arg3 - - addil l%PAGE_INFO_WR_OFFSET,arg3 - extrs arg0,31,8,scratch4 - ldwx,s r1(page_info_ptr),scratch2 - ldi 0xff,scratch3 - and scratch3,scratch2,scratch3 - dep arg0,31,8,scratch2 - comib,=,n -1,scratch4,set_memory16_pieces_stub_asm - comib,<>,n 0,scratch3,set_memory16_special_case -set_memory16_cont_asm - stb arg1,0(scratch2) - CYCLES_PLUS_2 - extru arg1,23,8,arg3 - bv 0(link) - stb arg3,1(scratch2) - - - .align 8 -set_memory16_shadow1_asm - CYCLES_PLUS_2 - copy arg1,arg2 - extru arg1,23,8,arg1 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_1 -#endif - add arg3,scratch4,scratch4 - dep arg2,23,8,arg1 - extru arg3,31-SHIFT_PER_CHANGE,5,scratch1 - ldh r%slow_memory(scratch4),arg2 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_2 -#endif - mtctl scratch1,cr11 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_3 -#endif - comclr,<> arg2,arg1,0 ;return if arg2 == arg1 - bv 0(link) - sth arg1,(scratch2) - zvdepi 1,1,arg2 - extru arg3,31-CHANGE_SHIFT,16-CHANGE_SHIFT,scratch2 - ldil l%slow_mem_changed,scratch1 - sh2add scratch2,scratch1,scratch1 - ldw r%slow_mem_changed(scratch1),scratch3 - sth arg1,r%slow_memory(scratch4) - or arg2,scratch3,scratch3 - bv 0(link) - stw scratch3,r%slow_mem_changed(scratch1) - - .align 8 -set_memory16_shadow2_asm - CYCLES_PLUS_2 - copy arg1,arg2 - extru arg1,23,8,arg1 - depi 1,15,1,arg3 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_1 -#endif - dep arg2,23,8,arg1 - add arg3,scratch4,scratch4 - extru arg3,31-SHIFT_PER_CHANGE,5,scratch1 - ldh r%slow_memory(scratch4),arg2 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_2 -#endif - mtctl scratch1,cr11 -#ifdef ACCURATE_SLOW_MEM - FCYCLES_ROUND_3 -#endif - comclr,<> arg2,arg1,0 - bv 0(link) - sth arg1,(scratch2) - zvdepi 1,1,arg2 - extru arg3,31-CHANGE_SHIFT,16-CHANGE_SHIFT,scratch2 - ldil l%slow_mem_changed,scratch1 - sh2add scratch2,scratch1,scratch1 - ldw r%slow_mem_changed(scratch1),scratch3 - sth arg1,r%slow_memory(scratch4) - or arg2,scratch3,scratch3 - bv 0(link) - stw scratch3,r%slow_mem_changed(scratch1) - - - .align 8 -set_memory16_special_case - extru,= scratch3,BANK_BREAK_BIT,1,0 - bl check_breakpoints_asm,scratch4 - extru arg1,31,16,arg1 - -set_memory16_special_case2 - bb,< scratch3,BANK_IO2_BIT,set_memory16_pieces_stub_asm - ldil l%slow_memory,scratch4 - -; if not halfword aligned, go through pieces_stub_asm - bb,<,n arg0,31,set_memory16_pieces_stub_asm - bb,< scratch3,BANK_SHADOW2_BIT,set_memory16_shadow2_asm - extru arg0,31,16,arg3 - bb,< scratch3,BANK_SHADOW_BIT,set_memory16_shadow1_asm - nop - bb,< scratch3,BANK_BREAK_BIT,set_memory16_cont_asm - nop - break - - .align 8 -set_memory16_pieces_stub_asm - addi 1,arg0,scratch1 - stw link,STACK_MEMORY16_SAVE3(sp) - extru arg1,23,8,scratch2 - stw scratch1,STACK_MEMORY16_SAVE1(sp) - bl set_memory_asm,link - stw scratch2,STACK_MEMORY16_SAVE2(sp) - - ldw STACK_MEMORY16_SAVE1(sp),arg0 - ldw STACK_MEMORY16_SAVE2(sp),arg1 - b set_memory_asm - ldw STACK_MEMORY16_SAVE3(sp),link - - - .align 8 - .export set_memory24_asm -set_memory24_asm -; arg0 = addr -; arg1 = val - extru arg0,23,16,arg3 - - addil l%PAGE_INFO_WR_OFFSET,arg3 - extrs arg0,30,7,scratch4 - ldwx,s r1(page_info_ptr),scratch2 - ldi 0xff,scratch3 - and scratch3,scratch2,scratch3 - dep arg0,31,8,scratch2 - comib,=,n -1,scratch4,set_memory24_pieces_stub_asm - comib,<>,n 0,scratch3,set_memory24_pieces_stub_asm - stb arg1,0(scratch2) - extru arg1,23,8,arg3 - CYCLES_PLUS_3 - stb arg3,1(scratch2) - extru arg1,15,8,arg3 - bv 0(link) - stb arg3,2(scratch2) - -set_memory24_pieces_stub_asm - addi 1,arg0,scratch1 - stw link,STACK_SET_MEMORY24_SAVE3(sp) - extru arg1,23,16,scratch2 - stw scratch1,STACK_SET_MEMORY24_SAVE1(sp) - bl set_memory_asm,link - stw scratch2,STACK_SET_MEMORY24_SAVE2(sp) - - ldw STACK_SET_MEMORY24_SAVE1(sp),arg0 - bl set_memory_asm,link - ldw STACK_SET_MEMORY24_SAVE2(sp),arg1 - - ldw STACK_SET_MEMORY24_SAVE1(sp),arg0 - ldw STACK_SET_MEMORY24_SAVE3(sp),link - addi 1,arg0,arg0 - b set_memory_asm - ldb STACK_SET_MEMORY24_SAVE2+2(sp),arg1 - - - - - - .import g_num_breakpoints,data - .import g_breakpts,data - - .align 8 - .export check_breakpoints_asm,code -check_breakpoints_asm -; can't use arg0-arg3. don't use scratch2,scratch3 -; scratch4: return link -; - ldil l%g_num_breakpoints,scratch1 - ldil l%g_breakpts,ret0 - ldw r%g_num_breakpoints(scratch1),r1 - ldo r%g_breakpts(ret0),ret0 - addi,>= -1,r1,r1 - bv,n 0(scratch4) - ldwx,s r1(ret0),scratch1 -check_breakpoints_loop_asm - comb,=,n scratch1,arg0,check_breakpoints_hit - addib,>=,n -1,r1,check_breakpoints_loop_asm - ldwx,s r1(ret0),scratch1 - - bv 0(scratch4) - nop - - .export check_breakpoints_hit,code -check_breakpoints_hit - LDC(halt_sim,scratch1) - ldw (scratch1),r1 - ldil l%g_fcycles_stop,ret0 - depi 1,31,1,r1 - stw 0,r%g_fcycles_stop(ret0) - stw 0,r%g_fcycles_stop+4(ret0) - bv 0(scratch4) - stw r1,(scratch1) - nop - nop - nop - - - - .align 8 - .export set_mem_yreg -set_mem_yreg -; arg0 = addr to write - extru,= psr,27,1,0 ;null branch if 16 bit - b set_memory_asm - copy yreg,arg1 -;if get here, 16 bit yreg - b,n set_memory16_asm - nop - - - .align 8 - .export set_mem_xreg -set_mem_xreg -; arg0 = addr to write - extru,= psr,27,1,0 ;null branch if 16 bit - b set_memory_asm - copy xreg,arg1 -;if get here, 16 bit xreg - b,n set_memory16_asm - nop - - - - .export get_memory_outofrange,code -get_memory_outofrange - break - - -get_mem_b0_16_stub - b get_mem_b0_16 - nop - - .align 8 -get_mem_b0_direct_page_16 -; get 2 bytes for direct-page fetch. -; arg0 = addr; -; if emul and dl = 0, then stick dh in -; into high bytes. -; if emul, grab + 1 byte from dh page also. -; if not emul, just call get_mem_b0 - ldi 0xff,scratch2 - extru,<> psr,23,1,0 ;null next if emul bit set - b get_mem_b0_16 - extru direct,23,8,scratch1 - and arg0,scratch2,scratch3 - extru,<> direct,31,8,0 ;null if direct not page aligned - dep scratch1,23,24,arg0 ;..done only if direct is page aligned - comb,<> scratch3,scratch2,get_mem_b0_16_stub - stw link,STACK_GET_MEM_B0_DIRECT_SAVELINK(sp) -; we're at 0x??ff, so next byte needs to come from 0x??00. - bl get_mem_b0_8,link - stw arg0,STACK_GET_MEM_B0_DIRECT_ARG0(sp) -; now, get next byte - ldw STACK_GET_MEM_B0_DIRECT_ARG0(sp),arg0 - extru direct,23,8,scratch1 - stw ret0,STACK_GET_MEM_B0_DIRECT_RET0(sp) - addi 1,arg0,arg0 - extru,<> direct,31,8,0 ;null if direct not page aligned - dep scratch1,23,24,arg0 ;..done only if direct is page aligned - bl get_mem_b0_8,link - nop - -; and return - copy ret0,scratch2 - ldw STACK_GET_MEM_B0_DIRECT_SAVELINK(sp),scratch1 - ldb STACK_GET_MEM_B0_DIRECT_RET0+3(sp),ret0 - bv (scratch1) - dep scratch2,23,8,ret0 - - - -push_8 - copy arg0,arg1 - copy stack,arg0 - addi -1,stack,stack - extru,= psr,23,1,0 ;emul mode? - depi 1,23,24,stack - b set_mem_b0_8 - extru stack,31,16,stack - -pull_8 - addi 1,stack,stack - extru,= psr,23,1,0 - depi 1,23,24,stack - extru stack,31,16,stack - b get_mem_b0_8 - copy stack,arg0 - -push_16 - copy arg0,arg1 - bb,>= psr,23,push_16_native - extru stack,30,7,scratch1 - -; push_16_emul - addi -2,stack,stack - comib,= 0,scratch1,push_16_emul_page - addi 1,stack,arg0 ;we know we are not at end of page - b set_mem_b0_16 - depi 1,23,24,stack - - -push_16_emul_page - stw link,STACK_SAVE_PUSH16_LINK(sp) - addi 1,arg0,arg0 - stw arg1,STACK_SAVE_PUSH16_ARG1(sp) - depi 1,23,24,arg0 - bl set_mem_b0_8,link - extru arg1,23,8,arg1 -; and do next push - addi 1,stack,arg0 - depi 1,23,24,stack - ldw STACK_SAVE_PUSH16_LINK(sp),link - ldb STACK_SAVE_PUSH16_ARG1+3(sp),arg1 - b set_mem_b0_8 - depi 1,23,24,arg0 - -push_16_native -; here, we're a native push_16 - addi -2,stack,stack - comib,= 0,scratch1,push_16_nat_page - addi 1,stack,arg0 ;we know we are not at end of page - b set_mem_b0_16 - extru stack,31,16,stack - - -push_16_nat_page - stw link,STACK_SAVE_PUSH16_LINK(sp) - addi 1,arg0,arg0 - stw arg1,STACK_SAVE_PUSH16_ARG1(sp) - extru arg0,31,16,arg0 - bl set_mem_b0_8,link - extru arg1,23,8,arg1 -; and do next push - addi 1,stack,arg0 - extru stack,31,16,stack - ldw STACK_SAVE_PUSH16_LINK(sp),link - ldb STACK_SAVE_PUSH16_ARG1+3(sp),arg1 - b set_mem_b0_8 - extru arg0,31,16,arg0 - -push_16_unsafe - copy arg0,arg1 - addi -1,stack,arg0 - addi -2,stack,stack - extru,= psr,23,1,0 - depi 1,23,24,stack - extru arg0,31,16,arg0 - b set_mem_b0_16 - extru stack,31,16,stack - -push_24_unsafe - copy arg0,arg1 - addi -2,stack,arg0 - addi -3,stack,stack - extru,= psr,23,1,0 - depi 1,23,24,stack - extru arg0,31,16,arg0 - b set_mem_b0_24 - extru stack,31,16,stack - -pull_16_unsafe - addi 1,stack,stack - extru,= psr,23,1,0 - depi 1,23,24,stack - extru stack,31,16,arg0 - addi 1,stack,stack - extru,= psr,23,1,0 - depi 1,23,24,stack - b get_mem_b0_16 - extru stack,31,16,stack - - .align 8 -pull_16 - extrs stack,29,6,scratch1 - bb,< psr,23,pull_16_emul - addi 1,stack,arg0 - comib,= -1,scratch1,pull_16_nat_page - addi 2,stack,stack -; if we get here, native & not near page cross - extru arg0,31,16,arg0 - b get_mem_b0_16 - extru stack,31,16,stack - -pull_16_emul - comib,= -1,scratch1,pull_16_emul_page - addi 2,stack,stack -; if get here, emul & not near page cross - b get_mem_b0_16 - depi 1,23,24,stack - -pull_16_nat_page - stw link,STACK_SAVE_PULL16_LINK(sp) - bl get_mem_b0_8,link - extru arg0,31,16,arg0 -; got first byte - stw ret0,STACK_SAVE_PULL16_RET0(sp) - extru stack,31,16,stack - bl get_mem_b0_8,link - copy stack,arg0 -; got second byte - ldw STACK_SAVE_PULL16_LINK(sp),link - copy ret0,scratch1 - ldb STACK_SAVE_PULL16_RET0+3(sp),ret0 - bv 0(link) - dep scratch1,23,8,ret0 - -pull_16_emul_page - stw link,STACK_SAVE_PULL16_LINK(sp) - bl get_mem_b0_8,link - depi 1,23,24,arg0 -; got first byte - stw ret0,STACK_SAVE_PULL16_RET0(sp) - depi 1,23,24,stack - bl get_mem_b0_8,link - copy stack,arg0 -; got second byte - ldw STACK_SAVE_PULL16_LINK(sp),link - copy ret0,scratch1 - ldb STACK_SAVE_PULL16_RET0+3(sp),ret0 - bv 0(link) - dep scratch1,23,8,ret0 - - .export pull_24,code -pull_24 - extrs stack,29,6,scratch1 - bb,< psr,23,pull_24_emul - addi 1,stack,arg0 - comib,= -1,scratch1,pull_24_nat_page - addi 3,stack,stack -; if we get here, native & not near page cross, go for it - extru arg0,31,16,arg0 - b get_mem_b0_24 - extru stack,31,16,stack - -pull_24_emul - depi 1,23,24,arg0 - comib,= -1,scratch1,pull_24_emul_page - addi 3,stack,stack -; if we get here, emul & not near page cross - b get_mem_b0_24 - depi 1,23,24,stack - -pull_24_nat_page - stw link,STACK_SAVE_PULL24_LINK(sp) - bl get_mem_b0_8,link - extru arg0,31,16,arg0 -; got first byte - stw ret0,STACK_SAVE_PULL24_RET0(sp) - addi -1,stack,arg0 - extru stack,31,16,stack - bl get_mem_b0_8,link - extru arg0,31,16,arg0 -; got second byte - stb ret0,STACK_SAVE_PULL24_RET0+2(sp) - bl get_mem_b0_8,link - copy stack,arg0 -; got all bytes - ldw STACK_SAVE_PULL24_LINK(sp),link - copy ret0,scratch1 - ldw STACK_SAVE_PULL24_RET0(sp),ret0 - bv (link) - dep scratch1,15,8,ret0 - -pull_24_emul_page - stw link,STACK_SAVE_PULL24_LINK(sp) - bl get_mem_b0_8,link - nop -; got first byte - addi -1,stack,arg0 - stw ret0,STACK_SAVE_PULL24_RET0(sp) - depi 1,23,24,stack - bl get_mem_b0_8,link - depi 1,23,24,arg0 -; got second byte - stb ret0,STACK_SAVE_PULL24_RET0+2(sp) - bl get_mem_b0_8,link - copy stack,arg0 -; got all bytes - ldw STACK_SAVE_PULL24_LINK(sp),link - copy ret0,scratch1 - ldw STACK_SAVE_PULL24_RET0(sp),ret0 - bv (link) - dep scratch1,15,8,ret0 - -update_system_state_and_change_kbank -; kbank already changed..do nothing - -update_system_state -; psr is new psw state -; arg0 is old in bits 31 and 30 - ldi 0x30,scratch1 - extru,= psr,23,1,0 - depi 3,27,2,psr - and psr,scratch1,scratch1 - extru,= psr,23,1,0 - depi 1,23,24,stack - dep arg0,29,2,scratch1 - blr scratch1,0 - addit,>= -0x3d,scratch1,0 -; 0000: no change - b update_sys9 - nop ! nop ! nop - nop ! nop ! nop ! nop -; 0001: x from 1->0 - b update_sys9 - ldi 2,scratch1 - nop ! nop - nop ! nop ! nop ! nop -; 0010: m from 1->0 - b resize_acc_to16 - ldi 0,ret0 - nop ! nop - nop ! nop ! nop ! nop -; 0011: m,x from 1->0 - b resize_acc_to16 - ldi 0,ret0 - nop ! nop - nop ! nop ! nop ! nop -; 0100: x from 0->1 - depi 0,23,24,yreg - b update_sys9 - depi 0,23,24,xreg - nop - nop ! nop ! nop ! nop -; 0101: no change - b update_sys9 - nop ! nop ! nop - nop ! nop ! nop ! nop -; 0110: x from 0->1, m from 1->0 - depi 0,23,24,yreg - ldi 0,ret0 - b resize_acc_to16 - depi 0,23,24,xreg - nop ! nop ! nop ! nop -; 0111: m from 1->0 - b resize_acc_to16 - ldi 0,ret0 - nop ! nop - nop ! nop ! nop ! nop -; 1000: m from 0->1 - b resize_acc_to8 - ldi 0,ret0 - nop ! nop - nop ! nop ! nop ! nop -; 1001: m from 0->1, x from 1->0 - b resize_acc_to8 - ldi 0,ret0 - nop ! nop - nop ! nop ! nop ! nop -; 1010: no change - b update_sys9 - nop ! nop ! nop - nop ! nop ! nop ! nop -; 1011: x from 1->0 - b update_sys9 - nop ! nop ! nop - nop ! nop ! nop ! nop -; 1100: m,x from 0->1 - depi 0,23,24,yreg - ldi 0,ret0 - b resize_acc_to8 - depi 0,23,24,xreg - nop ! nop ! nop ! nop -; 1101: m from 0->1 - b resize_acc_to8 - ldi 0,ret0 - nop ! nop - nop ! nop ! nop ! nop -; 1110: x from 0->1 - depi 0,23,24,yreg - ldi 0,ret0 - b update_sys9 - depi 0,23,24,xreg - nop ! nop ! nop ! nop -; 1111: no change - b update_sys9 - nop ! nop ! nop - nop ! nop ! nop ! nop -; 10000 - break - - - .export get_yreg_from_mem,code -get_yreg_from_mem -; arg0 = addr to read from, write into yreg - bb,>=,n psr,27,get_yreg_from_mem16 - bl get_mem_b0_8,link - extru arg0,31,24,arg0 - - extru ret0,31,8,zero - extru ret0,24,1,neg - b dispatch - copy zero,yreg - - .export get_yreg_from_mem16,code -get_yreg_from_mem16 - bl get_mem_b0_16,link - extru arg0,31,24,arg0 - - extru ret0,31,16,zero - extru ret0,16,1,neg - b dispatch - copy zero,yreg - - - .export get_xreg_from_mem,code -get_xreg_from_mem -; arg0 = addr to read from, write into xreg - bb,>=,n psr,27,get_xreg_from_mem16 - bl get_mem_b0_8,link - extru arg0,31,24,arg0 - - extru ret0,31,8,zero - extru ret0,24,1,neg - b dispatch - copy zero,xreg - - .export get_xreg_from_mem16,code -get_xreg_from_mem16 - bl get_mem_b0_16,link - extru arg0,31,24,arg0 - - extru ret0,31,16,zero - extru ret0,16,1,neg - b dispatch - copy zero,xreg - - - - - .export enter_engine,code -enter_engine -; load up regs with struct vals - .proc - .callinfo frame=STACK_ENGINE_SIZE,caller,save_rp,entry_gr=18,entry_fr=19 - .enter - - ldw ENGINE_FPLUS_PTR(arg0),scratch1 ;fplus ptr - fldds ENGINE_FCYCLES(arg0),fcycles - - ldil l%g_fcycles_stop,fcycles_stop_ptr - ldw ENGINE_REG_ACC(arg0),acc - ldo r%g_fcycles_stop(fcycles_stop_ptr),fcycles_stop_ptr - fldds FPLUS_PLUS_1(scratch1),fr_plus_1 - ldo FPLUS_PLUS_3(scratch1),ret0 - fldds FPLUS_PLUS_2(scratch1),fr_plus_2 - ldil l%g_last_vbl_dcycs,ret1 - fldds FPLUS_PLUS_3-FPLUS_PLUS_3(ret0),fr_plus_3 - ldo r%g_last_vbl_dcycs(ret1),ret1 - fldds FPLUS_PLUS_X_M1-FPLUS_PLUS_3(ret0),fr_plus_x_m1 - fldds 0(ret1),fcycles_last_dcycs - ldil l%table8,ret0 - ldw ENGINE_REG_XREG(arg0),xreg - ldil l%table16,inst_tab_ptr - ldw ENGINE_REG_YREG(arg0),yreg - ldo r%table8(ret0),ret0 - ldw ENGINE_REG_STACK(arg0),stack - ldo r%table16(inst_tab_ptr),inst_tab_ptr - ldw ENGINE_REG_PSR(arg0),psr - ldi 0,zero - ldw ENGINE_REG_DBANK(arg0),dbank - ldil l%page_info_rd_wr,page_info_ptr - ldw ENGINE_REG_DIRECT(arg0),direct - extru,= psr,26,1,0 ;nullify if acc size = 0 == 16bit - copy ret0,inst_tab_ptr - ldw ENGINE_REG_KPC(arg0),kpc - - ldo r%page_info_rd_wr(page_info_ptr),page_info_ptr - extru,<> psr,30,1,0 - ldi 1,zero - extru psr,24,1,neg - stw arg0,STACK_SAVE_ARG0(sp) - ldi 0xfd,const_fd - b dispatch - ldi 0,scratch1 - - .export resize_acc_to8,code -resize_acc_to8 - ldil l%table8,inst_tab_ptr - extru psr,27,1,scratch1 ;size of x - b update_sys9 - ldo r%table8(inst_tab_ptr),inst_tab_ptr - - .export resize_acc_to16,code -resize_acc_to16 - ldil l%table16,inst_tab_ptr - extru psr,27,1,scratch1 - b update_sys9 - ldo r%table16(inst_tab_ptr),inst_tab_ptr - - - -dispatch_done_cycles_mismatch - ldi -1,ret0 - b dispatch_done - nop - - - - .export dispatch_done -dispatch_done - bl refresh_engine_struct,link - ldw STACK_SAVE_ARG0(sp),arg0 - .leave - .procend - -refresh_engine_struct -; warning--this routine must not change arg1, arg2, arg3, or ret0 -; can only change scratch1 - - comiclr,<> 0,zero,scratch1 - ldi 1,scratch1 - dep neg,24,1,psr - dep scratch1,30,1,psr - stw acc,ENGINE_REG_ACC(arg0) - stw xreg,ENGINE_REG_XREG(arg0) - stw yreg,ENGINE_REG_YREG(arg0) - stw stack,ENGINE_REG_STACK(arg0) - stw dbank,ENGINE_REG_DBANK(arg0) - stw direct,ENGINE_REG_DIRECT(arg0) - stw psr,ENGINE_REG_PSR(arg0) - stw kpc,ENGINE_REG_KPC(arg0) - bv 0(link) - fstds fcycles,ENGINE_FCYCLES(arg0) - - .export check_irqs_pending,code -update_sys9 -check_irqs_pending -; if any g_irq_pending, return RET_IRQ - ldil l%g_irq_pending,scratch1 - ldw r%g_irq_pending(scratch1),scratch2 - bb,<,n psr,29,dispatch - comib,= 0,scratch2,dispatch - zdepi RET_IRQ,3,4,ret0 - b,n dispatch_done - nop - - .export clr_halt_act - .export set_halt_act -clr_halt_act - LDC(halt_sim,scratch1) - bv 0(link) - stw 0,(scratch1) - -set_halt_act - LDC(halt_sim,scratch1) - ldw (scratch1),scratch2 - ldil l%g_fcycles_stop,scratch3 - stw 0,r%g_fcycles_stop(scratch3) - or scratch2,arg0,arg0 - stw 0,r%g_fcycles_stop+4(scratch3) - bv 0(link) - stw arg0,(scratch1) - - - .align 32 - .export dispatch_fast,code -dispatch_fast -; instr is the instr to fetch -#ifdef LOG_PC - b dispatch - nop -#endif - fldds 0(fcycles_stop_ptr),fcycles_stop - extru kpc,23,16,arg2 - - extru kpc,31,8,scratch4 - ldwx,s arg2(page_info_ptr),scratch2 - - ldwx,s instr(inst_tab_ptr),link - fcmp,>,dbl fcycles,fcycles_stop ;C=1 if must stop - - addl scratch4,scratch2,scratch1 - comclr,>= scratch4,const_fd,0 ;stop for pieces if near end of page - - ldi -1,scratch2 - bb,<,n scratch2,BANK_IO_BIT,dispatch_instr_io - - ftest ;null next if can cont - - bv 0(link) - CYCLES_PLUS_2 - - b dispatch_instr_io - CYCLES_MINUS_2 - - - .align 32 - .export dispatch,code -dispatch - -#ifdef CHECK_SIZE_CONSISTENCY - nop - bl check_size_consist,link - nop -#endif - -#ifdef DEBUG_TOOLBOX - ldil l%g_rom_version,scratch1 - ldw r%g_rom_version(scratch1),scratch1 - ldi 0x00db,scratch1 ;ROM 01 - comiclr,> 3,scratch1,0 - ldi 0x00e5,scratch1 ;ROM 03 - depi -2,15,8,scratch1 ;set bank to 0xfe - comb,<>,n scratch1,kpc,no_debug_toolbox - copy xreg,arg0 - copy stack,arg1 - bl toolbox_debug_c,link - copy cycles,arg2 - - extru kpc,23,16,scratch2 -no_debug_toolbox -#endif - fldds 0(fcycles_stop_ptr),fcycles_stop - extru kpc,23,16,arg2 - - ldi 0xfd,scratch3 - ldwx,s arg2(page_info_ptr),scratch2 - - fcmp,<=,dbl fcycles,fcycles_stop ;C=1 if can cont - extru kpc,31,8,scratch4 - - ldbx scratch4(scratch2),instr - comclr,>= scratch4,scratch3,0 ;stop for pieces if near end of page - - ftest ;null next if can cont - - ldi -1,scratch2 - ldwx,s instr(inst_tab_ptr),link - - addl scratch4,scratch2,scratch1 - bb,<,n scratch2,BANK_IO_BIT,dispatch_instr_io - - ; depi 0,31,3,link - -#ifndef LOG_PC - bv 0(link) - CYCLES_PLUS_2 -#else - CYCLES_PLUS_2 - - .import log_pc_ptr,data - .import log_pc_start_ptr,data - .import log_pc_end_ptr,data - .export log_pc_asm -log_pc_asm -; save regs into log_pc_ptr, wrap around to log_pc_start_ptr if -; log_pc_ptr gets > log_pc_end_ptr - ldb 1(scratch1),scratch3 - dep neg,24,1,psr ;set neg - ldb 2(scratch1),scratch2 - ldil l%log_pc_ptr,scratch4 - ldb 3(scratch1),ret0 - fsub,dbl fcycles_last_dcycs,fr_plus_2,ftmp1 - dep scratch2,23,8,scratch3 - ldo r%log_pc_ptr(scratch4),scratch4 - dep instr,7,8,scratch3 - ldw 0(scratch4),scratch2 - dep ret0,15,8,scratch3 - copy kpc,ret1 - depi 0,30,1,psr ;zero - comiclr,<> 0,zero,0 - depi 1,30,1,psr ;set zero - stw scratch3,LOG_PC_INSTR(scratch2) - dep dbank,7,8,ret1 - copy acc,scratch3 - dep psr,15,16,scratch3 - fadd,dbl fcycles,ftmp1,ftmp1 - stw ret1,LOG_PC_DBANK_KPC(scratch2) - copy yreg,ret1 - stw scratch3,LOG_PC_PSR_ACC(scratch2) - dep xreg,15,16,ret1 - copy direct,scratch3 - fstds ftmp1,LOG_PC_DCYCS(scratch2) - ldw rs%log_pc_end_ptr-log_pc_ptr(scratch4),ret0 - dep stack,15,16,scratch3 - stw ret1,LOG_PC_XREG_YREG(scratch2) - addi LOG_PC_SIZE,scratch2,r31 - stw scratch3,LOG_PC_STACK_DIRECT(scratch2) - -; comb,>= r31,ret0,log_pc_oflow -; nop - - comclr,< r31,ret0,0 -; reload log_pc with log_pc_start_ptr - ldw rs%log_pc_start_ptr-log_pc_ptr(scratch4),r31 - - bv 0(link) - stw r31,0(scratch4) - -log_pc_oflow - ldil l%g_fcycles_stop,scratch3 - ldil l%halt_sim,ret0 - stw 0,r%g_fcycles_stop(scratch3) - ldi 2,arg0 - stw 0,r%g_fcycles_stop+4(scratch3) - stw arg0,r%halt_sim(ret0) - - ldw rs%log_pc_start_ptr-log_pc_ptr(scratch4),r31 - bv 0(link) - stw r31,0(scratch4) -#endif - - - .export dispatch_instr_io,code -dispatch_instr_io -; check if we're here because of timeout or halt required - fcmp,<=,dbl fcycles,fcycles_stop ;C=1 if we can cont - ldwx,s arg2(page_info_ptr),scratch2 - - ftest ;do next instr if must stop - b,n dispatch_done_clr_ret0 - - bb,>=,n scratch2,BANK_IO_BIT,dispatch_instr_pieces - - ldil l%0xc700,scratch1 - ldo r%0xc700(scratch1),scratch1 - addi 0x0a,scratch1,scratch2 - comb,= scratch1,kpc,dispatch_done - zdepi RET_C700,3,4,ret0 - - addi 0xd,scratch1,scratch3 - comb,= scratch2,kpc,dispatch_done - zdepi RET_C70A,3,4,ret0 - - comb,= scratch3,kpc,dispatch_done - zdepi RET_C70D,3,4,ret0 - - .export dispatch_instr_pieces,code -dispatch_instr_pieces -; fetch pc, get size from inst_info_ptr - bl get_mem_long_8,link - copy kpc,arg0 -; ret is instr - ldwx,s ret0(inst_tab_ptr),link - ldil l%sizes_tab,scratch4 - copy ret0,instr - ldo r%sizes_tab(scratch4),scratch4 - addi 1,kpc,arg0 - ldbx instr(scratch4),scratch2 -#ifdef LOG_PC -; save "real" link so call_log_pc can restore it - - stw link,STACK_SAVE_DISPATCH_LINK(sp) - LDC(call_log_pc,link) - stw instr,STACK_SAVE_INSTR(sp) -#endif - stw link,STACK_SAVE_DISP_PIECES_LINK(sp) - - ldi 0x1bea,ret0 - sh3add scratch2,0,scratch2 - ldo STACK_SAVE_TMP_INST(sp),scratch1 - blr scratch2,0 - addit,>= -48,scratch2,0 - -/* must correct cycle count so all instrs are called with cycls += 2 */ -/* since get_mem will auto-inc cycles by the number of bytes, we */ -/* need to "patch" things here, by adding 1 for 1byte, and subbing */ -/* from 3 and 4 byte instrs */ -; 0 - bv 0(link) - CYCLES_PLUS_1 - nop - nop - nop ! nop ! nop ! nop - nop ! nop ! nop ! nop - nop ! nop ! nop ! nop -; 1 - bl get_mem_long_8,link - nop - ldw STACK_SAVE_DISP_PIECES_LINK(sp),link - dep ret0,15,8,ret0 - ldo STACK_SAVE_TMP_INST(sp),scratch1 - bv 0(link) - stw ret0,0(scratch1) - nop ! nop - nop ! nop ! nop ! nop - nop ! nop ! nop ! nop -; 2 - bl get_mem_long_16,link - CYCLES_MINUS_1 - ldo STACK_SAVE_TMP_INST(sp),scratch1 - ldw STACK_SAVE_DISP_PIECES_LINK(sp),link - dep ret0,15,8,ret0 - bv 0(link) - stw ret0,0(scratch1) - nop - nop ! nop ! nop ! nop - nop ! nop ! nop ! nop -; 3 - bl get_mem_long_24,link - CYCLES_MINUS_2 - shd ret0,ret0,16,scratch2 - ldw STACK_SAVE_DISP_PIECES_LINK(sp),link - extru ret0,23,8,ret0 - ldo STACK_SAVE_TMP_INST(sp),scratch1 - dep ret0,23,8,scratch2 - bv 0(link) - stw scratch2,0(scratch1) - nop ! nop ! nop - nop ! nop ! nop ! nop -; 4 variable acc size - extru,<> psr,26,1,0 - bl,n get_mem_long_16,link - bl,n get_mem_long_8,link - CYCLES_MINUS_1 - ldw STACK_SAVE_DISP_PIECES_LINK(sp),link - ldo STACK_SAVE_TMP_INST(sp),scratch1 - dep ret0,15,8,ret0 - bv 0(link) - stw ret0,0(scratch1) - nop ! nop ! nop - nop ! nop ! nop ! nop -; 5 variable x size - extru,<> psr,27,1,0 - bl,n get_mem_long_16,link - bl,n get_mem_long_8,link - CYCLES_MINUS_1 - ldw STACK_SAVE_DISP_PIECES_LINK(sp),link - ldo STACK_SAVE_TMP_INST(sp),scratch1 - dep ret0,15,8,ret0 - bv 0(link) - stw ret0,0(scratch1) - nop ! nop ! nop - nop ! nop ! nop ! nop -; 6 = evil - break - - -#ifdef LOG_PC - .export call_log_pc,code -call_log_pc -; ret0 = operands -; must get instr = instruction -; and link = correct dispatch loc - ldw STACK_SAVE_INSTR(sp),instr - b log_pc_asm - ldw STACK_SAVE_DISPATCH_LINK(sp),link -#endif - -dispatch_done_clr_ret0 - nop ;just in case of bad nullification - b dispatch_done - ldi 0,ret0 - - -#ifdef CHECK_SIZE_CONSISTENCY - .import size_fail,code - - .export check_size_consist -check_size_consist - ldil l%table16,scratch1 - ldil l%table8,scratch2 - ldo r%table16(scratch1),scratch1 - bb,< psr,26,check_tab_8_bit - ldo r%table8(scratch2),scratch2 -; else 16 - comb,= scratch1,inst_tab_ptr,acc_size_ok - nop - - .export acc_tab_fail1 -acc_tab_fail1 - copy inst_tab_ptr,arg1 - copy scratch1,arg2 - bl size_fail,link - ldi 0x100,arg0 - b,n dispatch_done_clr_ret0 -; 8 - .export check_tab_8_bit -check_tab_8_bit - comb,= scratch2,inst_tab_ptr,acc_size_ok - nop - - .export acc_tab_fail0 -acc_tab_fail0 - copy inst_tab_ptr,arg1 - copy scratch2,arg2 - bl size_fail,link - ldi 0x101,arg0 - b dispatch_done - ldi 0,ret0 - - .export acc_size_ok -acc_size_ok - bv 0(link) - nop -#endif - - .align 8 -adc_binary_8_entry2 - extru psr,31,1,scratch3 - add ret0,scratch3,ret0 - - dep ret0,31,8,acc - extru ret0,31,8,zero - -/* and calc overflow */ - xor arg0,ret0,arg2 /* cmp binary add res w/ src1 */ - xor arg0,scratch2,scratch3 /* cmp signs of two inputs */ - extru ret0,24,1,neg - andcm arg2,scratch3,scratch3 /* and that with ~res. */ - extru ret0,23,1,scratch4 - extru scratch3,24,1,scratch3 - dep scratch4,31,1,psr /* set carry */ - b dispatch - dep scratch3,25,1,psr /* set overflow */ - - .align 8 - .export adc_binary_8 -adc_binary_8 - extru ret0,31,8,scratch2 - bb,>= psr,28,adc_binary_8_entry2 - add arg0,scratch2,ret0 - - - ldil l%dispatch,link - b adc_decimal_8 - ldo r%dispatch(link),link - - .export adc_decimal_8 -/* adds arg0 to scratch2 */ -/* acc8 (in arg0) and ret0 have already been added into ret0. Ignore that */ -adc_decimal_8 - ldi 0xf,scratch1 - extru psr,31,1,ret0 - - and arg0,scratch1,scratch3 - and scratch2,scratch1,scratch4 - - add scratch3,scratch4,ret1 - ldi 0xf0,arg3 - - add ret0,ret1,ret0 - - and arg0,arg3,scratch3 - addi -0xa,ret0,ret1 - - and scratch2,arg3,scratch4 - depi 1,27,4,ret1 - comiclr,> 0xa,ret0,0 - copy ret1,ret0 - - add scratch3,scratch4,ret1 - add ret0,ret1,ret0 - - extru ret0,24,1,ret1 - extru ret0,23,1,arg1 - xor ret1,arg1,ret1 - dep ret1,25,1,psr /* ov=((sum>>2) ^ (sum>>1) & 0x40 */ - - comiclr,> 0xa0,ret0,0 - addi 0x60,ret0,ret0 - - xor arg0,scratch2,scratch4 - extru ret0,31,8,zero - - extru,= scratch4,24,1,0 - depi 0,25,1,psr /* no overflow! */ - - - depi 0,31,1,psr - comiclr,> 0x100,ret0,0 - addi 1,psr,psr - - extru ret0,24,1,neg - bv 0(link) - dep zero,31,8,acc - - - - .align 8 - .export sbc_binary_8,code -sbc_binary_8 - extru ret0,31,8,scratch2 - bb,>= psr,28,adc_binary_8_entry2 - add arg0,scratch2,ret0 - - ldil l%dispatch,link - b sbc_decimal_8 - ldo r%dispatch(link),link - - -/* else decimal */ - .export sbc_decimal_8,code -sbc_decimal_8 -/* do arg0 - scratch2 = acc */ - ldi 0xf,scratch1 - extru psr,31,1,ret0 - - and scratch2,scratch1,scratch3 - and arg0,scratch1,scratch4 - - add scratch3,ret0,ret0 - - add ret0,scratch4,ret0 - ldi 0xf0,arg3 - - addi -0x6,ret0,ret1 - and scratch2,arg3,scratch3 - - and ret1,scratch1,ret1 /* sum2 = (sum - 0x6) & 0xf */ - and arg0,arg3,scratch4 - comiclr,<= 0x10,ret0,0 - copy ret1,ret0 /* sum = sum2 */ - - add scratch3,scratch4,ret1 - ldi 0xff,arg2 - add ret0,ret1,ret0 - - extru ret0,24,1,ret1 - addi 0xa0,ret0,scratch3 - extru ret0,23,1,arg3 - and scratch3,arg2,scratch3 /* (sum = sum + 0xa0) & 0xff */ - xor ret1,arg3,ret1 - - dep ret1,25,1,psr /* overflow = ((sum >> 2) ^ */ - /* (sum >> 1)) & 0x40 */ - - depi 0,31,1,psr - comiclr,<= 0x100,ret0,arg3 - or,TR scratch3,0,ret0 - addi 1,psr,psr - - and ret0,arg2,zero - extru ret0,24,1,neg - - xor arg0,scratch2,ret1 - - extru,= ret1,24,1,0 - depi 0,25,1,psr /* clear overflow */ - - bv 0(link) - dep ret0,31,8,acc - - - - .align 8 - .export adc_binary_16 -adc_binary_16 - extru ret0,31,16,scratch2 - bb,< psr,28,adc_decimal_16 - add arg0,scratch2,ret0 - -adc_binary_16_entry2 - extru psr,31,1,scratch1 - add ret0,scratch1,ret0 - - dep ret0,31,16,acc - extru ret0,31,16,zero - -/* and calc overflow */ - xor arg0,ret0,arg2 /* cmp binary add res w/ src1 */ - xor arg0,scratch2,scratch3 - extru ret0,16,1,neg - andcm arg2,scratch3,scratch3 /* and that with ~res. */ - extru ret0,15,1,scratch4 - extru scratch3,16,1,scratch3 - dep scratch4,31,1,psr /* set carry */ - b dispatch - dep scratch3,25,1,psr /* set overflow */ - - - .export adc_decimal_16 -adc_decimal_16 -/* must save arg0, scratch2 */ - stw arg0,STACK_SAVE_DECIMAL16_A(sp) - extru arg0,31,8,arg0 - stw scratch2,STACK_SAVE_DECIMAL16_B(sp) - bl adc_decimal_8,link - extru scratch2,31,8,scratch2 - - ldb STACK_SAVE_DECIMAL16_A+2(sp),arg0 - ldb STACK_SAVE_DECIMAL16_B+2(sp),scratch2 - bl adc_decimal_8,link - stw acc,STACK_SAVE_DECIMAL16_A(sp) - - ldw STACK_SAVE_DECIMAL16_A(sp),scratch1 - zdep acc,23,8,acc - dep scratch1,31,8,acc - b dispatch - copy acc,zero - - - .align 8 - .export sbc_binary_16,code -sbc_binary_16 - extru ret0,31,16,scratch2 - bb,>= psr,28,adc_binary_16_entry2 - add arg0,scratch2,ret0 - -/* else decimal */ - .export sbc_decimal_16,code -sbc_decimal_16 - stw arg0,STACK_SAVE_DECIMAL16_A(sp) - extru arg0,31,8,arg0 - stw scratch2,STACK_SAVE_DECIMAL16_B(sp) - bl sbc_decimal_8,link - extru scratch2,31,8,scratch2 - - ldb STACK_SAVE_DECIMAL16_A+2(sp),arg0 - ldb STACK_SAVE_DECIMAL16_B+2(sp),scratch2 - bl sbc_decimal_8,link - stw acc,STACK_SAVE_DECIMAL16_A(sp) - - ldw STACK_SAVE_DECIMAL16_A(sp),scratch1 - zdep acc,23,8,acc - dep scratch1,31,8,acc - b dispatch - copy acc,zero - - - - -#define ACC8 - .code -#include "defs_instr.h" -#include "8inst_s.h" - .code -#undef SYM -#undef ACC8 - - .code -#include "defs_instr.h" -#include "16inst_s.h" - .code -#undef SYM - - .export inst00_8 - .export inst01_8 - .export inst02_8 - .export inst03_8 - .export inst04_8 - .export inst05_8 - .export inst06_8 - .export inst07_8 - .export inst08_8 - .export inst09_8 - .export inst0a_8 - .export inst0b_8 - .export inst0c_8 - .export inst0d_8 - .export inst0e_8 - .export inst0f_8 - - .export inst10_8 - .export inst11_8 - .export inst12_8 - .export inst13_8 - .export inst14_8 - .export inst15_8 - .export inst16_8 - .export inst17_8 - .export inst18_8 - .export inst19_8 - .export inst1a_8 - .export inst1b_8 - .export inst1c_8 - .export inst1d_8 - .export inst1e_8 - .export inst1f_8 - - .export inst20_8 - .export inst21_8 - .export inst22_8 - .export inst23_8 - .export inst24_8 - .export inst25_8 - .export inst26_8 - .export inst27_8 - .export inst28_8 - .export inst29_8 - .export inst2a_8 - .export inst2b_8 - .export inst2c_8 - .export inst2d_8 - .export inst2e_8 - .export inst2f_8 - - .export inst30_8 - .export inst31_8 - .export inst32_8 - .export inst33_8 - .export inst34_8 - .export inst35_8 - .export inst36_8 - .export inst37_8 - .export inst38_8 - .export inst39_8 - .export inst3a_8 - .export inst3b_8 - .export inst3c_8 - .export inst3d_8 - .export inst3e_8 - .export inst3f_8 - - .export inst40_8 - .export inst41_8 - .export inst42_8 - .export inst43_8 - .export inst44_8 - .export inst45_8 - .export inst46_8 - .export inst47_8 - .export inst48_8 - .export inst49_8 - .export inst4a_8 - .export inst4b_8 - .export inst4c_8 - .export inst4d_8 - .export inst4e_8 - .export inst4f_8 - - .export inst50_8 - .export inst51_8 - .export inst52_8 - .export inst53_8 - .export inst54_8 - .export inst55_8 - .export inst56_8 - .export inst57_8 - .export inst58_8 - .export inst59_8 - .export inst5a_8 - .export inst5b_8 - .export inst5c_8 - .export inst5d_8 - .export inst5e_8 - .export inst5f_8 - - .export inst60_8 - .export inst61_8 - .export inst62_8 - .export inst63_8 - .export inst64_8 - .export inst65_8 - .export inst66_8 - .export inst67_8 - .export inst68_8 - .export inst69_8 - .export inst6a_8 - .export inst6b_8 - .export inst6c_8 - .export inst6d_8 - .export inst6e_8 - .export inst6f_8 - - .export inst70_8 - .export inst71_8 - .export inst72_8 - .export inst73_8 - .export inst74_8 - .export inst75_8 - .export inst76_8 - .export inst77_8 - .export inst78_8 - .export inst79_8 - .export inst7a_8 - .export inst7b_8 - .export inst7c_8 - .export inst7d_8 - .export inst7e_8 - .export inst7f_8 - - .export inst80_8 - .export inst81_8 - .export inst82_8 - .export inst83_8 - .export inst84_8 - .export inst85_8 - .export inst86_8 - .export inst87_8 - .export inst88_8 - .export inst89_8 - .export inst8a_8 - .export inst8b_8 - .export inst8c_8 - .export inst8d_8 - .export inst8e_8 - .export inst8f_8 - .export inst90_8 - .export inst91_8 - .export inst92_8 - .export inst93_8 - .export inst94_8 - .export inst95_8 - .export inst96_8 - .export inst97_8 - .export inst98_8 - .export inst99_8 - .export inst9a_8 - .export inst9b_8 - .export inst9c_8 - .export inst9d_8 - .export inst9e_8 - .export inst9f_8 - .export insta0_8 - .export insta1_8 - .export insta2_8 - .export insta3_8 - .export insta4_8 - .export insta5_8 - .export insta6_8 - .export insta7_8 - .export insta8_8 - .export insta9_8 - .export instaa_8 - .export instab_8 - .export instac_8 - .export instad_8 - .export instae_8 - .export instaf_8 - .export instb0_8 - .export instb1_8 - .export instb2_8 - .export instb3_8 - .export instb4_8 - .export instb5_8 - .export instb6_8 - .export instb7_8 - .export instb8_8 - .export instb9_8 - .export instba_8 - .export instbb_8 - .export instbc_8 - .export instbd_8 - .export instbe_8 - .export instbf_8 - .export instc0_8 - .export instc1_8 - .export instc2_8 - .export instc3_8 - .export instc4_8 - .export instc5_8 - .export instc6_8 - .export instc7_8 - .export instc8_8 - .export instc9_8 - .export instca_8 - .export instcb_8 - .export instcc_8 - .export instcd_8 - .export instce_8 - .export instcf_8 - .export instd0_8 - .export instd1_8 - .export instd2_8 - .export instd3_8 - .export instd4_8 - .export instd5_8 - .export instd6_8 - .export instd7_8 - .export instd8_8 - .export instd9_8 - .export instda_8 - .export instdb_8 - .export instdc_8 - .export instdd_8 - .export instde_8 - .export instdf_8 - .export inste0_8 - .export inste1_8 - .export inste2_8 - .export inste3_8 - .export inste4_8 - .export inste5_8 - .export inste6_8 - .export inste7_8 - .export inste8_8 - .export inste9_8 - .export instea_8 - .export insteb_8 - .export instec_8 - .export insted_8 - .export instee_8 - .export instef_8 - .export instf0_8 - .export instf1_8 - .export instf2_8 - .export instf3_8 - .export instf4_8 - .export instf5_8 - .export instf6_8 - .export instf7_8 - .export instf8_8 - .export instf9_8 - .export instfa_8 - .export instfb_8 - .export instfc_8 - .export instfd_8 - .export instfe_8 - .export instff_8 - - - .export inst00_16 - .export inst01_16 - .export inst02_16 - .export inst03_16 - .export inst04_16 - .export inst05_16 - .export inst06_16 - .export inst07_16 - .export inst08_16 - .export inst09_16 - .export inst0a_16 - .export inst0b_16 - .export inst0c_16 - .export inst0d_16 - .export inst0e_16 - .export inst0f_16 - - .export inst10_16 - .export inst11_16 - .export inst12_16 - .export inst13_16 - .export inst14_16 - .export inst15_16 - .export inst16_16 - .export inst17_16 - .export inst18_16 - .export inst19_16 - .export inst1a_16 - .export inst1b_16 - .export inst1c_16 - .export inst1d_16 - .export inst1e_16 - .export inst1f_16 - - .export inst20_16 - .export inst21_16 - .export inst22_16 - .export inst23_16 - .export inst24_16 - .export inst25_16 - .export inst26_16 - .export inst27_16 - .export inst28_16 - .export inst29_16 - .export inst2a_16 - .export inst2b_16 - .export inst2c_16 - .export inst2d_16 - .export inst2e_16 - .export inst2f_16 - - .export inst30_16 - .export inst31_16 - .export inst32_16 - .export inst33_16 - .export inst34_16 - .export inst35_16 - .export inst36_16 - .export inst37_16 - .export inst38_16 - .export inst39_16 - .export inst3a_16 - .export inst3b_16 - .export inst3c_16 - .export inst3d_16 - .export inst3e_16 - .export inst3f_16 - - .export inst40_16 - .export inst41_16 - .export inst42_16 - .export inst43_16 - .export inst44_16 - .export inst45_16 - .export inst46_16 - .export inst47_16 - .export inst48_16 - .export inst49_16 - .export inst4a_16 - .export inst4b_16 - .export inst4c_16 - .export inst4d_16 - .export inst4e_16 - .export inst4f_16 - - .export inst50_16 - .export inst51_16 - .export inst52_16 - .export inst53_16 - .export inst54_16 - .export inst55_16 - .export inst56_16 - .export inst57_16 - .export inst58_16 - .export inst59_16 - .export inst5a_16 - .export inst5b_16 - .export inst5c_16 - .export inst5d_16 - .export inst5e_16 - .export inst5f_16 - - .export inst60_16 - .export inst61_16 - .export inst62_16 - .export inst63_16 - .export inst64_16 - .export inst65_16 - .export inst66_16 - .export inst67_16 - .export inst68_16 - .export inst69_16 - .export inst6a_16 - .export inst6b_16 - .export inst6c_16 - .export inst6d_16 - .export inst6e_16 - .export inst6f_16 - - .export inst70_16 - .export inst71_16 - .export inst72_16 - .export inst73_16 - .export inst74_16 - .export inst75_16 - .export inst76_16 - .export inst77_16 - .export inst78_16 - .export inst79_16 - .export inst7a_16 - .export inst7b_16 - .export inst7c_16 - .export inst7d_16 - .export inst7e_16 - .export inst7f_16 - - .export inst80_16 - .export inst81_16 - .export inst82_16 - .export inst83_16 - .export inst84_16 - .export inst85_16 - .export inst86_16 - .export inst87_16 - .export inst88_16 - .export inst89_16 - .export inst8a_16 - .export inst8b_16 - .export inst8c_16 - .export inst8d_16 - .export inst8e_16 - .export inst8f_16 - .export inst90_16 - .export inst91_16 - .export inst92_16 - .export inst93_16 - .export inst94_16 - .export inst95_16 - .export inst96_16 - .export inst97_16 - .export inst98_16 - .export inst99_16 - .export inst9a_16 - .export inst9b_16 - .export inst9c_16 - .export inst9d_16 - .export inst9e_16 - .export inst9f_16 - .export insta0_16 - .export insta1_16 - .export insta2_16 - .export insta3_16 - .export insta4_16 - .export insta5_16 - .export insta6_16 - .export insta7_16 - .export insta8_16 - .export insta9_16 - .export instaa_16 - .export instab_16 - .export instac_16 - .export instad_16 - .export instae_16 - .export instaf_16 - .export instb0_16 - .export instb1_16 - .export instb2_16 - .export instb3_16 - .export instb4_16 - .export instb5_16 - .export instb6_16 - .export instb7_16 - .export instb8_16 - .export instb9_16 - .export instba_16 - .export instbb_16 - .export instbc_16 - .export instbd_16 - .export instbe_16 - .export instbf_16 - .export instc0_16 - .export instc1_16 - .export instc2_16 - .export instc3_16 - .export instc4_16 - .export instc5_16 - .export instc6_16 - .export instc7_16 - .export instc8_16 - .export instc9_16 - .export instca_16 - .export instcb_16 - .export instcc_16 - .export instcd_16 - .export instce_16 - .export instcf_16 - .export instd0_16 - .export instd1_16 - .export instd2_16 - .export instd3_16 - .export instd4_16 - .export instd5_16 - .export instd6_16 - .export instd7_16 - .export instd8_16 - .export instd9_16 - .export instda_16 - .export instdb_16 - .export instdc_16 - .export instdd_16 - .export instde_16 - .export instdf_16 - .export inste0_16 - .export inste1_16 - .export inste2_16 - .export inste3_16 - .export inste4_16 - .export inste5_16 - .export inste6_16 - .export inste7_16 - .export inste8_16 - .export inste9_16 - .export instea_16 - .export insteb_16 - .export instec_16 - .export insted_16 - .export instee_16 - .export instef_16 - .export instf0_16 - .export instf1_16 - .export instf2_16 - .export instf3_16 - .export instf4_16 - .export instf5_16 - .export instf6_16 - .export instf7_16 - .export instf8_16 - .export instf9_16 - .export instfa_16 - .export instfb_16 - .export instfc_16 - .export instfd_16 - .export instfe_16 - .export instff_16 - - - .data -#include "8size_s.h" - - .export table8,data -table8 -#include "8size_s.h" - - .export table16,data -table16 -#include "16size_s.h" - - .export sizes_tab,data -sizes_tab -#include "size_s.h" - - - .export g_engine_c_mode,data -g_engine_c_mode - .word 0 - - .bss - - .export slow_memory,data - .export rom_fc_ff,data - .export rom_cards,data - .export dummy_memory1,data - .align 0x100 -slow_memory .block 128*1024 -dummy_memory1 .block 3*1024 -rom_fc_ff .block 256*1024 -rom_cards .block 256*16 diff --git a/.svn/pristine/15/1531d8854419cc50e3e7bc6f69b99059830ac2c0.svn-base b/.svn/pristine/15/1531d8854419cc50e3e7bc6f69b99059830ac2c0.svn-base deleted file mode 100644 index bb358ff..0000000 --- a/.svn/pristine/15/1531d8854419cc50e3e7bc6f69b99059830ac2c0.svn-base +++ /dev/null @@ -1,217 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/.svn/pristine/15/15868e5a045ffaa4a41741db125d0a9ead0f3435.svn-base b/.svn/pristine/15/15868e5a045ffaa4a41741db125d0a9ead0f3435.svn-base deleted file mode 100644 index cd0743e..0000000 --- a/.svn/pristine/15/15868e5a045ffaa4a41741db125d0a9ead0f3435.svn-base +++ /dev/null @@ -1,20 +0,0 @@ - -TARGET = gsportx -OBJECTS = $(OBJECTS1) xdriver.o -CC = gcc -CCOPTS = -O -OPTS = -DNDEBUG -SUFFIX = -NAME = gsportx -LDFLAGS = -LDOPTS = -z -LD = $(CC) -EXTRA_LIBS = -lXext -lX11 -lcl -lc -EXTRA_SPECIALS = Alib.h - -AS = cc -Ae -PERL = perl - -XOPTS = -DHPUX -I/usr/include/X11R5 -XLIBS = -L/usr/lib/X11R5 -L/opt/audio/lib - diff --git a/.svn/pristine/16/1653de2388e7eefe796f5334913f0608b75dd875.svn-base b/.svn/pristine/16/1653de2388e7eefe796f5334913f0608b75dd875.svn-base deleted file mode 100644 index 1a89474..0000000 --- a/.svn/pristine/16/1653de2388e7eefe796f5334913f0608b75dd875.svn-base +++ /dev/null @@ -1,36 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2013-2014 by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/** ELAP port of the AppleTalk Bridge **/ - -bool elap_init(); -void elap_shutdown(); -void elap_process(); - -struct packet_t; - -void elap_enqueue_out(struct packet_t* packet); -struct packet_t* elap_dequeue_in(); - -struct ether_addr_t; -struct snap_discriminator_t; - -void elap_send(const struct ether_addr_t* dest, const struct snap_discriminator_t* discriminator, size_t size, byte data[]); - -const struct ether_addr_t* elap_get_mac(); \ No newline at end of file diff --git a/.svn/pristine/16/168f48f79384fef9512b62b92360fc5cd0fee82e.svn-base b/.svn/pristine/16/168f48f79384fef9512b62b92360fc5cd0fee82e.svn-base deleted file mode 100644 index 7e49f7d..0000000 --- a/.svn/pristine/16/168f48f79384fef9512b62b92360fc5cd0fee82e.svn-base +++ /dev/null @@ -1,2605 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2014 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" - -#ifdef HAVE_TFE -#include "tfe/protos_tfe.h" -#endif - -extern char const g_gsport_version_str[]; - -extern byte *g_memory_ptr; -extern byte *g_dummy_memory1_ptr; -extern byte *g_slow_memory_ptr; -extern byte *g_rom_fc_ff_ptr; -extern byte *g_rom_cards_ptr; -extern byte *g_grappler_rom; -extern unsigned char ioslotsel; -extern unsigned char iostrobe; - -extern word32 slow_mem_changed[]; - -extern int g_num_breakpoints; -extern word32 g_breakpts[]; - -extern Page_info page_info_rd_wr[]; - -extern int Verbose; -extern int g_rom_version; -extern int g_user_page2_shadow; -extern int g_parallel; - -char c; -/* from iwm.c */ -int g_num_shadow_all_banks = 0; - -#define IOR(val) ( (val) ? 0x80 : 0x00 ) - - -extern int g_cur_a2_stat; - -int g_em_emubyte_cnt = 0; -int g_paddle_buttons = 0; -int g_irq_pending = 0; - -int g_c023_val = 0; -int g_c029_val_some = 0x41; -int g_c02b_val = 0x08; -int g_c02d_int_crom = 0; -int g_c031_disk35 = 0; -int g_c033_data = 0; -int g_c034_val = 0; -int g_c035_shadow_reg = 0x08; -int g_c036_val_speed = 0x80; -int g_c03ef_doc_ptr = 0; -int g_c041_val = 0; /* C041_EN_25SEC_INTS, C041_EN_MOVE_INTS */ -int g_c046_val = 0; -int g_c05x_annuncs = 0; -int g_c068_statereg = 0; -int g_c08x_wrdefram = 0; -int g_zipgs_unlock = 0; -int g_zipgs_reg_c059 = 0x5f; - // 7=LC cache dis, 6==5ms paddle del en, 5==5ms ext del en, - // 4==5ms c02e enab, 3==CPS follow enab, 2-0: 111 -int g_zipgs_reg_c05a = 0x0f; - // 7:4 = current ZIP speed, 0=100%, 1=93.75%, F=6.25% - // 3:0: always 1111 -int g_zipgs_reg_c05b = 0x40; - // 7==1ms clock, 6==cshupd: tag data at c05f updated - // 5==LC cache disable, 4==bd is disabled, 3==delay in effect, - // 2==rombank, 1-0==ram size (00:8K, 01=16K, 10=32K, 11=64K) -int g_zipgs_reg_c05c = 0x00; - // 7:1==slot delay enable (for 52-54ms), 0==speaker 5ms delay - -#define EMUSTATE(a) { #a, &a } - -Emustate_intlist g_emustate_intlist[] = { - EMUSTATE(g_cur_a2_stat), - EMUSTATE(g_paddle_buttons), - - EMUSTATE(g_em_emubyte_cnt), - EMUSTATE(g_irq_pending), - EMUSTATE(g_c023_val), - EMUSTATE(g_c029_val_some), - EMUSTATE(g_c02b_val), - EMUSTATE(g_c02d_int_crom), - EMUSTATE(g_c031_disk35), - EMUSTATE(g_c033_data), - EMUSTATE(g_c034_val), - EMUSTATE(g_c035_shadow_reg), - EMUSTATE(g_c036_val_speed), - EMUSTATE(g_c03ef_doc_ptr), - EMUSTATE(g_c041_val), - EMUSTATE(g_c046_val), - EMUSTATE(g_c05x_annuncs), - EMUSTATE(g_c068_statereg), - EMUSTATE(g_c08x_wrdefram), - EMUSTATE(g_zipgs_unlock), - EMUSTATE(g_zipgs_reg_c059), - EMUSTATE(g_zipgs_reg_c05a), - EMUSTATE(g_zipgs_reg_c05b), - EMUSTATE(g_zipgs_reg_c05c), - { 0, 0, } -}; - -extern double g_paddle_trig_dcycs; -extern double g_last_vbl_dcycs; - -Emustate_dbllist g_emustate_dbllist[] = { - EMUSTATE(g_paddle_trig_dcycs), - EMUSTATE(g_last_vbl_dcycs), - { 0, 0, } -}; - -extern word32 g_mem_size_total; - -Emustate_word32list g_emustate_word32list[] = { - EMUSTATE(g_mem_size_total), - { 0, 0, } -}; - - -#define UNIMPL_READ \ - halt_printf("UNIMP READ to addr %08x\n", loc); \ - return 0; - -#define UNIMPL_WRITE \ - halt_printf("UNIMP WRITE to addr %08x, val: %04x\n", loc, val); \ - return; - - -//#ifdef _WINDOWS -// OG Added Transwarp ROM -#define TRANSWARP -int transwarp_low_val = 0; -#ifdef _WIN32 -__declspec(align(256)) -#endif -unsigned char transwarpcode[][32] -#if !defined(_WIN32) && !defined(__OS2__) -__attribute__ ((aligned(256))) -#endif -={ -{ -/*0xBCFF00*/ 'T','W','G','S',0,0,0,0,0,0,0,0,0,0,0,0, -/*0xBCFF10*/ 0x5C,0x40,0xFF,0xBC, // JMP GetMaxSpeed -/*0xBCFF14*/ 0x5C,0x60,0xFF,0xBC, // JMP GetNumISpeed -/*0xBCFF18*/ 0x6B,0x00,0x00,0x00, // ??? -/*0xBCFF1C*/ 0x6B,0x00,0x00,0x00 // ??? -}, -{ -/*0xBCFF20*/ 0x5C,0x80,0xFF,0xBC, // JMP GetCurSpeed -/*0xBCFF24*/ 0x5C,0xA0,0xFF,0xBC, // JMP SetCurSpeed -/*0xBCFF28*/ 0x5C,0xC0,0xFF,0xBC, // JMP GetCurISpeed -/*0xBCFF2C*/ 0x5C,0xE0,0xFF,0xBC, // JMP SetCurISpeed -/*0xBCFF30*/ 0x6B,0x00,0x00,0x00, // ??? -/*0xBCFF34*/ 0x6B,0x00,0x00,0x00, // ??? -/*0xBCFF38*/ 0x6B,0x00,0x00,0x00, // ??? -/*0xBCFF3C*/ 0x6B,0x00,0x00,0x00 // GetTWConfig -}, -{ -/* 0xBCFF40*/ // GetMaxSpeed -#define ZIP_SPEED 8000 - -0xA9, ZIP_SPEED & 0xFF, (ZIP_SPEED >> 8) &0xFF, // LDA 0x1F40 // Max Speed = 8.0Mhz -0x6B, // RTL -0x00,0x00,0x00,0x00, //4 -0x00,0x00,0x00,0x00, //8 -0x6B,0x00,0x00,0x00, //C Space Shark calls this address ??? -}, -{ -/* 0xBCFF60*/ //GetNumISpeed -0xA9,0x02,0x00, // LDA 0x0002 // 0=slow, 1=normal, 2=warp -0x6B, // RTL -}, -{ -/* 0xBCFF80*/ //GetCurSpeed -0xAF, 0x6A, 0xC0, 0x00, // LDA 0xC06A (/6B) -0x6B, // RTL -}, -{ -/* 0xBCFFA0*/ //SetCurSpeed -0x8F, 0x6A, 0xC0, 0x00, // STA 0xC06A (/6B) -0x6B, // RTL -}, -{ -/* 0xBCFFC0*/ //GetCurISpeed -0x48, // PHA -0xAF, 0x6C, 0xC0, 0x00, // LDA 0xC06C (/6D) -0xAA, // TAX -0x68, // PLA -0x6B, // RTL -}, -{ -/* 0xBCFFE0*/ //SetCurISpeed -0x48, // PHA -0x8A, // TXA -0x8F, 0x6C, 0xC0, 0x00, // STA 0xC06C (/6D) -0x68, // PLA -0x6B, // RTL -} -} - -; - -// OG Added moremem_init() -void moremem_init() -{ - g_em_emubyte_cnt = 0; - g_paddle_buttons = 0; - g_irq_pending = 0; - - g_c023_val = 0; - g_c029_val_some = 0x41; - g_c02b_val = 0x08; - g_c02d_int_crom = 0; - g_c031_disk35 = 0; - g_c034_val = 0; - g_c035_shadow_reg = 0x08; - g_c036_val_speed = 0x80; - g_c03ef_doc_ptr = 0; - g_c041_val = 0; /* C041_EN_25SEC_INTS, C041_EN_MOVE_INTS */ - g_c046_val = 0; - g_c05x_annuncs = 0; - g_c068_statereg = 0; - g_c08x_wrdefram = 0; - g_zipgs_unlock = 0; - g_zipgs_reg_c059 = 0x5f; - g_zipgs_reg_c05a = 0x0f; - g_zipgs_reg_c05b = 0x40; - g_zipgs_reg_c05c = 0x00; -} - -void -fixup_brks() -{ - word32 page; - word32 tmp, tmp2; - Pg_info val; - int is_wr_only; - int i, num; - - num = g_num_breakpoints; - for(i = 0; i < num; i++) { - page = (g_breakpts[i] >> 8) & 0xffff; - is_wr_only = (g_breakpts[i] >> 24) & 1; - if(!is_wr_only) { - val = GET_PAGE_INFO_RD(page); - tmp = PTR2WORD(val) & 0xff; - tmp2 = tmp | BANK_IO_TMP | BANK_BREAK; - SET_PAGE_INFO_RD(page, val - tmp + tmp2); - } - val = GET_PAGE_INFO_WR(page); - tmp = PTR2WORD(val) & 0xff; - tmp2 = tmp | BANK_IO_TMP | BANK_BREAK; - SET_PAGE_INFO_WR(page, val - tmp + tmp2); - } -} - -void -fixup_hires_on() -{ - if((g_cur_a2_stat & ALL_STAT_ST80) == 0) { - return; - } - - fixup_bank0_2000_4000(); - fixup_brks(); -} - -void -fixup_bank0_2000_4000() -{ - byte *mem0rd; - byte *mem0wr; - - mem0rd = &(g_memory_ptr[0x2000]); - mem0wr = mem0rd; - if((g_cur_a2_stat & ALL_STAT_ST80) && (g_cur_a2_stat & ALL_STAT_HIRES)){ - if(g_cur_a2_stat & ALL_STAT_PAGE2) { - mem0rd += 0x10000; - mem0wr += 0x10000; - if((g_c035_shadow_reg & 0x12) == 0 || - (g_c035_shadow_reg & 0x8) == 0) { - mem0wr += BANK_SHADOW2; - } - } else if((g_c035_shadow_reg & 0x02) == 0) { - mem0wr += BANK_SHADOW; - } - - } else { - if(RAMRD) { - mem0rd += 0x10000; - } - if(RAMWRT) { - mem0wr += 0x10000; - if((g_c035_shadow_reg & 0x12) == 0 || - (g_c035_shadow_reg & 0x8) == 0) { - mem0wr += BANK_SHADOW2; - } - } else if((g_c035_shadow_reg & 0x02) == 0) { - mem0wr += BANK_SHADOW; - } - } - - fixup_any_bank_any_page(0x20, 0x20, mem0rd, mem0wr); -} - -void -fixup_bank0_0400_0800() -{ - byte *mem0rd; - byte *mem0wr; - int shadow; - - mem0rd = &(g_memory_ptr[0x400]); - mem0wr = mem0rd; - shadow = BANK_SHADOW; - if(g_cur_a2_stat & ALL_STAT_ST80) { - if(g_cur_a2_stat & ALL_STAT_PAGE2) { - shadow = BANK_SHADOW2; - mem0rd += 0x10000; - mem0wr += 0x10000; - } - } else { - if(RAMWRT) { - shadow = BANK_SHADOW2; - mem0wr += 0x10000; - } - if(RAMRD) { - mem0rd += 0x10000; - } - } - if((g_c035_shadow_reg & 0x01) == 0) { - mem0wr += shadow; - } - - fixup_any_bank_any_page(0x4, 4, mem0rd, mem0wr); -} - -void -fixup_any_bank_any_page(int start_page, int num_pages, byte *mem0rd, - byte *mem0wr) -{ - int i; - - for(i = 0; i < num_pages; i++) { - SET_PAGE_INFO_RD(i + start_page, mem0rd); - mem0rd += 0x100; - } - - for(i = 0; i < num_pages; i++) { - SET_PAGE_INFO_WR(i + start_page, mem0wr); - mem0wr += 0x100; - } - -} - -void -fixup_intcx() -{ - byte *rom10000; - byte *rom_inc; - int no_io_shadow; - int off; - int start_k; - word32 mask; - int j, k; - - rom10000 = &(g_rom_fc_ff_ptr[0x30000]); - - no_io_shadow = (g_c035_shadow_reg & 0x40); - - start_k = 0; - if(no_io_shadow) { - /* if not shadowing, banks 0 and 1 are not affected by intcx */ - start_k = 2; - } - - for(k = start_k; k < 4; k++) { - off = k; - if(k >= 2) { - off += (0xe0 - 2); - } - /* step off through 0x00, 0x01, 0xe0, 0xe1 */ - - off = off << 8; - SET_PAGE_INFO_RD(0xc0 + off, SET_BANK_IO); - - for(j = 0xc1; j < 0xc8; j++) { - mask = 1 << (j & 0xf); - if(j < 0xc8) { - rom_inc = SET_BANK_IO; - if(((g_c02d_int_crom & mask) == 0) || INTCX) { - rom_inc = rom10000 + (j << 8); - } else { - // User-slot rom - rom_inc = &(g_rom_cards_ptr[0]) + - ((j - 0xc0) << 8); - } - SET_PAGE_INFO_RD(j + off, rom_inc); - } - } - for(j = 0xc8; j < 0xd0; j++) { - - /*c800 - cfff */ - if(((g_c02d_int_crom & (1 << 3)) == 0) || INTCX) - { - rom_inc = rom10000 + (j << 8); - } - else - { - rom_inc = rom10000 + (j << 8); - - } - SET_PAGE_INFO_RD(j + off, rom_inc); - } - iostrobe = 0; - for(j = 0xc0; j < 0xd0; j++) { - SET_PAGE_INFO_WR(j + off, SET_BANK_IO); - } - } - if(!no_io_shadow) { - SET_PAGE_INFO_RD(0xc7, SET_BANK_IO); /* smartport */ - } - fixup_brks(); -} - -void -fixup_wrdefram(int new_wrdefram) -{ - byte *mem0wr; - byte *wrptr; - int j; - - g_c08x_wrdefram = new_wrdefram; - - if(g_c035_shadow_reg & 0x40) { - /* do nothing */ - return; - } - - /* if shadowing, banks 0 and 1 are affected by wrdefram */ - mem0wr = &(g_memory_ptr[0]); - if(!new_wrdefram) { - mem0wr += (BANK_IO_TMP | BANK_IO2_TMP); - } - - wrptr = mem0wr + 0x1e000; - for(j = 0x1e0; j < 0x200; j++) { - SET_PAGE_INFO_WR(j, wrptr); - wrptr += 0x100; - } - - wrptr = mem0wr + 0x0e000; - if(ALTZP) { - wrptr += 0x10000; - } - for(j = 0xe0; j < 0x100; j++) { - SET_PAGE_INFO_WR(j, wrptr); - wrptr += 0x100; - } - - wrptr = mem0wr + 0x1d000; - if(! LCBANK2) { - wrptr -= 0x1000; - } - for(j = 0x1d0; j < 0x1e0; j++) { - SET_PAGE_INFO_WR(j, wrptr); - wrptr += 0x100; - } - - wrptr = mem0wr + 0xd000; - if(! LCBANK2) { - wrptr -= 0x1000; - } - if(ALTZP) { - wrptr += 0x10000; - } - for(j = 0xd0; j < 0xe0; j++) { - SET_PAGE_INFO_WR(j, wrptr); - wrptr += 0x100; - } - - fixup_brks(); -} - -void -fixup_st80col(double dcycs) -{ - int cur_a2_stat; - - cur_a2_stat = g_cur_a2_stat; - - fixup_bank0_0400_0800(); - - if(cur_a2_stat & ALL_STAT_HIRES) { - /* fixup no matter what PAGE2 since PAGE2 and RAMRD/WR */ - /* can work against each other */ - fixup_bank0_2000_4000(); - } - - if(cur_a2_stat & ALL_STAT_PAGE2) { - change_display_mode(dcycs); - } - - fixup_brks(); -} - -void -fixup_altzp() -{ - byte *mem0rd, *mem0wr; - int rdrom, c08x_wrdefram; - int altzp; - - altzp = ALTZP; - mem0rd = &(g_memory_ptr[0]); - if(altzp) { - mem0rd += 0x10000; - } - SET_PAGE_INFO_RD(0, mem0rd); - SET_PAGE_INFO_RD(1, mem0rd + 0x100); - SET_PAGE_INFO_WR(0, mem0rd); - SET_PAGE_INFO_WR(1, mem0rd + 0x100); - - mem0rd = &(g_memory_ptr[0xd000]); - mem0wr = mem0rd; - c08x_wrdefram = g_c08x_wrdefram; - rdrom = RDROM; - - if(g_c035_shadow_reg & 0x40) { - if(ALTZP) { - mem0rd += 0x10000; - } - fixup_any_bank_any_page(0xd0, 0x10, mem0rd - 0x1000, - mem0rd - 0x1000); - c08x_wrdefram = 1; - rdrom = 0; - } else { - if(!c08x_wrdefram) { - mem0wr += (BANK_IO_TMP | BANK_IO2_TMP); - } - if(ALTZP) { - mem0rd += 0x10000; - mem0wr += 0x10000; - } - if(! LCBANK2) { - mem0rd -= 0x1000; - mem0wr -= 0x1000; - } - if(rdrom) { - mem0rd = &(g_rom_fc_ff_ptr[0x3d000]); - } - fixup_any_bank_any_page(0xd0, 0x10, mem0rd, mem0wr); - } - - mem0rd = &(g_memory_ptr[0xe000]); - mem0wr = mem0rd; - if(!c08x_wrdefram) { - mem0wr += (BANK_IO_TMP | BANK_IO2_TMP); - } - if(ALTZP) { - mem0rd += 0x10000; - mem0wr += 0x10000; - } - if(rdrom) { - mem0rd = &(g_rom_fc_ff_ptr[0x3e000]); - } - fixup_any_bank_any_page(0xe0, 0x20, mem0rd, mem0wr); - - /* No need for fixup_brks since called from set_statereg() */ -} - -void -fixup_page2(double dcycs) -{ - if((g_cur_a2_stat & ALL_STAT_ST80)) { - fixup_bank0_0400_0800(); - if((g_cur_a2_stat & ALL_STAT_HIRES)) { - fixup_bank0_2000_4000(); - } - } else { - change_display_mode(dcycs); - } -} - -void -fixup_ramrd() -{ - byte *mem0rd; - int cur_a2_stat; - int j; - - cur_a2_stat = g_cur_a2_stat; - - if((cur_a2_stat & ALL_STAT_ST80) == 0) { - fixup_bank0_0400_0800(); - } - if( ((cur_a2_stat & ALL_STAT_ST80) == 0) || - ((cur_a2_stat & ALL_STAT_HIRES) == 0) ) { - fixup_bank0_2000_4000(); - } - - mem0rd = &(g_memory_ptr[0x0000]); - if(RAMRD) { - mem0rd += 0x10000; - } - - SET_PAGE_INFO_RD(2, mem0rd + 0x200); - SET_PAGE_INFO_RD(3, mem0rd + 0x300); - - for(j = 8; j < 0x20; j++) { - SET_PAGE_INFO_RD(j, mem0rd + j*0x100); - } - - for(j = 0x40; j < 0xc0; j++) { - SET_PAGE_INFO_RD(j, mem0rd + j*0x100); - } - - /* No need for fixup_brks since only called from set_statereg() */ -} - -void -fixup_ramwrt() -{ - byte *mem0wr; - int cur_a2_stat; - int shadow; - int ramwrt; - int j; - - cur_a2_stat = g_cur_a2_stat; - - if((cur_a2_stat & ALL_STAT_ST80) == 0) { - fixup_bank0_0400_0800(); - } - if( ((cur_a2_stat & ALL_STAT_ST80) == 0) || - ((cur_a2_stat & ALL_STAT_HIRES) == 0) ) { - fixup_bank0_2000_4000(); - } - - mem0wr = &(g_memory_ptr[0x0000]); - ramwrt = RAMWRT; - if(ramwrt) { - mem0wr += 0x10000; - } - - SET_PAGE_INFO_WR(2, mem0wr + 0x200); - SET_PAGE_INFO_WR(3, mem0wr + 0x300); - - shadow = BANK_SHADOW; - if(ramwrt) { - shadow = BANK_SHADOW2; - } - if( ((g_c035_shadow_reg & 0x20) != 0) || - ((g_rom_version < 3) && !g_user_page2_shadow)) { - shadow = 0; - } - for(j = 8; j < 0x0c; j++) { - SET_PAGE_INFO_WR(j, mem0wr + j*0x100 + shadow); - } - - for(j = 0xc; j < 0x20; j++) { - SET_PAGE_INFO_WR(j, mem0wr + j*0x100); - } - - shadow = 0; - if(ramwrt) { - if((g_c035_shadow_reg & 0x14) == 0 || - (g_c035_shadow_reg & 0x08) == 0) { - shadow = BANK_SHADOW2; - } - } else if((g_c035_shadow_reg & 0x04) == 0) { - shadow = BANK_SHADOW; - } - for(j = 0x40; j < 0x60; j++) { - SET_PAGE_INFO_WR(j, mem0wr + j*0x100 + shadow); - } - - shadow = 0; - if(ramwrt && (g_c035_shadow_reg & 0x08) == 0) { - /* shr shadowing */ - shadow = BANK_SHADOW2; - } - for(j = 0x60; j < 0xa0; j++) { - SET_PAGE_INFO_WR(j, mem0wr + j*0x100 + shadow); - } - - for(j = 0xa0; j < 0xc0; j++) { - SET_PAGE_INFO_WR(j, mem0wr + j*0x100); - } - - /* No need for fixup_brks() since only called from set_statereg() */ -} - -void -fixup_lcbank2() -{ - byte *mem0rd, *mem0wr; - int lcbank2, c08x_wrdefram, rdrom; - int off; - int k; - - for(k = 0; k < 4; k++) { - off = k; - if(k >= 2) { - off += (0xe0 - 2); - } - /* step off through 0x00, 0x01, 0xe0, 0xe1 */ - - if(k < 2) { - mem0rd = &(g_memory_ptr[k << 16]); - } else { - mem0rd = &(g_slow_memory_ptr[(k & 1) << 16]); - } - if((k == 0) && ALTZP) { - mem0rd += 0x10000; - } - lcbank2 = LCBANK2; - c08x_wrdefram = g_c08x_wrdefram; - rdrom = RDROM; - if((k < 2) && (g_c035_shadow_reg & 0x40)) { - lcbank2 = 0; - c08x_wrdefram = 1; - rdrom = 0; - } - if(! lcbank2) { - mem0rd -= 0x1000; /* lcbank1, use 0xc000-cfff */ - } - mem0wr = mem0rd; - if((k < 2) && !c08x_wrdefram) { - mem0wr += (BANK_IO_TMP | BANK_IO2_TMP); - } - if((k < 2) && rdrom) { - mem0rd = &(g_rom_fc_ff_ptr[0x30000]); - } - fixup_any_bank_any_page(off*0x100 + 0xd0, 0x10, - mem0rd + 0xd000, mem0wr + 0xd000); - } - - /* No need for fixup_brks() since only called from set_statereg(), */ - /* or from other routines which will handle it */ -} - -void -fixup_rdrom() -{ - byte *mem0rd; - int j, k; - - /* fixup_lcbank2 handles 0xd000-dfff for rd & wr*/ - fixup_lcbank2(); - - for(k = 0; k < 2; k++) { - /* k is the bank */ - mem0rd = &(g_memory_ptr[k << 16]); - if((k == 0) && ALTZP) { - mem0rd += 0x10000; - } - if((g_c035_shadow_reg & 0x40) == 0) { - if(RDROM) { - mem0rd = &(g_rom_fc_ff_ptr[0x30000]); - } - } - for(j = 0xe0; j < 0x100; j++) { - SET_PAGE_INFO_RD(j + k*0x100, mem0rd + j*0x100); - } - } - - /* No need for fixup_brks() since only called from set_statereg() */ -} - -void -set_statereg(double dcycs, int val) -{ - int _xor; // OG renamed xor to _xor - - _xor = val ^ g_c068_statereg; - g_c068_statereg = val; - if(_xor == 0) { - return; - } - - if(_xor & 0x80) { - /* altzp */ - fixup_altzp(); - } - if(_xor & 0x40) { - /* page2 */ - g_cur_a2_stat = (g_cur_a2_stat & ~ALL_STAT_PAGE2) | - (val & ALL_STAT_PAGE2); - fixup_page2(dcycs); - } - - if(_xor & 0x20) { - /* RAMRD */ - fixup_ramrd(); - } - - if(_xor & 0x10) { - /* RAMWRT */ - fixup_ramwrt(); - } - - if(_xor & 0x08) { - /* RDROM */ - fixup_rdrom(); - } - - if(_xor & 0x04) { - /* LCBANK2 */ - fixup_lcbank2(); - } - - if(_xor & 0x02) { - /* ROMBANK */ - halt_printf("Just set rombank = %d\n", ROMB); - } - - if(_xor & 0x01) { - fixup_intcx(); - } - - if(_xor) { - fixup_brks(); - } -} - -void -fixup_shadow_txt1() -{ - byte *mem0wr; - int j; - - fixup_bank0_0400_0800(); - - mem0wr = &(g_memory_ptr[0x10000]); - if((g_c035_shadow_reg & 0x01) == 0) { - mem0wr += BANK_SHADOW2; - } - for(j = 4; j < 8; j++) { - SET_PAGE_INFO_WR(0x100 + j, mem0wr + j*0x100); - } -} - -void -fixup_shadow_txt2() -{ - byte *mem0wr; - int shadow; - int j; - - /* bank 0 */ - mem0wr = &(g_memory_ptr[0x00000]); - shadow = BANK_SHADOW; - if(RAMWRT) { - mem0wr += 0x10000; - shadow = BANK_SHADOW2; - } - if(((g_c035_shadow_reg & 0x20) == 0) && - ((g_rom_version >= 3) || g_user_page2_shadow)) { - mem0wr += shadow; - } - for(j = 8; j < 0xc; j++) { - SET_PAGE_INFO_WR(j, mem0wr + j*0x100); - } - - /* and bank 1 */ - mem0wr = &(g_memory_ptr[0x10000]); - if(((g_c035_shadow_reg & 0x20) == 0) && - ((g_rom_version >= 3) || g_user_page2_shadow)) { - mem0wr += BANK_SHADOW2; - } - for(j = 8; j < 0xc; j++) { - SET_PAGE_INFO_WR(0x100 + j, mem0wr + j*0x100); - } -} - -void -fixup_shadow_hires1() -{ - byte *mem0wr; - int j; - - fixup_bank0_2000_4000(); - - /* and bank 1 */ - mem0wr = &(g_memory_ptr[0x10000]); - if((g_c035_shadow_reg & 0x12) == 0 || (g_c035_shadow_reg & 0x8) == 0) { - mem0wr += BANK_SHADOW2; - } - for(j = 0x20; j < 0x40; j++) { - SET_PAGE_INFO_WR(0x100 + j, mem0wr + j*0x100); - } -} - -void -fixup_shadow_hires2() -{ - byte *mem0wr; - int j; - - /* bank 0 */ - mem0wr = &(g_memory_ptr[0x00000]); - if(RAMWRT) { - mem0wr += 0x10000; - if((g_c035_shadow_reg & 0x14) == 0 || - (g_c035_shadow_reg & 0x8) == 0) { - mem0wr += BANK_SHADOW2; - } - } else if((g_c035_shadow_reg & 0x04) == 0) { - mem0wr += BANK_SHADOW; - } - for(j = 0x40; j < 0x60; j++) { - SET_PAGE_INFO_WR(j, mem0wr + j*0x100); - } - - /* and bank 1 */ - mem0wr = &(g_memory_ptr[0x10000]); - if((g_c035_shadow_reg & 0x14) == 0 || (g_c035_shadow_reg & 0x8) == 0) { - mem0wr += BANK_SHADOW2; - } - for(j = 0x40; j < 0x60; j++) { - SET_PAGE_INFO_WR(0x100 + j, mem0wr + j*0x100); - } -} - -void -fixup_shadow_shr() -{ - byte *mem0wr; - int j; - - /* bank 0, only pages 0x60 - 0xa0 */ - mem0wr = &(g_memory_ptr[0x00000]); - if(RAMWRT) { - mem0wr += 0x10000; - if((g_c035_shadow_reg & 0x8) == 0) { - mem0wr += BANK_SHADOW2; - } - } - for(j = 0x60; j < 0xa0; j++) { - SET_PAGE_INFO_WR(j, mem0wr + j*0x100); - } - - /* and bank 1, only pages 0x60 - 0xa0 */ - mem0wr = &(g_memory_ptr[0x10000]); - if((g_c035_shadow_reg & 0x8) == 0) { - mem0wr += BANK_SHADOW2; - } - for(j = 0x60; j < 0xa0; j++) { - SET_PAGE_INFO_WR(0x100 + j, mem0wr + j*0x100); - } -} - -void -fixup_shadow_iolc() -{ - byte *mem0rd; - int k; - - if(g_c035_shadow_reg & 0x40) { - /* Disable language card area */ - for(k = 0; k < 2; k++) { - mem0rd = &(g_memory_ptr[k << 16]); - fixup_any_bank_any_page((k << 8) + 0xc0, 0x10, - mem0rd + 0xd000, mem0rd + 0xd000); - if(k == 0 && ALTZP) { - mem0rd += 0x10000; - } - fixup_any_bank_any_page((k << 8) + 0xd0, 0x10, - mem0rd + 0xc000, mem0rd + 0xc000); - fixup_any_bank_any_page((k << 8) + 0xe0, 0x20, - mem0rd + 0xe000, mem0rd + 0xe000); - } - } else { - /* 0xc000 area */ - fixup_intcx(); - - /* 0xd000 area */ - /* fixup_lcbank2(); -- not needed since fixup_rdrom does it */ - - /* Fix 0xd000-0xffff for reads, banks 0 and 1 */ - fixup_rdrom(); /* which calls fixup_lcbank2 */ - - /* Fix 0xd000-0xffff for writes, banks 0 and 1 */ - fixup_wrdefram(g_c08x_wrdefram); - } -} - -void -update_shadow_reg(int val) -{ - int _xor; - - if(g_c035_shadow_reg == val) { - return; - } - - _xor = g_c035_shadow_reg ^ val; - g_c035_shadow_reg = val; - - if(_xor & 8) { - fixup_shadow_hires1(); - fixup_shadow_hires2(); - fixup_shadow_shr(); - _xor = _xor & (~0x16); - } - if(_xor & 0x10) { - fixup_shadow_hires1(); - fixup_shadow_hires2(); - _xor = _xor & (~0x6); - } - if(_xor & 2) { - fixup_shadow_hires1(); - } - if(_xor & 4) { - fixup_shadow_hires2(); - } - if(_xor & 1) { - fixup_shadow_txt1(); - } - if((_xor & 0x20) && ((g_rom_version >= 3) || g_user_page2_shadow)) { - fixup_shadow_txt2(); - } - if(_xor & 0x40) { - fixup_shadow_iolc(); - } - if(_xor) { - fixup_brks(); - } -} - -void -fixup_shadow_all_banks() -{ - byte *mem0rd; - int shadow; - int num_banks; - int j, k; - - /* Assume Ninja Force Megademo */ - /* only do banks 3 - num_banks by 2, shadowing into e1 */ - - shadow = 0; - if((g_c036_val_speed & 0x10) && ((g_c035_shadow_reg & 0x08) == 0)) { - shadow = BANK_SHADOW2; - } - num_banks = g_mem_size_total >> 16; - for(k = 3; k < num_banks; k += 2) { - mem0rd = &(g_memory_ptr[k*0x10000 + 0x2000]) + shadow; - for(j = 0x20; j < 0xa0; j++) { - SET_PAGE_INFO_WR(k*0x100 + j, mem0rd); - mem0rd += 0x100; - } - } - - fixup_brks(); -} - -void -setup_pageinfo() -{ - byte *mem0rd; - word32 mem_size_pages; - - /* first, set all of memory to point to itself */ - - mem_size_pages = g_mem_size_total >> 8; - mem0rd = &(g_memory_ptr[0]); - fixup_any_bank_any_page(0, mem_size_pages, mem0rd, mem0rd); - - /* mark unused memory as BAD_MEM */ - fixup_any_bank_any_page(mem_size_pages, 0xfc00-mem_size_pages, - BANK_BAD_MEM, BANK_BAD_MEM); - - fixup_shadow_all_banks(); - - /* ROM */ - mem0rd = &(g_rom_fc_ff_ptr[0]); - fixup_any_bank_any_page(0xfc00, 0x400, mem0rd, - mem0rd + (BANK_IO_TMP | BANK_IO2_TMP)); - - /* banks e0, e1 */ - mem0rd = &(g_slow_memory_ptr[0]); - fixup_any_bank_any_page(0xe000, 0x04, mem0rd + 0x0000, mem0rd + 0x0000); - fixup_any_bank_any_page(0xe004, 0x08, mem0rd + 0x0400, - mem0rd + 0x0400 + BANK_SHADOW); - fixup_any_bank_any_page(0xe00c, 0x14, mem0rd + 0x0c00, mem0rd + 0x0c00); - fixup_any_bank_any_page(0xe020, 0x40, mem0rd + 0x2000, - mem0rd + 0x2000 + BANK_SHADOW); - fixup_any_bank_any_page(0xe060, 0xa0, mem0rd + 0x6000, mem0rd + 0x6000); - - mem0rd = &(g_slow_memory_ptr[0x10000]); - fixup_any_bank_any_page(0xe100, 0x04, mem0rd + 0x0000, mem0rd + 0x0000); - fixup_any_bank_any_page(0xe104, 0x08, mem0rd + 0x0400, - mem0rd + 0x0400 + BANK_SHADOW2); - fixup_any_bank_any_page(0xe10c, 0x14, mem0rd + 0x0c00, mem0rd + 0x0c00); - fixup_any_bank_any_page(0xe120, 0x80, mem0rd + 0x2000, - mem0rd + 0x2000 + BANK_SHADOW2); - fixup_any_bank_any_page(0xe1a0, 0x60, mem0rd + 0xa000, mem0rd + 0xa000); - - fixup_intcx(); /* correct banks 0xe0,0xe1, 0xc000-0xcfff area */ - fixup_lcbank2(); /* correct 0xd000-0xdfff area */ - - fixup_bank0_2000_4000(); - fixup_bank0_0400_0800(); - fixup_wrdefram(g_c08x_wrdefram); - fixup_altzp(); - fixup_ramrd(); - fixup_ramwrt(); - fixup_rdrom(); - fixup_shadow_txt1(); - fixup_shadow_txt2(); - fixup_shadow_hires1(); - fixup_shadow_hires2(); - fixup_shadow_shr(); - fixup_shadow_iolc(); - fixup_brks(); - -#ifdef TRANSWARP // OG adding Transwarp code - SET_PAGE_INFO_RD(0xBCFF,transwarpcode); -#endif -} - -void -show_bankptrs_bank0rdwr() -{ - show_bankptrs(0); - show_bankptrs(1); - show_bankptrs(0xe0); - show_bankptrs(0xe1); - printf("statereg: %02x\n", g_c068_statereg); -} - -void -show_bankptrs(int bnk) -{ - int i; - Pg_info rd, wr; - byte *ptr_rd, *ptr_wr; - - printf("g_memory_ptr: %p, dummy_mem: %p, slow_mem_ptr: %p\n", - g_memory_ptr, g_dummy_memory1_ptr, g_slow_memory_ptr); - printf("g_rom_fc_ff_ptr: %p\n", g_rom_fc_ff_ptr); - - printf("Showing bank_info array for %02x\n", bnk); - for(i = 0; i < 256; i++) { - rd = GET_PAGE_INFO_RD(bnk*0x100 + i); - wr = GET_PAGE_INFO_WR(bnk*0x100 + i); - ptr_rd = (byte *)rd; - ptr_wr = (byte *)wr; - printf("%04x rd: ", bnk*256 + i); - show_addr(ptr_rd); - printf(" wr: "); - show_addr(ptr_wr); - printf("\n"); - } -} - -void -show_addr(byte *ptr) -{ - word32 mem_size; - - mem_size = g_mem_size_total; - if(ptr >= g_memory_ptr && ptr < &g_memory_ptr[mem_size]) { - printf("%p--memory[%06x]", ptr, - (word32)(ptr - g_memory_ptr)); - } else if(ptr >= g_rom_fc_ff_ptr && ptr < &g_rom_fc_ff_ptr[256*1024]) { - printf("%p--rom_fc_ff[%06x]", ptr, - (word32)(ptr - g_rom_fc_ff_ptr)); - } else if(ptr >= g_slow_memory_ptr && ptr<&g_slow_memory_ptr[128*1024]){ - printf("%p--slow_memory[%06x]", ptr, - (word32)(ptr - g_slow_memory_ptr)); - } else if(ptr >=g_dummy_memory1_ptr && ptr < &g_dummy_memory1_ptr[256]){ - printf("%p--dummy_memory[%06x]", ptr, - (word32)(ptr - g_dummy_memory1_ptr)); - } else { - printf("%p--unknown", ptr); - } -} - - -#define CALC_DCYCS_FROM_CYC_PTR(dcycs, cyc_ptr, fcyc, new_fcyc) \ - dcycs = g_last_vbl_dcycs + *cyc_ptr; - - -int -io_read(word32 loc, double *cyc_ptr) -{ - double dcycs; - word64 word64_tmp; -#if 0 - double fcyc, new_fcyc; -#endif - word32 mask; - int new_lcbank2; - int new_wrdefram; - int tmp; - int i; - - CALC_DCYCS_FROM_CYC_PTR(dcycs, cyc_ptr, fcyc, new_fcyc); - -/* IO space */ - switch((loc >> 8) & 0xf) { - case 0: /* 0xc000 - 0xc0ff */ - switch(loc & 0xff) { - /* 0xc000 - 0xc00f */ - case 0x00: case 0x01: case 0x02: case 0x03: - case 0x04: case 0x05: case 0x06: case 0x07: - case 0x08: case 0x09: case 0x0a: case 0x0b: - case 0x0c: case 0x0d: case 0x0e: case 0x0f: - return(adb_read_c000()); - - /* 0xc010 - 0xc01f */ - case 0x10: /* c010 */ - return(adb_access_c010()); - case 0x11: /* c011 = RDLCBANK2 */ - return IOR(LCBANK2); - case 0x12: /* c012= RDLCRAM */ - return IOR(!RDROM); - case 0x13: /* c013=rdramd */ - return IOR(RAMRD); - case 0x14: /* c014=rdramwrt */ - return IOR(RAMWRT); - case 0x15: /* c015 = INTCX */ - return IOR(INTCX); - case 0x16: /* c016: ALTZP */ - return IOR(ALTZP); - case 0x17: /* c017: rdc3rom */ - return IOR(g_c02d_int_crom & (1 << 3)); - case 0x18: /* c018: rd80c0l */ - return IOR((g_cur_a2_stat & ALL_STAT_ST80)); - case 0x19: /* c019: rdvblbar */ - tmp = in_vblank(dcycs); - return IOR(tmp); - case 0x1a: /* c01a: rdtext */ - return IOR(g_cur_a2_stat & ALL_STAT_TEXT); - case 0x1b: /* c01b: rdmix */ - return IOR(g_cur_a2_stat & ALL_STAT_MIX_T_GR); - case 0x1c: /* c01c: rdpage2 */ - return IOR(g_cur_a2_stat & ALL_STAT_PAGE2); - case 0x1d: /* c01d: rdhires */ - return IOR(g_cur_a2_stat & ALL_STAT_HIRES); - case 0x1e: /* c01e: altcharset on? */ - return IOR(g_cur_a2_stat & ALL_STAT_ALTCHARSET); - case 0x1f: /* c01f: rd80vid */ - return IOR(g_cur_a2_stat & ALL_STAT_VID80); - - /* 0xc020 - 0xc02f */ - case 0x20: /* 0xc020 */ - /* Click cassette port */ - return float_bus(dcycs); - case 0x21: /* 0xc021 */ - /* Not documented, but let's return COLOR_C021 */ - return IOR(g_cur_a2_stat & ALL_STAT_COLOR_C021); - case 0x22: /* 0xc022 */ - return (g_cur_a2_stat >> BIT_ALL_STAT_BG_COLOR) & 0xff; - case 0x23: /* 0xc023 */ - return g_c023_val; - case 0x24: /* 0xc024 */ - return mouse_read_c024(dcycs); - case 0x25: /* 0xc025 */ - return adb_read_c025(); - case 0x26: /* 0xc026 */ - return adb_read_c026(); - case 0x27: /* 0xc027 */ - return adb_read_c027(); - case 0x28: /* 0xc028 */ - UNIMPL_READ; - case 0x29: /* 0xc029 */ - return((g_cur_a2_stat & 0xa0) | g_c029_val_some); - case 0x2a: /* 0xc02a */ -#if 0 - printf("Reading c02a...returning 0\n"); -#endif - return 0; - case 0x2b: /* 0xc02b */ - return g_c02b_val; - case 0x2c: /* 0xc02c */ - /* printf("reading c02c, returning 0\n"); */ - return 0; - case 0x2d: /* 0xc02d */ - tmp = g_c02d_int_crom; - return tmp; - case 0x2e: /* 0xc02e */ - case 0x2f: /* 0xc02f */ - return read_vid_counters(loc, dcycs); - - /* 0xc030 - 0xc03f */ - case 0x30: /* 0xc030 */ - /* click speaker */ - doc_read_c030(dcycs); - return float_bus(dcycs); - case 0x31: /* 0xc031 */ - /* 3.5" control */ - return g_c031_disk35; - case 0x32: /* 0xc032 */ - /* scan int */ - return 0; - case 0x33: /* 0xc033 = CLOCKDATA*/ - return g_c033_data; - case 0x34: /* 0xc034 = CLOCKCTL */ - return g_c034_val; - case 0x35: /* 0xc035 */ - return g_c035_shadow_reg; - case 0x36: /* 0xc036 = CYAREG */ - return g_c036_val_speed; - case 0x37: /* 0xc037 */ - return 0; - case 0x38: /* 0xc038 */ - return scc_read_reg(1, dcycs); - case 0x39: /* 0xc039 */ - return scc_read_reg(0, dcycs); - case 0x3a: /* 0xc03a */ - return scc_read_data(1, dcycs); - case 0x3b: /* 0xc03b */ - return scc_read_data(0, dcycs); - case 0x3c: /* 0xc03c */ - /* doc control */ - return doc_read_c03c(dcycs); - case 0x3d: /* 0xc03d */ - return doc_read_c03d(dcycs); - case 0x3e: /* 0xc03e */ - return (g_c03ef_doc_ptr & 0xff); - case 0x3f: /* 0xc03f */ - return (g_c03ef_doc_ptr >> 8); - - /* 0xc040 - 0xc04f */ - case 0x40: /* 0xc040 */ - /* cassette */ - return 0; - case 0x41: /* 0xc041 */ - return g_c041_val; - case 0x44: /* 0xc044 */ - // SCC LAD A - return scc_read_lad(0); - case 0x45: /* 0xc045 */ - // SCC LAD B - return scc_read_lad(1); - case 0x46: /* 0xc046 */ - tmp = g_c046_val; - g_c046_val = (tmp & 0xbf) + ((tmp & 0x80) >> 1); - return tmp; - case 0x47: /* 0xc047 */ - remove_irq(IRQ_PENDING_C046_25SEC | - IRQ_PENDING_C046_VBL); - g_c046_val &= 0xe7; /* clear vbl_int, 1/4sec int*/ - return 0; - case 0x42: /* 0xc042 */ - case 0x43: /* 0xc043 */ - return 0; - case 0x4f: /* 0xc04f */ - /* for information on c04f, see: */ - /* www.sheppyware.net/tech/hardware/softswitches.html */ - /* write to $c04f to start. Then read $c04f to get */ - /* emulator ($16=sweet16, $fe=bernie II). */ - /* Then read again to get version: $21 == 2.1 */ - switch(g_em_emubyte_cnt) { - case 1: - g_em_emubyte_cnt = 2; - return 'G'; - case 2: - g_em_emubyte_cnt = 0; - tmp = g_gsport_version_str[0] - '0'; - i = g_gsport_version_str[2] - '0'; - return ((tmp & 0xf) << 4) + (i & 0xf); - default: - g_em_emubyte_cnt = 0; - return 0; - } - case 0x48: /* 0xc048 */ - case 0x49: /* 0xc049 */ - case 0x4a: /* 0xc04a */ - case 0x4b: /* 0xc04b */ - case 0x4c: /* 0xc04c */ - case 0x4d: /* 0xc04d */ - case 0x4e: /* 0xc04e */ - UNIMPL_READ; - - /* 0xc050 - 0xc05f */ - case 0x50: /* 0xc050 */ - if(g_cur_a2_stat & ALL_STAT_TEXT) { - g_cur_a2_stat &= (~ALL_STAT_TEXT); - change_display_mode(dcycs); - } - return float_bus(dcycs); - case 0x51: /* 0xc051 */ - if((g_cur_a2_stat & ALL_STAT_TEXT) == 0) { - g_cur_a2_stat |= (ALL_STAT_TEXT); - change_display_mode(dcycs); - } - return float_bus(dcycs); - case 0x52: /* 0xc052 */ - if(g_cur_a2_stat & ALL_STAT_MIX_T_GR) { - g_cur_a2_stat &= (~ALL_STAT_MIX_T_GR); - change_display_mode(dcycs); - } - return float_bus(dcycs); - case 0x53: /* 0xc053 */ - if((g_cur_a2_stat & ALL_STAT_MIX_T_GR) == 0) { - g_cur_a2_stat |= (ALL_STAT_MIX_T_GR); - change_display_mode(dcycs); - } - return float_bus(dcycs); - case 0x54: /* 0xc054 */ - set_statereg(dcycs, g_c068_statereg & (~0x40)); - return float_bus(dcycs); - case 0x55: /* 0xc055 */ - set_statereg(dcycs, g_c068_statereg | 0x40); - return float_bus(dcycs); - case 0x56: /* 0xc056 */ - if(g_cur_a2_stat & ALL_STAT_HIRES) { - g_cur_a2_stat &= (~ALL_STAT_HIRES); - fixup_hires_on(); - change_display_mode(dcycs); - } - return float_bus(dcycs); - case 0x57: /* 0xc057 */ - if((g_cur_a2_stat & ALL_STAT_HIRES) == 0) { - g_cur_a2_stat |= (ALL_STAT_HIRES); - fixup_hires_on(); - change_display_mode(dcycs); - } - return float_bus(dcycs); - case 0x58: /* 0xc058 */ - if(g_zipgs_unlock < 4) { - g_c05x_annuncs &= (~1); - } - return 0; - case 0x59: /* 0xc059 */ - if(g_zipgs_unlock >= 4) { - return g_zipgs_reg_c059; - } else { - g_c05x_annuncs |= 1; - } - return 0; - case 0x5a: /* 0xc05a */ - if(g_zipgs_unlock >= 4) { - return g_zipgs_reg_c05a; - } else { - g_c05x_annuncs &= (~2); - } - return 0; - case 0x5b: /* 0xc05b */ - if(g_zipgs_unlock >= 4) { - word64_tmp = (word64)dcycs; - tmp = (word64_tmp >> 9) & 1; - return (tmp << 7) + (g_zipgs_reg_c05b & 0x7f); - } else { - g_c05x_annuncs |= 2; - } - return 0; - case 0x5c: /* 0xc05c */ - if(g_zipgs_unlock >= 4) { - return g_zipgs_reg_c05c; - } else { - g_c05x_annuncs &= (~4); - } - return 0; - case 0x5d: /* 0xc05d */ - if(g_zipgs_unlock >= 4) { - halt_printf("Reading ZipGS $c05d!\n"); - } else { - g_c05x_annuncs |= 4; - } - return 0; - case 0x5e: /* 0xc05e */ - if(g_zipgs_unlock >= 4) { - halt_printf("Reading ZipGS $c05e!\n"); - } else if(g_cur_a2_stat & ALL_STAT_ANNUNC3) { - g_cur_a2_stat &= (~ALL_STAT_ANNUNC3); - change_display_mode(dcycs); - } - return 0; - case 0x5f: /* 0xc05f */ - if(g_zipgs_unlock >= 4) { - halt_printf("Reading ZipGS $c05f!\n"); - } else if((g_cur_a2_stat & ALL_STAT_ANNUNC3) == 0) { - g_cur_a2_stat |= (ALL_STAT_ANNUNC3); - change_display_mode(dcycs); - } - return 0; - - - /* 0xc060 - 0xc06f */ - case 0x60: /* 0xc060 */ - return IOR(g_paddle_buttons & 8); - case 0x61: /* 0xc061 */ - return IOR(adb_is_cmd_key_down() || - g_paddle_buttons & 1); - case 0x62: /* 0xc062 */ - return IOR(adb_is_option_key_down() || - g_paddle_buttons & 2); - case 0x63: /* 0xc063 */ - return IOR(g_paddle_buttons & 4); - case 0x64: /* 0xc064 */ - return read_paddles(dcycs, 0); - case 0x65: /* 0xc065 */ - return read_paddles(dcycs, 1); - case 0x66: /* 0xc066 */ - return read_paddles(dcycs, 2); - case 0x67: /* 0xc067 */ - return read_paddles(dcycs, 3); - case 0x68: /* 0xc068 = STATEREG */ - return g_c068_statereg; - case 0x69: /* 0xc069 */ - /* Reserved reg, return 0 */ - return 0; - // OG Transwarp Read Interface - #ifdef TRANSWARP - case 0x6a: /* 0xc06a */ - { - extern double g_zip_pmhz; - return (int)(g_zip_pmhz*1000)&0xFF; - } - case 0x6b: /* 0xc06b */ - { - extern double g_zip_pmhz; - return (((int)(g_zip_pmhz*1000))>>8)&0xFF; - } - case 0x6c: /* 0xc06c */ - { - extern double g_zip_pmhz; - if (g_zip_pmhz==1.0) return 0; // slow - else if (g_zip_pmhz>=2.6) return 2; // warp - else return 1; // zip - } - #else - case 0x6a: /* 0xc06a */ - case 0x6b: /* 0xc06b */ - case 0x6c: /* 0xc06c */ - #endif - case 0x6d: /* 0xc06d */ - case 0x6e: /* 0xc06e */ - case 0x6f: /* 0xc06f */ - UNIMPL_READ; - - /* 0xc070 - 0xc07f */ - case 0x70: /* c070 */ - paddle_trigger(dcycs); - return 0; - case 0x71: /* 0xc071 */ - case 0x72: case 0x73: - case 0x74: case 0x75: case 0x76: case 0x77: - case 0x78: case 0x79: case 0x7a: case 0x7b: - case 0x7c: case 0x7d: case 0x7e: case 0x7f: - return g_rom_fc_ff_ptr[3*65536 + 0xc000 + (loc & 0xff)]; - - /* 0xc080 - 0xc08f */ - case 0x80: case 0x81: case 0x82: case 0x83: - case 0x84: case 0x85: case 0x86: case 0x87: - case 0x88: case 0x89: case 0x8a: case 0x8b: - case 0x8c: case 0x8d: case 0x8e: case 0x8f: - new_lcbank2 = ((loc & 0x8) >> 1) ^ 0x4; - new_wrdefram = (loc & 1); - if(new_wrdefram != g_c08x_wrdefram) { - fixup_wrdefram(new_wrdefram); - } - switch(loc & 0x3) { - case 0x1: /* 0xc081 */ - case 0x2: /* 0xc082 */ - /* Read rom, set lcbank2 */ - set_statereg(dcycs, (g_c068_statereg & ~(0x04))| - (new_lcbank2 | 0x08)); - break; - case 0x0: /* 0xc080 */ - case 0x3: /* 0xc083 */ - /* Read ram (clear RDROM), set lcbank2 */ - set_statereg(dcycs, (g_c068_statereg & ~(0x0c))| - (new_lcbank2)); - break; - } - return float_bus(dcycs); - /* 0xc090 - 0xc09f */ - case 0x90: case 0x91: case 0x92: case 0x93: - case 0x94: case 0x95: case 0x96: case 0x97: - case 0x98: case 0x99: case 0x9a: case 0x9b: - case 0x9c: case 0x9d: case 0x9e: case 0x9f: - if (g_parallel) - { - return parallel_read((word16)loc & 0xf); - } - else - { - UNIMPL_READ; - } - - /* 0xc0a0 - 0xc0af */ - case 0xa0: case 0xa1: case 0xa2: case 0xa3: - case 0xa4: case 0xa5: case 0xa6: case 0xa7: - case 0xa8: case 0xa9: case 0xaa: case 0xab: - case 0xac: case 0xad: case 0xae: case 0xaf: - return 0; - /* UNIMPL_READ; */ - - /* 0xc0b0 - 0xc0bf */ - //case 0xb0: - /* c0b0: female voice tool033 look at this */ - // return 0; - //case 0xb1: case 0xb2: case 0xb3: - //case 0xb4: case 0xb5: case 0xb6: case 0xb7: - //case 0xb9: case 0xba: case 0xbb: - //case 0xbc: case 0xbd: case 0xbe: case 0xbf: - /* UNIMPL_READ; */ - // return 0; - /* c0b8: Second Sight card stuff: return 0 */ - //case 0xb8: - // return 0; - // break; -#ifdef HAVE_TFE - /*Uthernet read access on slot 3*/ - case 0xb0: - case 0xb1: - case 0xb2: - case 0xb3: - case 0xb4: - case 0xb5: - case 0xb6: - case 0xb7: - case 0xb8: - case 0xb9: - case 0xba: - case 0xbb: - case 0xbc: - case 0xbd: - case 0xbe: - case 0xbf: - if (tfe_enabled){ - return tfe_read((word16)loc & 0xf); - } - else - {return 0;} -#endif - - /* 0xc0c0 - 0xc0cf */ - case 0xc0: case 0xc1: case 0xc2: case 0xc3: - case 0xc4: case 0xc5: case 0xc6: case 0xc7: - case 0xc8: case 0xc9: case 0xca: case 0xcb: - case 0xcc: case 0xcd: case 0xce: case 0xcf: - return 0; - /* 0xc0d0 - 0xc0df */ - case 0xd0: case 0xd1: case 0xd2: case 0xd3: - case 0xd4: case 0xd5: case 0xd6: case 0xd7: - case 0xd8: case 0xd9: case 0xda: case 0xdb: - case 0xdc: case 0xdd: case 0xde: case 0xdf: - return 0; - /* 0xc0e0 - 0xc0ef */ - case 0xe0: case 0xe1: case 0xe2: case 0xe3: - case 0xe4: case 0xe5: case 0xe6: case 0xe7: - case 0xe8: case 0xe9: case 0xea: case 0xeb: - case 0xed: case 0xee: case 0xef: - return read_iwm(loc, dcycs); - case 0xec: - return iwm_read_c0ec(dcycs); - /* 0xc0f0 - 0xc0ff */ - case 0xf0: case 0xf1: case 0xf2: case 0xf3: - case 0xf4: case 0xf5: case 0xf6: case 0xf7: - case 0xf8: case 0xf9: case 0xfa: case 0xfb: - case 0xfc: case 0xfd: case 0xfe: case 0xff: - return 0; - - default: - printf("loc: %04x bad\n", loc); - UNIMPL_READ; - } - case 1: case 2: case 3: case 4: case 5: case 6: - /* c100 - c6ff */ - mask = (1 << ((loc >> 8) & 7)); - if(INTCX || ((g_c02d_int_crom & mask) == 0)) { - return(g_rom_fc_ff_ptr[0x3c000 + (loc & 0xfff)]); - } - return float_bus(dcycs); - case 7: - /* c700 */ - if(INTCX || ((g_c02d_int_crom & (1 << 7)) == 0)) { - return(g_rom_fc_ff_ptr[0x3c000 + (loc & 0xfff)]); - } - tmp = g_rom_fc_ff_ptr[0x3c500 + (loc & 0xff)]; - if((loc & 0xff) == 0xfb) { - tmp = tmp & 0xbf; /* clear bit 6 for ROM 03 */ - } - return tmp; - case 8: case 9: case 0xa: case 0xb: case 0xc: case 0xd: case 0xe: - if(INTCX || ((g_c02d_int_crom & (1 << 3)) == 0)) { - return(g_rom_fc_ff_ptr[0x3c000 + (loc & 0xfff)]); - } - UNIMPL_READ; - case 0xf: - if(INTCX || ((g_c02d_int_crom & (1 << 3)) == 0)) { - return(g_rom_fc_ff_ptr[0x3c000 + (loc & 0xfff)]); - } - if((loc & 0xfff) == 0xfff) { - return g_rom_fc_ff_ptr[0x3cfff]; - } - UNIMPL_READ; - } - - halt_printf("io_read: hit end, loc: %06x\n", loc); - - return 0xff; -} - -void -io_write(word32 loc, int val, double *cyc_ptr) -{ - double dcycs; -#if 0 - double fcyc, new_fcyc; -#endif - int new_tmp; - int new_lcbank2; - int new_wrdefram; - int tmp; - int fixup; - - CALC_DCYCS_FROM_CYC_PTR(dcycs, cyc_ptr, fcyc, new_fcyc); - - val = val & 0xff; - switch((loc >> 8) & 0xf) { - case 0: /* 0xc000 - 0xc0ff */ - //printf ("ioaddress: %x", (loc & 0xf)); - switch(loc & 0xff) { - /* 0xc000 - 0xc00f */ - case 0x00: /* 0xc000 */ - if(g_cur_a2_stat & ALL_STAT_ST80) { - g_cur_a2_stat &= (~ALL_STAT_ST80); - fixup_st80col(dcycs); - } - return; - case 0x01: /* 0xc001 */ - if((g_cur_a2_stat & ALL_STAT_ST80) == 0) { - g_cur_a2_stat |= (ALL_STAT_ST80); - fixup_st80col(dcycs); - } - return; - case 0x02: /* 0xc002 */ - set_statereg(dcycs, g_c068_statereg & ~0x20); - return; - case 0x03: /* 0xc003 */ - set_statereg(dcycs, g_c068_statereg | 0x20); - return; - case 0x04: /* 0xc004 */ - set_statereg(dcycs, g_c068_statereg & ~0x10); - return; - case 0x05: /* 0xc005 */ - set_statereg(dcycs, g_c068_statereg | 0x10); - return; - case 0x06: /* 0xc006 */ - set_statereg(dcycs, g_c068_statereg & ~0x01); - return; - case 0x07: /* 0xc007 */ - set_statereg(dcycs, g_c068_statereg | 0x01); - return; - case 0x08: /* 0xc008 */ - set_statereg(dcycs, g_c068_statereg & ~0x80); - return; - case 0x09: /* 0xc009 */ - set_statereg(dcycs, g_c068_statereg | 0x80); - return; - case 0x0a: /* 0xc00a */ - tmp = 1 << 3; - if((g_c02d_int_crom & tmp) != 0) { - g_c02d_int_crom &= ~tmp; - fixup_intcx(); - } - return; - case 0x0b: /* 0xc00b */ - tmp = 1 << 3; - if((g_c02d_int_crom & tmp) == 0) { - g_c02d_int_crom |= tmp; - fixup_intcx(); - } - return; - case 0x0c: /* 0xc00c */ - if(g_cur_a2_stat & ALL_STAT_VID80) { - g_cur_a2_stat &= (~ALL_STAT_VID80); - change_display_mode(dcycs); - } - return; - case 0x0d: /* 0xc00d */ - if((g_cur_a2_stat & ALL_STAT_VID80) == 0) { - g_cur_a2_stat |= (ALL_STAT_VID80); - change_display_mode(dcycs); - } - return; - case 0x0e: /* 0xc00e */ - if(g_cur_a2_stat & ALL_STAT_ALTCHARSET) { - g_cur_a2_stat &= (~ALL_STAT_ALTCHARSET); - change_display_mode(dcycs); - } - return; - case 0x0f: /* 0xc00f */ - if((g_cur_a2_stat & ALL_STAT_ALTCHARSET) == 0) { - g_cur_a2_stat |= (ALL_STAT_ALTCHARSET); - change_display_mode(dcycs); - } - return; - /* 0xc010 - 0xc01f */ - case 0x10: case 0x11: case 0x12: case 0x13: - case 0x14: case 0x15: case 0x16: case 0x17: - case 0x18: case 0x19: case 0x1a: case 0x1b: - case 0x1c: case 0x1d: case 0x1e: case 0x1f: - adb_access_c010(); - return; - /* 0xc020 - 0xc02f */ - case 0x20: /* 0xc020 */ - /* WRITE CASSETTE?? */ - return; - case 0x21: /* 0xc021 */ - new_tmp = ((val >> 7) & 1) << - (31 - BIT_ALL_STAT_COLOR_C021); - if((g_cur_a2_stat & ALL_STAT_COLOR_C021) != new_tmp) { - g_cur_a2_stat ^= new_tmp; - change_display_mode(dcycs); - } - return; - case 0x22: /* 0xc022 */ - /* change text color */ - tmp = (g_cur_a2_stat >> BIT_ALL_STAT_BG_COLOR) & 0xff; - if(val != tmp) { - /* change text/bg color! */ - g_cur_a2_stat &= ~(ALL_STAT_TEXT_COLOR | - ALL_STAT_BG_COLOR); - g_cur_a2_stat += (val << BIT_ALL_STAT_BG_COLOR); - change_display_mode(dcycs); - } - return; - case 0x23: /* 0xc023 */ - if((val & 0x19) != 0) { - halt_printf("c023 write of %02x!!!\n", val); - } - tmp = (g_c023_val & 0x70) | (val & 0x0f); - if((tmp & 0x22) == 0x22) { - add_irq(IRQ_PENDING_C023_SCAN); - } - if(!(tmp & 2)) { - remove_irq(IRQ_PENDING_C023_SCAN); - } - if((tmp & 0x44) == 0x44) { - add_irq(IRQ_PENDING_C023_1SEC); - } - if(!(tmp & 0x4)) { - remove_irq(IRQ_PENDING_C023_1SEC); - } - - if(g_irq_pending & (IRQ_PENDING_C023_SCAN | - IRQ_PENDING_C023_1SEC)) { - tmp |= 0x80; - } - g_c023_val = tmp; - return; - case 0x24: /* 0xc024 */ - /* Write to mouse reg: Throw it away */ - return; - case 0x26: /* 0xc026 */ - adb_write_c026(val); - return; - case 0x27: /* 0xc027 */ - adb_write_c027(val); - return; - case 0x29: /* 0xc029 */ - g_c029_val_some = val & 0x41; - if((val & 1) == 0) { - halt_printf("c029: %02x\n", val); - } - new_tmp = val & 0xa0; - if(new_tmp != (g_cur_a2_stat & 0xa0)) { - g_cur_a2_stat = (g_cur_a2_stat & (~0xa0)) + - new_tmp; - change_display_mode(dcycs); - } - return; - case 0x2a: /* 0xc02a */ -#if 0 - printf("Writing c02a with %02x\n", val); -#endif - return; - case 0x2b: /* 0xc02b */ - g_c02b_val = val; - if(val != 0x08 && val != 0x00) { - printf("Writing c02b with %02x\n", val); - } - return; - case 0x2d: /* 0xc02d */ - if((val & 0x9) != 0) { - halt_printf("Illegal c02d write: %02x!\n", val); - } - fixup = (val != g_c02d_int_crom); - g_c02d_int_crom = val; - if(fixup) { - vid_printf("Write c02d of %02x\n", val); - fixup_intcx(); - } - return; - case 0x28: /* 0xc028 */ - case 0x2c: /* 0xc02c */ - UNIMPL_WRITE; - case 0x25: /* 0xc025 */ - /* Space Shark writes to c025--ignore */ - case 0x2e: /* 0xc02e */ - case 0x2f: /* 0xc02f */ - /* Modulae writes to this--just ignore them */ - return; - break; - - /* 0xc030 - 0xc03f */ - case 0x30: /* 0xc030 */ -#if 0 - printf("Write speaker?\n"); -#endif - (void)doc_read_c030(dcycs); - return; - case 0x31: /* 0xc031 */ - tmp = val ^ g_c031_disk35; - if(tmp & 0x40) { - /* apple35_sel changed, maybe speed change */ - set_halt(HALT_EVENT); - } - g_c031_disk35 = val & 0xc0; - return; - case 0x32: /* 0xc032 */ - tmp = g_c023_val & 0x7f; - if(((val & 0x40) == 0) && (tmp & 0x40)) { - /* clear 1 sec int */ - remove_irq(IRQ_PENDING_C023_1SEC); - tmp &= 0xbf; - g_c023_val = tmp; - } - if(((val & 0x20) == 0) && (tmp & 0x20)) { - /* clear scan line int */ - remove_irq(IRQ_PENDING_C023_SCAN); - g_c023_val = tmp & 0xdf; - check_for_new_scan_int(dcycs); - } - if(g_irq_pending & (IRQ_PENDING_C023_1SEC | - IRQ_PENDING_C023_SCAN)) { - g_c023_val |= 0x80; - } - if((val & 0x9f) != 0x9f) { - irq_printf("c032: wrote %02x!\n", val); - } - return; - case 0x33: /* 0xc033 = CLOCKDATA*/ - g_c033_data = val; - return; - case 0x34: /* 0xc034 = CLOCKCTL */ - tmp = val ^ g_c034_val; - clock_write_c034(val); - if(tmp & 0xf) { - change_border_color(dcycs, val & 0xf); - } - return; - case 0x35: /* 0xc035 */ - update_shadow_reg(val); - return; - case 0x36: /* 0xc036 = CYAREG */ - tmp = val ^ g_c036_val_speed; - g_c036_val_speed = (val & ~0x20); /* clr bit 5 */ - if(tmp & 0x80) { - /* to recalculate times since speed changing */ - set_halt(HALT_EVENT); - } - if(tmp & 0xf) { - /* slot_motor_detect changed */ - set_halt(HALT_EVENT); - } - - if((val & 0x60) != 0) { - /* for ROM 03, 0x40 is the power-on status */ - /* and can be read/write */ - if(((val & 0x60) != 0x40) || - (g_rom_version < 3)) { - g_c036_val_speed &= (~0x60); - halt_printf("c036: %2x\n", val); - } - } - if(tmp & 0x10) { /* shadow in all banks! */ - if(g_num_shadow_all_banks++ == 0) { - printf("Shadowing all banks...This " - "must be the NFC Megademo\n"); - } - fixup_shadow_all_banks(); - } - return; - case 0x37: /* 0xc037 */ - /* just ignore, probably someone writing c036 m=0 */ - return; - case 0x38: /* 0xc038 */ - scc_write_reg(1, val, dcycs); - return; - case 0x39: /* 0xc039 */ - scc_write_reg(0, val, dcycs); - return; - case 0x3a: /* 0xc03a */ - scc_write_data(1, val, dcycs); - return; - case 0x3b: /* 0xc03b */ - scc_write_data(0, val, dcycs); - return; - case 0x3c: /* 0xc03c */ - /* doc ctl */ - doc_write_c03c(val, dcycs); - return; - case 0x3d: /* 0xc03d */ - /* doc data reg */ - doc_write_c03d(val, dcycs); - return; - case 0x3e: /* 0xc03e */ - g_c03ef_doc_ptr = (g_c03ef_doc_ptr & 0xff00) + val; - return; - case 0x3f: /* 0xc03f */ - g_c03ef_doc_ptr = (g_c03ef_doc_ptr & 0xff) + (val << 8); - return; - - /* 0xc040 - 0xc04f */ - case 0x41: /* c041 */ - g_c041_val = val & 0x1f; - if((val & 0xe6) != 0) { - halt_printf("write c041: %02x\n", val); - } - - if (val & C041_EN_MOUSE) - { - // Enable Mega II mouse - } - - if(!(val & C041_EN_VBL_INTS)) { - /* no more vbl interrupt */ - remove_irq(IRQ_PENDING_C046_VBL); - } - if(!(val & C041_EN_25SEC_INTS)) { - remove_irq(IRQ_PENDING_C046_25SEC); - } - return; - case 0x46: /* c046 */ - /* ignore writes to c046 */ - return; - case 0x47: /* c047 */ - remove_irq(IRQ_PENDING_C046_VBL | - IRQ_PENDING_C046_25SEC); - g_c046_val &= 0xe7; /* clear vblint, 1/4sec int*/ - return; - case 0x48: /* c048 */ - /* diversitune writes this--ignore it */ - return; - case 0x42: /* c042 */ - case 0x43: /* c043 */ - return; - case 0x4f: /* c04f */ - g_em_emubyte_cnt = 1; - return; - case 0x40: /* c040 */ - case 0x44: /* c044 */ - case 0x45: /* c045 */ - case 0x49: /* c049 */ - case 0x4a: /* c04a */ - case 0x4b: /* c04b */ - case 0x4c: /* c04c */ - case 0x4d: /* c04d */ - case 0x4e: /* c04e */ - UNIMPL_WRITE; - - /* 0xc050 - 0xc05f */ - case 0x50: /* 0xc050 */ - if(g_cur_a2_stat & ALL_STAT_TEXT) { - g_cur_a2_stat &= (~ALL_STAT_TEXT); - change_display_mode(dcycs); - } - return; - case 0x51: /* 0xc051 */ - if((g_cur_a2_stat & ALL_STAT_TEXT) == 0) { - g_cur_a2_stat |= (ALL_STAT_TEXT); - change_display_mode(dcycs); - } - return; - case 0x52: /* 0xc052 */ - if(g_cur_a2_stat & ALL_STAT_MIX_T_GR) { - g_cur_a2_stat &= (~ALL_STAT_MIX_T_GR); - change_display_mode(dcycs); - } - return; - case 0x53: /* 0xc053 */ - if((g_cur_a2_stat & ALL_STAT_MIX_T_GR) == 0) { - g_cur_a2_stat |= (ALL_STAT_MIX_T_GR); - change_display_mode(dcycs); - } - return; - case 0x54: /* 0xc054 */ - set_statereg(dcycs, g_c068_statereg & (~0x40)); - return; - case 0x55: /* 0xc055 */ - set_statereg(dcycs, g_c068_statereg | 0x40); - return; - case 0x56: /* 0xc056 */ - if(g_cur_a2_stat & ALL_STAT_HIRES) { - g_cur_a2_stat &= (~ALL_STAT_HIRES); - fixup_hires_on(); - change_display_mode(dcycs); - } - return; - case 0x57: /* 0xc057 */ - if((g_cur_a2_stat & ALL_STAT_HIRES) == 0) { - g_cur_a2_stat |= (ALL_STAT_HIRES); - fixup_hires_on(); - change_display_mode(dcycs); - } - return; - case 0x58: /* 0xc058 */ - if(g_zipgs_unlock >= 4) { - g_zipgs_reg_c059 &= 0x4; /* last reset cold */ - } else { - g_c05x_annuncs &= (~1); - } - return; - case 0x59: /* 0xc059 */ - if(g_zipgs_unlock >= 4) { - g_zipgs_reg_c059 = (val & 0xf8) | - (g_zipgs_reg_c059 & 0x7); - } else { - g_c05x_annuncs |= 1; - } - return; - case 0x5a: /* 0xc05a */ - g_c05x_annuncs &= (~2); - if((val & 0xf0) == 0x50) { - g_zipgs_unlock++; - } else if((val & 0xf0) == 0xa0) { - g_zipgs_unlock = 0; - } else if(g_zipgs_unlock >= 4) { - if((g_zipgs_reg_c05b & 0x10) == 0) { - /* to recalculate times */ - set_halt(HALT_EVENT); - } - g_zipgs_reg_c05b |= 0x10; // disable - } - return; - case 0x5b: /* 0xc05b */ - if(g_zipgs_unlock >= 4) { - if((g_zipgs_reg_c05b & 0x10) != 0) { - /* to recalculate times */ - set_halt(HALT_EVENT); - } - g_zipgs_reg_c05b &= (~0x10); // enable - } else { - g_c05x_annuncs |= 2; - } - return; - case 0x5c: /* 0xc05c */ - if(g_zipgs_unlock >= 4) { - g_zipgs_reg_c05c = val; - } else { - g_c05x_annuncs &= (~4); - } - return; - case 0x5d: /* 0xc05d */ - if(g_zipgs_unlock >= 4) { - if(((g_zipgs_reg_c05a ^ val) >= 0x10) && - ((g_zipgs_reg_c05b & 0x10) == 0)) { - set_halt(HALT_EVENT); - } - g_zipgs_reg_c05a = val | 0xf; - } else { - g_c05x_annuncs |= 4; - } - return; - case 0x5e: /* 0xc05e */ - if(g_zipgs_unlock >= 4) { - /* Zippy writes 0x80 and 0x00 here... */ - } else if(g_cur_a2_stat & ALL_STAT_ANNUNC3) { - g_cur_a2_stat &= (~ALL_STAT_ANNUNC3); - change_display_mode(dcycs); - } - return; - case 0x5f: /* 0xc05f */ - if(g_zipgs_unlock >= 4) { - halt_printf("Wrote ZipGS $c05f: %02x\n", val); - } else if((g_cur_a2_stat & ALL_STAT_ANNUNC3) == 0) { - g_cur_a2_stat |= (ALL_STAT_ANNUNC3); - change_display_mode(dcycs); - } - return; - - - /* 0xc060 - 0xc06f */ - case 0x60: /* 0xc060 */ - case 0x61: /* 0xc061 */ - case 0x62: /* 0xc062 */ - case 0x63: /* 0xc063 */ - case 0x64: /* 0xc064 */ - case 0x65: /* 0xc065 */ - case 0x66: /* 0xc066 */ - case 0x67: /* 0xc067 */ - /* all the above do nothing--return */ - return; - case 0x68: /* 0xc068 = STATEREG */ - set_statereg(dcycs, val); - return; - case 0x69: /* 0xc069 */ - /* just ignore, someone writing c068 with m=0 */ - return; - - -#ifdef TRANSWARP - // OG writeTranswarp pseudo-register - case 0x6a: /* 0xc06a */ - transwarp_low_val = val; - return ; - case 0x6b: /* 0xc06b */ - val = (val<<8) + transwarp_low_val; - if ((val==2600) || (val==0x0028)) // Bug for demo ... - { - printf("Disabling Transwarp!\n"); - g_zipgs_reg_c05b |= 0x10; // disable - set_halt(HALT_EVENT); - } - else if (val==8000) - { - printf("Enabling Transwarp!\n"); - g_zipgs_reg_c05b &= ~0x10; // enable - set_halt(HALT_EVENT); - } - else - printf("unknown twgs speed:%d\n",val); - return; - case 0x6c: /* 0xc06c */ - if (val==0) - ; // set slow ? - else if (val==1) - { - // disable zip - g_zipgs_reg_c05b |= 0x10; // disable - set_halt(HALT_EVENT); - } - else if (val==2) - { - // enable zip - g_zipgs_reg_c05b &= ~0x10; // enable - set_halt(HALT_EVENT); - } - else - printf("unknown twgs index:%d\n",val); - return ; -#else - case 0x6a: /* 0xc06a */ - case 0x6b: /* 0xc06b */ - case 0x6c: /* 0xc06c */ -#endif - case 0x6d: /* 0xc06d */ - case 0x6e: /* 0xc06e */ - case 0x6f: /* 0xc06f */ - UNIMPL_WRITE; - - /* 0xc070 - 0xc07f */ - case 0x70: /* 0xc070 = Trigger paddles */ - paddle_trigger(dcycs); - return; - case 0x73: /* 0xc073 = multibank ram card bank addr? */ - return; - case 0x71: /* 0xc071 = another multibank ram card enable? */ - case 0x7e: /* 0xc07e */ - case 0x7f: /* 0xc07f */ - return; - case 0x72: /* 0xc072 */ - case 0x74: /* 0xc074 */ - case 0x75: /* 0xc075 */ - case 0x76: /* 0xc076 */ - case 0x77: /* 0xc077 */ - case 0x78: /* 0xc078 */ - case 0x79: /* 0xc079 */ - case 0x7a: /* 0xc07a */ - case 0x7b: /* 0xc07b */ - case 0x7c: /* 0xc07c */ - case 0x7d: /* 0xc07d */ - UNIMPL_WRITE; - - /* 0xc080 - 0xc08f */ - case 0x80: case 0x81: case 0x82: case 0x83: - case 0x84: case 0x85: case 0x86: case 0x87: - case 0x88: case 0x89: case 0x8a: case 0x8b: - case 0x8c: case 0x8d: case 0x8e: case 0x8f: - new_lcbank2 = ((loc >> 1) & 0x4) ^ 0x4; - new_wrdefram = (loc & 1); - if(new_wrdefram != g_c08x_wrdefram) { - fixup_wrdefram(new_wrdefram); - } - switch(loc & 0xf) { - case 0x1: /* 0xc081 */ - case 0x2: /* 0xc082 */ - case 0x5: /* 0xc085 */ - case 0x6: /* 0xc086 */ - case 0x9: /* 0xc089 */ - case 0xa: /* 0xc08a */ - case 0xd: /* 0xc08d */ - case 0xe: /* 0xc08e */ - /* Read rom, set lcbank2 */ - set_statereg(dcycs, (g_c068_statereg & ~(0x04))| - (new_lcbank2 | 0x08)); - break; - case 0x0: /* 0xc080 */ - case 0x3: /* 0xc083 */ - case 0x4: /* 0xc084 */ - case 0x7: /* 0xc087 */ - case 0x8: /* 0xc088 */ - case 0xb: /* 0xc08b */ - case 0xc: /* 0xc08c */ - case 0xf: /* 0xc08f */ - /* Read ram (clear RDROM), set lcbank2 */ - set_statereg(dcycs, (g_c068_statereg & ~(0x0c))| - (new_lcbank2)); - break; - } - return; - - /* 0xc090 - 0xc09f */ - case 0x90: case 0x91: case 0x92: case 0x93: - case 0x94: case 0x95: case 0x96: case 0x97: - case 0x98: case 0x99: case 0x9a: case 0x9b: - case 0x9c: case 0x9d: case 0x9e: case 0x9f: - if (g_parallel) - { - parallel_write((word16)loc & 0xf, (byte)val); - return; - } - else - { - UNIMPL_WRITE; - } - - /* 0xc0a0 - 0xc0af */ - case 0xa0: case 0xa1: case 0xa3: - case 0xa4: case 0xa5: case 0xa6: case 0xa7: - case 0xa9: case 0xaa: case 0xab: - case 0xac: case 0xad: case 0xae: case 0xaf: - UNIMPL_WRITE; - case 0xa2: /* Burger Times writes here on error */ - case 0xa8: - /* Kurzweil SMP writes to 0xc0a8, ignore it */ - UNIMPL_WRITE; - return; - - /* 0xc0b0 - 0xc0bf */ - //case 0xb0: - /* Second sight stuff--ignore it */ - return; - //case 0xb1: case 0xb2: case 0xb3: - //case 0xb4: case 0xb5: case 0xb6: case 0xb7: - //case 0xb8: case 0xb9: case 0xba: case 0xbb: - //case 0xbc: case 0xbd: case 0xbe: case 0xbf: - // UNIMPL_WRITE; -#ifdef HAVE_TFE - /*Uthernet write access on slot 3*/ - case 0xb0: - case 0xb1: - case 0xb2: - case 0xb3: - case 0xb4: - case 0xb5: - case 0xb6: - case 0xb7: - case 0xb8: - case 0xb9: - case 0xba: - case 0xbb: - case 0xbc: - case 0xbd: - case 0xbe: - case 0xbf: - if (tfe_enabled) - { - tfe_store((word16)loc & 0xf, (byte)val); - return; - } - else - { - UNIMPL_WRITE; - } -#endif - - /* 0xc0c0 - 0xc0cf */ - case 0xc0: case 0xc1: case 0xc2: case 0xc3: - case 0xc4: case 0xc5: case 0xc6: case 0xc7: - case 0xc8: case 0xc9: case 0xca: case 0xcb: - case 0xcc: case 0xcd: case 0xce: case 0xcf: - UNIMPL_WRITE; - - /* 0xc0d0 - 0xc0df */ - case 0xd0: case 0xd1: case 0xd2: case 0xd3: - case 0xd4: case 0xd5: case 0xd6: case 0xd7: - case 0xd8: case 0xd9: case 0xda: case 0xdb: - case 0xdc: case 0xdd: case 0xde: case 0xdf: - UNIMPL_WRITE; - - /* 0xc0e0 - 0xc0ef */ - case 0xe0: case 0xe1: case 0xe2: case 0xe3: - case 0xe4: case 0xe5: case 0xe6: case 0xe7: - case 0xe8: case 0xe9: case 0xea: case 0xeb: - case 0xec: case 0xed: case 0xee: case 0xef: - write_iwm(loc, val, dcycs); - return; - - /* 0xc0f0 - 0xc0ff */ - case 0xf0: case 0xf1: case 0xf2: case 0xf3: - case 0xf4: case 0xf5: case 0xf6: case 0xf7: - case 0xf8: case 0xf9: case 0xfa: case 0xfb: - case 0xfc: case 0xfd: case 0xfe: case 0xff: - UNIMPL_WRITE; - default: - printf("WRite loc: %x\n",loc); - exit(-300); - } - break; - case 1: case 2: case 3: case 4: case 5: case 6: case 7: - /* c1000 - c7ff */ - UNIMPL_WRITE; - case 8: case 9: case 0xa: case 0xb: case 0xc: case 0xd: case 0xe: - UNIMPL_WRITE; - case 0xf: - if((loc & 0xfff) == 0xfff) { - /* cfff */ - return; - } - UNIMPL_WRITE; - } - printf("Huh2? Write loc: %x\n", loc); - exit(-290); -} - - - -#if 0 -int -get_slow_mem(word32 loc, int duff_cycles) -{ - int val; - - loc = loc & 0x1ffff; - - if((loc &0xf000) == 0xc000) { - return(io_read(loc &0xfff, duff_cycles)); - } - if((loc & 0xf000) >= 0xd000) { - if((loc & 0xf000) == 0xd000) { - if(!LCBANK2) { - /* Not LCBANK2 == be 0xc000 - 0xd000 */ - loc = loc - 0x1000; - } - } - } - - val = g_slow_memory_ptr[loc]; - - halt_printf("get_slow_mem: %06x = %02x\n", loc, val); - - return val; -} - -int -set_slow_mem(word32 loc, int val, int duff_cycles) -{ - int or_pos; - word32 or_val; - - loc = loc & 0x1ffff; - if((loc & 0xf000) == 0xc000) { - return(io_write(loc & 0xfff, val, duff_cycles)); - } - - if((loc & 0xf000) == 0xd000) { - if(!LCBANK2) { - /* Not LCBANK2 == be 0xc000 - 0xd000 */ - loc = loc - 0x1000; - } - } - - if(g_slow_memory_ptr[loc] != val) { - or_pos = (loc >> SHIFT_PER_CHANGE) & 0x1f; - or_val = DEP1(1, or_pos, 0); - if((loc >> CHANGE_SHIFT) >= SLOW_MEM_CH_SIZE || loc < 0) { - printf("loc: %08x!!\n", loc); - exit(11); - } - slow_mem_changed[(loc & 0xffff) >> CHANGE_SHIFT] |= or_val; - } - -/* doesn't shadow text/hires graphics properly! */ - g_slow_memory_ptr[loc] = val; - - return val; -} -#endif - -/* IIgs vertical line counters */ -/* 0x7d - 0x7f: in vbl, top of screen? */ -/* 0x80 - 0xdf: not in vbl, drawing screen */ -/* 0xe0 - 0xff: in vbl, bottom of screen */ - -/* Note: lines are then 0-0x60 effectively, for 192 lines */ -/* vertical blanking engages on line 192, even if in super hires mode */ -/* (Last 8 lines in SHR are drawn with vbl_active set */ - -word32 -get_lines_since_vbl(double dcycs) -{ - double dcycs_since_last_vbl; - double dlines_since_vbl; - double dcyc_line_start; - word32 lines_since_vbl; - int offset; - - dcycs_since_last_vbl = dcycs - g_last_vbl_dcycs; - - dlines_since_vbl = dcycs_since_last_vbl * (1.0 / 65.0); - lines_since_vbl = (int)dlines_since_vbl; - dcyc_line_start = (double)lines_since_vbl * 65.0; - - offset = ((int)(dcycs_since_last_vbl - dcyc_line_start)) & 0xff; - - lines_since_vbl = (lines_since_vbl << 8) + offset; - - if(lines_since_vbl < 0x10680) { - return lines_since_vbl; - } else { - halt_printf("lines_since_vbl: %08x!\n", lines_since_vbl); - printf("dc_s_l_v: %f, dcycs: %f, last_vbl_cycs: %f\n", - dcycs_since_last_vbl, dcycs, g_last_vbl_dcycs); - show_dtime_array(); - show_all_events(); - /* U_STACK_TRACE(); */ - } - - return lines_since_vbl; -} - - -int -in_vblank(double dcycs) -{ - int lines_since_vbl; - - lines_since_vbl = get_lines_since_vbl(dcycs); - - if(lines_since_vbl >= 0xc000) { - return 1; - } - - return 0; -} - -/* horizontal video counter goes from 0x00,0x40 - 0x7f, then 0x80,0xc0-0xff */ -/* over 2*65 cycles. The last visible screen pos is 0x7f and 0xff */ -/* This matches GSport starting line 0 at the border for line -1 */ -int -read_vid_counters(int loc, double dcycs) -{ - word32 mask; - int lines_since_vbl; - - loc = loc & 0xf; - - lines_since_vbl = get_lines_since_vbl(dcycs); - - lines_since_vbl += 0x10000; - if(lines_since_vbl >= 0x20000) { - lines_since_vbl = lines_since_vbl - 0x20000 + 0xfa00; - } - - if(lines_since_vbl > 0x1ffff) { - halt_printf("lines_since_vbl: %04x, dcycs: %f, last_vbl: %f\n", - lines_since_vbl, dcycs, g_last_vbl_dcycs); - } - - if(loc == 0xe) { - /* Vertical count */ - return (lines_since_vbl >> 9) & 0xff; - } - - mask = (lines_since_vbl >> 1) & 0x80; - - lines_since_vbl = (lines_since_vbl & 0xff); - if(lines_since_vbl >= 0x01) { - lines_since_vbl = (lines_since_vbl + 0x3f) & 0x7f; - } - return (mask | (lines_since_vbl & 0xff)); -} diff --git a/.svn/pristine/18/18f01034ccdffc14327173abfe972ad04f4c35c6.svn-base b/.svn/pristine/18/18f01034ccdffc14327173abfe972ad04f4c35c6.svn-base deleted file mode 100644 index abcf859..0000000 --- a/.svn/pristine/18/18f01034ccdffc14327173abfe972ad04f4c35c6.svn-base +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh -cd target/site -perl -i.orig -p ../../removeMaven.re appletalk.html -perl -i.orig -p ../../removeMaven.re developing.html -perl -i.orig -p ../../removeMaven.re ethernet.html -perl -i.orig -p ../../removeMaven.re history.html -perl -i.orig -p ../../removeMaven.re index.html -perl -i.orig -p ../../removeMaven.re operating.html -perl -i.orig -p ../../removeMaven.re printer.html -rm *.orig -cd ../.. diff --git a/.svn/pristine/19/19ca9bab131c471b0b35b3dc9c222b3c0e153b03.svn-base b/.svn/pristine/19/19ca9bab131c471b0b35b3dc9c222b3c0e153b03.svn-base deleted file mode 100644 index 3cd3cb087e79b342d35cb1652f45d5b6e56f4e32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6677 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 -#include -#include -#else -#include -#include -#include -#define ENABLEQD -#endif - -#include "stdio.h" -#include "defc.h" -#include "protos_macdriver.h" - - -word32 g_mac_shift_control_state = 0; -int macUsingCoreGraphics=0; - -// Coregraphics context - -CGContextRef offscreenContext = NULL; -char * bitmapData=NULL; -int bitmapByteCount; -int bitmapBytesPerRow; - -#ifdef ENABLEQD -WindowRef g_main_window; -CGrafPtr mac_window_port; -#endif - -char *g_clipboard = 0x00; -int g_clipboard_pos; - - - -extern Kimage g_mainwin_kimage; - - -int g_use_shmem = 0; - -extern int Verbose; - -extern int g_video_act_width; -extern int g_video_act_height; -extern int g_video_act_margin_left; -extern int g_video_act_margin_right; -extern int g_video_act_margin_top; -extern int g_video_act_margin_bottom; -extern int g_screen_depth; -extern int g_force_depth; - - -int g_screen_mdepth = 0; - - -extern int g_send_sound_to_file; - -//extern int g_quit_sim_now; // OG Not need anymore -extern int g_config_control_panel; - - -int g_auto_repeat_on = -1; -int g_x_shift_control_state = 0; - - -extern int Max_color_size; - -extern word32 g_palette_8to1624[256]; -extern word32 g_a2palette_8to1624[256]; - -int g_alt_left_up = 1; -int g_alt_right_up = 1; - -extern word32 g_full_refresh_needed; - -extern int g_border_sides_refresh_needed; -extern int g_border_special_refresh_needed; -extern int g_status_refresh_needed; - -extern int g_lores_colors[]; - -extern int g_a2vid_palette; - -extern int g_installed_full_superhires_colormap; - -extern int g_screen_redraw_skip_amt; - -extern word32 g_a2_screen_buffer_changed; - -int g_upd_count = 0; - - - - -void -update_window(void) -{ - - // OG Not needed - /* - SetPortWindowPort(g_main_window); - PenNormal(); - */ - - g_full_refresh_needed = -1; - g_a2_screen_buffer_changed = -1; - g_status_refresh_needed = 1; - g_border_sides_refresh_needed = 1; - g_border_special_refresh_needed = 1; - - g_upd_count++; - if(g_upd_count > 250) { - g_upd_count = 0; - } - -} - - -void -mac_update_modifiers(word32 state) -{ -#ifndef ACTIVEIPHONE - - word32 state_xor; - int is_up; - - state = state & ( - cmdKey | controlKey | - shiftKey | alphaLock | optionKey - ); - state_xor = g_mac_shift_control_state ^ state; - is_up = 0; - if(state_xor & controlKey) { - is_up = ((state & controlKey) == 0); - adb_physical_key_update(0x36, is_up); - } - if(state_xor & alphaLock) { - is_up = ((state & alphaLock) == 0); - adb_physical_key_update(0x39, is_up); - } - if(state_xor & shiftKey) { - is_up = ((state & shiftKey) == 0); - adb_physical_key_update(0x38, is_up); - } - if(state_xor & cmdKey) { - is_up = ((state & cmdKey) == 0); - adb_physical_key_update(0x37, is_up); - } - if(state_xor & optionKey) { - is_up = ((state & optionKey) == 0); - adb_physical_key_update(0x3a, is_up); - } -#endif - - g_mac_shift_control_state = state; -} - - -void -x_update_color(int col_num, int red, int green, int blue, word32 rgb) -{ -} - - -void -x_update_physical_colormap() -{ -} - -void -show_xcolor_array() -{ - int i; - - for(i = 0; i < 256; i++) { - printf("%02x: %08x\n", i, g_palette_8to1624[i]); - } -} - - - -void -x_get_kimage(Kimage *kimage_ptr) -{ -#ifdef ENABLEQD - PixMapHandle pixmap_handle; - GWorldPtr world; - Rect world_rect; - OSStatus err; -#endif - word32 *wptr; - byte *ptr; - int row_bytes; - int width; - int height; - int depth, mdepth; - int size; - - width = kimage_ptr->width_req; - height = kimage_ptr->height; - depth = kimage_ptr->depth; - mdepth = kimage_ptr->mdepth; - - size = 0; - if(depth == g_screen_depth) - { - - if (!macUsingCoreGraphics) - - { -#ifdef ENABLEQD - SetRect(&world_rect, 0, 0, width, height); - err = NewGWorld( &world, 0, &world_rect, NULL, NULL, 0); - pixmap_handle = GetGWorldPixMap(world); - err = LockPixels(pixmap_handle); - ptr = (byte *)GetPixBaseAddr(pixmap_handle); - row_bytes = ((*pixmap_handle)->rowBytes & 0x3fff); - kimage_ptr->width_act = row_bytes / (mdepth >> 3); - mac_printf("Got depth: %d, bitmap_ptr: %p, width: %d\n", depth, ptr, kimage_ptr->width_act); - mac_printf("pixmap->base: %08x, rowbytes: %08x, pixType:%08x\n",(int)(*pixmap_handle)->baseAddr,(*pixmap_handle)->rowBytes,(*pixmap_handle)->pixelType); - wptr = (word32 *)(*pixmap_handle); - mac_printf("wptr: %p=%08x %08x %08x %08x %08x %08x %08x %08x\n",wptr,wptr[0], wptr[1], wptr[2], wptr[3],wptr[4], wptr[5], wptr[6], wptr[7]); - kimage_ptr->dev_handle = pixmap_handle; - kimage_ptr->data_ptr = ptr; -#endif - } - else - { - - - kimage_ptr->width_act = width ; - size = height* kimage_ptr->width_act * mdepth >> 3; - ptr = (byte *)malloc(size); - - if(ptr == 0) { - mac_printf("malloc for data fail, mdepth:%d\n", mdepth); - exit(2); - } - - kimage_ptr->data_ptr = ptr; - kimage_ptr->dev_handle = (void *)-1; - } - } - else { - - /* allocate buffers for video.c to draw into */ - - - kimage_ptr->width_act = width ; - size = height* kimage_ptr->width_act * mdepth >> 3 ; - ptr = (byte *)malloc(size); - - if(ptr == 0) { - mac_printf("malloc for data fail, mdepth:%d\n", mdepth); - exit(2); - } - - kimage_ptr->data_ptr = ptr; - kimage_ptr->dev_handle = (void *)-1; - } - - mac_printf("kim: %p, dev:%p data: %p, size: %08x\n", kimage_ptr, - kimage_ptr->dev_handle, kimage_ptr->data_ptr, size); - -} - - -#ifdef ENABLEQD -PixMapHandle pixmap_backbuffer=NULL; -GWorldPtr backbuffer=NULL; -#endif - -void -dev_video_init() -{ - int lores_col; - int i; - - printf("Preparing graphics system\n"); - - // OG Create backbuffer - if (!macUsingCoreGraphics) - { - -#ifdef ENABLEQD - Rect r; - SetRect(&r, 0, 0, 704, 462); - QDErr err = NewGWorld( &backbuffer, 0, &r, NULL, NULL, 0); - pixmap_backbuffer = GetGWorldPixMap(backbuffer); -#endif - } - else - { - - int pixelsWide = 704; - int pixelsHigh = 462; - bitmapBytesPerRow = (pixelsWide * 4);// 1 - bitmapByteCount = (bitmapBytesPerRow * pixelsHigh); - - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - bitmapData = (char*)malloc( bitmapByteCount );// 3 - if (bitmapData == NULL) - { - fprintf (stderr, "Memory not allocated!"); - return ; - } - offscreenContext = CGBitmapContextCreate (bitmapData,// 4 - pixelsWide, - pixelsHigh, - 8, // bits per component - bitmapBytesPerRow, - colorSpace, - kCGImageAlphaNoneSkipLast); - if (offscreenContext== NULL) - { - free (bitmapData);// 5 - fprintf (stderr, "Context not created!"); - return ; - } - - CGContextSetRGBFillColor (offscreenContext, 1, 0.5, 0.5, 1); - CGContextFillRect (offscreenContext, CGRectMake (0,0, 704, 462 )); - - CGColorSpaceRelease( colorSpace );// 6 - } - - - video_get_kimages(); - - if(g_screen_depth != 8) { - // Get g_mainwin_kimage - video_get_kimage(&g_mainwin_kimage, 0, g_screen_depth, - g_screen_mdepth); - } - - for(i = 0; i < 256; i++) { - lores_col = g_lores_colors[i & 0xf]; - video_update_color_raw(i, lores_col); - g_a2palette_8to1624[i] = g_palette_8to1624[i]; - } - - g_installed_full_superhires_colormap = 1; - - fflush(stdout); - -} - - - -void -x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy, - int width, int height) -{ - int i; - - if (!macUsingCoreGraphics) - { -#ifdef ENABLEQD - PixMapHandle pixmap_handle; - Rect src_rect, dest_rect; - CGrafPtr window_port; - - pixmap_handle = (PixMapHandle)kimage_ptr->dev_handle; - SetRect(&src_rect, srcx, srcy, srcx + width, srcy + height); - SetRect(&dest_rect, destx, desty, destx + width, desty + height); - -#ifndef ACTIVEGSPLUGIN - SetPortWindowPort(g_main_window); - window_port = GetWindowPort(g_main_window); - - CopyBits( (BitMap *)(*pixmap_handle), - GetPortBitMapForCopyBits(window_port), &src_rect, &dest_rect, - srcCopy, NULL); -#else // !ACTIVEGSPLUGIN - // OG Write to the back buffer instead of the display window - window_port = mac_window_port ; - SetGWorld(backbuffer,NULL); - - CopyBits( (BitMap *)(*pixmap_handle), - GetPortBitMapForCopyBits(backbuffer), &src_rect, &dest_rect, - srcCopy, NULL); -#endif // ACTIVEGSPLUGIN -#endif - } - else - { - - int wd = kimage_ptr->width_act * kimage_ptr->mdepth>>3; - int w = width *4; - char* ptrdest = bitmapData + bitmapBytesPerRow*desty + destx*4; - char* srcdest = (char*)kimage_ptr->data_ptr + wd*srcy + srcx*4; - for(i=0;idev_handle == (void*)-1) - { - free(kimage_ptr->data_ptr); - kimage_ptr->data_ptr = NULL; - } - else - { - if (!macUsingCoreGraphics) - { -#ifdef ENABLEQD - UnlockPixels((PixMapHandle)kimage_ptr->dev_handle); - kimage_ptr->dev_handle = NULL; - DisposeGWorld((GWorldPtr)kimage_ptr->dev_handle2); - kimage_ptr->dev_handle2 = NULL; -#endif - } - } -} - -// OG Addding ratio -int x_calc_ratio(float x,float y) -{ - return 1; -} - -void -clipboard_paste(void) -{ -#define CHUNK_SIZE 1024 - char buffer[CHUNK_SIZE]; - int bufsize = 1; - void *expanding_buffer = 0x00; - if (g_clipboard) - { - g_clipboard_pos = 0; - free(g_clipboard); - g_clipboard = 0x00; - } - FILE *pipe = popen("pbpaste", "r"); - if (pipe) - { - expanding_buffer = calloc(CHUNK_SIZE+1,1); - bufsize = CHUNK_SIZE; - while (!feof(pipe)) - { - if (fgets(buffer, CHUNK_SIZE, pipe) != NULL) - { - while (strlen((char*)expanding_buffer) + strlen(buffer) > bufsize) - { - bufsize += CHUNK_SIZE + 1; - expanding_buffer = realloc(expanding_buffer, bufsize); - } - /* Skip the leading return character when this is the first line in the paste buffer */ - if (strlen((char*)expanding_buffer) > 0) - strcat((char*)expanding_buffer,"\r"); - strncat((char*)expanding_buffer,buffer,strlen(buffer)); - g_clipboard = (char*)expanding_buffer; - } - } - } -} - -int clipboard_get_char(void) -{ - if (!g_clipboard) - return 0; - if (g_clipboard[g_clipboard_pos] == '\n') - g_clipboard_pos++; - if (g_clipboard[g_clipboard_pos] == '\0') - return 0; - return g_clipboard[g_clipboard_pos++] | 0x80; -} diff --git a/.svn/pristine/1b/1bed4af4a26a47ab778f7b856c289fba2fc4d9b5.svn-base b/.svn/pristine/1b/1bed4af4a26a47ab778f7b856c289fba2fc4d9b5.svn-base deleted file mode 100644 index fb32af8..0000000 --- a/.svn/pristine/1b/1bed4af4a26a47ab778f7b856c289fba2fc4d9b5.svn-base +++ /dev/null @@ -1,118 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include - -#ifdef _WIN32 -# include -#else -# include -# include -# include -#endif - -#if defined(HPUX) || defined(__linux__) || defined(SOLARIS) || defined(MAC) || defined(__MACH__) || defined(_WIN32) -# define SCC_SOCKETS -#endif - - -/* my scc port 0 == channel A, port 1 = channel B */ - -// LLAP may have packets up to 603 bytes, and the buffers must be large enough to contain a single packet. -#define SCC_INBUF_SIZE 1024 /* must be a power of 2 */ -#define SCC_OUTBUF_SIZE 1024 /* must be a power of 2 */ - -#define SCC_MODEM_MAX_CMD_STR 128 - -#ifndef SOCKET -# define SOCKET word32 /* for non-windows */ -#endif - -STRUCT(Scc) { - int port; - int state /* 0 == disconnected, 1 == real serial port, 2 == socket, 3 == LocalTalk */; - int accfd; - SOCKET sockfd; - int socket_state; - int rdwrfd; - void *host_handle; - void *host_handle2; - int host_aux1; - int read_called_this_vbl; - int write_called_this_vbl; - - int mode; - int reg_ptr; - int reg[16]; - - int rx_queue_depth; - byte rx_queue[4]; - unsigned int lad; - - int in_rdptr; - int in_wrptr; - byte in_buf[SCC_INBUF_SIZE]; - - int out_rdptr; - int out_wrptr; - byte out_buf[SCC_OUTBUF_SIZE]; - - int br_is_zero; - int tx_buf_empty; - int wantint_rx; - int wantint_tx; - int wantint_zerocnt; - int did_int_rx_first; - int dcd; - int sdlc_eof; - int eom; - - double br_dcycs; - double tx_dcycs; - double rx_dcycs; - - int br_event_pending; - int rx_event_pending; - int tx_event_pending; - byte irq_pending; - - int char_size; - int baud_rate; - double out_char_dcycs; - - int socket_num_rings; - int socket_last_ring_dcycs; - word32 modem_mode; - int modem_dial_or_acc_mode; - int modem_plus_mode; - int modem_s0_val; - int telnet_mode; - int telnet_iac; - word32 telnet_local_mode[2]; - word32 telnet_remote_mode[2]; - word32 telnet_reqwill_mode[2]; - word32 telnet_reqdo_mode[2]; - int modem_cmd_len; - byte modem_cmd_str[SCC_MODEM_MAX_CMD_STR + 5]; -}; - -#define SCCMODEM_NOECHO 0x0001 -#define SCCMODEM_NOVERBOSE 0x0002 diff --git a/.svn/pristine/1f/1f84a0c11e87c9d06da303322557cd3866b82208.svn-base b/.svn/pristine/1f/1f84a0c11e87c9d06da303322557cd3866b82208.svn-base deleted file mode 100644 index aa31bed..0000000 --- a/.svn/pristine/1f/1f84a0c11e87c9d06da303322557cd3866b82208.svn-base +++ /dev/null @@ -1,66 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#if !defined(_WIN32) && !defined(__CYGWIN__) && !defined (__OS2__) -# include -# include -#endif - -#define SOUND_SHM_SAMP_SIZE (32*1024) - -#define SAMPLE_SIZE 2 -#define NUM_CHANNELS 2 -#define SAMPLE_CHAN_SIZE (SAMPLE_SIZE * NUM_CHANNELS) - -STRUCT(Doc_reg) { - double dsamp_ev; - double dsamp_ev2; - double complete_dsamp; - int samps_left; - word32 cur_acc; - word32 cur_inc; - word32 cur_start; - word32 cur_end; - word32 cur_mask; - int size_bytes; - int event; - int running; - int has_irq_pending; - word32 freq; - word32 vol; - word32 waveptr; - word32 ctl; - word32 wavesize; - word32 last_samp_val; -}; - -/* prototypes for win32snd_driver.c functions */ -void win32snd_init(word32 *); -void win32snd_shutdown(); -void win32snd_shutdown(); -void child_sound_init_win32(); -int win32_send_audio(byte *ptr, int size); - - -/* Prototypes for macsnd_driver.c functions */ -int mac_send_audio(byte *ptr, int in_size); -void child_sound_init_mac(); -void macsnd_init(word32 *shmaddr); diff --git a/.svn/pristine/1f/1fb8ac3a618f69519a244dd4c4aced112023c296.svn-base b/.svn/pristine/1f/1fb8ac3a618f69519a244dd4c4aced112023c296.svn-base deleted file mode 100644 index f4ad01c..0000000 --- a/.svn/pristine/1f/1fb8ac3a618f69519a244dd4c4aced112023c296.svn-base +++ /dev/null @@ -1,2075 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2012 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" -#include "sound.h" - -extern int Verbose; -extern int g_use_shmem; -extern word32 g_vbl_count; -extern int g_preferred_rate; -extern int g_c03ef_doc_ptr; - -extern double g_last_vbl_dcycs; - -void U_STACK_TRACE(); - -byte doc_ram[0x10000 + 16]; - -word32 doc_sound_ctl = 0; -word32 doc_saved_val = 0; -int g_doc_num_osc_en = 1; -double g_dcycs_per_doc_update = 1.0; -double g_dupd_per_dcyc = 1.0; -double g_drecip_osc_en_plus_2 = 1.0 / (double)(1 + 2); - -int g_doc_saved_ctl = 0; -int g_queued_samps = 0; -int g_queued_nonsamps = 0; -int g_num_osc_interrupting = 0; - -#if defined(HPUX) || defined(__linux__) || defined(WIN_SOUND) || defined(MAC) /* Workaround - gcc in cygwin wasn't defining _WIN32, substituted WIN_SOUND instead */ -int g_audio_enable = -1; -#else -# if defined(OSS) -/* default to off for now */ -int g_audio_enable = 0; -# else -/* Default to sound off */ -int g_audio_enable = 0; -# endif -#endif - -Doc_reg g_doc_regs[32]; - -word32 doc_reg_e0 = 0xff; - -/* local function prototypes */ -void doc_write_ctl_reg(int osc, int val, double dsamps); - - -int g_audio_rate = 0; -double g_daudio_rate = 0.0; -double g_drecip_audio_rate = 0.0; -double g_dsamps_per_dcyc = 0.0; -double g_dcycs_per_samp = 0.0; -float g_fsamps_per_dcyc = 0.0; - -int g_doc_vol = 2; - -#define MAX_C030_TIMES 18000 - -double g_last_sound_play_dsamp = 0.0; - -float c030_fsamps[MAX_C030_TIMES + 1]; -int g_num_c030_fsamps = 0; - -#define DOC_SCAN_RATE (DCYCS_28_MHZ/32.0) - -int g_pipe_fd[2] = { -1, -1 }; -int g_pipe2_fd[2] = { -1, -1 }; -word32 *g_sound_shm_addr = 0; -int g_sound_shm_pos = 0; - -#define LEN_DOC_LOG 128 - -STRUCT(Doc_log) { - char *msg; - int osc; - double dsamps; - double dtmp2; - int etc; - Doc_reg doc_reg; -}; - -Doc_log g_doc_log[LEN_DOC_LOG]; -int g_doc_log_pos = 0; - - -#ifdef DO_DOC_LOG -# define DOC_LOG(a,b,c,d) doc_log_rout(a,b,c,d) -#else -# define DOC_LOG(a,b,c,d) -#endif - -#define UPDATE_G_DCYCS_PER_DOC_UPDATE(osc_en) \ - g_dcycs_per_doc_update = (double)((osc_en + 2) * DCYCS_1_MHZ) / \ - DOC_SCAN_RATE; \ - g_dupd_per_dcyc = 1.0 / g_dcycs_per_doc_update; \ - g_drecip_osc_en_plus_2 = 1.0 / (double)(osc_en + 2); - -#define SND_PTR_SHIFT 14 -#define SND_PTR_SHIFT_DBL ((double)(1 << SND_PTR_SHIFT)) - -void -doc_log_rout(char *msg, int osc, double dsamps, int etc) -{ - int pos; - - pos = g_doc_log_pos; - g_doc_log[pos].msg = msg; - g_doc_log[pos].osc = osc; - g_doc_log[pos].dsamps = dsamps; - g_doc_log[pos].dtmp2 = g_last_sound_play_dsamp; - g_doc_log[pos].etc = etc; - if(osc >= 0 && osc < 32) { - g_doc_log[pos].doc_reg = g_doc_regs[osc]; - } - pos++; - if(pos >= LEN_DOC_LOG) { - pos = 0; - } - - doc_printf("log: %s, osc:%d dsamp:%f, etc:%d\n", msg, osc, dsamps, etc); - - g_doc_log_pos = pos; -} - -extern double g_cur_dcycs; - -void -show_doc_log(void) -{ - FILE *docfile; - Doc_reg *rptr; - double dsamp_start; - int osc, ctl, freq; - int pos; - int i; - - docfile = fopen("doc_log_out", "w"); - if(docfile == 0) { - printf("fopen failed, errno: %d\n", errno); - return; - } - pos = g_doc_log_pos; - fprintf(docfile, "DOC log pos: %d\n", pos); - dsamp_start = g_doc_log[pos].dsamps; - for(i = 0; i < LEN_DOC_LOG; i++) { - rptr = &(g_doc_log[pos].doc_reg); - osc = g_doc_log[pos].osc; - ctl = rptr->ctl; - freq = rptr->freq; - if(osc < 0) { - ctl = 0; - freq = 0; - } - fprintf(docfile, "%03x:%03x: %-11s ds:%11.1f dt2:%10.1f " - "etc:%08x o:%02x c:%02x fq:%04x\n", - i, pos, g_doc_log[pos].msg, - g_doc_log[pos].dsamps - dsamp_start, - g_doc_log[pos].dtmp2, - g_doc_log[pos].etc, osc & 0xff, ctl, freq); - if(osc >= 0) { - fprintf(docfile, " ire:%d,%d,%d ptr4:%08x " - "inc4:%08x comp_ds:%.1f left:%04x, vol:%02x " - "wptr:%02x, wsz:%02x, 4st:%08x, 4end:%08x\n", - rptr->has_irq_pending, rptr->running, - rptr->event, 4*rptr->cur_acc, 4*rptr->cur_inc, - rptr->complete_dsamp - dsamp_start, - rptr->samps_left, rptr->vol, rptr->waveptr, - rptr->wavesize, 4*rptr->cur_start, - 4*rptr->cur_end); - } - pos++; - if(pos >= LEN_DOC_LOG) { - pos = 0; - } - } - - fprintf(docfile, "cur_dcycs: %f\n", g_cur_dcycs); - fprintf(docfile, "dsamps_now: %f\n", - (g_cur_dcycs * g_dsamps_per_dcyc) - dsamp_start); - fprintf(docfile, "g_doc_num_osc_en: %d\n", g_doc_num_osc_en); - fclose(docfile); -} - -void -sound_init() -{ - Doc_reg *rptr; - int i; - - for(i = 0; i < 32; i++) { - rptr = &(g_doc_regs[i]); - rptr->dsamp_ev = 0.0; - rptr->dsamp_ev2 = 0.0; - rptr->complete_dsamp = 0.0; - rptr->samps_left = 0; - rptr->cur_acc = 0; - rptr->cur_inc = 0; - rptr->cur_start = 0; - rptr->cur_end = 0; - rptr->cur_mask = 0; - rptr->size_bytes = 0; - rptr->event = 0; - rptr->running = 0; - rptr->has_irq_pending = 0; - rptr->freq = 0; - rptr->vol = 0; - rptr->waveptr = 0; - rptr->ctl = 1; - rptr->wavesize = 0; - rptr->last_samp_val = 0; - } - - // OG sound globals initialization - g_num_c030_fsamps = 0; - g_sound_shm_pos = 0; - g_queued_samps = 0; - g_queued_nonsamps = 0; - - doc_sound_ctl = 0; - doc_saved_val = 0; - g_doc_num_osc_en = 1; - g_dcycs_per_doc_update = 1.0; - g_dupd_per_dcyc = 1.0; - g_drecip_osc_en_plus_2 = 1.0 / (double)(1 + 2); - - doc_reg_e0 = 0xff; - g_audio_rate = 0; - g_daudio_rate = 0.0; - g_drecip_audio_rate = 0.0; - g_dsamps_per_dcyc = 0.0; - g_dcycs_per_samp = 0.0; - g_fsamps_per_dcyc = 0.0; - - g_doc_vol = 2; - - g_last_sound_play_dsamp = 0.0; - - sound_init_general(); -} - - -void -sound_init_general() -{ -#if !defined(WIN_SOUND) && !defined(__CYGWIN__) && !defined(MAC) && !defined(__OS2__) /* Workaround - gcc in cygwin wasn't defining _WIN32 */ - int pid; - int shmid; - int tmp; - int i; -#endif - word32 *shmaddr; - int size; - int ret; - -#if !defined(WIN_SOUND) && !defined(__CYGWIN__) && !defined(MAC) && !defined(__OS2__) /* Workaround - gcc in cygwin wasn't defining _WIN32 */ - if(!g_use_shmem) { - if(g_audio_enable < 0) { - printf("Defaulting audio off for slow X display\n"); - g_audio_enable = 0; - } - } -#endif - ret = 0; - - if(g_audio_enable == 0) { - set_audio_rate(g_preferred_rate); - return; - } - - size = SOUND_SHM_SAMP_SIZE * SAMPLE_CHAN_SIZE; - -#if !defined(WIN_SOUND) && !defined(__CYGWIN__) && !defined(MAC) && !defined(__OS2__) /* Workaround - gcc in cygwin wasn't defining _WIN32 */ - shmid = shmget(IPC_PRIVATE, size, IPC_CREAT | 0777); - if(shmid < 0) { - printf("sound_init: shmget ret: %d, errno: %d\n", shmid, - errno); - exit(2); - } - - shmaddr = (word32*)shmat(shmid, 0, 0); - tmp = (int)PTR2WORD(shmaddr); - if(tmp == -1) { - printf("sound_init: shmat ret: %p, errno: %d\n", shmaddr, - errno); - exit(3); - } - - ret = shmctl(shmid, IPC_RMID, 0); - if(ret < 0) { - printf("sound_init: shmctl ret: %d, errno: %d\n", ret, errno); - exit(4); - } -#else -/* windows and mac */ - shmaddr = (word32*)malloc(size); - memset(shmaddr, 0, size); -#endif - - g_sound_shm_addr = shmaddr; - - fflush(stdout); - -#if !defined(MAC) && !defined(WIN_SOUND) && !defined(__CYGWIN__) && !defined(__OS2__) /* Workaround - gcc in cygwin wasn't defining _WIN32 */ - /* prepare pipe so parent can signal child each other */ - /* pipe[0] = read side, pipe[1] = write end */ - ret = pipe(&g_pipe_fd[0]); - if(ret < 0) { - printf("sound_init: pipe ret: %d, errno: %d\n", ret, errno); - exit(5); - } - ret = pipe(&g_pipe2_fd[0]); - if(ret < 0) { - printf("sound_init: pipe ret: %d, errno: %d\n", ret, errno); - exit(5); - } - - - printf("pipes: pipe_fd = %d, %d pipe2_fd: %d,%d\n", - g_pipe_fd[0], g_pipe_fd[1], g_pipe2_fd[0], g_pipe2_fd[1]); - fflush(stdout); - - pid = fork(); - switch(pid) { - case 0: - /* child */ - /* close stdin and write-side of pipe */ - close(0); - /* Close other fds to make sure X window fd is closed */ - for(i = 3; i < 100; i++) { - if((i != g_pipe_fd[0]) && (i != g_pipe2_fd[1])) { - close(i); - } - } - close(g_pipe_fd[1]); /*make sure write pipe closed*/ - close(g_pipe2_fd[0]); /*make sure read pipe closed*/ - child_sound_loop(g_pipe_fd[0], g_pipe2_fd[1], g_sound_shm_addr); - printf("Child sound loop returned\n"); - exit(0); - case -1: - /* error */ - printf("sound_init: fork ret: -1, errno: %d\n", errno); - exit(6); - default: - /* parent */ - /* close read-side of pipe1, and the write side of pipe2 */ - close(g_pipe_fd[0]); - close(g_pipe2_fd[1]); - doc_printf("Child is pid: %d\n", pid); - } - - parent_sound_get_sample_rate(g_pipe2_fd[0]); -#else -# ifdef MAC - macsnd_init(shmaddr); -# elif defined (WIN_SOUND) /* Workaround - gcc in cygwin wasn't defining _WIN32 */ -/* windows */ - win32snd_init(shmaddr); -# elif defined (__OS2__) -# endif -#endif /* WIN_SOUND */ - -} - -void -parent_sound_get_sample_rate(int read_fd) -{ -#ifndef __OS2__ - word32 tmp; - int ret; - - ret = read(read_fd, (char*)&tmp, 4); - if(ret != 4) { - printf("parent could not get audio sample rate from child, disabling sound.\n"); - printf("ret: %d, fd: %d errno:%d\n", ret, read_fd, errno); - g_audio_enable = 0; - } - close(read_fd); - - set_audio_rate(tmp); -#endif -} - -void -set_audio_rate(int rate) -{ - g_audio_rate = rate; - g_daudio_rate = (rate)*1.0; - g_drecip_audio_rate = 1.0/(rate); - g_dsamps_per_dcyc = ((rate*1.0) / DCYCS_1_MHZ); - g_dcycs_per_samp = (DCYCS_1_MHZ / (rate*1.0)); - g_fsamps_per_dcyc = (float)((rate*1.0) / DCYCS_1_MHZ); -} - -void -sound_reset(double dcycs) -{ - double dsamps; - int i; - - dsamps = dcycs * g_dsamps_per_dcyc; - for(i = 0; i < 32; i++) { - doc_write_ctl_reg(i, g_doc_regs[i].ctl | 1, dsamps); - doc_reg_e0 = 0xff; - if(g_doc_regs[i].has_irq_pending) { - halt_printf("reset: has_irq[%02x] = %d\n", i, - g_doc_regs[i].has_irq_pending); - } - g_doc_regs[i].has_irq_pending = 0; - } - if(g_num_osc_interrupting) { - halt_printf("reset: num_osc_int:%d\n", g_num_osc_interrupting); - } - g_num_osc_interrupting = 0; - -// OG No reason to reset the number of active oscillo on reset : this should only be done on startup. - /* - g_doc_num_osc_en = 1; - UPDATE_G_DCYCS_PER_DOC_UPDATE(1); - */ -} - -void -sound_shutdown() -{ - // OG stop sound and free memory on sound_shutdown - sound_reset(g_cur_dcycs); - -#ifdef WIN_SOUND /* Workaround - gcc in cygwin wasn't defining _WIN32 */ - win32snd_shutdown(); -#elif defined(__OS2__) -#else - if((g_audio_enable != 0) && g_pipe_fd[1] != 0) { - close(g_pipe_fd[1]); - } -#endif - - // OG Free up allocated memory - if (g_sound_shm_addr) - { - free(g_sound_shm_addr); - g_sound_shm_addr = NULL; - } - -} - - - -void -sound_update(double dcycs) -{ - double dsamps; - /* Called every VBL time to update sound status */ - - /* "play" sounds for this vbl */ - - dsamps = dcycs * g_dsamps_per_dcyc; - DOC_LOG("do_snd_pl", -1, dsamps, 0); - sound_play(dsamps); -} - -#define MAX_SND_BUF 65536 - -int g_samp_buf[2*MAX_SND_BUF]; -word32 zero_buf[SOUND_SHM_SAMP_SIZE]; - -double g_doc_dsamps_extra = 0.0; - -float g_fvoices = 0.0; - -word32 g_cycs_in_sound1 = 0; -word32 g_cycs_in_sound2 = 0; -word32 g_cycs_in_sound3 = 0; -word32 g_cycs_in_sound4 = 0; -word32 g_cycs_in_start_sound = 0; -word32 g_cycs_in_est_sound = 0; - -int g_num_snd_plays = 0; -int g_num_doc_events = 0; -int g_num_start_sounds = 0; -int g_num_scan_osc = 0; -int g_num_recalc_snd_parms = 0; - -word32 g_last_c030_vbl_count = 0; -int g_c030_state = 0; - -#define VAL_C030_RANGE (32768) -#define VAL_C030_BASE (-16384) - -int g_sound_file_num = 0; -FILE *g_sound_file_fd = 0; -int g_send_sound_to_file = 0; -int g_send_file_bytes = 0; - -void -open_sound_file() -{ - char name[256]; - FILE *fd; - - sprintf(name, "snd.out.%d", g_sound_file_num); - - fd = fopen(name, "wb+"); - if(fd == 0) { - printf("open_sound_file open errno: %d\n", errno); - exit(1); - } - - g_sound_file_fd = fd; - g_sound_file_num++; - g_send_file_bytes = 0; -} - -void -close_sound_file() -{ - if(g_sound_file_fd != 0) { - fclose(g_sound_file_fd); - } - - g_sound_file_fd = 0; -} - -void -check_for_range(word32 *addr, int num_samps, int offset) -{ - short *shortptr; - int i; - int left; - int right; - int max; - - max = -32768; - - if(num_samps > SOUND_SHM_SAMP_SIZE) { - halt_printf("num_samps: %d > %d!\n", num_samps, - SOUND_SHM_SAMP_SIZE); - } - - for(i = 0; i < num_samps; i++) { - shortptr = (short *)&(addr[i]); - left = shortptr[0]; - right = shortptr[1]; - if((left > 0x3000) || (right > 0x3000)) { - halt_printf("Sample %d of %d at snd_buf: %p is: " - "%d/%d\n", i + offset, num_samps, - &addr[i], left, right); - return; - } - - max = MAX(max, left); - max = MAX(max, right); - } - - printf("check4 max: %d over %d\n", max, num_samps); -} - -void -send_sound_to_file(word32 *addr, int shm_pos, int num_samps) -{ - int size; - int ret; - - if(g_sound_file_fd == 0) { - open_sound_file(); - } - - size = 0; - if((num_samps + shm_pos) > SOUND_SHM_SAMP_SIZE) { - size = SOUND_SHM_SAMP_SIZE - shm_pos; - g_send_file_bytes += (size * 4); - - ret = fwrite(&(addr[shm_pos]), 1, 4*size, g_sound_file_fd); - if(ret != 4*size) { - halt_printf("wrote %d not %d\n", ret, 4*size); - } - - if(g_doc_vol < 3) { - check_for_range(&(addr[shm_pos]), size, 0); - } else { - printf("Not checking %d bytes since vol: %d\n", - 4*size, g_doc_vol); - } - shm_pos = 0; - num_samps -= size; - } - - g_send_file_bytes += (num_samps * 4); - - ret = fwrite(&(addr[shm_pos]), 1, 4*num_samps, g_sound_file_fd); - if(ret != 4*num_samps) { - halt_printf("wrote %d not %d\n", ret, 4*num_samps); - } - - if(g_doc_vol < 3) { - check_for_range(&(addr[shm_pos]), num_samps, size); - } else { - printf("Not checking2 %d bytes since vol: %d\n", - 4*num_samps, g_doc_vol); - } - -} - -void -send_sound(int real_samps, int size) -{ - word32 tmp; - int ret; - - if(g_audio_enable == 0) { - printf("Entered send_sound but audio off!\n"); - exit(2); - } - - if(real_samps) { - tmp = size + 0xa2000000; - } else { - tmp = size + 0xa1000000; - } - DOC_LOG("send_sound", -1, g_last_sound_play_dsamp, - (real_samps << 30) + size); - -#if defined(MAC) || defined(WIN_SOUND) /* Workaround - gcc in cygwin wasn't defining _WIN32 */ - ret = 0; - child_sound_playit(tmp); -#elif defined(__OS2__) - -#else - /* Although this looks like a big/little-endian issue, since the */ - /* child is also reading an int, it just works with no byte swap */ - ret = write(g_pipe_fd[1], &tmp, 4); - if(ret != 4) { - halt_printf("send_sound, wr ret: %d, errno: %d\n", ret, errno); - } -#endif -} - -void -show_c030_state() -{ - show_c030_samps(&(g_samp_buf[0]), 100); -} - -void -show_c030_samps(int *outptr, int num) -{ - int i; - - printf("c030_fsamps[]: %d\n", g_num_c030_fsamps); - - for(i = 0; i < g_num_c030_fsamps+2; i++) { - printf("%3d: %5.3f\n", i, c030_fsamps[i]); - } - - printf("Samples[] = %d\n", num); - - for(i = 0; i < num+2; i++) { - printf("%4d: %d %d\n", i, outptr[0], outptr[1]); - outptr += 2; - } -} - -int g_sound_play_depth = 0; - -void -sound_play(double dsamps) -{ - register word32 start_time1, start_time2, start_time3, start_time4; - register word32 end_time1, end_time2, end_time3; - Doc_reg *rptr; - int *outptr; - int *outptr_start; - word32 *sndptr; - double complete_dsamp; - double cur_dsamp; - double last_dsamp; - double dsamp_now; - double dnum_samps; - int val, val2; - int new_val; - float ftmp; - int imul; - int off; - int num; - float fsampnum; - float next_fsampnum; - int c030_lo_val, c030_hi_val; - float fc030_range; - float fc030_base; - int sampnum; - int next_sampnum; - float fpercent; - int c030_state; - int val0, val1; - word32 cur_acc; - word32 cur_pos; - word32 cur_mask; - word32 cur_inc; - word32 cur_end; - int ctl; - int num_osc_en; - int samps_left; - int samps_to_do; - int samps_played; - int samp_offset; - int snd_buf_init; - int pos; - int num_running; - int num_samps; - int osc; - int done; - int i, j; - - - GET_ITIMER(start_time1); - - g_num_snd_plays++; - if(g_sound_play_depth) { - halt_printf("Nested sound_play!\n"); - } - - g_sound_play_depth++; - - /* calc sample num */ - - last_dsamp = g_last_sound_play_dsamp; - num_samps = (int)(dsamps - g_last_sound_play_dsamp); - dnum_samps = (double)num_samps; - - dsamp_now = last_dsamp + dnum_samps; - - if(num_samps < 1) { - /* just say no */ - g_sound_play_depth--; - return; - } - - DOC_LOG("sound_play", -1, dsamp_now, num_samps); - - if(num_samps > MAX_SND_BUF) { - printf("num_samps: %d, too big!\n", num_samps); - g_sound_play_depth--; - return; - } - - - GET_ITIMER(start_time4); - - outptr_start = &(g_samp_buf[0]); - outptr = outptr_start; - - snd_buf_init = 0; - - samps_played = 0; - - num = g_num_c030_fsamps; - - if(num || ((g_vbl_count - g_last_c030_vbl_count) < 240)) { - - if(num) { - g_last_c030_vbl_count = g_vbl_count; - } - - pos = 0; - outptr = outptr_start; - c030_state = g_c030_state; - - c030_hi_val = ((VAL_C030_BASE + VAL_C030_RANGE)*g_doc_vol) >> 4; - c030_lo_val = (VAL_C030_BASE * g_doc_vol) >> 4; - - fc030_range = (float)(((VAL_C030_RANGE) * g_doc_vol) >> 4); - fc030_base = (float)(((VAL_C030_BASE) * g_doc_vol) >> 4); - - val = c030_lo_val; - if(c030_state) { - val = c030_hi_val; - } - - snd_buf_init++; - - c030_fsamps[num] = (float)(num_samps); - c030_fsamps[num+1] = (float)(num_samps+1); - - ftmp = (float)num_samps; - /* ensure that all samps are in range */ - for(i = num - 1; i >= 0; i--) { - if(c030_fsamps[i] > ftmp) { - c030_fsamps[i] = ftmp; - } - } - - num++; - fsampnum = c030_fsamps[0]; - sampnum = (int)fsampnum; - fpercent = (float)0.0; - i = 0; - - while(i < num) { - next_fsampnum = c030_fsamps[i+1]; - next_sampnum = (int)next_fsampnum; - if(sampnum < 0 || sampnum > num_samps) { - halt_printf("play c030: [%d]:%f is %d, > %d\n", - i, fsampnum, sampnum, num_samps); - break; - } - - /* write in samples to all samps < me */ - new_val = c030_lo_val; - if(c030_state) { - new_val = c030_hi_val; - } - for(j = pos; j < sampnum; j++) { - outptr[0] = new_val; - outptr[1] = new_val; - outptr += 2; - pos++; - } - - /* now, calculate me */ - fpercent = (float)0.0; - if(c030_state) { - fpercent = (fsampnum - (float)sampnum); - } - - c030_state = !c030_state; - - while(next_sampnum == sampnum) { - if(c030_state) { - fpercent += (next_fsampnum - fsampnum); - } - i++; - fsampnum = next_fsampnum; - - next_fsampnum = c030_fsamps[i+1]; - next_sampnum = (int)next_fsampnum; - c030_state = !c030_state; - } - - if(c030_state) { - /* add in fractional time */ - ftmp = (float)(int)(fsampnum + 1.0f); //OG added cast - fpercent += (ftmp - fsampnum); - } - - if((fpercent < (float)0.0) || (fpercent > (float)1.0)) { - halt_printf("fpercent: %d = %f\n", i, fpercent); - show_c030_samps(outptr_start, num_samps); - break; - } - - val = (int)((fpercent * fc030_range) + fc030_base); - outptr[0] = val; - outptr[1] = val; - outptr += 2; - pos++; - i++; - - sampnum = next_sampnum; - fsampnum = next_fsampnum; - } - - samps_played += num_samps; - - /* since we pretended to get one extra sample, we will */ - /* have toggled the speaker one time too many. Fix it */ - g_c030_state = !c030_state; - - if(g_send_sound_to_file) { - show_c030_samps(outptr_start, num_samps); - } - } - - g_num_c030_fsamps = 0; - - GET_ITIMER(start_time2); - - num_running = 0; - - num_osc_en = g_doc_num_osc_en; - - done = 0; - while(!done) { - done = 1; - for(j = 0; j < num_osc_en; j++) { - osc = j; - rptr = &(g_doc_regs[osc]); - complete_dsamp = rptr->complete_dsamp; - samps_left = rptr->samps_left; - cur_acc = rptr->cur_acc; - cur_mask = rptr->cur_mask; - cur_inc = rptr->cur_inc; - cur_end = rptr->cur_end; - if(!rptr->running || cur_inc == 0 || - (complete_dsamp >= dsamp_now)) { - continue; - } - - done = 0; - ctl = rptr->ctl; - - samp_offset = 0; - if(complete_dsamp > last_dsamp) { - samp_offset = (int)(complete_dsamp- last_dsamp); - if(samp_offset > num_samps) { - rptr->complete_dsamp = dsamp_now; - continue; - } - } - outptr = outptr_start + 2 * samp_offset; - if(ctl & 0x10) { - /* other channel */ - outptr += 1; - } - - imul = (rptr->vol * g_doc_vol); - off = imul * 128; - - samps_to_do = MIN(samps_left, num_samps - samp_offset); - if(imul == 0 || samps_to_do == 0) { - /* produce no sound */ - samps_left = samps_left - samps_to_do; - cur_acc += cur_inc * samps_to_do; - rptr->samps_left = samps_left; - rptr->cur_acc = cur_acc; - cur_dsamp = last_dsamp + - (double)(samps_to_do + samp_offset); - DOC_LOG("nosnd", osc, cur_dsamp, samps_to_do); - rptr->complete_dsamp = dsamp_now; - cur_pos = rptr->cur_start+(cur_acc & cur_mask); - if(samps_left <= 0) { - doc_sound_end(osc, 1, cur_dsamp, - dsamp_now); - val = 0; - j--; - } else { - val = doc_ram[cur_pos >> SND_PTR_SHIFT]; - } - rptr->last_samp_val = val; - continue; - } - - if(snd_buf_init == 0) { - memset(outptr_start, 0, - 2*sizeof(outptr_start[0])*num_samps); - snd_buf_init++; - } - - val = 0; - rptr->complete_dsamp = dsamp_now; - cur_pos = rptr->cur_start + (cur_acc & cur_mask); - for(i = 0; i < samps_to_do; i++) { - pos = cur_pos >> SND_PTR_SHIFT; - cur_pos += cur_inc; - cur_acc += cur_inc; - val = doc_ram[pos]; - - val2 = (val * imul - off) >> 4; - if((val == 0) || (cur_pos >= cur_end)) { - cur_dsamp = last_dsamp + - (double)(samp_offset + i + 1); - rptr->cur_acc = cur_acc; - rptr->samps_left = 0; - DOC_LOG("end or 0", osc, cur_dsamp, - (pos << 16) + ((i &0xff) << 8) + - val); - doc_sound_end(osc, val, cur_dsamp, - dsamp_now); - val = 0; - break; - } - - val2 = outptr[0] + val2; - - samps_left--; - *outptr = val2; - outptr += 2; - } - - rptr->last_samp_val = val; - - if(val != 0) { - rptr->cur_acc = cur_acc; - rptr->samps_left = samps_left; - rptr->complete_dsamp = dsamp_now; - } - - samps_played += samps_to_do; - DOC_LOG("splayed", osc, dsamp_now, - (samps_to_do << 16) + (pos & 0xffff)); - } - } - - GET_ITIMER(end_time2); - - g_cycs_in_sound2 += (end_time2 - start_time2); - - g_last_sound_play_dsamp = dsamp_now; - - GET_ITIMER(start_time3); - - outptr = outptr_start; - - pos = g_sound_shm_pos; - sndptr = g_sound_shm_addr; - -#if 0 - printf("samps_left: %d, num_samps: %d\n", samps_left, num_samps); -#endif - - if(g_audio_enable != 0) { - - if(snd_buf_init) { - /* convert sound buf */ - - for(i = 0; i < num_samps; i++) { - val0 = outptr[0]; - val1 = outptr[1]; - val = val0; - if(val0 > 32767) { - val = 32767; - } - if(val0 < -32768) { - val = -32768; - } - - val0 = val; - val = val1; - if(val1 > 32767) { - val = 32767; - } - if(val1 < -32768) { - val = -32768; - } - - - outptr += 2; - -#if defined(__linux__) || defined(OSS) - /* Linux seems to expect little-endian */ - /* samples always, even on PowerPC */ -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) // OSX needs to calculate endianness mid-compilation, can't be passed on compile command - sndptr[pos] = (val << 16) + (val0 & 0xffff); -# else - sndptr[pos] = ((val & 0xff) << 24) + - ((val & 0xff00) << 8) + - ((val0 & 0xff) << 8) + - ((val0 >> 8) & 0xff); -# endif -#else -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) // OSX needs to calculate endianness mid-compilation, can't be passed on compile command - sndptr[pos] = (val << 16) + (val0 & 0xffff); -# else - sndptr[pos] = (val0 << 16) + (val & 0xffff); -# endif -#endif - pos++; - if(pos >= SOUND_SHM_SAMP_SIZE) { - pos = 0; - } - } - - if(g_queued_nonsamps) { - /* force out old 0 samps */ - send_sound(0, g_queued_nonsamps); - g_queued_nonsamps = 0; - } - - if(g_send_sound_to_file) { - send_sound_to_file(g_sound_shm_addr, - g_sound_shm_pos, num_samps); - } - - g_queued_samps += num_samps; - } else { - /* move pos */ - pos += num_samps; - while(pos >= SOUND_SHM_SAMP_SIZE) { - pos -= SOUND_SHM_SAMP_SIZE; - } - - if(g_send_sound_to_file) { - send_sound_to_file(zero_buf, g_sound_shm_pos, - num_samps); - } - - if(g_queued_samps) { - /* force out old non-0 samps */ - send_sound(1, g_queued_samps); - g_queued_samps = 0; - } - - g_queued_nonsamps += num_samps; - } - - } - - g_sound_shm_pos = pos; - - - GET_ITIMER(end_time3); - - g_fvoices += ((float)(samps_played) * (float)(g_drecip_audio_rate)); - - if(g_audio_enable != 0) { - if(g_queued_samps >= (g_audio_rate/32)) { - send_sound(1, g_queued_samps); - g_queued_samps = 0; - } - - if(g_queued_nonsamps >= (g_audio_rate/32)) { - send_sound(0, g_queued_nonsamps); - g_queued_nonsamps = 0; - } - } - - GET_ITIMER(end_time1); - - g_cycs_in_sound1 += (end_time1 - start_time1); - g_cycs_in_sound3 += (end_time3 - start_time3); - g_cycs_in_sound4 += (start_time2 - start_time4); - - g_last_sound_play_dsamp = dsamp_now; - - g_sound_play_depth--; -} - - -void -doc_handle_event(int osc, double dcycs) -{ - double dsamps; - - /* handle osc stopping and maybe interrupting */ - - g_num_doc_events++; - - dsamps = dcycs * g_dsamps_per_dcyc; - - DOC_LOG("doc_ev", osc, dcycs, 0); - - g_doc_regs[osc].event = 0; - - sound_play(dsamps); - -} - -void -doc_sound_end(int osc, int can_repeat, double eff_dsamps, double dsamps) -{ - Doc_reg *rptr, *orptr; - int mode, omode; - int other_osc; - int one_shot_stop; - int ctl; - - /* handle osc stopping and maybe interrupting */ - - if(osc < 0 || osc > 31) { - printf("doc_handle_event: osc: %d!\n", osc); - return; - } - - rptr = &(g_doc_regs[osc]); - ctl = rptr->ctl; - - if(rptr->event) { - remove_event_doc(osc); - } - rptr->event = 0; - - /* check to make sure osc is running */ - if(ctl & 0x01) { - /* Oscillator already stopped. */ - halt_printf("Osc %d interrupt, but it was already stop!\n",osc); -#ifdef HPUX - U_STACK_TRACE(); -#endif - return; - } - - if(ctl & 0x08) { - if(rptr->has_irq_pending == 0) { - add_sound_irq(osc); - } - } - - if(!rptr->running) { - halt_printf("Doc event for osc %d, but ! running\n", osc); - } - - rptr->running = 0; - - mode = (ctl >> 1) & 3; - other_osc = osc ^ 1; - orptr = &(g_doc_regs[other_osc]); - omode = (orptr->ctl >> 1) & 3; - - /* If either this osc or it's partner is in swap mode, treat the */ - /* pair as being in swap mode. This Ensoniq feature pointed out */ - /* by Ian Schmidt */ - if(mode == 0 && can_repeat) { - /* free-running mode with no 0 byte! */ - /* start doing it again */ - - start_sound(osc, eff_dsamps, dsamps); - - return; - } - rptr->cur_acc = 0; /* reset internal accumulator*/ - if((mode == 3) || (omode == 3)) { - /* swap mode (even if we're one_shot and partner is swap)! */ - rptr->ctl |= 1; - if(!orptr->running && - (orptr->ctl & 0x1)) { - orptr->ctl = orptr->ctl & (~1); - start_sound(other_osc, eff_dsamps, dsamps); - } - return; - } else { - /* stop the oscillator */ - rptr->ctl |= 1; - } - - return; -} - -void -add_sound_irq(int osc) -{ - int num_osc_interrupting; - - if(g_doc_regs[osc].has_irq_pending) { - halt_printf("Adding sound_irq for %02x, but irq_p: %d\n", osc, - g_doc_regs[osc].has_irq_pending); - } - - num_osc_interrupting = g_num_osc_interrupting + 1; - g_doc_regs[osc].has_irq_pending = num_osc_interrupting; - g_num_osc_interrupting = num_osc_interrupting; - - add_irq(IRQ_PENDING_DOC); - if(num_osc_interrupting == 1) { - doc_reg_e0 = 0x00 + (osc << 1); - } - - DOC_LOG("add_irq", osc, g_cur_dcycs * g_dsamps_per_dcyc, 0); -} - -void -remove_sound_irq(int osc, int must) -{ - Doc_reg *rptr; - int num_osc_interrupt; - int has_irq_pending; - int first; - int i; - - doc_printf("remove irq for osc: %d, has_irq: %d\n", - osc, g_doc_regs[osc].has_irq_pending); - - num_osc_interrupt = g_doc_regs[osc].has_irq_pending; - first = 0; - if(num_osc_interrupt) { - g_num_osc_interrupting--; - g_doc_regs[osc].has_irq_pending = 0; - DOC_LOG("rem_irq", osc, g_cur_dcycs * g_dsamps_per_dcyc, 0); - if(g_num_osc_interrupting == 0) { - remove_irq(IRQ_PENDING_DOC); - } - - first = 0x40 | (doc_reg_e0 >> 1); - /* if none found, then def = no ints */ - for(i = 0; i < g_doc_num_osc_en; i++) { - rptr = &(g_doc_regs[i]); - has_irq_pending = rptr->has_irq_pending; - if(has_irq_pending > num_osc_interrupt) { - has_irq_pending--; - rptr->has_irq_pending = has_irq_pending; - } - if(has_irq_pending == 1) { - first = i; - } - } - if(num_osc_interrupt == 1) { - doc_reg_e0 = (first << 1); - } else { -#if 0 - halt_printf("remove_sound_irq[%02x]=%d, first:%d\n", - osc, num_osc_interrupt, first); -#endif - } - } else { -#if 0 - /* make sure no int pending */ - if(doc_reg_e0 != 0xff) { - halt_printf("remove_sound_irq[%02x]=0, but e0: %02x\n", - osc, doc_reg_e0); - } -#endif - if(must) { - halt_printf("REMOVE_sound_irq[%02x]=0, but e0: %02x\n", - osc, doc_reg_e0); - } - } - - if(doc_reg_e0 & 0x80) { - for(i = 0; i < 0x20; i++) { - has_irq_pending = g_doc_regs[i].has_irq_pending; - if(has_irq_pending) { - halt_printf("remove_sound_irq[%02x], but " - "[%02x]=%d!\n", osc,i,has_irq_pending); - printf("num_osc_int: %d, first: %02x\n", - num_osc_interrupt, first); - } - } - } -} - -void -start_sound(int osc, double eff_dsamps, double dsamps) -{ - register word32 start_time1; - register word32 end_time1; - Doc_reg *rptr; - int ctl; - int mode; - word32 sz; - word32 size; - word32 wave_size; - - if(osc < 0 || osc > 31) { - halt_printf("start_sound: osc: %02x!\n", osc); - } - - g_num_start_sounds++; - - rptr = &(g_doc_regs[osc]); - - if(osc >= g_doc_num_osc_en) { - rptr->ctl |= 1; - return; - } - - GET_ITIMER(start_time1); - - ctl = rptr->ctl; - - mode = (ctl >> 1) & 3; - - wave_size = rptr->wavesize; - - sz = ((wave_size >> 3) & 7) + 8; - size = 1 << sz; - - if(size < 0x100) { - halt_printf("size: %08x is too small, sz: %08x!\n", size, sz); - } - - if(rptr->running) { - halt_printf("start_sound osc: %d, already running!\n", osc); - } - - rptr->running = 1; - - rptr->complete_dsamp = eff_dsamps; - - doc_printf("Starting osc %02x, dsamp: %f\n", osc, dsamps); - doc_printf("size: %04x\n", size); - - if((mode == 2) && ((osc & 1) == 0)) { - printf("Sync mode osc %d starting!\n", osc); - /* set_halt(1); */ - - /* see if we should start our odd partner */ - if((rptr[1].ctl & 7) == 5) { - /* odd partner stopped in sync mode--start him */ - rptr[1].ctl &= (~1); - start_sound(osc + 1, eff_dsamps, dsamps); - } else { - printf("Osc %d starting sync, but osc %d ctl: %02x\n", - osc, osc+1, rptr[1].ctl); - } - } - - wave_end_estimate(osc, eff_dsamps, dsamps); - - DOC_LOG("st playing", osc, eff_dsamps, size); -#if 0 - if(rptr->cur_acc != 0) { - halt_printf("Start osc %02x, acc: %08x\n", osc, rptr->cur_acc); - } -#endif - - GET_ITIMER(end_time1); - - g_cycs_in_start_sound += (end_time1 - start_time1); -} - -void -wave_end_estimate(int osc, double eff_dsamps, double dsamps) -{ - register word32 start_time1; - register word32 end_time1; - Doc_reg *rptr; - byte *ptr1; - double event_dsamp; - double event_dcycs; - double dcycs_per_samp; - double dsamps_per_byte; - double num_dsamps; - double dcur_inc; - word32 tmp1; - word32 cur_inc; - word32 save_val; - int save_size; - int pos; - int size; - int estimate; - - GET_ITIMER(start_time1); - - dcycs_per_samp = g_dcycs_per_samp; - - rptr = &(g_doc_regs[osc]); - - cur_inc = rptr->cur_inc; - dcur_inc = (double)cur_inc; - dsamps_per_byte = 0.0; - if(cur_inc) { - dsamps_per_byte = SND_PTR_SHIFT_DBL / (double)dcur_inc; - } - - /* see if there's a zero byte */ - tmp1 = rptr->cur_start + (rptr->cur_acc & rptr->cur_mask); - pos = tmp1 >> SND_PTR_SHIFT; - size = ((rptr->cur_end) >> SND_PTR_SHIFT) - pos; - - ptr1 = &doc_ram[pos]; - - estimate = 0; - if(rptr->ctl & 0x08 || g_doc_regs[osc ^ 1].ctl & 0x08) { - estimate = 1; - } - -#if 0 - estimate = 1; -#endif - if(estimate) { - save_size = size; - save_val = ptr1[size]; - ptr1[size] = 0; - size = strlen((char *)ptr1); - ptr1[save_size] = save_val; - } - - /* calc samples to play */ - num_dsamps = (dsamps_per_byte * (double)size) + 1.0; - - rptr->samps_left = (int)num_dsamps; - - if(rptr->event) { - remove_event_doc(osc); - } - rptr->event = 0; - - event_dsamp = eff_dsamps + num_dsamps; - if(estimate) { - rptr->event = 1; - rptr->dsamp_ev = event_dsamp; - rptr->dsamp_ev2 = dsamps; - event_dcycs = (event_dsamp * dcycs_per_samp) + 1.0; - add_event_doc(event_dcycs, osc); - } - - GET_ITIMER(end_time1); - - g_cycs_in_est_sound += (end_time1 - start_time1); -} - - -void -remove_sound_event(int osc) -{ - if(g_doc_regs[osc].event) { - g_doc_regs[osc].event = 0; - remove_event_doc(osc); - } -} - - -void -doc_write_ctl_reg(int osc, int val, double dsamps) -{ - Doc_reg *rptr; - double eff_dsamps; - word32 old_halt; - word32 new_halt; - int old_val; - int mode; - - if(osc < 0 || osc >= 0x20) { - halt_printf("doc_write_ctl_reg: osc: %02x, val: %02x\n", - osc, val); - return; - } - - eff_dsamps = dsamps; - rptr = &(g_doc_regs[osc]); - old_val = rptr->ctl; - g_doc_saved_ctl = old_val; - - if(old_val == val) { - return; - } - - DOC_LOG("ctl_reg", osc, dsamps, (old_val << 16) + val); - - mode = (val >> 1) & 3; - - old_halt = (old_val & 1); - new_halt = (val & 1); - - /* bits are: 28: old int bit */ - /* 29: old halt bit */ - /* 30: new int bit */ - /* 31: new halt bit */ - -#if 0 - if(osc == 0x10) { - printf("osc %d new_ctl: %02x, old: %02x\n", osc, val, old_val); - } -#endif - - /* no matter what, remove any pending IRQs on this osc */ - remove_sound_irq(osc, 0); - -#if 0 - if(old_halt) { - printf("doc_write_ctl to osc %d, val: %02x, old: %02x\n", - osc, val, old_val); - } -#endif - - if(new_halt != 0) { - /* make sure sound is stopped */ - remove_sound_event(osc); - if(old_halt == 0) { - /* it was playing, finish it up */ -#if 0 - halt_printf("Aborted osc %d at eff_dsamps: %f, ctl: " - "%02x, oldctl: %02x\n", osc, eff_dsamps, - val, old_val); -#endif - sound_play(eff_dsamps); - } - if(((old_val >> 1) & 3) > 0) { - /* don't clear acc if free-running */ - g_doc_regs[osc].cur_acc = 0; - } - - g_doc_regs[osc].ctl = val; - g_doc_regs[osc].running = 0; - } else { - /* new halt == 0 = make sure sound is running */ - if(old_halt != 0) { - /* start sound */ - DOC_LOG("ctl_sound_play", osc, eff_dsamps, val); - - // OG If the sound_play is executed, it may restart a oscillo we thought was stopped at time, - // hence crashing the start_sound function (cf. game Arrgh!) - //sound_play(eff_dsamps); - g_doc_regs[osc].ctl = val; - - start_sound(osc, eff_dsamps, dsamps); - } else { - /* was running, and something changed */ - doc_printf("osc %d old ctl:%02x new:%02x!\n", - osc, old_val, val); -#if 0 - sound_play(eff_dsamps); -/* HACK: fix this??? */ -#endif - g_doc_regs[osc].ctl = val; - if((old_val ^ val) & val & 0x8) { - /* now has ints on */ - wave_end_estimate(osc, dsamps, dsamps); - } - } - } -} - -void -doc_recalc_sound_parms(int osc, double eff_dcycs, double dsamps) -{ - Doc_reg *rptr; - double dfreq; - double dtmp1; - double dacc, dacc_recip; - word32 res; - word32 sz; - word32 size; - word32 wave_size; - word32 cur_start; - word32 shifted_size; - - g_num_recalc_snd_parms++; - - rptr = &(g_doc_regs[osc]); - - wave_size = rptr->wavesize; - - dfreq = (double)rptr->freq; - - sz = ((wave_size >> 3) & 7) + 8; - size = 1 << sz; - rptr->size_bytes = size; - res = wave_size & 7; - - shifted_size = size << SND_PTR_SHIFT; - - cur_start = (rptr->waveptr << (8 + SND_PTR_SHIFT)) & (-(int)shifted_size); // OG - - dtmp1 = dfreq * (DOC_SCAN_RATE * g_drecip_audio_rate); - dacc = (double)(1 << (20 - (17 - sz + res))); - dacc_recip = (SND_PTR_SHIFT_DBL) / ((double)(1 << 20)); - dtmp1 = dtmp1 * g_drecip_osc_en_plus_2 * dacc * dacc_recip; - - rptr->cur_inc = (int)(dtmp1); - rptr->cur_start = cur_start; - rptr->cur_end = cur_start + shifted_size; - rptr->cur_mask = (shifted_size - 1); - - DOC_LOG("recalc", osc, dsamps, (rptr->waveptr << 16) + wave_size); -} - -int -doc_read_c030(double dcycs) -{ - int num; - - num = g_num_c030_fsamps; - if(num >= MAX_C030_TIMES) { - halt_printf("Too many clicks per vbl: %d\n", num); - return 0; - } - - c030_fsamps[num] = (float)(dcycs * g_dsamps_per_dcyc - - g_last_sound_play_dsamp); - g_num_c030_fsamps = num + 1; - - doc_printf("read c030, num this vbl: %04x\n", num); - - return 0; -} - -int -doc_read_c03c(double dcycs) -{ - return doc_sound_ctl; -} - -int -doc_read_c03d(double dcycs) -{ - double dsamps; - Doc_reg *rptr; - int osc; - int type; - int ret; - - ret = doc_saved_val; - dsamps = dcycs * g_dsamps_per_dcyc; - - if(doc_sound_ctl & 0x40) { - /* Read RAM */ - doc_saved_val = doc_ram[g_c03ef_doc_ptr]; - } else { - /* Read DOC */ - doc_saved_val = 0; - - osc = g_c03ef_doc_ptr & 0x1f; - type = (g_c03ef_doc_ptr >> 5) & 0x7; - rptr = &(g_doc_regs[osc]); - - switch(type) { - case 0x0: /* freq lo */ - doc_saved_val = rptr->freq & 0xff; - break; - case 0x1: /* freq hi */ - doc_saved_val = rptr->freq >> 8; - break; - case 0x2: /* vol */ - doc_saved_val = rptr->vol; - break; - case 0x3: /* data register */ - /* HACK: make this call sound_play sometimes */ - doc_saved_val = rptr->last_samp_val; - break; - case 0x4: /* wave ptr register */ - doc_saved_val = rptr->waveptr; - break; - case 0x5: /* control register */ - doc_saved_val = rptr->ctl; - break; - case 0x6: /* control register */ - doc_saved_val = rptr->wavesize; - break; - case 0x7: /* 0xe0-0xff */ - switch(osc) { - case 0x00: /* 0xe0 */ - doc_saved_val = doc_reg_e0; - doc_printf("Reading doc 0xe0, ret: %02x\n", - doc_saved_val); - - /* Clear IRQ on read of e0, if any irq pend */ - if((doc_reg_e0 & 0x80) == 0) { - remove_sound_irq(doc_reg_e0 >> 1, 1); - } - break; - case 0x01: /* 0xe1 */ - doc_saved_val = (g_doc_num_osc_en - 1) << 1; - break; - case 0x02: /* 0xe2 */ - doc_saved_val = 0x80; -#if 0 - halt_printf("Reading doc 0xe2, ret: %02x\n", - doc_saved_val); -#endif - break; - default: - doc_saved_val = 0; - halt_printf("Reading bad doc_reg[%04x]: %02x\n", - g_c03ef_doc_ptr, doc_saved_val); - } - break; - default: - doc_saved_val = 0; - halt_printf("Reading bad doc_reg[%04x]: %02x\n", - g_c03ef_doc_ptr, doc_saved_val); - } - } - - doc_printf("read c03d, doc_ptr: %04x, ret: %02x, saved: %02x\n", - g_c03ef_doc_ptr, ret, doc_saved_val); - - DOC_LOG("read c03d", -1, dsamps, (g_c03ef_doc_ptr << 16) + - (doc_saved_val << 8) + ret); - - if(doc_sound_ctl & 0x20) { - g_c03ef_doc_ptr = (g_c03ef_doc_ptr + 1) & 0xffff; - } - - - return ret; -} - -void -doc_write_c03c(int val, double dcycs) -{ - int vol; - - vol = val & 0xf; - if(g_doc_vol != vol) { - /* don't bother playing sound..wait till next update */ - /* sound_play(dcycs); */ - - g_doc_vol = vol; - doc_printf("Setting doc vol to 0x%x at %f\n", - vol, dcycs); - } - DOC_LOG("c03c write", -1, dcycs * g_dsamps_per_dcyc, val); - - doc_sound_ctl = val; -} - -void -doc_write_c03d(int val, double dcycs) -{ - double dsamps; - double eff_dsamps; - Doc_reg *rptr; - int osc; - int type; - int ctl; - int tmp; - int i; - - val = val & 0xff; - - dsamps = dcycs * g_dsamps_per_dcyc; - eff_dsamps = dsamps; - doc_printf("write c03d, doc_ptr: %04x, val: %02x\n", - g_c03ef_doc_ptr, val); - - DOC_LOG("write c03d", -1, dsamps, (g_c03ef_doc_ptr << 16) + val); - - if(doc_sound_ctl & 0x40) { - /* RAM */ - doc_ram[g_c03ef_doc_ptr] = val; - } else { - /* DOC */ - osc = g_c03ef_doc_ptr & 0x1f; - type = (g_c03ef_doc_ptr >> 5) & 0x7; - - rptr = &(g_doc_regs[osc]); - ctl = rptr->ctl; -#if 0 - if((ctl & 1) == 0) { - if(type < 2 || type == 4 || type == 6) { - halt_printf("Osc %d is running, old ctl: %02x, " - "but write reg %02x=%02x\n", - osc, ctl, g_c03ef_doc_ptr & 0xff, val); - } - } -#endif - - switch(type) { - case 0x0: /* freq lo */ - if((rptr->freq & 0xff) == (word32)val) { - break; - } - if((ctl & 1) == 0) { - /* play through current status */ - DOC_LOG("flo_sound_play", osc, dsamps, val); - sound_play(dsamps); - } - rptr->freq = (rptr->freq & 0xff00) + val; - doc_recalc_sound_parms(osc, eff_dsamps, dsamps); - break; - case 0x1: /* freq hi */ - if((rptr->freq >> 8) == (word32)val) { - break; - } - if((ctl & 1) == 0) { - /* play through current status */ - DOC_LOG("fhi_sound_play", osc, dsamps, val); - sound_play(dsamps); - } - rptr->freq = (rptr->freq & 0xff) + (val << 8); - doc_recalc_sound_parms(osc, eff_dsamps, dsamps); - break; - case 0x2: /* vol */ - if(rptr->vol == (word32)val) { - break; - } - if((ctl & 1) == 0) { - /* play through current status */ - DOC_LOG("vol_sound_play", osc, dsamps, val); - sound_play(dsamps); -#if 0 - halt_printf("vol_sound_play at %.1f osc:%d " - "val:%d\n", dsamps, osc, val); -#endif - } - rptr->vol = val; - break; - case 0x3: /* data register */ -#if 0 - printf("Writing %02x into doc_data_reg[%02x]!\n", - val, osc); -#endif - break; - case 0x4: /* wave ptr register */ - if(rptr->waveptr == (word32)val) { - break; - } - if((ctl & 1) == 0) { - /* play through current status */ - DOC_LOG("wptr_sound_play", osc, dsamps, val); - sound_play(dsamps); - } - rptr->waveptr = val; - doc_recalc_sound_parms(osc, eff_dsamps, dsamps); - break; - case 0x5: /* control register */ -#if 0 - printf("doc_write ctl osc %d, val: %02x\n", osc, val); -#endif - if(rptr->ctl == (word32)val) { - break; - } - doc_write_ctl_reg(osc, val, dsamps); - break; - case 0x6: /* wavesize register */ - if(rptr->wavesize == (word32)val) { - break; - } - if((ctl & 1) == 0) { - /* play through current status */ - DOC_LOG("wsz_sound_play", osc, dsamps, val); - sound_play(dsamps); - } - rptr->wavesize = val; - doc_recalc_sound_parms(osc, eff_dsamps, dsamps); - break; - case 0x7: /* 0xe0-0xff */ - switch(osc) { - case 0x00: /* 0xe0 */ - doc_printf("writing doc 0xe0 with %02x, " - "was:%02x\n", val, doc_reg_e0); -#if 0 - if(val != doc_reg_e0) { - halt_printf("writing doc 0xe0 with " - "%02x, was:%02x\n", val, - doc_reg_e0); - } -#endif - break; - case 0x01: /* 0xe1 */ - doc_printf("Writing doc 0xe1 with %02x\n", val); - tmp = val & 0x3e; - tmp = (tmp >> 1) + 1; - if(tmp < 1) { - tmp = 1; - } - if(tmp > 32) { - halt_printf("doc 0xe1: %02x!\n", val); - tmp = 32; - } - g_doc_num_osc_en = tmp; - UPDATE_G_DCYCS_PER_DOC_UPDATE(tmp); - - // OG Update any oscs that were running to take care of the new numbers of oscillo - for(i = 0; ictl, rptr->waveptr, rptr->wavesize, rptr->freq, - rptr->vol, rptr->event, rptr->running, - rptr->has_irq_pending, rptr->size_bytes); - printf(" acc:%08x inc:%08x st:%08x end:%08x m:%08x\n", - rptr->cur_acc, rptr->cur_inc, rptr->cur_start, - rptr->cur_end, rptr->cur_mask); - printf(" compl_ds:%f samps_left:%d ev:%f ev2:%f\n", - rptr->complete_dsamp, rptr->samps_left, - rptr->dsamp_ev, rptr->dsamp_ev2); - } - -#if 0 - for(osc = 0; osc < 32; osc++) { - fmax = 0.0; - printf("osc %d has %d samps\n", osc, g_fsamp_num[osc]); - for(i = 0; i < g_fsamp_num[osc]; i++) { - printf("%4d: %f\n", i, g_fsamps[osc][i]); - fmax = MAX(fmax, g_fsamps[osc][i]); - } - printf("osc %d, fmax: %f\n", osc, fmax); - } -#endif -} diff --git a/.svn/pristine/21/212ffeea82003ae56632dbb99e1acd5afbe90c93.svn-base b/.svn/pristine/21/212ffeea82003ae56632dbb99e1acd5afbe90c93.svn-base deleted file mode 100644 index 2d89299..0000000 --- a/.svn/pristine/21/212ffeea82003ae56632dbb99e1acd5afbe90c93.svn-base +++ /dev/null @@ -1,218 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* This file is included by video.c */ - -void -SUPER_TYPE(byte *screen_data, int pixels_per_line, int y, int scan, - word32 ch_mask, int use_a2vid_palette, int mode_640) -{ - word32 *palptr; - word32 mem_ptr; - byte val0; - int x1, x2; - byte *b_ptr; - word32 *img_ptr, *img_ptr2; - word32 tmp, tmp2; - word32 ch_tmp; - byte *slow_mem_ptr; - int shift_per; - word32 pal; - word32 pal_word; - word32 pix0, pix1, pix2, pix3; - word32 save_pix; - int offset, next_line_offset; - int dopr; - - mem_ptr = 0xa0 * y + 0x12000; - tmp2 = 0; - tmp = 0; - - shift_per = (1 << SHIFT_PER_CHANGE); - if(use_a2vid_palette) { - pal = (g_a2vid_palette & 0xf); - } else { - pal = (scan & 0xf); - } - - if(SUPER_FILL) { - ch_mask = -1; - save_pix = 0; - } - - if(use_a2vid_palette) { - palptr = &(g_a2vid_palette_remap[0]); - } else { - palptr = &(g_palette_8to1624[pal * 16]); - } - - dopr = 0; -#if 0 - if(y == 1) { - dopr = 1; - printf("superhires line %d has ch_mask: %08x\n", y, ch_mask); - } -#endif - for(x1 = 0; x1 < 0xa0; x1 += shift_per) { - - CH_LOOP_A2_VID(ch_mask, ch_tmp); - - pal_word = (pal << 28) + (pal << 20) + (pal << 12) + - (pal << 4); - - if(mode_640 && !use_a2vid_palette) { -#ifdef GSPORT_LITTLE_ENDIAN - pal_word += 0x04000c08; -#else - pal_word += 0x080c0004; -#endif - } - - - slow_mem_ptr = &(g_slow_memory_ptr[mem_ptr + x1]); - offset = y*2*pixels_per_line + x1*4; - next_line_offset = pixels_per_line; -#if SUPER_PIXEL_SIZE == 16 - offset *= 2; - next_line_offset *= 2; -#elif SUPER_PIXEL_SIZE == 32 - offset *= 4; - next_line_offset *= 4; -#endif - b_ptr = &screen_data[offset]; - img_ptr = (word32 *)b_ptr; - img_ptr2 = (word32 *)(b_ptr + next_line_offset); - - if(mode_640) { - for(x2 = 0; x2 < shift_per; x2++) { - val0 = *slow_mem_ptr++; - - pix0 = (val0 >> 6) & 0x3; - pix1 = (val0 >> 4) & 0x3; - pix2 = (val0 >> 2) & 0x3; - pix3 = val0 & 0x3; - if(use_a2vid_palette || (SUPER_PIXEL_SIZE > 8)){ - pix0 = palptr[pix0+8]; - pix1 = palptr[pix1+12]; - pix2 = palptr[pix2+0]; - pix3 = palptr[pix3+4]; - } -#if SUPER_PIXEL_SIZE == 8 -# ifdef GSPORT_LITTLE_ENDIAN - tmp = (pix3 << 24) + (pix2 << 16) + - (pix1 << 8) + pix0 + pal_word; -# else - tmp = (pix0 << 24) + (pix1 << 16) + - (pix2 << 8) + pix3 + pal_word; -# endif - *img_ptr++ = tmp; *img_ptr2++ = tmp; -#elif SUPER_PIXEL_SIZE == 16 -# ifdef GSPORT_LITTLE_ENDIAN - tmp = (pix1 << 16) + pix0; - tmp2 = (pix3 << 16) + pix2; -# else - tmp = (pix0 << 16) + pix1; - tmp2 = (pix2 << 16) + pix3; -# endif - *img_ptr++ = tmp; - *img_ptr++ = tmp2; - *img_ptr2++ = tmp; - *img_ptr2++ = tmp2; -#else /* SUPER_PIXEL_SIZE == 32 */ - *img_ptr++ = pix0; - *img_ptr++ = pix1; - *img_ptr++ = pix2; - *img_ptr++ = pix3; - *img_ptr2++ = pix0; - *img_ptr2++ = pix1; - *img_ptr2++ = pix2; - *img_ptr2++ = pix3; -#endif - -#if 0 - if(y == 1 && x1 == 0 && x2 == 0) { - printf("y==1,x1,x2=0, %02x = %08x %08x " - "%08x %08x, pal: %04x\n", val0, - pix0, pix1, pix2, pix3, pal); - printf("offset: %04x, nlo:%04x, ppl:" - "%04x, %d\n", offset, - next_line_offset, - pixels_per_line, SUPER_PIXEL_SIZE); - } -#endif - } - - } else { /* 320 mode */ - for(x2 = 0; x2 < shift_per; x2++) { - val0 = *slow_mem_ptr++; - pix0 = (val0 >> 4); - if(SUPER_FILL) { - if(pix0) { - save_pix = pix0; - } else { - pix0 = save_pix; - } - } - pix1 = (val0 & 0xf); - if(SUPER_FILL) { - if(pix1) { - save_pix = pix1; - } else { - pix1 = save_pix; - } - } - if(use_a2vid_palette || (SUPER_PIXEL_SIZE > 8)){ - pix0 = palptr[pix0]; - pix1 = palptr[pix1]; - } - if(dopr && x1 == 0) { - printf("y:%d, x2:%d, val:%02x = %08x %08x\n", y, x2, val0, pix0, pix1); - } -#if SUPER_PIXEL_SIZE == 8 -# ifdef GSPORT_LITTLE_ENDIAN - tmp = (pix1 << 24) + (pix1 << 16) + - (pix0 << 8) + pix0 + pal_word; -# else - tmp = (pix0 << 24) + (pix0 << 16) + - (pix1 << 8) + pix1 + pal_word; -# endif - *img_ptr++ = tmp; *img_ptr2++ = tmp; -#elif SUPER_PIXEL_SIZE == 16 - tmp = (pix0 << 16) + pix0; - tmp2 = (pix1 << 16) + pix1; - *img_ptr++ = tmp; - *img_ptr++ = tmp2; - *img_ptr2++ = tmp; - *img_ptr2++ = tmp2; -#else /* SUPER_PIXEL_SIZE == 32 */ - *img_ptr++ = pix0; - *img_ptr++ = pix0; - *img_ptr++ = pix1; - *img_ptr++ = pix1; - *img_ptr2++ = pix0; - *img_ptr2++ = pix0; - *img_ptr2++ = pix1; - *img_ptr2++ = pix1; -#endif - } - } - } -} diff --git a/.svn/pristine/21/218d63fc5dcb1de44a3473104bad0d97daf99732.svn-base b/.svn/pristine/21/218d63fc5dcb1de44a3473104bad0d97daf99732.svn-base deleted file mode 100644 index de27c42..0000000 --- a/.svn/pristine/21/218d63fc5dcb1de44a3473104bad0d97daf99732.svn-base +++ /dev/null @@ -1,76 +0,0 @@ -# GSport OS/2 makefile - -TARGET = gsport.exe - -OBJECTS1 = dirport.obj adb.obj clock.obj dis.obj engine_c.obj scc.obj \ - iwm.obj joystick_driver.obj moremem.obj paddles.obj \ - sim65816.obj smartport.obj sound.obj \ - video.obj config.obj scc_socket_os2.obj os2driver.obj os2snd_driver.obj - -{..\..}.c.obj: - @echo " Compile::C++ Compiler " - icc.exe /DTCPV40HDRS /DBSD_SELECT /Dinline= /I..\.. /Ss /Q /Ti /Gm /G4 /Ft- /C %s - -{src\}.c.obj: - @echo " Compile::C++ Compiler " - icc.exe /DTCPV40HDRS /DBSD_SELECT /Dinline= /I..\.. /Ss /Q /Ti /Gm /G4 /Ft- /C %s - -.c.obj: - @echo " Compile::C++ Compiler " - icc.exe /DTCPV40HDRS /DBSD_SELECT /Dinline= /I..\.. /Ss /Q /Ti /Gm /G4 /Ft- /C %s - -$(TARGET): $(OBJECTS1) - @echo " Link::Linker " - icc.exe @<< - /B" /de /pmtype:pm /st:196608 " - /Fe$(TARGET) - so32dll.lib - tcp32dll.lib - $(OBJECTS1) -<< - rc gsportos2.rc $(TARGET) - echo done - -clean: - - rm $(OBJECTS1) - - rm $(TARGET) - - rm gsportos2.res - - rm ../../size_s.h - - rm ../../size_c.h - - rm ../../8size_s.h - - rm ../../16size_s.h - - rm ../../8inst_s.h - - rm ../../8inst_c.h - - rm ../../16inst_s.h - - rm ../../16inst_c.h - -../../size_c.h: - call make_size.cmd - -../../8inst_c.h: - call make_inst.cmd - -# dependency stuff -dirport.obj: src/dirport.c src/dirport.h -adb.obj: ../../adb.c ../../adb.h ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -engine_c.obj: ../../engine_c.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h ../../protos_engine_c.h ../../size_c.h ../../op_routs.h ../../defs_instr.h ../../8inst_c.h ../../16inst_c.h -clock.obj: ..\..\clock.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -compile_time.obj: ../../compile_time.c -config.obj: ../../config.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h ../../config.h -dis.obj: ../../dis.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h ../../disas.h -scc.obj: ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h ../../scc.h -scc_socket_driver.obj: ../../scc_socket_driver.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h ../../scc.h -scc_socket_os2.obj: scc_socket_os2.c -iwm.obj: ../../iwm.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h ../../iwm_35_525.h -joystick_driver.obj: ../../joystick_driver.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -moremem.obj: ../../moremem.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -paddles.obj: ../../paddles.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -parallel.obj: ../../parallel.c ../../defc.h -printer.obj: ../../printer.cpp -sim65816.obj: ../../sim65816.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -smartport.obj: ../../smartport.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -sound.obj: ../../sound.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -sound_driver.obj: ../../sound_driver.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h ../../sound.h -video.obj: ../../video.c ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h ../../superhires.h ../../gsportfont.h -os2driver.obj: os2driver.c gsportos2.h ../../scc.c ../../defc.h ../../defcomm.h ../../iwm.h ../../protos.h -os2snd_driver.obj: os2snd_driver.c diff --git a/.svn/pristine/21/21e37c628192608eef72b89375fd3ef235c3a5e4.svn-base b/.svn/pristine/21/21e37c628192608eef72b89375fd3ef235c3a5e4.svn-base deleted file mode 100644 index f0dfbfe..0000000 --- a/.svn/pristine/21/21e37c628192608eef72b89375fd3ef235c3a5e4.svn-base +++ /dev/null @@ -1,905 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" -#include - -#include "prodos.h" - -#include - - -#define DEF_DISK_SIZE (800*1024) -#define MAX_FILE_NAMES 51 - -char out_name[] = "POOF1"; - -int g_def_file_type = -1; -int g_def_aux_type = -1; - -void make_legal_prodos_name(char *new_name, char *old_name); - -int -main(int argc, char **argv) -{ - char *files[MAX_FILE_NAMES]; - char *name; - char *new_name_end; - int new_name_len; - struct stat stat_buf; - int in; - int in_size; - int ret; - ProDisk *disk; - char new_name[128]; - byte in_buf[1024]; - int disk_size; - int i; - int done; - int pos; - int size; - int num_files; - int file_type; - int aux_type; - - disk_size = DEF_DISK_SIZE; - if(argc < 2) { - fprintf(stderr, "%s: {-[size in K]} {unix_files}\n", - argv[0]); - exit(1); - } - - num_files = 0; - for(i = 1; i < argc; i++) { - if(argv[i][0] == '-') { - /* I smell a -size_in_K */ - disk_size = strtoul(&(argv[i][1]), 0, 10) * 1024; - printf("disk_size: %d, 0x%x\n", disk_size, disk_size); - if(disk_size < 40*1024) { - printf("Too small!\n"); - exit(1); - } - } else { - files[num_files] = argv[i]; - num_files++; - if(num_files >= MAX_FILE_NAMES) { - printf("Too many filenames: %d\n", num_files); - exit(2); - } - } - } - - disk = allocate_memdisk(out_name, disk_size); - format_memdisk(disk, out_name); - - for(i = 0; i < num_files; i++) { - name = files[i]; - in = open(name, O_RDONLY | O_BINARY); - if(in < 0) { - fprintf(stderr, "opening %s returned %d, errno: %d\n", - name, in, errno); - exit(1); - } - - ret = fstat(in, &stat_buf); - if(ret != 0) { - fprintf(stderr, "fstat returned %d, errno: %d\n", - ret, errno); - } - - in_size = stat_buf.st_size; - printf("in size: %d\n", in_size); - - if(in_size > disk->disk_bytes_left) { - printf("File bigger than %d, too big!\n", disk_size); - exit(2); - } - - make_legal_prodos_name(new_name, name); - - new_name_len = strlen(new_name); - new_name_end = new_name + new_name_len; - - file_type = g_def_file_type; - aux_type = g_def_aux_type; - while(g_def_file_type < 0) { - /* choose file type */ - if(new_name_len >= 5) { - if(strcmp(new_name_end - 4, ".SHK") == 0) { - file_type = 0xe0; - aux_type = 0x8002; - break; - } - if(strcmp(new_name_end - 4, ".SDK") == 0) { - file_type = 0xe0; - aux_type = 0x8002; - break; - } - } - file_type = 0x04; /* TXT */ - aux_type = 0; - break; - } - - create_new_file(disk, 2, 1, new_name, file_type, - 0, 0, 0, 0xc3, aux_type, 0, in_size); - - - done = 0; - pos = 0; - while(pos < in_size) { - size = 512; - if(pos + size > in_size) { - size = in_size - pos; - } - ret = read(in, in_buf, size); - if(ret != size || ret <= 0) { - fprintf(stderr, "read returned %d, errno: %d\n", - ret, errno); - exit(2); - } - ret = pro_write_file(disk, in_buf, pos, size); - if(ret != 0) { - printf("pro_write returned %d!\n", ret); - exit(3); - } - pos += size; - } - - close_file(disk); - - close(in); - } - - flush_disk(disk); - return 0; -} - -void -make_legal_prodos_name(char *new_name, char *old_name) -{ - char *ptr; - int start_len, start_char; - int len; - int pos; - int c; - int j; - - for(j = 0; j < 16; j++) { - /* make sure it ends with null == 15 + 1 */ - new_name[j] = 0; - } - - start_char = 0; - start_len = strlen(old_name); - len = 0; - ptr = &old_name[start_len - 1]; - for(j = start_len - 1; j >= 0; j--) { - if(*ptr == '/' || *ptr == ':') { - break; - } - ptr--; - len++; - } - ptr++; - - if(len <= 0) { - printf("Filename: %s has len: %d!\n", old_name, len); - exit(1); - } - - printf("mid_name: %s, len:%d\n", ptr, len); - - pos = 0; - for(j = 0; j < 15; j++) { - c = ptr[pos]; - if(isalnum(c)) { - c = toupper(c); - } else if(c != 0) { - c = '.'; - } - - if(j == 0 && !isalpha(c)) { - c = 'A'; - } - - new_name[j] = c; - - pos++; - if(pos == 7 && len > 15) { - pos = len - 8; - } - } - - printf("new_name: %s\n", new_name); -} - -void -flush_disk(ProDisk *disk) -{ - disk_write_data(disk, 6, disk->bitmap_ptr, - disk->size_bitmap_blocks * 512); - close(disk->fd); - disk->fd = -1; -} - -void -close_file(ProDisk *disk) -{ - write_ind_block(disk); - write_master_ind_block(disk); - disk_write_data(disk, disk->dir_blk_num, &(disk->dir_blk_data[0]), 512); - disk->file_ptr = 0; -} - -ProDisk * -allocate_memdisk(char *out_name, int size) -{ - ProDisk *disk; - int out; - - out = open(out_name, O_RDWR | O_CREAT | O_TRUNC | O_BINARY, 0x1b6); - if(out < 0) { - fprintf(stderr, "opening %s returned %d, errno: %d\n", - out_name, out, errno); - exit(1); - } - - disk = (ProDisk *)malloc(sizeof(ProDisk)); - if(disk == 0) { - printf("allocate_memdisk failed, errno: %d\n", errno); - } - - disk->fd = out; - disk->total_blocks = (size + 511) / 512; - disk->bitmap_ptr = 0; - disk->disk_bytes_left = 0; - disk->size_bitmap_blocks = 0; - disk->dir_blk_num = -1; - disk->ind_blk_num = -1; - disk->master_ind_blk_num = -1; - - return disk; -} - -void -format_memdisk(ProDisk *disk, char *name) -{ - byte zero_buf[1024]; - int total_blocks; - byte *bitmap_ptr; - Vol_hdr *vol_hdr; - Directory *dir; - int size_bitmap_bytes; - int size_bitmap_blocks; - int disk_blocks_left; - int i, j; - - total_blocks = disk->total_blocks; - - /* Zero out blocks 0 and 1 */ - for(i = 0; i < 2*512; i++) { - zero_buf[i] = 0; - } - disk_write_data(disk, 0x00000, zero_buf, 2*512); - - /* and make the image the right size */ - disk_write_data(disk, total_blocks - 1, zero_buf, 512); - - dir = disk_read_dir(disk, 2); - set_l2byte(&(dir->prev_blk), 0); - set_l2byte(&(dir->next_blk), 3); - vol_hdr = (Vol_hdr *)&(dir->file_entries[0]); - vol_hdr->storage_type_name_len = 0xf0 + strlen(name); - strncpy((char *)vol_hdr->vol_name, name, strlen(name)); - vol_hdr->version = 0; - vol_hdr->min_version = 0; - vol_hdr->access = 0xc3; - vol_hdr->entry_length = 0x27; - vol_hdr->entries_per_block = 0x0d; - set_l2byte(&(vol_hdr->file_count), 0); - vol_hdr->entries_per_block = 0x0d; - set_l2byte(&(vol_hdr->bit_map), 6); - set_l2byte(&(vol_hdr->total_blocks), total_blocks); - for(i = 1; i < 13; i++) { - set_file_entry(&(dir->file_entries[i]), 0, "", 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0); - } - disk_write_dir(disk, 2); - - - for(i = 3; i < 6; i++) { - dir = disk_read_dir(disk, i); - set_l2byte(&(dir->prev_blk), i - 1); - set_l2byte(&(dir->next_blk), i + 1); - if(i == 5) { - set_l2byte(&(dir->next_blk), 0); - } - for(j = 0; j < 13; j++) { - set_file_entry(&(dir->file_entries[j]), 0, "", 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0); - } - - disk_write_dir(disk, i); - } - - size_bitmap_bytes = (total_blocks + 7)/ 8; - size_bitmap_blocks = (size_bitmap_bytes + 511)/ 512; - bitmap_ptr = (byte *)malloc(size_bitmap_blocks * 512); - for(i = 0; i < 6+size_bitmap_blocks; i++) { - set_bitmap_used(bitmap_ptr, i); - } - for(i = 6+size_bitmap_blocks; i < total_blocks; i++) { - set_bitmap_free(bitmap_ptr, i); - } - for(i = total_blocks; i < size_bitmap_blocks*512*8; i++) { - set_bitmap_used(bitmap_ptr, i); - } - - disk_write_data(disk, 6, bitmap_ptr, size_bitmap_blocks * 512); - disk->bitmap_ptr = bitmap_ptr; - disk->size_bitmap_blocks = size_bitmap_blocks; - disk->bitmap_bytes = size_bitmap_blocks * 512; - disk->bitmap_cur_pos = 0; - - disk_blocks_left = total_blocks - 6 - size_bitmap_blocks; - disk->disk_bytes_left = disk_blocks_left * 512; -} - -void -disk_write_data(ProDisk *disk, int blk_num, byte *buf, int size) -{ - int size_in_blocks; - int ret; - -#if 0 - printf("Writing blk %04x from buf: %08x, %03x\n", blk_num, buf, size); -#endif - - size_in_blocks = size >> 9; - if(size_in_blocks * 512 != size) { - printf("disk_write: blk: %04x, buf: %08x, size: %08x\n", - blk_num, (word32)buf, size); - exit(1); - } - - ret = lseek(disk->fd, 512*blk_num, SEEK_SET); - if(ret != 512*blk_num) { - printf("disk_write: seek: %d, errno: %d, blk: %04x, buf: " - "%08x, sz: %08x\n", ret, errno, blk_num, - (word32)buf, size); - exit(1); - } - - ret = write(disk->fd, buf, size); - if(ret != size) { - printf("disk_write: write: %d, errno: %d, blk: %04x, buf: " - "%08x, sz: %08x\n", ret, errno, blk_num, - (word32)buf, size); - exit(1); - } -} - -void -disk_read_data(ProDisk *disk, int blk_num, byte *buf, int size) -{ - int size_in_blocks; - int ret; - int i; - - size_in_blocks = size >> 9; - if(size_in_blocks * 512 != size) { - printf("disk_read: blk: %04x, buf: %08x, size: %08x\n", - blk_num, (word32)buf, size); - exit(1); - } - - ret = lseek(disk->fd, 512*blk_num, SEEK_SET); - if(ret != 512*blk_num) { - printf("disk_read: seek: %d, errno: %d, blk: %04x, buf: " - "%08x, sz: %08x\n", ret, errno, blk_num, - (word32)buf, size); - exit(1); - } - - ret = read(disk->fd, buf, size); - if(ret != size) { - printf("disk_read: read: %d, errno: %d, blk: %04x, buf: " - "%08x, sz: %08x\n", ret, errno, blk_num, - (word32)buf, size); - for(i = 0; i < size; i++) { - buf[i] = 0; - } - } -} - -Directory * -disk_read_dir(ProDisk *disk, int blk_num) -{ - disk_write_dir(disk, blk_num); - - disk->dir_blk_num = blk_num; - disk_read_data(disk, blk_num, &(disk->dir_blk_data[0]), 512); - - return (Directory *)&(disk->dir_blk_data[0]); -} - -void -disk_write_dir(ProDisk *disk, int blk_num) -{ - if(disk->dir_blk_num >= 0) { - if(disk->dir_blk_num != blk_num) { - printf("disk_write_dir: %04x != %04x\n", - disk->dir_blk_num, blk_num); - } - disk_write_data(disk, disk->dir_blk_num, - &(disk->dir_blk_data[0]), 512); - disk->dir_blk_num = -1; - } -} - -void -create_new_file(ProDisk *disk, int dir_block, int storage_type, char *name, - int file_type, word32 creation_time, int version, int min_version, - int access, int aux_type, word32 last_mod, word32 eof) -{ - Vol_hdr *vol_ptr; - int val; - Directory *dir_ptr; - File_entry *file_ptr; - int file_count; - int pos; - int last_pos; - int done; - int next_blk; - int name_len; - - name_len = strlen(name); - dir_ptr = disk_read_dir(disk, dir_block); - next_blk = dir_block; - val = dir_ptr->file_entries[0].storage_type_name_len; - last_pos = 13; - pos = 0; - if(((val & 0xf0) == 0xf0) || ((val & 0xf0) == 0xe0)) { - /* vol dir or subdir header */ - vol_ptr = (Vol_hdr *)&(dir_ptr->file_entries[0]); - file_count = get_l2byte(&(vol_ptr->file_count)); - pos = 1; - last_pos = vol_ptr->entries_per_block; - } else { - printf("dir_block: %04x not subdir or voldir\n", dir_block); - exit(6); - } - - vol_ptr = 0; - - done = 0; - while(!done) { - file_ptr = &(dir_ptr->file_entries[pos]); - if(((file_ptr->storage_type_name_len) & 0xf0) == 0) { - /* Got it! */ - file_ptr->storage_type_name_len = - (storage_type << 4) | name_len; - strncpy((char *)file_ptr->file_name, name, 15); - file_ptr->file_type = file_type; - set_l2byte(&(file_ptr->key_pointer), - find_next_free_block(disk)); - set_l2byte(&(file_ptr->blocks_used), 0); - set_pro_time(&(file_ptr->creation_time), - creation_time); - file_ptr->version = version; - file_ptr->min_version = min_version; - file_ptr->access = access; - set_l2byte(&(file_ptr->aux_type), aux_type); - set_pro_time(&(file_ptr->last_mod), last_mod); - set_l2byte(&(file_ptr->header_pointer), - dir_block); - set_l3byte(&(file_ptr->eof), eof); - disk_write_dir(disk, next_blk); - - dir_ptr = disk_read_dir(disk, dir_block); - vol_ptr = (Vol_hdr *)&(dir_ptr->file_entries[0]); - set_l2byte(&(vol_ptr->file_count), file_count+1); - disk_write_dir(disk, dir_block); - - disk_read_dir(disk, next_blk); - /* re-read dir so that ptrs are set up right */ - disk->file_ptr = file_ptr; - disk->file_open = 1; - disk->ind_blk_num = -1; - disk->master_ind_blk_num = -1; - done = 1; - break; - } else { - /* check to make sure name is unique */ - if((file_ptr->storage_type_name_len & 0x0f)== name_len){ - if(!memcmp(file_ptr->file_name, name,name_len)){ - printf("Name %s already on disk!\n", - name); - exit(8); - } - } - pos++; - if(pos >= last_pos) { - /* Go to next block */ - next_blk = get_l2byte(&(dir_ptr->next_blk)); - if(next_blk) { - dir_ptr = disk_read_dir(disk, next_blk); - pos = 0; - } else { - printf("Top directory full!\n"); - exit(2); - } - } - } - } -} - -int -pro_write_file(ProDisk *disk, byte *in_buf, int pos, int size) -{ - int block; - int i; - - block = get_disk_block(disk, pos, 1); - if(block < 7) { - printf("pro_write_file, get_disk_block: %d\n", block); - exit(3); - } - if(size < 512) { - for(i = size; i < 512; i++) { - in_buf[i] = 0; - } - } else if(size > 512) { - printf("error, pro_write_file size: %d too big\n", size); - exit(4); - } - - disk_write_data(disk, block, in_buf, 512); - - return 0; -} - - - -int -get_disk_block(ProDisk *disk, int pos, int create) -{ - File_entry *file_ptr; - int storage_type; - word32 eof; - int lo, hi; - int offset; - int master_ind_block, ind_block; - int ret_block; - int key_block; - - if(pos >= 128*256*512) { - printf("offset too big\n"); - exit(3); - } - - file_ptr = disk->file_ptr; - - eof = get_l3byte(&(file_ptr->eof)); - storage_type = (file_ptr->storage_type_name_len) >> 4; - - key_block = get_l2byte(&(file_ptr->key_pointer)); - - if(storage_type == 1 && pos >= 512) { - /* make it sapling */ - get_new_ind_block(disk); - inc_l2byte(&(file_ptr->blocks_used)); - disk->ind_blk_data[0] = key_block & 0xff; - disk->ind_blk_data[0x100] = key_block >> 8; - key_block = disk->ind_blk_num; - set_l2byte(&(file_ptr->key_pointer), key_block); - file_ptr->storage_type_name_len += 0x10; - storage_type++; - } - if(storage_type == 2 && pos >= 256*512) { - /* make it tree */ - get_new_master_ind_block(disk); - inc_l2byte(&(file_ptr->blocks_used)); - disk->master_ind_blk_data[0] = key_block & 0xff; - disk->master_ind_blk_data[0x100] = key_block >> 8; - key_block = disk->master_ind_blk_num; - set_l2byte(&(file_ptr->key_pointer), key_block); - file_ptr->storage_type_name_len += 0x10; - storage_type++; - } - - switch(storage_type) { - case 1: - if(pos >= 512) { - printf("Error1!\n"); - exit(3); - } - ret_block = key_block; - if(ret_block == 0) { - ret_block = find_next_free_block(disk); - inc_l2byte(&(file_ptr->blocks_used)); - set_l2byte(&(file_ptr->key_pointer), ret_block); - } - return ret_block; - case 2: - ind_block = key_block; - if(ind_block <= 0) { - printf("write failure, ind_block: %d!\n", ind_block); - exit(3); - } - offset = pos >> 9; - if(offset >= 256) { - printf("pos too big!\n"); - exit(3); - } - - lo = disk->ind_blk_data[offset]; - hi = disk->ind_blk_data[offset + 0x100]; - ret_block = hi*256 + lo; - if(ret_block == 0) { - /* Need to alloc a block for this guy */ - ret_block = find_next_free_block(disk); - inc_l2byte(&(file_ptr->blocks_used)); - disk->ind_blk_data[offset] = ret_block & 0xff; - disk->ind_blk_data[offset + 0x100] = - ((ret_block >> 8) & 0xff); - } - return ret_block; - case 3: - /* tree */ - master_ind_block = key_block; - if(master_ind_block <= 0) { - printf("write failure, master_ind_block: %d!\n", - master_ind_block); - exit(3); - } - offset = pos >> 17; - if(offset >= 128) { - printf("master too big!\n"); - exit(4); - } - lo = disk->master_ind_blk_data[offset]; - hi = disk->master_ind_blk_data[offset + 0x100]; - ind_block = hi*256 + lo; - if(ind_block == 0) { - /* Need to alloc an ind block */ - get_new_ind_block(disk); - ind_block = disk->ind_blk_num; - inc_l2byte(&(file_ptr->blocks_used)); - disk->master_ind_blk_data[offset] = ind_block & 0xff; - disk->master_ind_blk_data[offset + 0x100] = - ((ind_block >> 8) & 0xff); - } - - offset = (pos >> 9) & 0xff; - lo = disk->ind_blk_data[offset]; - hi = disk->ind_blk_data[offset + 0x100]; - ret_block = hi*256 + lo; - - if(ret_block == 0) { - /* Need to alloc a block for this guy */ - ret_block = find_next_free_block(disk); - inc_l2byte(&(file_ptr->blocks_used)); - disk->ind_blk_data[offset] = ret_block & 0xff; - disk->ind_blk_data[offset + 0x100] = - ((ret_block >> 8) & 0xff); - } - return ret_block; - default: - printf("unknown storage type: %d\n", storage_type); - exit(4); - } - - printf("Can't get here!\n"); - exit(5); -} - -void -get_new_ind_block(ProDisk *disk) -{ - int ind_blk_num; - int i; - - write_ind_block(disk); - - ind_blk_num = find_next_free_block(disk); - for(i = 0; i < 512; i++) { - disk->ind_blk_data[i] = 0; - } - - disk->ind_blk_num = ind_blk_num; -} - -void -write_ind_block(ProDisk *disk) -{ - int ind_blk_num; - - ind_blk_num = disk->ind_blk_num; - if(ind_blk_num > 0) { - printf("Write ind block: %04x\n", ind_blk_num); - disk_write_data(disk, ind_blk_num, &(disk->ind_blk_data[0]), - 512); - disk->ind_blk_num = -1; - } -} - -void -get_new_master_ind_block(ProDisk *disk) -{ - int master_ind_blk_num; - int i; - - write_master_ind_block(disk); - - master_ind_blk_num = find_next_free_block(disk); - for(i = 0; i < 512; i++) { - disk->master_ind_blk_data[i] = 0; - } - - disk->master_ind_blk_num = master_ind_blk_num; -} - -void -write_master_ind_block(ProDisk *disk) -{ - int master_ind_blk_num; - - master_ind_blk_num = disk->master_ind_blk_num; - if(master_ind_blk_num > 0) { - printf("Write master_ind block: %04x\n", master_ind_blk_num); - disk_write_data(disk, master_ind_blk_num, - &(disk->master_ind_blk_data[0]), 512); - disk->master_ind_blk_num = -1; - } -} - -int -find_next_free_block(ProDisk *disk) -{ - byte *bitmap_ptr; - int pos; - int bitmap_bytes; - int i, j; - word32 val; - - bitmap_ptr = disk->bitmap_ptr; - bitmap_bytes = disk->bitmap_bytes; - pos = disk->bitmap_cur_pos; - - for(i = pos; i < bitmap_bytes; i++) { - val = bitmap_ptr[i]; - if(val == 0) { - continue; - } - for(j = 0; j < 8; j++) { - if(val & (0x80 >> j)) { - set_bitmap_used(bitmap_ptr, 8*i+j); - disk->bitmap_cur_pos = i; - return 8*i + j; - } - } - return -1; - } - return -1; -} - - - -void -set_bitmap_used(byte *ptr, int i) -{ - word32 offset, bit; - word32 val; - - offset = i >> 3; - bit = i & 7; - - val = ~(0x80 >> bit); - ptr[offset] &= val; -} - -void -set_bitmap_free(byte *ptr, int i) -{ - int offset, bit; - int val; - - offset = i >> 3; - bit = i & 7; - - val = (0x80 >> bit); - ptr[offset] |= val; -} - -void -set_file_entry(File_entry *entry, int storage_type_name_len, char *file_name, - int file_type, int key_pointer, int blocks_used, int eof, - word32 creation_time, int version, int min_version, int access, - int aux_type, word32 last_mod, int header_pointer) -{ - - entry->storage_type_name_len = storage_type_name_len; - strncpy((char *)entry->file_name, file_name, 15); - entry->file_type = file_type; - set_l2byte(&(entry->key_pointer), key_pointer); - set_l2byte(&(entry->blocks_used), blocks_used); - set_l3byte(&(entry->eof), eof); - set_pro_time(&(entry->creation_time), creation_time); - entry->version = version; - entry->min_version = min_version; - entry->access = access; - set_l2byte(&(entry->aux_type), aux_type); - set_pro_time(&(entry->last_mod), last_mod); - set_l2byte(&(entry->aux_type), header_pointer); - -} - -void -set_l2byte(L2byte *ptr, int val) -{ - ptr->low = (val & 0xff); - ptr->hi = ((val >> 8) & 0xff); - -} - -void -set_l3byte(L3byte *ptr, int val) -{ - ptr->low = (val & 0xff); - ptr->hi = ((val >> 8) & 0xff); - ptr->higher = ((val >> 16) & 0xff); - -} - -void -set_pro_time(Pro_time *ptr, word32 val) -{ - ptr->times[0] = ((val >> 24) & 0xff); - ptr->times[1] = ((val >> 16) & 0xff); - ptr->times[2] = ((val >> 8) & 0xff); - ptr->times[3] = ((val) & 0xff); -} - -int -get_l2byte(L2byte *ptr) -{ - int val; - - val = ((ptr->hi) * 256) + ptr->low; - return val; -} - -int -get_l3byte(L3byte *ptr) -{ - int val; - - val = ((ptr->higher) * 65536) + ((ptr->hi) * 256) + ptr->low; - return val; -} - -void -inc_l2byte(L2byte *ptr) -{ - set_l2byte(ptr, get_l2byte(ptr) + 1); -} diff --git a/.svn/pristine/22/22a63d0ac25309e1dc0fdc8c47f7d8df664b08f7.svn-base b/.svn/pristine/22/22a63d0ac25309e1dc0fdc8c47f7d8df664b08f7.svn-base deleted file mode 100644 index bea9011..0000000 --- a/.svn/pristine/22/22a63d0ac25309e1dc0fdc8c47f7d8df664b08f7.svn-base +++ /dev/null @@ -1,148 +0,0 @@ - -xdriver.c contains the routines for interfacing to X windows. The rest -of KEGS interacts with X windows only through xdriver.c routines. - -Externally called routines are: -show_xcolor_array(): Debug routine, it does not need to do anything. -dev_video_init(): Called at startup, it should open up the - window and do other initialization. -update_physical_colormap(): Updates the X windows palette with the colors - from xcolor_a2vid_array[], which is maintained by - other xdriver routines. -update_status_line(): Call to update the internal array of chars - representing the status lines at the bottom of - the window. Does not draw the chars to the screen. -xdriver_end(): Shutdown routine -check_input_events(): Called up to 60 times a second (see video_update() in - video.c) to handle any X window events and get - keypresses. - On a mouse press, call update_mouse() with the - new x, y coordinates, and the status of the mouse - button. - If g_warp_pointer is set, constrain mouse within - the window. - On keypress, calls handle_keysym(). - handle_keysym(): Takes X keysym, and converts to the appropriate - a2code using the a2_key_to_xsym[] lookup table. - The a2codes are the Apple // ADB keycodes. - Special work is done to handle shift and control - properly since Apple only has one keycode for both - shift and control keys. Then call - adb_physical_key_update() with the a2 keycode and - is_up = 1 if keyup, 0 = if key down. - In addition, this routine handles all the Function - keys doing special actions, which should be easy to - port. -x_refresh_ximage(): Redraws the window using the a2_line_* arrays. - Described in more detail below. -update_color_array(): Interface to the color map. Sets color[col_num] - of the internal colormap array to a2_color. - a2_color is the 12 bit apple color of the form: - (red << 8) + (green << 4) + (blue). - There are 16 palettes of 16 colors each, managed as - one 256-color colormap. See discussion of - g_a2vid_palette below. -x_auto_repeat_on(): The X routines turn off key repeat when the cursor - enters the graphics window automatically, and turn - it back on when the cursor leaves. But if the - debugger gets control due to a breakpoint, keyrepeat - would be left off. So the debugger calls this - routine to make sure key repeat is back on. -redraw_status_lines(): Draw the status lines from the g_status_buf[][] array - to the graphics window. - -Externally referenced data: - -g_use_shmem: Set by main() to enable/disable MIT-SHM for X. - Also used by sound routines to auto-turn-off sound - if not using MIT-SHM. - -Bytes representing screen data: -byte *data_text[2]: Array of bytes for the lores and text pages 1 and 2. - Just 400*640 bytes. -byte *data_hires[2]: Array of bytes for the hires pages 1 and 2. -byte *data_superhires: Array of bytes for superhires screen. -byte *data_border_sides: Array of bytes representing the border sides. - Basically just A2_WINDOW_HEIGHT*EFF_BORDER_WIDTH bytes. -byte *data_border_special: Top and bottom border bytes. - (X_A2_WINDOW_HEIGHT - A2_WINDOW_HEIGHT + 2*8) * - (X_A2_WINDOW_WIDTH) bytes. - -Handles used for X windows drawing: -XImage *ximage_hires[2]: Opaque handle to XImage object for hires page 1 and - page 2. -XImage *ximage_text[2]: Text pages 1 and 2. -XImage *ximage_superhires: Superhires graphics XImage -XImage *ximage_border_special: Top and bottom border XImage. -XImage *ximage_border_sides: Left and right sides (only one copy, it is - drawn at two different locations to be both sides). - -Basic operation of xdriver: --------------------------- - -X windows can push arrays of bytes to the screen through structures -called XImages. An XImage is a structure describing an offscreen bitmap. -For efficiency of page flipping, KEGS maintains separate bitmaps for the -two lores/text screens, the two hires screens, and the superhires screen. -It also maintains bitmaps for the border. For MIT-SHM to work, X -requires a unique XImage for each bitmap, and the bitmap must be allocated -within xdriver.c since it must be obtained through an shmat() call. -The X code also has non-MIT-SHM code which allocates the data_* buffers -just through malloc(). - -All bitmaps are 8-bits of Pseudo-color. The color arrays are managed -through the update_color_array() and update_physical_colormap() routines. -KEGS manages all 256 colors in the colormap as 16 palettes of 16 colors. -One of the palettes is reserved for the 16 lores colors, and is -indicated by the variable g_a2vid_palette. It defaults to 0xe. -Update_color_array() is called to update superhires colormap entries. -Update_color_array must not update colors corresponding to g_a2vid_palette. -Update_physical_colormap() pushes the color array managed by -update_color_array() to the screen, but first forces the lores colors into -the g_a2vid_palette palette. g_installed_full_superhires_colormap is -always false in KEGS for now. video.c calls update_color_array and changes -g_a2vid_palette. No xdriver routines gets notified when g_a2vid_palette -changes, so update_physical_colormap must handle the case where -g_a2vid_palette might have changed since it was last called. - -x_redraw_ximage(): -Routines in video.c are free to draw into the corresponding data_* -arrays to change any byte at any time. video.c manages remembering -which lines need to be redrawn and which parts of the screen are in -which video mode via the a2_line_* arrays. - -KEGS divides the video screen up into 25 groups, corresponding to each -text line. Each of these groups consists of 16 sublines. 25*8 = 400 lines. -(video.c has already doubled the vertical resolution in all video modes). -KEGS can allow any group to be from any of the five screens it manages: -The two text/lores pages, the two hires pages, and the superhires screen. -For each group, KEGS keeps track of what part of it needs to be redrawn. -g_a2_screen_buffer_changed has a bit set for each group which has changed -since the last call to x_redraw_ximage(). The rightmost bit (bit 0) -corresponds to group 0. If g_a2_screen_buffer_changed == 0, no groups -need to be redrawn. x_redraw_ximage clears out g_a2_screen_buffer_changed -after drawing the screen. - -For each group, a2_line_left_edge[] and a2_line_right_edge give the pixel -offsets of what should be redrawn. a2_line_xim[] gives the ximage handle -of what needs to be redrawn. KEGS always redraws 8 verticals of a group. -g_full_refresh_needed also has one bit set in it for each group, which -indicates overriding the a2_line_*_edge functions and redraw from 0 to -640 pixels of each group that needs to be redrawn. x_redraw_ximage() -interprets this information now using a simple algorithm: Skip over -groups which have not changed (using g_a2_screen_buffer_changed). -Save the ximage of this group, the left pixel and the right pixel. -Continue with the next group if it has changed. Widen the pixel region -and keep sucking up new groups to the same ximage. At group 25, or -when the ximage changes, call x_refresh_lines to redraw this large -rectangle from this ximage. x_refresh_lines() knows the ximage -corresponding to the border for the last group has to be handled -specially since the border group is not 640*400 pixels like the others. - -Other porting info: -a2_key_to_xsym[][3] contains the mapping function from X keysyms to -a2 keycodes. The first element is the a2 keycode, the second element -is the unshifted X keysym, and the third element is the shifted keysym. -A port must make the conversion to a2 keycodes, and provide up and -down events. - diff --git a/.svn/pristine/23/2331e4c3633b6120617290cb55de307eede9bd39.svn-base b/.svn/pristine/23/2331e4c3633b6120617290cb55de307eede9bd39.svn-base deleted file mode 100644 index 82bac16..0000000 --- a/.svn/pristine/23/2331e4c3633b6120617290cb55de307eede9bd39.svn-base +++ /dev/null @@ -1,470 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifdef ASM - - .import get_mem_b0_16,code - .import get_mem_b0_8,code - - .export op_routs_start,data -op_routs_start .word 0 -#endif /* ASM */ - -#ifdef ASM -# define CMP_INDEX_REG_MEAT8(index_reg) \ - extru ret0,31,8,ret0 ! \ - ldi 0xff,scratch3 ! \ - subi 0x100,ret0,ret0 ! \ - add index_reg,ret0,ret0 ! \ - extru ret0,23,1,scratch1 ! \ - and ret0,scratch3,zero ! \ - extru ret0,24,1,neg ! \ - b dispatch ! \ - dep scratch1,31,1,psr - -# define CMP_INDEX_REG_MEAT16(index_reg) \ - extru ret0,31,16,ret0 ! \ - ldil l%0x10000,scratch2 ! \ - zdepi -1,31,16,scratch3 ! \ - sub scratch2,ret0,ret0 ! \ - add index_reg,ret0,ret0 ! \ - extru ret0,15,1,scratch1 ! \ - and ret0,scratch3,zero ! \ - extru ret0,16,1,neg ! \ - b dispatch ! \ - dep scratch1,31,1,psr - -# define CMP_INDEX_REG_LOAD(new_label, index_reg) \ - bb,>=,n psr,27,new_label ! \ - bl get_mem_long_8,link ! \ - nop ! \ - CMP_INDEX_REG_MEAT8(index_reg) ! \ - .label new_label ! \ - bl get_mem_long_16,link ! \ - nop ! \ - CMP_INDEX_REG_MEAT16(index_reg) -#endif - - -#ifdef ASM -#define GET_DLOC_X_IND_WR() \ - CYCLES_PLUS_1 ! \ - add xreg,direct,scratch2 ! \ - INC_KPC_2 ! \ - add scratch2,arg0,arg0 ! \ - bl get_mem_b0_direct_page_16,link ! \ - extru arg0,31,16,arg0 ! \ - copy ret0,arg0 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - dep dbank,15,8,arg0 -#else /* C */ -# define GET_DLOC_X_IND_WR() \ - CYCLES_PLUS_1; \ - INC_KPC_2; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - arg = arg + xreg + direct; \ - GET_MEMORY_DIRECT_PAGE16(arg & 0xffff, arg); \ - arg = (dbank << 16) + arg; -#endif - - -#ifdef ASM -# define GET_DLOC_X_IND_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_X_IND_WR() -#else /* C */ -# define GET_DLOC_X_IND_ADDR() \ - GET_1BYTE_ARG; \ - GET_DLOC_X_IND_WR() -#endif - -#ifdef ASM -# define GET_DISP8_S_WR() \ - CYCLES_PLUS_1 ! \ - add stack,arg0,arg0 ! \ - INC_KPC_2 ! \ - extru arg0,31,16,arg0 -#else /* C */ -#define GET_DISP8_S_WR() \ - CYCLES_PLUS_1; \ - arg = (arg + stack) & 0xffff; \ - INC_KPC_2; -#endif - - -#ifdef ASM -# define GET_DISP8_S_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DISP8_S_WR() -#else /* C */ -# define GET_DISP8_S_ADDR() \ - GET_1BYTE_ARG; \ - GET_DISP8_S_WR() -#endif - -#ifdef ASM -# define GET_DLOC_WR() \ - INC_KPC_2 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - add direct,arg0,arg0 ! \ - extru arg0,31,16,arg0 -#else /* C */ -# define GET_DLOC_WR() \ - arg = (arg + direct) & 0xffff; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - INC_KPC_2; -#endif - -#ifdef ASM -# define GET_DLOC_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_WR() -#else /* C */ -# define GET_DLOC_ADDR() \ - GET_1BYTE_ARG; \ - GET_DLOC_WR() -#endif - -#ifdef ASM -# define GET_DLOC_L_IND_WR() \ - INC_KPC_2 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - add direct,arg0,arg0 ! \ - bl get_mem_b0_24,link ! \ - extru arg0,31,16,arg0 ! \ - copy ret0,arg0 -#else /* C */ -# define GET_DLOC_L_IND_WR() \ - arg = (arg + direct) & 0xffff; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - INC_KPC_2; \ - GET_MEMORY24(arg, arg, 1); -#endif - - -#ifdef ASM -# define GET_DLOC_L_IND_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_L_IND_WR() -#else /* C */ -# define GET_DLOC_L_IND_ADDR() \ - GET_1BYTE_ARG; \ - GET_DLOC_L_IND_WR() -#endif - -#ifdef ASM -# define GET_DLOC_IND_Y_ADDR_FOR_WR() \ - ldb 1(scratch1),arg0 ! \ - CYCLES_PLUS_1 ! \ - GET_DLOC_IND_Y_WR_SPECIAL() -#else /* C */ -# define GET_DLOC_IND_Y_ADDR_FOR_WR() \ - GET_1BYTE_ARG; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - GET_MEMORY_DIRECT_PAGE16((direct + arg) & 0xffff, tmp1); \ - tmp1 += (dbank << 16); \ - arg = tmp1 + yreg; \ - CYCLES_PLUS_1; \ - INC_KPC_2; -#endif - - -#ifdef ASM -# define GET_DLOC_IND_WR() \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - INC_KPC_2 ! \ - add direct,arg0,arg0 ! \ - bl get_mem_b0_direct_page_16,link ! \ - extru arg0,31,16,arg0 ! \ - copy ret0,arg0 ! \ - dep dbank,15,16,arg0 -#else /* C */ -# define GET_DLOC_IND_WR() \ - INC_KPC_2; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - GET_MEMORY_DIRECT_PAGE16((direct + arg) & 0xffff, arg); \ - arg = (dbank << 16) + arg; -#endif - - -#ifdef ASM -# define GET_DLOC_IND_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_IND_WR() -#else -# define GET_DLOC_IND_ADDR() \ - GET_1BYTE_ARG; \ - GET_DLOC_IND_WR(); -#endif - -#ifdef ASM -#define GET_DLOC_INDEX_WR(index_reg) \ - GET_DLOC_INDEX_WR_A(index_reg) ! GET_DLOC_INDEX_WR_B(index_reg) - -#define GET_DLOC_INDEX_WR_A(index_reg) \ - CYCLES_PLUS_1 ! \ - add index_reg,direct,scratch2 ! \ - extru direct,23,8,scratch1 ! \ - INC_KPC_2 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - bb,>= psr,23,.+16 ! \ -/* 4*/ add scratch2,arg0,arg0 ! \ -/* 8*/ extru,<> direct,31,8,0 ! \ -/*12*/ dep scratch1,23,8,arg0 - -/* GET_DLOC_INDeX_WR_B must be exactly one instruction! */ -#define GET_DLOC_INDEX_WR_B(index_reg) \ -/*16*/ extru arg0,31,16,arg0 - -#define GET_DLOC_Y_WR() \ - GET_DLOC_INDEX_WR(yreg) - -#define GET_DLOC_X_WR() \ - GET_DLOC_INDEX_WR(xreg) - -#define GET_DLOC_Y_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_Y_WR() - -# define GET_DLOC_X_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_X_WR() - -#else -# define GET_DLOC_INDEX_WR(index_reg) \ - CYCLES_PLUS_1; \ - arg = (arg & 0xff) + index_reg; \ - INC_KPC_2; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - if((psr & 0x100) && ((direct & 0xff) == 0)) { \ - arg = (arg & 0xff); \ - } \ - arg = (arg + direct) & 0xffff; - -# define GET_DLOC_X_WR() \ - GET_DLOC_INDEX_WR(xreg) -# define GET_DLOC_Y_WR() \ - GET_DLOC_INDEX_WR(yreg) - -# define GET_DLOC_X_ADDR() \ - GET_1BYTE_ARG; \ - GET_DLOC_INDEX_WR(xreg) - -# define GET_DLOC_Y_ADDR() \ - GET_1BYTE_ARG; \ - GET_DLOC_INDEX_WR(yreg) -#endif - - -#ifdef ASM -# define GET_DISP8_S_IND_Y_WR() \ - add stack,arg0,arg0 ! \ - bl get_mem_b0_16,link ! \ - extru arg0,31,16,arg0 ! \ - dep dbank,15,16,ret0 ! \ - CYCLES_PLUS_2 ! \ - add ret0,yreg,arg0 ! \ - INC_KPC_2 ! \ - extru arg0,31,24,arg0 - -# define GET_DISP8_S_IND_Y_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DISP8_S_IND_Y_WR() -#else /* C */ - -# define GET_DISP8_S_IND_Y_WR() \ - arg = (stack + arg) & 0xffff; \ - GET_MEMORY16(arg,arg,1); \ - CYCLES_PLUS_2; \ - arg += (dbank << 16); \ - INC_KPC_2; \ - arg = (arg + yreg) & 0xffffff; - -# define GET_DISP8_S_IND_Y_ADDR() \ - GET_1BYTE_ARG; \ - GET_DISP8_S_IND_Y_WR() -#endif - - -#ifdef ASM -# define GET_DLOC_L_IND_Y_WR() \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - INC_KPC_2 ! \ - add direct,arg0,arg0 ! \ - bl get_mem_b0_24,link ! \ - extru arg0,31,16,arg0 ! \ - add ret0,yreg,arg0 ! \ - extru arg0,31,24,arg0 - -# define GET_DLOC_L_IND_Y_ADDR() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_L_IND_Y_WR() -#else /* C */ - -# define GET_DLOC_L_IND_Y_WR() \ - arg = (direct + arg) & 0xffff; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - GET_MEMORY24(arg,arg,1); \ - INC_KPC_2; \ - arg = (arg + yreg) & 0xffffff; - -# define GET_DLOC_L_IND_Y_ADDR() \ - GET_1BYTE_ARG; \ - GET_DLOC_L_IND_Y_WR() -#endif - - -#ifdef ASM -# define GET_ABS_ADDR() \ - ldb 1(scratch1),arg0 ! \ - ldb 2(scratch1),scratch1 ! \ - CYCLES_PLUS_1 ! \ - dep dbank,15,8,arg0 ! \ - INC_KPC_3 ! \ - dep scratch1,23,8,arg0 - -# define GET_LONG_ADDR() \ - ldb 1(scratch1),arg0 ! \ - ldb 2(scratch1),scratch2 ! \ - CYCLES_PLUS_2 ! \ - ldb 3(scratch1),scratch1 ! \ - INC_KPC_4 ! \ - dep scratch2,23,8,arg0 ! \ - dep scratch1,15,8,arg0 -#else /* C */ - -# define GET_ABS_ADDR() \ - GET_2BYTE_ARG; \ - CYCLES_PLUS_1; \ - arg = arg + (dbank << 16); \ - INC_KPC_3; - -# define GET_LONG_ADDR() \ - GET_3BYTE_ARG; \ - CYCLES_PLUS_2; \ - INC_KPC_4; -#endif - -#ifdef ASM -#define GET_ABS_INDEX_ADDR_FOR_WR(index_reg) \ - ldb 1(scratch1),arg0 ! \ - copy index_reg,scratch3 ! \ - ldb 2(scratch1),scratch2 ! \ - dep dbank,15,8,scratch3 ! \ - INC_KPC_3 ! \ - dep scratch2,23,8,arg0 ! \ - CYCLES_PLUS_2 ! \ - add arg0,scratch3,arg0 ! \ - extru arg0,31,24,arg0 - -#define GET_LONG_X_ADDR_FOR_WR() \ - ldb 3(scratch1),scratch2 ! \ - copy xreg,scratch3 ! \ - ldb 1(scratch1),arg0 ! \ - ldb 2(scratch1),scratch1 ! \ - CYCLES_PLUS_2 ! \ - dep scratch2,15,8,scratch3 ! \ - INC_KPC_4 ! \ - dep scratch1,23,8,arg0 ! \ - add arg0,scratch3,arg0 ! \ - extru arg0,31,24,arg0 -#else /* C */ - -#define GET_ABS_INDEX_ADDR_FOR_WR(index_reg) \ - GET_2BYTE_ARG; \ - arg = arg + (dbank << 16); \ - INC_KPC_3; \ - CYCLES_PLUS_2; \ - arg = (arg + index_reg) & 0xffffff; - -#define GET_LONG_X_ADDR_FOR_WR() \ - GET_3BYTE_ARG; \ - INC_KPC_4; \ - arg = (arg + xreg) & 0xffffff; \ - CYCLES_PLUS_2; - -#endif /* ASM */ - - -#ifdef ASM - .export op_routs_end,data -op_routs_end .word 0 - - -#define GET_DLOC_IND_Y_WR_SPECIAL() \ - add direct,arg0,arg0 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - bl get_mem_b0_direct_page_16,link ! \ - extru arg0,31,16,arg0 ! \ - dep dbank,15,8,ret0 ! \ - INC_KPC_2 ! \ - add yreg,ret0,arg0 /* don't change this instr */ - /* or add any after */ - /* to preserve ret0 & arg0 */ - - -/* cycle calc: if yreg is 16bit or carry into 2nd byte, inc cycle */ -/* So, if y==16bit, add 1. If x==8bit, add 1 if carry */ -get_dloc_ind_y_rd_8 - stw link,STACK_SAVE_OP_LINK(sp) - GET_DLOC_IND_Y_WR_SPECIAL() - xor arg0,ret0,scratch1 - extru,= psr,27,1,0 - extru,= scratch1,23,8,0 - CYCLES_PLUS_1 - b get_mem_long_8 - ldw STACK_SAVE_OP_LINK(sp),link - -get_dloc_ind_y_rd_16 - stw link,STACK_SAVE_OP_LINK(sp) - GET_DLOC_IND_Y_WR_SPECIAL() - xor arg0,ret0,scratch1 - extru,= psr,27,1,0 - extru,= scratch1,23,8,0 - CYCLES_PLUS_1 - b get_mem_long_16 - ldw STACK_SAVE_OP_LINK(sp),link - - - -#endif /* ASM */ - diff --git a/.svn/pristine/23/2361841b301a533b3e708d14f4fc64e7ee9f375d.svn-base b/.svn/pristine/23/2361841b301a533b3e708d14f4fc64e7ee9f375d.svn-base deleted file mode 100644 index 617a41a..0000000 --- a/.svn/pristine/23/2361841b301a533b3e708d14f4fc64e7ee9f375d.svn-base +++ /dev/null @@ -1,85 +0,0 @@ -/* - * This file is part of VICE, the Versatile Commodore Emulator. - * See README for copyright notice. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307 USA. - * - */ - -#ifndef VICE_DIRPORT_H -#define VICE_DIRPORT_H - -#define INCL_DOS -#include -#include -#include - -#ifndef _A_VOLID -#define _A_VOLID 0 -#endif - -#ifndef _A_NORMAL -#define _A_NORMAL FILE_NORMAL -#endif - -#ifndef _A_RDONLY -#define _A_RDONLY FILE_READONLY -#endif - -#ifndef _A_HIDDEN -#define _A_HIDDEN FILE_HIDDEN -#endif - -#ifndef _A_SYSTEM -#define _A_SYSTEM FILE_SYSTEM -#endif - -#ifndef _A_SUBDIR -#define _A_SUBDIR FILE_DIRECTORY -#endif - -#ifndef _A_ARCH -#define _A_ARCH FILE_ARCHIVED -#endif - -#define _A_ANY FILE_NORMAL | FILE_READONLY | FILE_HIDDEN | FILE_SYSTEM | FILE_DIRECTORY | FILE_ARCHIVED - -#ifndef EPERM -#define EPERM EDOM // Operation not permitted = Domain Error -#endif - -#define dirent _FILEFINDBUF3 -#define d_name achName /* For struct dirent portability */ -#define d_size cbFile - -#define mkdir(name, mode) mkdir(name) - -#ifndef WATCOM_COMPILE -#define S_ISDIR(mode) ((mode) & S_IFDIR) - -typedef struct _DIR { - struct dirent buffer; - HDIR handle; - APIRET ulrc; -} DIR; - -extern DIR *opendir(char *path); -extern struct dirent *readdir(DIR *dirp); -extern int closedir(DIR *dirp); -#endif - -#endif /* DIRPORT__H */ - \ No newline at end of file diff --git a/.svn/pristine/24/244d7210244481a920e2f016f1de00dd5e916304.svn-base b/.svn/pristine/24/244d7210244481a920e2f016f1de00dd5e916304.svn-base deleted file mode 100644 index bb7931f..0000000 --- a/.svn/pristine/24/244d7210244481a920e2f016f1de00dd5e916304.svn-base +++ /dev/null @@ -1,27 +0,0 @@ - - - - GSport: an Apple IIgs Emulator - - - - - - - - - - -

- - - - - - - - - - - - diff --git a/.svn/pristine/26/26b482b670c4a13a5ea7ecd57a80775c9f91ad83.svn-base b/.svn/pristine/26/26b482b670c4a13a5ea7ecd57a80775c9f91ad83.svn-base deleted file mode 100644 index 1157911..0000000 --- a/.svn/pristine/26/26b482b670c4a13a5ea7ecd57a80775c9f91ad83.svn-base +++ /dev/null @@ -1,54 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/.svn/pristine/27/2729ed10a0f92c0a510491a87ae378f319298cb7.svn-base b/.svn/pristine/27/2729ed10a0f92c0a510491a87ae378f319298cb7.svn-base deleted file mode 100644 index 77025ab..0000000 --- a/.svn/pristine/27/2729ed10a0f92c0a510491a87ae378f319298cb7.svn-base +++ /dev/null @@ -1,542 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "../../defc.h" -#include "../../protos.h" - -#define INCL_WIN -#define INCL_GPI - -#include /* PM header file */ -#include -#include "gsportos2.h" /* Resource symbolic identifiers*/ - -HAB g_hab; /* PM anchor block handle */ -PSZ pszErrMsg; -QMSG qmsg; /* Message from message queue */ -HWND g_hwnd_frame = NULLHANDLE; /* Frame window handle */ -HWND g_hwnd_client = NULLHANDLE; /* Client area window handle */ - -HMQ g_hmq; /* Message queue handle */ - -extern int Verbose; - -extern int g_warp_pointer; -extern int g_screen_depth; -extern int g_force_depth; -int g_screen_mdepth = 0; - -extern int g_quit_sim_now; - -int g_use_shmem = 1; -int g_has_focus = 0; -int g_auto_repeat_on = -1; - -extern Kimage g_mainwin_kimage; - -int g_main_height = 0; - -int g_win_capslock_down = 0; - -extern int g_border_sides_refresh_needed; -extern int g_border_special_refresh_needed; -extern int g_status_refresh_needed; -extern int g_needfullrefreshfornextframe; -extern int g_lores_colors[]; -extern int g_cur_a2_stat; - -extern int g_a2vid_palette; - -extern int g_installed_full_superhires_colormap; - -extern int g_screen_redraw_skip_amt; - -extern word32 g_a2_screen_buffer_changed; - -BITMAPINFO2 *g_bmapinfo_ptr = 0; -volatile BITMAPINFOHEADER2 *g_bmaphdr_ptr = 0; -HDC g_hdc_screen, g_hdc_memory; -HPS g_hps_screen, g_hps_memory; - -extern word32 g_palette_8to1624[256]; -extern word32 g_a2palette_8to1624[256]; -extern char *g_status_ptrs[MAX_STATUS_LINES]; - -VOID DispErrorMessage(); - -int -win_nonblock_read_stdin(int fd, char *bufptr, int len) -{ - return 0; -} - -void -x_dialog_create_gsport_conf(const char *str) -{ -} - -int -x_show_alert(int is_fatal, const char *str) -{ - return 0; -} - - - -int -main(int argc, char **argv) -{ -DEVOPENSTRUC pszData; -ULONG flCreate; /* Window creation control flags*/ -int height; -SIZEL sizel; - - if ((g_hab = WinInitialize(0)) == 0L) /* Initialize PM */ - os2_abort(g_hwnd_frame, g_hwnd_client); /* Terminate the application */ - - if ((g_hmq = WinCreateMsgQueue( g_hab, 0 )) == 0L)/* Create a msg queue */ - os2_abort(g_hwnd_frame, g_hwnd_client); /* Terminate the application */ - - if (!WinRegisterClass( /* Register window class */ - g_hab, /* Anchor block handle */ - (PSZ)"MyWindow", /* Window class name */ - (PFNWP)MyWindowProc, /* Address of window procedure */ - CS_SIZEREDRAW, /* Class style */ - 0 /* No extra window words */ - )) - os2_abort(g_hwnd_frame, g_hwnd_client); /* Terminate the application */ - - height = X_A2_WINDOW_HEIGHT + (MAX_STATUS_LINES*16); - g_main_height = height; - - flCreate = FCF_STANDARD & /* Set frame control flags to */ - ~FCF_SHELLPOSITION; /* standard except for shell */ - /* positioning. */ - - if ((g_hwnd_frame = WinCreateStdWindow( - HWND_DESKTOP, /* Desktop window is parent */ - 0, /* STD. window styles */ - &flCreate, /* Frame control flag */ - "MyWindow", /* Client window class name */ - "", /* No window text */ - 0, /* No special class style */ - (HMODULE)0L, /* Resource is in .EXE file */ - ID_WINDOW, /* Frame window identifier */ - &g_hwnd_client /* Client window handle */ - )) == 0L) - os2_abort(HWND_DESKTOP, HWND_DESKTOP); /* Terminate the application */ - - WinSetWindowText(g_hwnd_frame, "GSport"); - - if (!WinSetWindowPos( g_hwnd_frame, /* Shows and activates frame */ - HWND_TOP, /* window at position 100, 100, */ - 100, 100, X_A2_WINDOW_WIDTH, height, /* and size 200, 200. */ - SWP_SIZE | SWP_MOVE | SWP_ACTIVATE | SWP_SHOW - )) - os2_abort(g_hwnd_frame, g_hwnd_client); /* Terminate the application */ - - g_hdc_screen = WinOpenWindowDC(g_hwnd_client); - sizel.cx = X_A2_WINDOW_WIDTH; - sizel.cy = height; - g_hps_screen = GpiCreatePS(g_hab,g_hdc_screen, &sizel, PU_PELS | GPIF_LONG | GPIA_ASSOC); - - g_hdc_memory = DevOpenDC(g_hab, OD_MEMORY, "*", 4, (PDEVOPENDATA)&pszData, NULL); - g_hps_memory = GpiCreatePS(g_hab,g_hdc_memory, &sizel, PU_ARBITRARY | GPIT_MICRO | GPIA_ASSOC); - - // Call gsportmain - return gsportmain(argc, argv); - -} - - -/************************************************************************** - * - * Name : MyWindowProc - * - * Description: The window procedure associated with the client area in - * the standard frame window. It processes all messages - * either sent or posted to the client area, depending on - * the message command and parameters. - * - *************************************************************************/ -MRESULT EXPENTRY MyWindowProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ) -{ -HPS hps; -RECTL rcl; - - switch( msg ) - { - case WM_CREATE: - /* - * Window initialization is performed here in WM_CREATE processing - * WinLoadString loads strings from the resource file. - */ - break; - - case WM_COMMAND: - /* - * When the user chooses option 1, 2, or 3 from the Options pull- - * down, the text string is set to 1, 2, or 3, and - * WinInvalidateRegion sends a WM_PAINT message. - * When Exit is chosen, the application posts itself a WM_CLOSE - * message. - */ - { - USHORT command; /* WM_COMMAND command value */ - command = SHORT1FROMMP(mp1); /* Extract the command value */ - switch (command) - { - case ID_EXITPROG: - WinPostMsg( hwnd, WM_CLOSE, (MPARAM)0, (MPARAM)0 ); - break; - default: - return WinDefWindowProc( hwnd, msg, mp1, mp2 ); - } - - break; - } - case WM_ERASEBACKGROUND: - /* - * Return TRUE to request PM to paint the window background - * in SYSCLR_WINDOW. - */ - return (MRESULT)( TRUE ); - case WM_PAINT: - /* - * Window contents are drawn here in WM_PAINT processing. - */ - hps = WinBeginPaint(hwnd, NULLHANDLE, &rcl); - WinEndPaint(hps); - g_needfullrefreshfornextframe = 1; - break; - case WM_CLOSE: - /* - * This is the place to put your termination routines - */ - WinPostMsg( hwnd, WM_QUIT, (MPARAM)0,(MPARAM)0 ); /* Cause termination*/ - exit(0); - break; - default: - /* - * Everything else comes here. This call MUST exist - * in your window procedure. - */ - - return WinDefWindowProc( hwnd, msg, mp1, mp2 ); - } - - return (MRESULT)FALSE; -} /* End of MyWindowProc */ - -void -check_input_events() -{ - -/* - * Get and dispatch messages from the application message queue - * until WinGetMsg returns FALSE, indicating a WM_QUIT message. - */ - - while(WinPeekMsg(g_hab, &qmsg, g_hwnd_frame, 0, 0, PM_NOREMOVE)) { - if(WinGetMsg(g_hab, &qmsg, 0L, 0, 0) > 0) { - //TranslateMessage(&qmsg); - WinDispatchMsg(g_hab, &qmsg); - } else { - printf("GetMessage returned <= 0\n"); - my_exit(2); - } - } -} - - -void -x_update_color(int col_num, int red, int green, int blue, word32 rgb) -{ -} - -void -x_update_physical_colormap() -{ -} - -void -show_xcolor_array() -{ -} - - -void -xdriver_end() -{ - printf("OS/2 driver_end\n"); -} - - -void -x_get_kimage(Kimage *kimage_ptr) -{ - byte *ptr; - int width; - int height; - int depth, mdepth; - int size; - - width = kimage_ptr->width_req; - height = kimage_ptr->height; - depth = kimage_ptr->depth; - mdepth = kimage_ptr->mdepth; - - size = 0; - - if(depth == g_screen_depth) { - /* Use g_bmapinfo_ptr, adjusting width, height */ - g_bmaphdr_ptr->cx = width; - g_bmaphdr_ptr->cy = height; - - kimage_ptr->dev_handle = GpiCreateBitmap( - - (HPS)g_hps_memory, (PBITMAPINFOHEADER2)g_bmaphdr_ptr, - 0L, (PBYTE)kimage_ptr->data_ptr, - (PBITMAPINFO2)g_bmapinfo_ptr); - - size = (width*height*mdepth) >> 3; - ptr = (byte *)malloc(size); - - if(ptr == 0) { - printf("malloc for data failed, mdepth: %d\n", mdepth); - exit(2); - } - - kimage_ptr->data_ptr = ptr; - - } else { - /* allocate buffers for video.c to draw into */ - - size = (width*height*mdepth) >> 3; - ptr = (byte *)malloc(size); - - if(ptr == 0) { - printf("malloc for data failed, mdepth: %d\n", mdepth); - exit(2); - } - - kimage_ptr->data_ptr = ptr; - - kimage_ptr->dev_handle = (void *)-1; - - } - - return; -} - - -void -dev_video_init() -{ - int lores_col; - int i; - - printf("Preparing graphics system\n"); - - g_screen_depth = 24; - g_screen_mdepth = 32; - - g_bmapinfo_ptr = (BITMAPINFO2 *)malloc(sizeof(BITMAPINFOHEADER2)); - g_bmaphdr_ptr = (BITMAPINFOHEADER2 *)g_bmapinfo_ptr; - g_bmaphdr_ptr->cbFix = sizeof(BITMAPINFOHEADER2); - g_bmaphdr_ptr->cx = A2_WINDOW_WIDTH; - g_bmaphdr_ptr->cy = A2_WINDOW_HEIGHT; - g_bmaphdr_ptr->cPlanes = 1; - g_bmaphdr_ptr->cBitCount = g_screen_mdepth; - g_bmaphdr_ptr->ulCompression = BCA_UNCOMP; - g_bmaphdr_ptr->cclrUsed = 0; - - video_get_kimages(); - - if(g_screen_depth != 8) { - // Allocate g_mainwin_kimage - video_get_kimage(&g_mainwin_kimage, 0, g_screen_depth, - g_screen_mdepth); - } - - for(i = 0; i < 256; i++) { - lores_col = g_lores_colors[i & 0xf]; - video_update_color_raw(i, lores_col); - g_a2palette_8to1624[i] = g_palette_8to1624[i]; - } - - g_installed_full_superhires_colormap = 1; - - printf("Done with dev_video_init\n"); - fflush(stdout); -} - -void -x_redraw_status_lines() -{ - - int line,len,height; - POINTL pt; - char *buf; - - printf("x_redraw_status_lines() called\n"); -/* - if (g_status_ptrs[0] != NULL) - { - height = 16; - pt.x = 5; pt.y = 0; - GpiSetColor( g_hps_screen, CLR_NEUTRAL ); - GpiSetBackColor( g_hps_screen, CLR_BACKGROUND ); - GpiSetBackMix( g_hps_screen, BM_OVERPAINT ); - - for (line = 0; line < MAX_STATUS_LINES; line++) - { - buf = g_status_ptrs[line]; - if (buf != 0) - { - pt.y = height * (line+1); - len = strlen(buf); - GpiCharStringAt( g_hps_screen, &pt, (LONG)strlen( buf ), buf ); - } - } - } -*/ -} - - -void -x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy, - int width, int height) -{ - RECTL rc; - POINTL pt[4]; - HBITMAP hbmOld, hbmNew; - - char *szString = "Hello, world!\0"; - - printf("x_push_kimage() called: Src: (%d,%d) Dest: (%d,%d) Width: %d Height: %d\n",srcx,srcy,destx,desty,width,height); - pt[0].x = destx; /* Target X1 */ - pt[0].y = desty+(MAX_STATUS_LINES*16); /* Target Y1 */ - pt[1].x = destx+width; /* Target X2 */ - pt[1].y = desty+height+(MAX_STATUS_LINES*16); /* Target Y2: Translate up, make room for status border */ - pt[2].x = srcx; /* Source X */ - pt[2].y = srcy; /* Source Y */ - pt[3].x = srcx+width; - pt[3].y = srcy+height; - -if (width == 560) -{ - /* Paint a known-good bitmap until we can figure out why images aren't showing up */ - hbmNew = GpiLoadBitmap(g_hps_memory,NULLHANDLE,ID_BITMAP,560,400); - hbmOld = GpiSetBitmap(g_hps_memory, hbmNew); - GpiBitBlt(g_hps_screen,g_hps_memory,4L,pt,ROP_SRCCOPY, BBO_IGNORE); - GpiSetBitmap(g_hps_memory, hbmOld); - GpiDeleteBitmap(hbmNew); -} -else -{ - hbmOld = GpiSetBitmap(g_hps_memory, (HBITMAP)kimage_ptr->dev_handle); - GpiBitBlt(g_hps_screen,g_hps_memory,4L,pt,ROP_SRCCOPY, BBO_IGNORE); - GpiSetBitmap(g_hps_memory, hbmOld); -} - -} - -// OG Adding release -void x_release_kimage(Kimage* kimage_ptr) -{ - if (kimage_ptr->dev_handle == (void*)-1) - { - free(kimage_ptr->data_ptr); - kimage_ptr->data_ptr = NULL; - } - else - { - } -} - -void -x_push_done() -{ -} - -void -x_auto_repeat_on(int must) -{ -} - -void -x_auto_repeat_off(int must) -{ -} - -void -x_hide_pointer(int do_hide) -{ -} - -void -x_full_screen(int do_full) -{ - return; -} - -int x_calc_ratio(float ratiox,float ratioy) -{ - return 0; // not stretched -} - -/**************************************************************************/ -/* DispErrorMsg -- report an error returned from an API service. */ -/* */ -/* The error message is displayed using a message box */ -/* */ -/**************************************************************************/ -VOID DispErrorMessage() -{ - PERRINFO pErrInfoBlk; - PSZ pszOffSet, pszErrMsg; - ERRORID ErrorId; - PCH ErrorStr; - - ErrorId = WinGetLastError(g_hab); - - if ((pErrInfoBlk = WinGetErrorInfo(g_hab)) != (PERRINFO)NULL) - { - pszOffSet = ((PSZ)pErrInfoBlk) + pErrInfoBlk->offaoffszMsg; - pszErrMsg = ((PSZ)pErrInfoBlk) + *((PULONG)pszOffSet); - - WinMessageBox(HWND_DESKTOP, /* Parent window is desk top */ - g_hwnd_frame, /* Owner window is our frame */ - pszErrMsg, /* PMWIN Error message */ - "Error", /* Title bar message */ - 0, /* Message identifier */ - MB_MOVEABLE | MB_CANCEL ); /* Flags */ - - WinFreeErrorInfo(pErrInfoBlk); - } -} - -void -os2_abort(HWND g_hwnd_frame, HWND g_hwnd_client) -{ - exit(-1); -} diff --git a/.svn/pristine/28/28069ec01a26e7be2d51460cb66f1d88f92f9031.svn-base b/.svn/pristine/28/28069ec01a26e7be2d51460cb66f1d88f92f9031.svn-base deleted file mode 100644 index 12f4066..0000000 --- a/.svn/pristine/28/28069ec01a26e7be2d51460cb66f1d88f92f9031.svn-base +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/local/bin/perl -w -# $KmKId: make_size,v 1.3 2002-11-07 08:18:16-08 kadickey Exp $ - -$repl = shift; - -while(<>) { - $line = $_; - if(/\.word inst(..)_SYM\+(.)(.*)$/) { - if($repl eq "c") { - print "\t0x$2, /* $1 */ $3\n"; - } elsif($repl eq "s") { - print "\t.byte 0x$2, /* $1 */ $3\n"; - } else { - print "\t.word\tinst$1" . "_$repl" . "\t/*$2*/ $3\n"; - } - } elsif (/\.block.*$/) { - if($repl eq "c") { - print "\n"; - } elsif($repl eq "s") { - print "\n"; - } else { - print $line; - } - } else { - print $line; - } -} -# if(/^inst(..)_SYM (.*)$/) { -# print "OPCODE($1) /* $2 */\n"; -# } else if(/^( diff --git a/.svn/pristine/29/29bd21d26519f515393148edcffec4f8f0a05384.svn-base b/.svn/pristine/29/29bd21d26519f515393148edcffec4f8f0a05384.svn-base deleted file mode 100644 index e675487..0000000 --- a/.svn/pristine/29/29bd21d26519f515393148edcffec4f8f0a05384.svn-base +++ /dev/null @@ -1,246 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" -#include "sound.h" - -# include -# include - -extern int Verbose; - -extern int g_audio_rate; - -unsigned int __stdcall child_sound_loop_win32(void *param); -void check_wave_error(int res, char *str); - -#define NUM_WAVE_HEADERS 8 - -HWAVEOUT g_wave_handle = NULL; // OG Default value must be set -WAVEHDR g_wavehdr[NUM_WAVE_HEADERS]; - -extern int g_audio_enable; -extern word32 *g_sound_shm_addr; -extern int g_preferred_rate; - -int g_win32snd_buflen = 0x1000; - -void -win32snd_init(word32 *shmaddr) -{ - printf("win32snd_init\n"); - child_sound_loop(-1, -1, shmaddr); - - return; -} - - -// OG Added global to free the dedicated win32 sound memory -byte *bptr = NULL; - -// OG shut win32 sound resources -void -win32snd_shutdown() -{ - - if (g_wave_handle) - { - MMRESULT res = waveOutReset(g_wave_handle); - if (res!=MMSYSERR_NOERROR ) - printf("waveOutReset Failed"); - - res = waveOutClose(g_wave_handle); - if (res!=MMSYSERR_NOERROR ) - printf("waveOutClose Failed"); - g_wave_handle=NULL; -} - // OG Free dedicated sound memory - if (bptr) - { - free(bptr); - bptr = NULL; - } - -} - - -void CALLBACK -handle_wav_snd(HWAVEOUT hwo, UINT uMsg, DWORD dwInstance, DWORD dwParam1, - DWORD dwParam2) -{ - LPWAVEHDR lpwavehdr; - - /* Only service "buffer done playing messages */ - if(uMsg == WOM_DONE) { - lpwavehdr = (LPWAVEHDR)dwParam1; - if(lpwavehdr->dwFlags == (WHDR_DONE | WHDR_PREPARED)) { - lpwavehdr->dwUser = FALSE; - } - } - - return; -} -void -check_wave_error(int res, char *str) -{ - TCHAR buf[256]; - - if(res == MMSYSERR_NOERROR) { - return; - } - - waveOutGetErrorText(res, &buf[0], sizeof(buf)); - printf("%s: %s\n", str, buf); - exit(1); -} - -void -child_sound_init_win32() -{ - WAVEFORMATEX wavefmt; - WAVEOUTCAPS caps; - -// OG Moved as global variable (to rename) -// byte *bptr; - int bits_per_sample, channels, block_align; - int blen; - int res; - int i; - - memset(&wavefmt, 0, sizeof(WAVEFORMATEX)); - - wavefmt.wFormatTag = WAVE_FORMAT_PCM; -#ifndef UNDER_CE - bits_per_sample = 16; - wavefmt.nSamplesPerSec = g_audio_rate; -#else - bits_per_sample = 16; - wavefmt.nSamplesPerSec = 12000; -#endif - - channels = 2; - wavefmt.wBitsPerSample = bits_per_sample; - wavefmt.nChannels = channels; - block_align = channels * (bits_per_sample / 8); - wavefmt.nBlockAlign = block_align; - wavefmt.nAvgBytesPerSec = block_align * g_audio_rate; - - res = waveOutOpen(&g_wave_handle, WAVE_MAPPER, &wavefmt, 0, 0, - WAVE_FORMAT_QUERY); - - if(res != MMSYSERR_NOERROR) { - printf("Cannot open audio device\n"); - g_audio_enable = 0; - return; - } - - res = waveOutOpen(&g_wave_handle, WAVE_MAPPER, &wavefmt, - (DWORD)handle_wav_snd, 0, CALLBACK_FUNCTION | WAVE_ALLOWSYNC); - - if(res != MMSYSERR_NOERROR) { - printf("Cannot register audio\n"); - g_audio_enable = 0; - return; - } - - g_audio_rate = wavefmt.nSamplesPerSec; - - blen = (SOUND_SHM_SAMP_SIZE * 4 * 2) / NUM_WAVE_HEADERS; - g_win32snd_buflen = blen; - bptr = (byte*)malloc(blen * NUM_WAVE_HEADERS); // OG Added cast - if(bptr == NULL) { - printf("Unabled to allocate sound buffer\n"); - exit(1); - } - - for(i = 0; i < NUM_WAVE_HEADERS; i++) { - memset(&g_wavehdr[i], 0, sizeof(WAVEHDR)); - g_wavehdr[i].dwUser = FALSE; - g_wavehdr[i].lpData = (LPSTR)&(bptr[i*blen]); // OG Added cast - g_wavehdr[i].dwBufferLength = blen; - g_wavehdr[i].dwFlags = 0; - g_wavehdr[i].dwLoops = 0; - res = waveOutPrepareHeader(g_wave_handle, &g_wavehdr[i], - sizeof(WAVEHDR)); - check_wave_error(res, "waveOutPrepareHeader"); - } - - res = waveOutGetDevCaps((UINT)g_wave_handle, &caps, sizeof(caps)); - check_wave_error(res, "waveOutGetDevCaps"); - printf("Using %s\n", caps.szPname); - printf(" Bits per Sample = %d. Channels = %d\n", - wavefmt.wBitsPerSample, wavefmt.nChannels); - printf(" Sampling rate = %d, avg_bytes_per_sec = %d\n", - (int)wavefmt.nSamplesPerSec, (int)wavefmt.nAvgBytesPerSec); - - set_audio_rate(g_audio_rate); - -} - -void -win32_send_audio2(byte *ptr, int size) -{ - int found; - int res; - int i; - - found = 0; - for(i = 0; i < NUM_WAVE_HEADERS; i++) { - if(g_wavehdr[i].dwUser == FALSE) { - found = 1; - break; - } - } - - if(!found) { - /* all audio buffers busy, just get out */ - return; - } - - memcpy(g_wavehdr[i].lpData, ptr, size); - g_wavehdr[i].dwBufferLength = size; - g_wavehdr[i].dwUser = TRUE; - - res = waveOutWrite(g_wave_handle, &g_wavehdr[i], sizeof(g_wavehdr)); - check_wave_error(res, "waveOutWrite"); - - return; -} - -int -win32_send_audio(byte *ptr, int in_size) -{ - int size; - int tmpsize; - - size = in_size; - while(size > 0) { - tmpsize = size; - if(size > g_win32snd_buflen) { - tmpsize = g_win32snd_buflen; - } - win32_send_audio2(ptr, tmpsize); - ptr += tmpsize; - size = size - tmpsize; - } - - return in_size; -} diff --git a/.svn/pristine/2a/2a5afa4ddacd817baceaaf4e010e8b720a82101c.svn-base b/.svn/pristine/2a/2a5afa4ddacd817baceaaf4e010e8b720a82101c.svn-base deleted file mode 100644 index b4e137c..0000000 --- a/.svn/pristine/2a/2a5afa4ddacd817baceaaf4e010e8b720a82101c.svn-base +++ /dev/null @@ -1,169 +0,0 @@ - - - IBCarbonFramework - - NSApplication - - - - main - - - GSport - - GSport - - - About GSport - 0 - abou - - - TRUE - - - Quit - 0 - quit - - - _NSAppleMenu - - - - File - - File - - - Configuration F4 - 0 - KCFG - Enter GSport Configuration Panel - - - - - - Window - - Window - - - Zoom Window - zoom - - - TRUE - Minimize Window - 0 - mini - - - TRUE - Minimize All Windows - 0 - mina - - - TRUE - - - TRUE - Bring All to Front - bfrt - - - TRUE - Arrange in Front - 1572864 - frnt - - - _NSWindowsMenu - - - - _NSMainMenu - - - - - Window - - Window - - - TRUE - Minimize Window - m - mini - - - TRUE - Minimize All Windows - m - 1572864 - mini - - - TRUE - - - TRUE - Bring All to Front - frnt - - - TRUE - Bring in Front - 1572864 - frnt - - - _NSWindowsMenu - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Files Owner - - MenuBar - - - 201 - diff --git a/.svn/pristine/2a/2ab4b536d6f30a49a0e295e4d2e7ca0df76b7a65.svn-base b/.svn/pristine/2a/2ab4b536d6f30a49a0e295e4d2e7ca0df76b7a65.svn-base deleted file mode 100644 index a42e7c6..0000000 --- a/.svn/pristine/2a/2ab4b536d6f30a49a0e295e4d2e7ca0df76b7a65.svn-base +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -mvn site diff --git a/.svn/pristine/2b/2b546066a454a8c892b589b58a629a52689419e7.svn-base b/.svn/pristine/2b/2b546066a454a8c892b589b58a629a52689419e7.svn-base deleted file mode 100644 index 62b5a45..0000000 --- a/.svn/pristine/2b/2b546066a454a8c892b589b58a629a52689419e7.svn-base +++ /dev/null @@ -1,27 +0,0 @@ - ----- - GSport Project Page - ----- - David Schmidt (david__schmidt at users dot souceforge dot net) - ----- - -GSport - - GSport is a portable (in the programming sense) Apple IIgs emulator, based on the -KEGS cross-platform IIgs emulator by Kent Dickey. -The base emulator builds and runs on all of the same platforms that KEGS did, and -the new capabilities are being integrated as contributors have time and interest. - -[images/gsport.png] - -[images/download.png] - -* Project Goals - - The main goal for GSport is to provide a free, open ecosystem for the continuation -of cross-platform development of IIgs emulation. - - Some interesting advances that initially spawned this project are Uthernet and printer support. -As those objectives are met, we will move on to the next objectives. -Do you have something that you wish a GS emulator did? -Submit a request {{{http://sourceforge.net/tracker/?group_id=315628&atid=1327836}here,}} -or better yet - dive in and {{{https://sourceforge.net/project/memberlist.php?group_id=315628}contribute!}} diff --git a/.svn/pristine/2b/2beadec25a0e339985def2fd05de0bd2ee6e4009.svn-base b/.svn/pristine/2b/2beadec25a0e339985def2fd05de0bd2ee6e4009.svn-base deleted file mode 100644 index 4bbd342..0000000 --- a/.svn/pristine/2b/2beadec25a0e339985def2fd05de0bd2ee6e4009.svn-base +++ /dev/null @@ -1,184 +0,0 @@ -# GSport central makefile - you need a 'vars' file linked/copied from a 'vars_xxx' template to build. - -OBJECTS1 = adb.o clock.o config.o dis.o engine_c.o scc.o iwm.o \ - joystick_driver.o moremem.o paddles.o parallel.o printer.o \ - sim65816.o smartport.o sound.o sound_driver.o video.o \ - scc_socket_driver.o imagewriter.o scc_imagewriter.o scc_llap.o -ATOBJ = atbridge/aarp.o atbridge/atbridge.o atbridge/elap.o atbridge/llap.o atbridge/port.o -PCAPOBJ = atbridge/pcap_delay.o -TFEOBJ = tfe/tfe.o tfe/tfearch.o tfe/tfesupp.o - -include vars - -.SUFFIXES: .dep .proto - -AS = $(CC) - -XLIBS = -L/usr/X11R6/lib -PERL = perl - -all: $(TARGET) - -clean: - - rm -f $(OBJECTS) - - rm -f $(TARGET) - - rm -f compile_time.o - - rm -f 8inst_c.h - - rm -f 16inst_c.h - - rm -rf ../GSport.app - - rm -rf ../GSportDmg - -specials: 8inst_s 16inst_s 8size 16size 8inst_c 16inst_c size_c size_s - -specials_clean: - rm -f 8inst_s 16inst_s 8size 16size 8inst_c 16inst_c size_c size_s - - -# Mac builds: -gsportmac: $(OBJECTS) compile_time.o - $(CC) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o gsport $(EXTRA_LIBS) - mkdir -p ../GSport.app/Contents/Resources/English.lproj/main.nib - mkdir -p ../GSport.app/Contents/MacOS - mv gsport ../GSport.app/Contents/MacOS/GSport - echo "APPL????" > ../GSport.app/Contents/PkgInfo - cp -f arch/mac/Info.plist ../GSport.app/Contents/ - cp -f arch/mac/info.nib ../GSport.app/Contents/Resources/English.lproj/main.nib - cp -f arch/mac/classes.nib ../GSport.app/Contents/Resources/English.lproj/main.nib - cp -f arch/mac/objects.xib ../GSport.app/Contents/Resources/English.lproj/main.nib - cp -f arch/mac/gsporticon.icns ../GSport.app/Contents/Resources/ - cp -f arch/mac/525.icns ../GSport.app/Contents/Resources/ - cp -f arch/mac/2mg.icns ../GSport.app/Contents/Resources/ - touch '../GSport.app/Icon?' - rm -rf ../GSportDmg - mkdir ../GSportDmg - mkdir ../GSportDmg/GSport - cp ../COPYING.txt ../GSportDmg/GSport - cp -f parallel.rom ../GSportDmg/GSport - cp -f ../lib/NoBoot.po ../GSportDmg/GSport - mv ../GSport.app ../GSportDmg/GSport - cp -f ../config.template ../GSportDmg/GSport/config.txt - cp ../GSport.html ../GSportDmg/GSport/GSport.html - arch/mac/makedmg.sh .. GSportDmg GSport GSport 7 - -# Linux for X builds: -gsportx: $(OBJECTS) compile_time.o - $(LD) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(XLIBS) $(EXTRA_LIBS) -lX11 - echo $(OBJECTS) - mv gsportx .. - cp -f ../config.template ../config.txt - -# Linux framebuffer builds: -gsportfb: $(OBJECTS) compile_time.o - $(LD) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(EXTRA_LIBS) - echo $(OBJECTS) - mv gsportfb .. - cp -f ../config.template ../config.txt - -# Mingw32 (native windows) builds: -gsport.exe: $(OBJECTS) compile_time.o - g++ $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(EXTRA_LIBS) -lwinmm -lgdi32 -ldsound -lcomctl32 -lws2_32 -lshell32 - mkdir -p ../GSport.app/lib - cp -f gsport.exe ../GSport.app/GSport.exe - cp -f ../config.template ../GSport.app/config.txt - cp -f ../lib/*.ttf ../GSport.app/lib - cp -f ../lib/arch/win32/*.dll ../GSport.app - cp -f ../lib/NoBoot.po ../GSport.app - cp -f GSport.bat ../GSport.app/GSport.bat - cp -f parallel.rom ../GSport.app - cp -f ../COPYING.txt ../GSport.app - cp -f ../GSport.html ../GSport.app - -8inst_c.h: instable.h - $(PERL) make_inst c 8 instable.h > 8inst_c.h - -16inst_c.h: instable.h - $(PERL) make_inst c 16 instable.h > 16inst_c.h - -size_c.h: size_tab.h - $(PERL) make_size c size_tab.h > size_c.h - -engine_c.o: 8inst_c.h 16inst_c.h size_c.h - -8inst_s.h: instable.h - $(PERL) make_inst s 8 instable.h > 8inst_s.h - -16inst_s.h: instable.h - $(PERL) make_inst s 16 instable.h > 16inst_s.h - -size_s.h: size_tab.h - $(PERL) make_size s size_tab.h > size_s.h - -8size_s.h: size_tab.h - $(PERL) make_size 8 size_tab.h > 8size_s.h - -16size_s.h: size_tab.h - $(PERL) make_size 16 size_tab.h > 16size_s.h - -engine_s.o: 8inst_s.h 16inst_s.h 8size_s.h 16size_s.h size_s.h - -.s.o: - $(AS) -c $(OPTS) -I. $*.s - -.c.o: - $(CC) $(CCOPTS) $(XOPTS) -c $(OPTS) -I. -o $*.o $*.c - -.cpp.o: - $(CC) $(CPPOPTS) $(XOPTS) -c $(OPTS) -I. $*.cpp - -.cpp.O: - $(CC) $(CCOPTS) $(XOPTS) -c $(OPTS) -I. $*.c - -partls: partls.c - cc $(CCOPTS) $(XOPTS) $(OPTS) -o partls partls.c - -to_pro: prodos.h prodos_protos.h to_pro.c - cc $(CCOPTS) $(XOPTS) $(OPTS) -o to_pro to_pro.c - -gsport32.o: win32.rc winresource.h - windres win32.rc -o gsport32.o - -compile_time.o: $(OBJECTS) - - -# dependency stuff -adb.o: adb.c adb.h defc.h defcomm.h iwm.h protos.h -atbridge/aarp.o: defc.h atbridge/atbridge.h atbridge/port.h atbridge/elap.h atbridge/aarp.h atbridge/elap_defs.h -atbridge/atbridge.o: defc.h atbridge/atbridge.h atbridge/port.h atbridge/elap.h atbridge/llap.h atbridge/aarp.h -atbridge/elap.o: defc.h atbridge/atbridge.h atbridge/port.h atbridge/elap.h atbridge/aarp.h atbridge/elap_defs.h atbridge/pcap_delay.h -atbridge/llap.o: defc.h atbridge/atbridge.h atbridge/port.h atbridge/llap.h -atbridge/port.o: atbridge/atalk.h atbridge/port.h -atbridge/pcap_delay.o: atbridge/pcap_delay.h -engine_c.o: engine_c.c defc.h defcomm.h iwm.h protos.h protos_engine_c.h size_c.h op_routs.h defs_instr.h 8inst_c.h 16inst_c.h -clock.o: clock.c defc.h defcomm.h iwm.h protos.h -compile_time.o: compile_time.c -config.o: config.c defc.h defcomm.h iwm.h protos.h config.h -dis.o: dis.c defc.h defcomm.h iwm.h protos.h disas.h -scc.o: scc.c defc.h defcomm.h iwm.h protos.h scc.h -scc_llap.o: atbridge/atbridge.h atbridge/llap.h defc.h scc.h -scc_socket_driver.o: scc_socket_driver.c defc.h defcomm.h iwm.h protos.h scc.h -scc_windriver.o: scc_windriver.c defc.h defcomm.h iwm.h protos.h scc.h -scc_macdriver.o: scc_macdriver.c defc.h defcomm.h iwm.h protos.h scc.h -scc_imagewriter.o: scc_imagewriter.c defc.h defcomm.h protos.h scc.h -iwm.o: iwm.c defc.h defcomm.h iwm.h protos.h iwm_35_525.h -imagewriter.o: imagewriter.cpp -joystick_driver.o: joystick_driver.c defc.h defcomm.h iwm.h protos.h -moremem.o: moremem.c defc.h defcomm.h iwm.h protos.h -paddles.o: paddles.c defc.h defcomm.h iwm.h protos.h -parallel.o: parallel.c defc.h -printer.o: printer.cpp -sim65816.o: sim65816.c defc.h defcomm.h iwm.h protos.h -smartport.o: smartport.c defc.h defcomm.h iwm.h protos.h -sound.o: sound.c defc.h defcomm.h iwm.h protos.h sound.h -sound_driver.o: sound_driver.c defc.h defcomm.h iwm.h protos.h sound.h -video.o: video.c defc.h defcomm.h iwm.h protos.h superhires.h gsportfont.h -tfe.o: tfe/tfe.c tfe/tfe.h tfe/tfe_protos.h -tfearch.o: tfe/tfearch.c tfe/tfearch.h tfe/tfe_protos.h -tfesupp.o: tfe/tfesupp.c tfe/tfesupp.h tfe/tfe_protos.h -macdriver.o: macdriver.c defc.h defcomm.h iwm.h protos.h protos_macdriver.h -macdriver_console.o: macdriver_console.c defc.h defcomm.h iwm.h protos.h protos_macdriver.h -macdriver_generic.o: macdriver_generic.c defc.h defcomm.h iwm.h protos.h protos_macdriver.h -macsnd_driver.o: macsnd_driver.c defc.h defcomm.h iwm.h protos.h sound.h -windriver.o: windriver.c defc.h defcomm.h iwm.h protos.h protos_windriver.h winresource.h gsport32.o -win_console.o: win_console.c defc.h defcomm.h iwm.h protos.h protos_windriver.h winresource.h -win_generic.o: win_generic.c defc.h defcomm.h iwm.h protos.h protos_windriver.h winresource.h -win32snd_driver.o: win32snd_driver.c defc.h defcomm.h iwm.h protos.h sound.h diff --git a/.svn/pristine/2c/2ccf5d1809c0e68d5bdd25b52ea36fd9ec49d23b.svn-base b/.svn/pristine/2c/2ccf5d1809c0e68d5bdd25b52ea36fd9ec49d23b.svn-base deleted file mode 100644 index 3be8c16..0000000 --- a/.svn/pristine/2c/2ccf5d1809c0e68d5bdd25b52ea36fd9ec49d23b.svn-base +++ /dev/null @@ -1,239 +0,0 @@ - -KEGS's Apple //gs IWM emulation routines. - -The IWM code does 5.25" and 3.5" reads & writes, and updates the Unix disk -image on writes. It is also nearly cycle-accurate--Let me know if you -have a program which can detect it's not a real Apple II. There are -a few 5.25" features missing (No 1/4 or 1/2 tracks, no support for Unix nibble -images, limited disk switching), but what's there is pretty accurate. -The low-level code support 1/4 and 1/2 tracks--it's the arm movement -and image-handling routines which don't. And lack of Unix nibble images -are also due to lack of higher-level routines to make those features work. - -How my disk emulation works: The routines have a nibblized image of each -track of each drive (two 5.25" and two 3.5" drives are supported) in memory. -The nibble images are declared as arrays, but it could be made to use -more dynamic memory allocation. - -Each track's data format is a series of two-byte pairs. The first byte -of the pair is the number of bits in this disk byte, and the second byte -is the value. So a size of 8 is normal. A size of 10 means that there -are 2 sync bits written before this byte on the disk. So for 5.25" disk -accesses, 40 cycles need to pass in the simulator before providing a -valid nibble. Partial nibbles are correctly formed if a read happens -too early (this actually makes things slower, but is required if you -want to make nibble copiers work). Similarly, writing to the disk -watches timing carefully to write out the correct number of bits per -disk byte. These routines will definitely test out your emulator's cycle -counting ability. - -If a long delay occurs between a read (or a write) the routines skips -the correct number of bits to return the correctly formed disk byte. -After a long delay, for efficiency, I always return a full disk byte, -instead of a partial one, even if the timing would put it in the middle -of a disk byte. - -The arm stepping is really lame. I will clean it up soon. - -Smartport support is sufficient to claim that there are no smartport -devices. This is necessary since the ROM tries to see if there are -smartport devices at power-on. - -I tested my 5.25" drive routines on EDD, which could correctly measure -drive speed and other disk factors. I also nibble-copied some disks, -which also worked fine. I tested the 3.5" routines using Copy II+, -which successfully nibble-copied several disks. - - -Code description: - -Most code is in iwm.c, with some defines in iwm.h, and some stuff in -iwm_35_525.h. - -Code only supports DOS3.3 ordered 5.25" images now, and ProDOS-ordered 3.5" -images. Well, the code supports ProDOS-order 5.25" also, but has no -mechanism to tell it an image is prodos-order yet. :-) - -Iwm state is encoded in the Iwm structure. - - drive525[2]: Disk structure for each 5.25" disk - drive35[2]: Disk structure for each 3.5" disk - smarport[32]: Disk structure for each "smartport" device emulated - via slot 7 (this code not included) - motor_on: True if IWM motor_on signal (c0e9) is asserted. Some - drive is on. - motor_off: True if motor has been turned off in software, but the - 1 second timeout has not expired yet. - motor_on35: True if 3.5" motor is on (controlled differently than - 5.25" c0e9). - motor_off_vbl_count: VBL count to turn motor off. - head35, step_direction35: 3.5" controls, useless. - iwm_phase[4]: Has '1' for each 5.25" phase that is on. - iwm_mode: IWM mode register. - drive_select: 0 = drive 1, 1 = drive 2. - q6, q7: IWM q6, q7 registers. - enable2: Smartport /ENABLE2 asserted. - reset: Smartport /RESET asserted. - previous_write_val: Partial write value. - previous_write_bits: How many bits are valid in previous_write_val. - -Each disk (3.5" and 5.25") is encoded in the Disk struct: - fd: Unix file descriptor. If < 0, no disk. - name_ptr: Unix file name for this disk. - image_start: offset from beginning of file for this partition. - image_size: size of this partition. - smartport: 1 if this is a smartport image, 0 if it is 5.25" or 3.5" - disk_525: 1 if this is a 5.25" image, 0 if it is 3.5" - drive: 0 = drive 1, 1 = drive 2. - cur_qtr_track: Current qtr track. So track 1 == qtr_track 4. - For 3.5", cur_qtr_track encodes the side also, so track 3 - side 1 would be qtr_track 7. - prodos_order: True if Unix image is ProDOS order. - vol_num: DOS3.3 volume number to use. Always 254. - write_prot: True if disk is write protected. - write_through_to_unix: True if writes should be passed through to - the unix image. If this is false, you can write - to the image in memory, but it won't get reflected - into the Unix file. If you create a non-DOS3.3 - or ProDOS format image, it automatically sets this - false. - disk_dirty: Some track has dirty data that need to be flushed. - just_ejected: Ejection flag. - dcycs_last_read: Cycle count of last disk data register access. - last_phase: Phase number last accessed. - nib_pos: Nibble offset ptr--points to a byte. - num_tracks: Number of tracks: 140 for 5.25" and 160 for 3.5" - track[MAX_TRACKS]: nibble image of all possible tracks. - -Each track is represented by the Track structure: - track_dirty: Contains data that needs to be written back to - the Unix image file. - overflow_size: Count of overflow bits, used in writing. - track_len: Number of nibbles on this track. - dsk: Handy pointer to parent Disk structure. - nib_area[]: ptr to memory containing pairs of [size,data], - encoding disk data bytes. - pad1: If the structure is 32 bytes long, some array - indexing is done better by my compiler. - - -Externally callable routines: -iwm_init(): Init various data structures at simulation start. -iwm_reset(): Called at Apple //gs reset time. -iwm_vbl_update(): Called every VBL (60 Hz) period. Used to turn motor - off, and flush out dirty data. - g_vbl_count is the count of VBL ticks (so it counts - at 60 times a second). -iwm_read_c0ec(double dcycs): Optimized routine to handle reading $C0EC - faster. Exactly the same as read_iwm(0xc, dcycs); -read_iwm(loc, dcycs): - Read from 0xc0e0 + loc. Loc is between 0x0 and 0xf. - Dcycs is an artifact from my simulator. Dcycs is a - double holding the number of Apple //gs cycles since the - emulator started. Dcycs always counts at 1.024MHz. If - you are running at 2.5MHz, it increments by 0.4 every - "cycle". This is a very convenient timing strategy. It - also allows emulating the delay caused by synchronizing - the fast part of a real Apple //gs with slow memory, - which means my emulator knows that reading softswitches - takes longer than reading fast memory. -write_iwm(int loc, int val, double dcycs): - Write to 0xc0e0 + loc. Just like read_iwm, but write "val" into - loc. - - -Tricky routines: - -IWM_READ_ROUT(): called by read_iwm() if q6,q7 = 0,0. - This is actually in the file iwm_35_525.h. This is so I - write the basic code once for 5.25" and 3.5" disk reads, - but then include the file with some macros set to create - the correct function optimized for 5.25" or 3.5" - accesses. The function for 5.25" is called - iwm_read_data_525, and iwm_read_data_35 for 3.5". - Returns next disk byte. - Takes three arguments: ptr to the Disk structure for - the active drive, fast_disk_emul, and dcycs. dcycs is - so that it can see how many cycles have passed since - the last read (stored in dsk->dcycs_last_read). - 16.0 dcycs need to pass for an 8 bit nibble for 3.5" - accesses, and 32.0 dcycs for an 8 bit nibble for 5.25". - Fast_disk_emul == 1 says don't mess around with accuracy, - and always return the next fully-formed nibble. - There is a lot of complexity in this routine. All IWM - routines must skip over nibbles (stored as byte pairs in - dsk->nib_area[]) which have a size of 0 (special padding - trick, described later). It then determines how much - time has passed, and so how many bits are valid. - If too many bits have gone by (11 cycs is almost 3 5.25" - bit times, which is about the nibble valid time in - the Apple //gs IWM hardware latch), it tries to skip - to the correct position. - Handles IWM latch mode for 3.5" or 5.25" accesses. If a - partial read is indicated, it ensures that the high bit - is clear by shifting the nibble to the right - appropriately. Again, nib_area[] is an array of bytes, - which are treated as pairs. Byte 0 = size, byte 1 = - disk nibble. - -IWM_WRITE_ROUT(): called by write_iwm() if q6,q7 = 1,1. - Similar to above. Handles async and sync mode writes. - Handles partial writes. Handles the ROM writing - 0xff, 0x3f, 0xcf, 0xf3, 0xfc to be four 10-bit nibbles. - Routine disk_nib_out(dsk, val, bits_read) does the - actual work of merging the bits into the track image. - -disk_nib_out(): called by IWM_WRITE_ROUTE() and iwm_nibblize_track_*(). - Writes byte into nib_area[]. If size > 10, makes it 10. - If high order bit not set, it sets it (makes certain routines - in EDD happy). - -overflow_size: - Writing to the disk creates some problems. I need to - maintain 2 things at all times on the track: - 1) Constant number of bits for the entire track. - 2) know where each synchronized byte starts on - the track. - If the track was just stored as raw bits, then correctly - simulating a delay of 300*4 cycles is tough, since it has to - be done by reading through all 300 bits on the track, - so that we keep in sync with where bytes really start. - But if you just store the bytes themselves, then sync - bytes look like every other byte. And if you now add - the size field, you have a situation where a track could - gain or lose bits when rewritten. Here's the case: - Assume the track contains: 10,ff 10,ff 10,ff 10,ff. - (That is 4 self-sync disk bytes of 10 bits each). - If we rewrite that area of the track with 'D5 AA 96 FF', - where each byte is 8 bits, we would have: - 8,D5 8,AA, 8,96, 8,FF. - Looks OK, but we just lost 8 bits! The original 4 nibbles - were using 40 bits of space on the disk. Our new 4 nibbles - are using 32 bits. 8 bits are lost. - Solution: log these missing bits via overflow_size. - When writing, if overflow_size gets > 8, force out a 0,0 - nibble. So sync bytes get written as: - 10,FF 10,FF 10,FF 10,FF 0,0 10,FF 10,FF 10,FF 10,FF, 0,0. - So when they get re-written with 8,xx, we don't lose any - bytes on the disk. - - Unfortunately, it doesn't quite work that easily, and bits - can still be lost when sync fields are partially overwritten. - This happens when all the 0,0's end up in a place on the - track where few overwrites occur, but other sync bytes - are being turned into 8,xx. So overflow_size goes negative, - saying we've got too much on the track. - The code prints an error when it gains more than 64 bits. - If someone can come up with a better scheme, I'd love to - hear it. A partial solution would be to have a routine - re-space the track to spread the needed 0,0's around - a little better when overflow_size gets too negative. - - -In iwm_nibblize_track_35(), the comments with hex numbers correspond -to the ROM 01 addresses which I disassembled to determine the checksum -algorithm. The code is not well written--it's basically hand-translated -65816 assembly code. I'll clean it up someday. - -Much of the code is not well-optimized. I'll get to that someday, but -the speed has been adequate for me so far. diff --git a/.svn/pristine/32/328b2ec7402df86add5c9cd68692c126b7e79707.svn-base b/.svn/pristine/32/328b2ec7402df86add5c9cd68692c126b7e79707.svn-base deleted file mode 100644 index 1e17d1ab3d686e955de2af3549b64e3abe119da5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36356 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πH*RZ=O}rC64Dj%AAjg%O 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 OZaCsBymnea!G8dm5(wG= diff --git a/.svn/pristine/33/3335c87415c013f8428a300e50f4413a3e9ed2dd.svn-base b/.svn/pristine/33/3335c87415c013f8428a300e50f4413a3e9ed2dd.svn-base deleted file mode 100644 index 341f457..0000000 --- a/.svn/pristine/33/3335c87415c013f8428a300e50f4413a3e9ed2dd.svn-base +++ /dev/null @@ -1,37 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2013-2014 by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -struct packet_t; - -/** LLAP port of the AppleTalk Bridge **/ - -void llap_init(); -void llap_shutdown(); - -/** Send one LLAP packet from the GS - */ -void llap_enqueue_in(double dcycs, size_t size, byte data[]); - -/** Receive one LLAP packet from the world to the GS and return the size - */ -void llap_dequeue_out(double dcycs, size_t* size, byte* data[]); - - -void llap_enqueue_out(struct packet_t* packet); -struct packet_t* llap_dequeue_in(); diff --git a/.svn/pristine/33/337858f8d0bc92b2aa9b3baba50f5cdcf83d5f33.svn-base b/.svn/pristine/33/337858f8d0bc92b2aa9b3baba50f5cdcf83d5f33.svn-base deleted file mode 100644 index e5a3602..0000000 --- a/.svn/pristine/33/337858f8d0bc92b2aa9b3baba50f5cdcf83d5f33.svn-base +++ /dev/null @@ -1,64 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleDocumentTypes - - - CFBundleTypeExtensions - - 2mg - 2MG - - CFBundleTypeIconFile - 2mg.icns - CFBundleTypeName - Apple II 2MG Disk Image - CFBundleTypeOSTypes - - a2mg - - CFBundleTypeRole - None - - - CFBundleTypeExtensions - - gsport - - CFBundleTypeIconFile - 525.icns - CFBundleTypeName - GSport Configuration File - CFBundleTypeOSTypes - - gsport - - CFBundleTypeRole - None - - - CFBundleExecutable - GSport - CFBundleName - GSport - CFBundleIconFile - gsporticon.icns - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - APPL - CFBundleSignature - GSport - CFBundleVersion - 0.1 - CFBundleShortVersionString - GSport version 0.1 - CFBundleGetInfoString - GSport v0.1, Copyright 2010 GSport Contributors, http://gsport.sourceforge.net - NSHumanReadableCopyright - Copyright 2010 GSport Contributors - - diff --git a/.svn/pristine/34/3485e5e9e518e5bc89095fac1b9ca5a21b0b924a.svn-base b/.svn/pristine/34/3485e5e9e518e5bc89095fac1b9ca5a21b0b924a.svn-base deleted file mode 100644 index cc6d671..0000000 --- a/.svn/pristine/34/3485e5e9e518e5bc89095fac1b9ca5a21b0b924a.svn-base +++ /dev/null @@ -1,153 +0,0 @@ - ----- - GSport Printers - ----- - David Schmidt (david__schmidt at users dot souceforge dot net) - ----- - -GSport Emulated Printers - - There are two classes of printers emulated by GSport: an Epson LQ connected by a virtual serial card in slot 1, - and an Apple Imagewriter LQ or Imagewriter II attached to serial port 1. - Set up for common printing scenarios is detailed below: - - * Emulated {{{./printer.html#Imagewriter}Imagewriter LQ/II}} - when you want to emulate an Imagewriter LQ or Imagewriter II specifically in slot 1 - - * Windows {{{./printer.html#Bitmap}Bitmap or Postscript}} (B&W) - when you want a graphical file saved on the host computer - - * Direct to {{{./printer.html#Host}host printer}} - when you want a real, paper-based copy immediately (or, a Postscript file with an appropriate printer driver) - - * {{{./printer.html#Text}Text File}} - when you want a file of plain text saved on the host computer - - [] - - When configuring the virtual printer (details below), these notes apply in all situations: - - * The "Printer Timeout" setting configures how long until a form feed is automatically sent to the printer -(which forces the emulator to kick out a "page"). - This value should be set to a value like 15 seconds or more for PR#1-type printing to work as you might expect. -If it is set to "Never", you must manually send a form feed, fill a page with text, or exit the emulator before output is saved. -This behavior is similar to modern laser/inkjet printers when they are used with Applesoft. -Most applications are good about sending form feeds at page end, so this issue doesn't usually come up. - - * The Roman font is used in graphical printing by default, and the matching <<>> is included in the distribution package. -Printing emulation won't work if no fonts at all are defined. -Any other mono-spaced TrueType font you have may also be used. - -* Emulated {Imagewriter} LQ/II - - In GSport's internal control panel: - - [[]] Under "Serial Port Configuration" set Port 0 to "Virtual Imagewriter" - -[images/printerI1.png] - - [[]] Under "Virtual Imagewriter Configuration" you need to configure fonts. GSport comes with a fixed width font installed and pre-configured. Set any proportional font you wish to use. If you plan on using native Windows printer output or Postscript, set Multipage Files to "Yes". The default printer timeout of 2 seconds is fine if you are running the machine in 8Mhz or unlimited speed modes. Set it higher if you are running at 1Mhz or 2.8Mhz since the printer may time out while the computer is "thinking" during print jobs. - -[images/printerI2.png] - - [] - - Printer DPI should be set to at least 720x720dpi for Imagewriter LQ resolution output (mostly GS/OS). Use 1440x1440dpi if you have a high resolution inkjet printer and plan on printing pure text documents. It also minimizes scaling artifacts when printing graphics. - - Printer Type just changes the self ID string sent by the printer when the "ESC-?" command is sent. This is used by the driver included in GS/OS to determine what type of printer is connected and whether a color ribbon is installed. Set it to Imagewriter LQ in most cases. - - <> - (This will likely be fixed in a future release.) - - In the native IIgs control panel: - - [[]] Under "Slots", Slot 1 should be set to "Printer Port" - - [[]] Under "Printer Port" leave everything at its default setting, but set baud rate to 19200. It is highly recommended that you install the QuickPort CDA and set the port speed to "57600". Since we are using the SCC emulation, the speed that data is transferred to the virtual printer is limited by the baud rate set by the emulated environment. - - [] - - 8-bit and non-Printer Manager IIgs applications (like Printshop GS) should work without a problem after configuring them to print to an Imagewriter connected to slot 1. When printing text in programs like Appleworks, be sure to set page margins. By default, the emulator starts printing at the upper left hand corner of the virtual "page". - - GS/OS requires configuration in the "DC Printer" control panel. Make sure you install the printer drivers from your GS/OS disk set. Set the port to "Printer" and type to "Imagewriter.LQ". If you have Harmonie, use its "Printer57.6" port driver as it greatly speeds up printing (the built in port driver appears to be hard coded to 19200 baud max). Do not use its "Printer.HAR" port driver as it sends junk text to the printer for some reason. Harmonie's "IWriterLQ.HAR" and "Imagewriter.HAR" drivers have been tested and are fully compatible with the printer emulator. They do not query the printer with ESC-?, so the setting of Printer Type in the GSport control panel doesn't matter with these. Both Harmonie and Pointless are highly recommended for the best quality output in GS/OS. - - The printer emulator supports all Imagewriter II and LQ functions documented in Apple's official reference manuals. Mousetext and custom character definitions are NOT supported. This is consistent with a real Imagewriter LQ. Only the Imagewriter II supported those functions. - -* Windows {Bitmap} or Postscript - - To set up GSport to write .BMP or .PS files for each "page" produced, apply the following settings: - - Enter the GS native control panel and set slot 1 to "Your Card", then save and exit the control panel. - You will need to reboot the emulated GS (with a cold boot - Ctrl-Alt-F12, etc.) - or restart GSport to have this change take effect, just like a real GS: - -[images/printer0.png] - - Press F4 to enter the text-based GSport menu and select the "Parallel Card Configuration" option. - By default, printer emulation is turned off. Enable it by setting "Parallel Card in Slot 1" to "On," - and leave the "Parallel Output" option set to its default value, "Send full 8-bit data:" - -[images/printer1.png] - - Next, navigate back to the main menu and select the "Virtual Printer Configuration" option - and set "Printer Output Type" to either "Windows Bitmap" or "Postscript (B&W)" based on your preference: - -[images/printer3.png] - - Save the configuration, and printed output will be saved as files in GSport's current working directory. - -* Direct to {Host} Printer - - The "Direct to host printer" feature is only implemented on the Windows platform. - To set up GSport to send page-oriented output directly to your system's printer, apply the following settings: - - Enter the GS native control panel and set slot 1 to "Your Card", then save and exit the control panel. - Note that you will need to restart GSport after all of the changes below are made, so don't restart just yet: - -[images/printer0.png] - - Press F4 to enter the text-based GSport menu and select the "Parallel Card Configuration" option. - By default, printer emulation is turned off. Enable it by setting "Parallel Card in Slot 1" to "On," - and leave the "Parallel Output" option set to its default value, "Send full 8-bit data:" - -[images/printer1.png] - - Next, navigate back to the main menu and select the "Virtual Printer Configuration" option - and set "Printer Output Type" to "Direct to host printer:" - -[images/printer6.png] - - Save the configuration, and stop the GSport application altogether and restart it. - You should be presented with your system's default printer selection dialog box: - -[images/printer7.png] - - The printer you choose here will be the place that page-oriented output is sent, subject to the page ejection - timeouts discussed earlier. - Note that it is even possible to use a printer driver that itself produces PDF output instead of physical paper. - -* {Text} File - - Printing to a text file will bypass all printer emulation and simply append printed data to a file - named <<>> in GSport's current working directory. - This is especially useful for text-based operations like Applesoft listings using the traditional - <<>> command sequences. - Output from GSOS applications like TeachText are not actually textual in nature - they are graphical. - It would be more appropriate to use a different type of printer output in that situation. - - To set up GSport to append printed text to a printer.txt file, apply the following settings: - - Enter the GS native control panel and set slot 1 to "Your Card", then save and exit the control panel. - You will need to reboot the emulated GS (with a cold boot - Ctrl-Alt-F12, etc.) - or restart GSport to have this change take effect, just like a real GS: - -[images/printer0.png] - - Press F4 to enter the text-based GSport menu and select the "Parallel Card Configuration" option. - By default, printer emulation is turned off. Enable it by setting "Parallel Card in Slot 1" to "On." - Also change the "Parallel Output" option to "Mask off high bit:" - -[images/printer4.png] - - Next, navigate back to the main menu and select the "Virtual Printer Configuration" option - and set "Printer Output Type" to "Text file:" - -[images/printer5.png] - - Save the configuration, and printed output will be appended in the <<>> - file in GSport's current working directory. \ No newline at end of file diff --git a/.svn/pristine/34/34bc5c5b72a31e06d8e6e388b1e477a43bb1d4fc.svn-base b/.svn/pristine/34/34bc5c5b72a31e06d8e6e388b1e477a43bb1d4fc.svn-base deleted file mode 100644 index 139f4aa..0000000 --- a/.svn/pristine/34/34bc5c5b72a31e06d8e6e388b1e477a43bb1d4fc.svn-base +++ /dev/null @@ -1,46 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2014 by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -/* -This interface provides a thin, delay-loaded wrapper around the PCAP library so that -you may start GSport without intalling PCAP. Of course, some features that require -PCAP won't be available. - -This wrapper provides a subset of the available PCAP APIs necessary for ATBridge. -Feel free to extend the wrapper. -*/ - -#ifdef WIN32 -#include "../arch/win32/pcap.h" -#elif __linux__ -#include -#endif - -bool pcapdelay_load(); -bool pcapdelay_is_loaded(); -void pcapdelay_unload(); - -void pcapdelay_freealldevs(pcap_if_t *); -pcap_t* pcapdelay_open_live(const char *, int, int, int, char *); -void pcapdelay_close(pcap_t *); -int pcapdelay_findalldevs(pcap_if_t **, char *); -int pcapdelay_datalink(pcap_t *); -int pcapdelay_setnonblock(pcap_t *, int, char *); -int pcapdelay_sendpacket(pcap_t *p, u_char *buf, int size); -const u_char* pcapdelay_next(pcap_t *, struct pcap_pkthdr *); -int pcapdelay_dispatch(pcap_t *, int, pcap_handler, u_char *); \ No newline at end of file diff --git a/.svn/pristine/36/36d719e642c04343075acd8cab21487bd6526274.svn-base b/.svn/pristine/36/36d719e642c04343075acd8cab21487bd6526274.svn-base deleted file mode 100644 index 289d009..0000000 --- a/.svn/pristine/36/36d719e642c04343075acd8cab21487bd6526274.svn-base +++ /dev/null @@ -1,57 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by gsport32.rc -// -#define IDD_ABOUT_DIALOG 101 -#define IDC_GSPORT32 102 -#define IDR_TOOLBAR 103 -#define IDD_DLG_DISKCONF 104 -#define IDR_ACCEL 105 -#define IDD_GSPORT32_KEY 106 -#define ID_TOOLBAR 5000 -#define ID_STATUSBAR 5001 -#define IDC_EDIT_S5D1 10051 -#define IDC_EDIT_S5D2 10052 -#define IDC_EDIT_S6D1 10061 -#define IDC_EDIT_S6D2 10062 -#define IDC_EDIT_S7D1 10071 -#define IDC_EDIT_S7D2 10072 -#define IDC_BTN_S5D1 11051 -#define IDC_BTN_S5D2 11052 -#define IDC_BTN_S6D1 11061 -#define IDC_BTN_S6D2 11062 -#define IDC_BTN_S7D1 11071 -#define IDC_BTN_S7D2 11072 -#define ID_HELP_ABOUT 40001 -#define ID_FILE_EXIT 40002 -#define ID_FILE_DISK 40003 -#define ID_FILE_SENDRESET 40004 -#define ID_FILE_JOYSTICK 40005 -#define ID_FILE_DEBUGSTAT 40006 -#define ID_FILE_SENDREBOOT 40007 -#define ID_FILE_FULLSCREEN 40012 -#define ID_FILE_SPEED 40013 -#define ID_HELP_KEY 40014 -#define ID_SPEED_1MHZ 50001 -#define ID_SPEED_2MHZ 50002 -#define ID_SPEED_FMHZ 50003 - -#define IDD_SPEEDDIALOG 117 -#define IDC_SLOW 1007 -#define IDC_CUSTOM 1008 -#define IDC_EDITCUSTOM 1009 -#define IDC_NORMAL 1010 -#define IDC_FASTEST 1011 - -#define IDC_STATIC -1 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 111 -#define _APS_NEXT_COMMAND_VALUE 40013 -#define _APS_NEXT_CONTROL_VALUE 1003 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/.svn/pristine/37/37d35b31d513d740a309d091c1b5817a0256ca38.svn-base b/.svn/pristine/37/37d35b31d513d740a309d091c1b5817a0256ca38.svn-base deleted file mode 100644 index 960fe74..0000000 --- a/.svn/pristine/37/37d35b31d513d740a309d091c1b5817a0256ca38.svn-base +++ /dev/null @@ -1,280 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS diff --git a/.svn/pristine/38/38d277d9c16c05d9169160cd390820650c5512d6.svn-base b/.svn/pristine/38/38d277d9c16c05d9169160cd390820650c5512d6.svn-base deleted file mode 100644 index c4b5501..0000000 --- a/.svn/pristine/38/38d277d9c16c05d9169160cd390820650c5512d6.svn-base +++ /dev/null @@ -1,449 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2012 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" -#include -#ifdef _WIN32 -# include -# include -#else -# include -#endif - -extern int Verbose; -extern word32 g_vbl_count; // OG change int to word32 -extern int g_rom_version; -extern int g_config_gsport_update_needed; - -#define CLK_IDLE 1 -#define CLK_TIME 2 -#define CLK_INTERNAL 3 -#define CLK_BRAM1 4 -#define CLK_BRAM2 5 - -int g_clk_mode = CLK_IDLE; -int g_clk_read = 0; -int g_clk_reg1 = 0; - -extern int g_c033_data; -extern int g_c034_val; - -byte g_bram[2][256]; -byte *g_bram_ptr = &(g_bram[0][0]); -byte g_temp_boot_slot = 254; -byte g_orig_boot_slot = 0; - -word32 g_clk_cur_time = 0xa0000000; -int g_clk_next_vbl_update = 0; - -double -get_dtime() -{ -#ifndef _WIN32 - struct timeval tp1; - double dsec; - double dusec; -#endif - double dtime; - - /* Routine used to return actual system time as a double */ - /* No routine cares about the absolute value, only deltas--maybe */ - /* take advantage of that in future to increase usec accuracy */ - -#ifdef _WIN32 - dtime = timeGetTime() / 1000.0; -#else - -# ifdef SOLARIS - gettimeofday(&tp1, (void *)0); -# else - gettimeofday(&tp1, (struct timezone *)0); -# endif - - dsec = (double)tp1.tv_sec; - dusec = (double)tp1.tv_usec; - - dtime = dsec + (dusec / (1000.0 * 1000.0)); -#endif - - return dtime; -} - -int -micro_sleep(double dtime) -{ -#ifndef _WIN32 - struct timeval Timer; - int ret; -#endif - - if(dtime <= 0.0) { - return 0; - } - if(dtime >= 1.0) { - halt_printf("micro_sleep called with %f!!\n", dtime); - return -1; - } - -#if 0 - printf("usleep: %f\n", dtime); -#endif - -#ifdef _WIN32 - Sleep((DWORD)(dtime * 1000)); -#else - Timer.tv_sec = 0; - Timer.tv_usec = (dtime * 1000000.0); - if( (ret = select(0, 0, 0, 0, &Timer)) < 0) { - fprintf(stderr, "micro_sleep (select) ret: %d, errno: %d\n", - ret, errno); - return -1; - } -#endif - return 0; -} - -void -clk_bram_zero() -{ - int i, j; - - /* zero out all bram */ - for(i = 0; i < 2; i++) { - for(j = 0; j < 256; j++) { - g_bram[i][j] = 0; - } - } - g_bram_ptr = &(g_bram[0][0]); -} - -void -clk_bram_set(int bram_num, int offset, int val) -{ - g_bram[bram_num][offset] = val; -} - - -extern void x_clk_setup_bram_version(); - -void -clk_setup_bram_version() -{ - x_clk_setup_bram_version(); -} - -void -clk_write_bram(FILE *fconf) -{ - int i, j, k; - - for(i = 0; i < 2; i++) { - fprintf(fconf, "\n"); - for(j = 0; j < 256; j += 16) { - fprintf(fconf, "bram%d[%02x] =", 2*i + 1, j); - for(k = 0; k < 16; k++) { - fprintf(fconf, " %02x", g_bram[i][j+k]); - } - fprintf(fconf, "\n"); - } - } -} - -void -clk_calculate_bram_checksum(void) { - int checksum = 0; - int i; - if (g_bram_ptr[251] == 0xff) { - // Only make the checksum valid if we have non-zeron data! - // Otherwise you have very valid zeroes, which confuses the GS firmware mightily. - for (i = 250; i >= 0; i--) { - checksum = (checksum & 0xFFFF) << 1; - checksum = (checksum & 0xFFFF) - + g_bram_ptr[i] - + ((int)g_bram_ptr[i + 1] << 8) - + (checksum >> 16); - } - checksum &= 0xFFFF; - checksum += ((checksum ^ 0xAAAA) << 16); -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) // OSX needs to calculate endianness mid-compilation, can't be passed on compile command - g_bram_ptr[252] = (checksum & 0xFF); - g_bram_ptr[253] = (checksum >> 8); - g_bram_ptr[254] = (checksum >> 16); - g_bram_ptr[255] = (checksum >> 24); -#else - g_bram_ptr[255] = (checksum & 0xFF); - g_bram_ptr[254] = (checksum >> 8); - g_bram_ptr[253] = (checksum >> 16); - g_bram_ptr[252] = (checksum >> 24); -#endif - } -} - -void -update_cur_time() -{ - struct tm *tm_ptr; - time_t cur_time; - unsigned int secs, secs2; - - -#ifdef UNDER_CE // OG Not supported on WIndows CE - /* - SYSTEMTIME stime; - FILETIME ftime; - GetLocalTime(&stime); - SystemTimeToFileTime(&stime,&ftime); - cur_time = ftime.dwLowDateTime; - */ - cur_time = time(0); - - secs=0; - secs2=0; - -#else - cur_time = time(0); - - /* Figure out the timezone (effectively) by diffing two times. */ - /* this is probably not right for a few hours around daylight savings*/ - /* time transition */ - secs2 = (unsigned int)mktime(gmtime(&cur_time)); - tm_ptr = localtime(&cur_time); - secs = (unsigned int)mktime(tm_ptr); - -#ifdef MAC - /* Mac OS X's mktime function modifies the tm_ptr passed in for */ - /* the CDT timezone and breaks this algorithm. So on a Mac, we */ - /* will use the tm_ptr->gmtoff member to correct the time */ - secs = secs + tm_ptr->tm_gmtoff; -#else - secs = (unsigned int)cur_time - (secs2 - secs); - - if(tm_ptr->tm_isdst) { - /* adjust for daylight savings time */ - secs += 3600; - } -#endif -#endif - /* add in secs to make date based on Apple Jan 1, 1904 instead of */ - /* Unix's Jan 1, 1970 */ - /* So add in 66 years and 17 leap year days (1904 is a leap year) */ - secs += ((66*365) + 17) * (24*3600); - - g_clk_cur_time = secs; - - clk_printf("Update g_clk_cur_time to %08x\n", g_clk_cur_time); - g_clk_next_vbl_update = g_vbl_count + 5; -} - -/* clock_update called by sim65816 every VBL */ -void -clock_update() -{ - /* Nothing to do */ -} - -void -clock_update_if_needed() -{ - int diff; - - diff = g_clk_next_vbl_update - g_vbl_count; - if(diff < 0 || diff > 60) { - /* Been a while, re-read the clock */ - update_cur_time(); - } -} - -void -clock_write_c034(word32 val) -{ - g_c034_val = val & 0x7f; - if((val & 0x80) != 0) { - if((val & 0x20) == 0) { - printf("c034 write not last = 1\n"); - /* set_halt(1); */ - } - do_clock_data(); - } -} - - -void -do_clock_data() -{ - word32 mask; - int read; - int op; - - clk_printf("In do_clock_data, g_clk_mode: %02x\n", g_clk_mode); - - read = g_c034_val & 0x40; - switch(g_clk_mode) { - case CLK_IDLE: - g_clk_read = (g_c033_data >> 7) & 1; - g_clk_reg1 = (g_c033_data >> 2) & 3; - op = (g_c033_data >> 4) & 7; - if(!read) { - /* write */ - switch(op) { - case 0x0: /* Read/write seconds register */ - g_clk_mode = CLK_TIME; - clock_update_if_needed(); - break; - case 0x3: /* internal registers */ - g_clk_mode = CLK_INTERNAL; - if(g_clk_reg1 & 0x2) { - /* extend BRAM read */ - g_clk_mode = CLK_BRAM2; - g_clk_reg1 = (g_c033_data & 7) << 5; - } - break; - case 0x2: /* read/write ram 0x10-0x13 */ - g_clk_mode = CLK_BRAM1; - g_clk_reg1 += 0x10; - break; - case 0x4: /* read/write ram 0x00-0x0f */ - case 0x5: case 0x6: case 0x7: - g_clk_mode = CLK_BRAM1; - g_clk_reg1 = (g_c033_data >> 2) & 0xf; - break; - default: - halt_printf("Bad c033_data in CLK_IDLE: %02x\n", - g_c033_data); - } - } else { - printf("clk read from IDLE mode!\n"); - /* set_halt(1); */ - g_clk_mode = CLK_IDLE; - } - break; - case CLK_BRAM2: - if(!read) { - /* get more bits of bram addr */ - if((g_c033_data & 0x83) == 0x00) { - /* more address bits */ - g_clk_reg1 |= ((g_c033_data >> 2) & 0x1f); - g_clk_mode = CLK_BRAM1; - } else { - halt_printf("CLK_BRAM2: c033_data: %02x!\n", - g_c033_data); - g_clk_mode = CLK_IDLE; - } - } else { - halt_printf("CLK_BRAM2: clock read!\n"); - g_clk_mode = CLK_IDLE; - } - break; - case CLK_BRAM1: - /* access battery ram addr g_clk_reg1 */ - if(read) { - if(g_clk_read) { - /* Yup, read */ - if ((g_clk_reg1 == 0x28) && (g_temp_boot_slot != 254)){ - // Modify boot slot - g_c033_data = g_temp_boot_slot; - clk_calculate_bram_checksum(); - } else { - g_c033_data = g_bram_ptr[g_clk_reg1]; - } - clk_printf("Reading BRAM loc %02x: %02x\n", - g_clk_reg1, g_c033_data); - } else { - halt_printf("CLK_BRAM1: said wr, now read\n"); - } - } else { - if(g_clk_read) { - halt_printf("CLK_BRAM1: said rd, now write\n"); - } else { - /* Yup, write */ - if ((g_clk_reg1 == 0x28) && (g_temp_boot_slot != 254)) { - // Modify boot slot - g_bram_ptr[g_clk_reg1] = g_temp_boot_slot; - clk_calculate_bram_checksum(); - } else { - g_bram_ptr[g_clk_reg1] = g_c033_data; - } - clk_printf("Writing BRAM loc %02x with %02x\n", - g_clk_reg1, g_c033_data); - g_config_gsport_update_needed = 1; - } - } - g_clk_mode = CLK_IDLE; - break; - case CLK_TIME: - if(read) { - if(g_clk_read == 0) { - halt_printf("Reading time, but in set mode!\n"); - } - g_c033_data = (g_clk_cur_time >> (g_clk_reg1 * 8)) & - 0xff; - clk_printf("Returning time byte %d: %02x\n", - g_clk_reg1, g_c033_data); - } else { - /* Write */ - if(g_clk_read) { - halt_printf("Write time, but in read mode!\n"); - } - clk_printf("Writing TIME loc %d with %02x\n", - g_clk_reg1, g_c033_data); - mask = 0xff << (8 * g_clk_reg1); - - g_clk_cur_time = (g_clk_cur_time & (~mask)) | - ((g_c033_data & 0xff) << (8 * g_clk_reg1)); - } - g_clk_mode = CLK_IDLE; - break; - case CLK_INTERNAL: - if(read) { - printf("Attempting to read internal reg %02x!\n", - g_clk_reg1); - } else { - switch(g_clk_reg1) { - case 0x0: /* test register */ - if(g_c033_data & 0xc0) { - printf("Writing test reg: %02x!\n", - g_c033_data); - /* set_halt(1); */ - } - break; - case 0x1: /* write protect reg */ - clk_printf("Writing clk wr_protect: %02x\n", - g_c033_data); - if(g_c033_data & 0x80) { - printf("Stop, wr clk wr_prot: %02x\n", - g_c033_data); - /* set_halt(1); */ - } - break; - default: - halt_printf("Writing int reg: %02x with %02x\n", - g_clk_reg1, g_c033_data); - } - } - g_clk_mode = CLK_IDLE; - break; - default: - halt_printf("clk mode: %d unknown!\n", g_clk_mode); - g_clk_mode = CLK_IDLE; - break; - } -} - diff --git a/.svn/pristine/39/392f2384e6fed77e1218e6e611d6cbbbba14e1c3.svn-base b/.svn/pristine/39/392f2384e6fed77e1218e6e611d6cbbbba14e1c3.svn-base deleted file mode 100644 index 04b0280e004cfbf99e9a9d85c15aaacb8754cd78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6742 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 diff --git a/.svn/pristine/3c/3c02d8bf408a900f28dc0f1e7b545bf1822174c8.svn-base b/.svn/pristine/3c/3c02d8bf408a900f28dc0f1e7b545bf1822174c8.svn-base deleted file mode 100644 index 8a5dc8a..0000000 --- a/.svn/pristine/3c/3c02d8bf408a900f28dc0f1e7b545bf1822174c8.svn-base +++ /dev/null @@ -1,458 +0,0 @@ -/* - * tfearch.c - TFE ("The final ethernet") emulation, - * architecture-dependant stuff - * - * Written by - * Spiro Trikaliotis - * - * This file is part of VICE, the Versatile Commodore Emulator. - * See README for copyright notice. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307 USA. - * - */ - - -#include -#include -#include -#include -#include - -#include "../atbridge/pcap_delay.h" -#include "tfesupp.h" -#include "../defc.h" -#include "protos_tfe.h" - -/** #define TFE_DEBUG_ARCH 1 **/ -/** #define TFE_DEBUG_PKTDUMP 1 **/ - -/* #define TFE_DEBUG_FRAMES - might be defined in TFE.H! */ - -#define TFE_DEBUG_WARN 1 /* this should not be deactivated */ - - -/* ------------------------------------------------------------------------- */ -/* variables needed */ - - -//static log_t tfe_arch_log = LOG_ERR; - -static pcap_if_t *TfePcapNextDev = NULL; -static pcap_if_t *TfePcapAlldevs = NULL; -static pcap_t *TfePcapFP = NULL; - -static char TfePcapErrbuf[PCAP_ERRBUF_SIZE]; - -#ifdef TFE_DEBUG_PKTDUMP - -static -void debug_output( const char *text, unsigned char *what, int count ) -{ - char buffer[256]; - char *p = buffer; - char *pbuffer1 = what; - int len1 = count; - int i; - - sprintf(buffer, "\n%s: length = %u\n", text, len1); - OutputDebugString(buffer); - do { - p = buffer; - for (i=0; (i<8) && len1>0; len1--, i++) { - sprintf( p, "%02x ", (unsigned int)(unsigned char)*pbuffer1++); - p += 3; - } - *(p-1) = '\n'; *p = 0; - OutputDebugString(buffer); - } while (len1>0); -} -#endif // #ifdef TFE_DEBUG_PKTDUMP - - -/* - These functions let the UI enumerate the available interfaces. - - First, TfeEnumAdapterOpen() is used to start enumeration. - - TfeEnumAdapter is then used to gather information for each adapter present - on the system, where: - - ppname points to a pointer which will hold the name of the interface - ppdescription points to a pointer which will hold the description of the interface - - For each of these parameters, new memory is allocated, so it has to be - freed with lib_free(). - - TfeEnumAdapterClose() must be used to stop processing. - - Each function returns 1 on success, and 0 on failure. - TfeEnumAdapter() only fails if there is no more adpater; in this case, - *ppname and *ppdescription are not altered. -*/ -int tfe_arch_enumadapter_open(void) -{ - if (pcapdelay_findalldevs(&TfePcapAlldevs, TfePcapErrbuf) == -1) - { -#ifdef TFE_DEBUG_ARCH - log_message(tfe_arch_log, "ERROR in TfeEnumAdapterOpen: pcap_findalldevs: '%s'", TfePcapErrbuf); -#endif - return 0; - } - - if (!TfePcapAlldevs) { -#ifdef TFE_DEBUG_ARCH - log_message(tfe_arch_log, "ERROR in TfeEnumAdapterOpen, finding all pcap devices - " - "Do we have the necessary privilege rights?"); -#endif - return 0; - } - - TfePcapNextDev = TfePcapAlldevs; - - return 1; -} - -int tfe_arch_enumadapter(char **ppname, char **ppdescription) -{ - if (!TfePcapNextDev || (TfePcapNextDev->name == NULL)) - return 0; - - *ppname = lib_stralloc(TfePcapNextDev->name); - if (TfePcapNextDev->description) - *ppdescription = lib_stralloc(TfePcapNextDev->description); - else - *ppdescription = lib_stralloc(TfePcapNextDev->name); - TfePcapNextDev = TfePcapNextDev->next; - - return 1; -} - -int tfe_arch_enumadapter_close(void) -{ - if (TfePcapAlldevs) { - pcapdelay_freealldevs(TfePcapAlldevs); - TfePcapAlldevs = NULL; - } - return 1; -} - -static -int TfePcapOpenAdapter(const char *interface_name) -{ - pcap_if_t *TfePcapDevice = NULL; - - if (!tfe_enumadapter_open()) { - return FALSE; - } - else { - /* look if we can find the specified adapter */ - char *pname; - char *pdescription; - int found = FALSE; - - if (interface_name) { - /* we have an interface name, try it */ - TfePcapDevice = TfePcapAlldevs; - - while (tfe_enumadapter(&pname, &pdescription)) { - if (strcmp(pname, interface_name)==0) { - found = TRUE; - } - lib_free(pname); - lib_free(pdescription); - if (found) break; - TfePcapDevice = TfePcapNextDev; - } - } - - if (!found) { - /* just take the first adapter */ - TfePcapDevice = TfePcapAlldevs; - } - } - - TfePcapFP = pcapdelay_open_live(TfePcapDevice->name, 1700, 1, 20, TfePcapErrbuf); - if ( TfePcapFP == NULL) - { -#ifdef TFE_DEBUG_ARCH - log_message(tfe_arch_log, "ERROR opening adapter: '%s'", TfePcapErrbuf); -#endif - tfe_enumadapter_close(); - return FALSE; - } - - if (pcapdelay_setnonblock(TfePcapFP, 1, TfePcapErrbuf)<0) - { -#ifdef TFE_DEBUG_ARCH - log_message(tfe_arch_log, "WARNING: Setting PCAP to non-blocking failed: '%s'", TfePcapErrbuf); -#endif - } - - /* Check the link layer. We support only Ethernet for simplicity. */ - if(pcapdelay_datalink(TfePcapFP) != DLT_EN10MB) - { -#ifdef TFE_DEBUG_ARCH - log_message(tfe_arch_log, "ERROR: TFE works only on Ethernet networks."); -#endif - tfe_enumadapter_close(); - return FALSE; - } - - tfe_enumadapter_close(); - return TRUE; -} - - -/* ------------------------------------------------------------------------- */ -/* the architecture-dependend functions */ - - -int tfe_arch_init(void) -{ - //tfe_arch_log = log_open("TFEARCH"); - - return 1; -} - -void tfe_arch_pre_reset( void ) -{ -#ifdef TFE_DEBUG_ARCH - log_message( tfe_arch_log, "tfe_arch_pre_reset()." ); -#endif -} - -void tfe_arch_post_reset( void ) -{ -#ifdef TFE_DEBUG_ARCH - log_message( tfe_arch_log, "tfe_arch_post_reset()." ); -#endif -} - -int tfe_arch_activate(const char *interface_name) -{ -#ifdef TFE_DEBUG_ARCH - log_message( tfe_arch_log, "tfe_arch_activate()." ); -#endif - if (!TfePcapOpenAdapter(interface_name)) { - return 0; - } - return 1; -} - -void tfe_arch_deactivate( void ) -{ -#ifdef TFE_DEBUG_ARCH - log_message( tfe_arch_log, "tfe_arch_deactivate()." ); -#endif -} - -void tfe_arch_set_mac( const unsigned char mac[6] ) -{ -#if defined(TFE_DEBUG_ARCH) || defined(TFE_DEBUG_FRAMES) - log_message( tfe_arch_log, "New MAC address set: %02X:%02X:%02X:%02X:%02X:%02X.", - mac[0], mac[1], mac[2], mac[3], mac[4], mac[5] ); -#endif -} - - -void tfe_arch_recv_ctl( int bBroadcast, /* broadcast */ - int bIA, /* individual address (IA) */ - int bMulticast, /* multicast if address passes the hash filter */ - int bCorrect, /* accept correct frames */ - int bPromiscuous, /* promiscuous mode */ - int bIAHash /* accept if IA passes the hash filter */ - ) -{ -#if defined(TFE_DEBUG_ARCH) || defined(TFE_DEBUG_FRAMES) - log_message( tfe_arch_log, "tfe_arch_recv_ctl() called with the following parameters:" ); - log_message( tfe_arch_log, "\tbBroadcast = %s", bBroadcast ? "TRUE" : "FALSE" ); - log_message( tfe_arch_log, "\tbIA = %s", bIA ? "TRUE" : "FALSE" ); - log_message( tfe_arch_log, "\tbMulticast = %s", bMulticast ? "TRUE" : "FALSE" ); - log_message( tfe_arch_log, "\tbCorrect = %s", bCorrect ? "TRUE" : "FALSE" ); - log_message( tfe_arch_log, "\tbPromiscuous = %s", bPromiscuous ? "TRUE" : "FALSE" ); - log_message( tfe_arch_log, "\tbIAHash = %s", bIAHash ? "TRUE" : "FALSE" ); -#endif -} - -void tfe_arch_line_ctl(int bEnableTransmitter, int bEnableReceiver ) -{ -#if defined(TFE_DEBUG_ARCH) || defined(TFE_DEBUG_FRAMES) - log_message( tfe_arch_log, "tfe_arch_line_ctl() called with the following parameters:" ); - log_message( tfe_arch_log, "\tbEnableTransmitter = %s", bEnableTransmitter ? "TRUE" : "FALSE" ); - log_message( tfe_arch_log, "\tbEnableReceiver = %s", bEnableReceiver ? "TRUE" : "FALSE" ); -#endif -} - - -typedef struct TFE_PCAP_INTERNAL_tag { - - unsigned int len; - unsigned char *buffer; - -} TFE_PCAP_INTERNAL; - -/* Callback function invoked by libpcap for every incoming packet */ -static -void TfePcapPacketHandler(unsigned char *param, const struct pcap_pkthdr *header, const unsigned char *pkt_data) -{ - TFE_PCAP_INTERNAL *pinternal = (TFE_PCAP_INTERNAL*)param; - - /* determine the count of bytes which has been returned, - * but make sure not to overrun the buffer - */ - if (header->caplen < pinternal->len) - pinternal->len = header->caplen; - - memcpy(pinternal->buffer, pkt_data, pinternal->len); -} - -/* the following function receives a frame. - - If there's none, it returns a -1. - If there is one, it returns the length of the frame in bytes. - - It copies the frame to *buffer and returns the number of copied - bytes as return value. - - At most 'len' bytes are copied. -*/ -static -int tfe_arch_receive_frame(TFE_PCAP_INTERNAL *pinternal) -{ - int ret = -1; - - /* check if there is something to receive */ - if (pcapdelay_dispatch(TfePcapFP, 1, (pcap_handler)TfePcapPacketHandler, (unsigned char*)pinternal)!=0) { - /* Something has been received */ - ret = pinternal->len; - } - -#ifdef TFE_DEBUG_ARCH - log_message( tfe_arch_log, "tfe_arch_receive_frame() called, returns %d.", ret ); -#endif - - return ret; -} - -void tfe_arch_transmit(int force, /* FORCE: Delete waiting frames in transmit buffer */ - int onecoll, /* ONECOLL: Terminate after just one collision */ - int inhibit_crc, /* INHIBITCRC: Do not append CRC to the transmission */ - int tx_pad_dis, /* TXPADDIS: Disable padding to 60 Bytes */ - int txlength, /* Frame length */ - unsigned char *txframe /* Pointer to the frame to be transmitted */ - ) -{ -#ifdef TFE_DEBUG_ARCH - log_message( tfe_arch_log, "tfe_arch_transmit() called, with: " - "force = %s, onecoll = %s, inhibit_crc=%s, tx_pad_dis=%s, txlength=%u", - force ? "TRUE" : "FALSE", - onecoll ? "TRUE" : "FALSE", - inhibit_crc ? "TRUE" : "FALSE", - tx_pad_dis ? "TRUE" : "FALSE", - txlength - ); -#endif - -#ifdef TFE_DEBUG_PKTDUMP - debug_output( "Transmit frame: ", txframe, txlength); -#endif // #ifdef TFE_DEBUG_PKTDUMP - - if (pcapdelay_sendpacket(TfePcapFP, txframe, txlength) == -1) { - //log_message(tfe_arch_log, "WARNING! Could not send packet!"); - } -} - -/* - tfe_arch_receive() - - This function checks if there was a frame received. - If so, it returns 1, else 0. - - If there was no frame, none of the parameters is changed! - - If there was a frame, the following actions are done: - - - at maximum *plen byte are transferred into the buffer given by pbuffer - - *plen gets the length of the received frame, EVEN if this is more - than has been copied to pbuffer! - - if the dest. address was accepted by the hash filter, *phashed is set, else - cleared. - - if the dest. address was accepted by the hash filter, *phash_index is - set to the number of the rule leading to the acceptance - - if the receive was ok (good CRC and valid length), *prx_ok is set, - else cleared. - - if the dest. address was accepted because it's exactly our MAC address - (set by tfe_arch_set_mac()), *pcorrect_mac is set, else cleared. - - if the dest. address was accepted since it was a broadcast address, - *pbroadcast is set, else cleared. - - if the received frame had a crc error, *pcrc_error is set, else cleared -*/ -int tfe_arch_receive(unsigned char *pbuffer , /* where to store a frame */ - int *plen, /* IN: maximum length of frame to copy; - OUT: length of received frame - OUT can be bigger than IN if received frame was - longer than supplied buffer */ - int *phashed, /* set if the dest. address is accepted by the hash filter */ - int *phash_index, /* hash table index if hashed == TRUE */ - int *prx_ok, /* set if good CRC and valid length */ - int *pcorrect_mac, /* set if dest. address is exactly our IA */ - int *pbroadcast, /* set if dest. address is a broadcast address */ - int *pcrc_error /* set if received frame had a CRC error */ - ) -{ - int len; - - TFE_PCAP_INTERNAL internal = { *plen, pbuffer }; - - -#ifdef TFE_DEBUG_ARCH - log_message( tfe_arch_log, "tfe_arch_receive() called, with *plen=%u.", *plen ); -#endif - - assert((*plen&1)==0); - - len = tfe_arch_receive_frame(&internal); - - if (len!=-1) { - -#ifdef TFE_DEBUG_PKTDUMP - debug_output( "Received frame: ", internal.buffer, internal.len ); -#endif // #ifdef TFE_DEBUG_PKTDUMP - - if (len&1) - ++len; - - *plen = len; - - /* we don't decide if this frame fits the needs; - * by setting all zero, we let tfe.c do the work - * for us - */ - *phashed = - *phash_index = - *pbroadcast = - *pcorrect_mac = - *pcrc_error = 0; - - /* this frame has been received correctly */ - *prx_ok = 1; - - return 1; - } - - return 0; -} diff --git a/.svn/pristine/3d/3d7222c46e478636f7b4a7087f6d0c99a607894f.svn-base b/.svn/pristine/3d/3d7222c46e478636f7b4a7087f6d0c99a607894f.svn-base deleted file mode 100644 index df9868d..0000000 --- a/.svn/pristine/3d/3d7222c46e478636f7b4a7087f6d0c99a607894f.svn-base +++ /dev/null @@ -1,744 +0,0 @@ - ----- - Operating GSport - ----- - David Schmidt (david__schmidt at users dot souceforge dot net) - ----- - -Operating GSport - -* Getting a ROM file - - The required ROM for GSport is not part of the distribution, as it is -not freely distributable. You must own a IIgs ROM (i.e. a IIgs machine) in -order to legally use a ROM file that you may find on the internet. - - GSport can use the ROM image from either a ROM01 or ROM03 IIgs machine. -By default, that file should be named <<>> and be placed in the same folder as the GSport program/app. -The name and location are configurable options, but it will "just work" with the defaults. - -* Running GSport - - On all platforms except Windows and Mac, you must start GSport from a terminal -window. GSport will open a new window and use the window you started it from -as a "debug" window. - - GSport will look in a number of places for two files it requires: <<>> -and <<>>. The suggested place for these files is right alongside the GSport -application itself. - - Start GSport by Double-clicking the GSport icon on a Mac, or by running -the executable (<<>> on Windows, and <<>> on Linux). -GSport can be run from the Terminal window on a Mac as well (which enables access to -more debug information) by typing: <<<./GSport.app/Contents/MacOS/GSport>>> from the folder GSport is in. -This also enables the automatic mounting/booting feature by allowing you to specify a disk -image of your choice on that command line; for example: \ -<<<./GSport.app/Contents/MacOS/GSport /path/to/my/disk.po>>> - - Assuming all goes well, GSport will then boot up but probably not find any disk images. -Hit the "F4" key and see below for how to tell GSport what disk images to use. -Tip: Hitting "F8" locks the mouse in the window (and hides the host cursor) -until you hit "F8" again. - - See the the {{{./developing.html}developing}} page for information about developing GSport and compiliing it for yourself. - -* Configuration Panel - - The Configuration panel is accessed by pressing the F4 key at any time. -(If GSport couldn't find a ROM file when it started, you will be forced -into the Configuration Panel mode until you select a valid ROM file). - - To select a ROM file, select "ROM File Selection" and then select your -ROM file. If you were not forced into the panel at startup, then GSport -found one and it is working. - -* Disk Images - - The primary use of the Configuration Panel is to select disk images. To -change disk images being used, select "Disk Configuration". Each slot -and drive that can be loaded with an image is listed. "s5d1" means slot -5, drive 1. Slot 5 devices are 3.5" 800K disks, and slot 6 devices are -5.25" 140K disks. Slot 7 devices are virtual hard drives, and can be -any size at all (although ProDOS-formatted images should be less than -32MB). - - Just use the arrow keys to navigate to the device entry to change, and -then select it by pressing the Enter or Return key. -A scrollable file selection -interface is presented, letting you locate your image files. To quickly -jump to a particular path, you can press Tab to toggle between entering -a path manually, and using the file selector. Press Return on ".." -entries to go up a directory level. When you find the image you want, -just press the Enter or Return key. - - If the image has partitions that GSport supports, another selection -dialog will have you select which partition to mount. You will probably -only have partitions on direct devices you mount (or on a Mac, of .dmg -images of CDs). For instance, on a Mac, /dev/disk1 can sometimes be the -CDROM drive. - - GSport can handle "raw", .dsk, .po, 2IMG, 5.25" ".nib" images, most Mac -Diskcopy images and partitioned images. The .dsk and .po formats you often -find on the web are really "raw" formats, and so they work fine. GSport uses -the host file permissions to encode the read/write status of the image. -GSport can open any image file compressed with gzip (with the extension ".gz") -automatically as a read-only disk image. - - An image is the representation of an Apple IIgs disk, but in a file on -your computer. For 3.5" disks, for example, a raw image would be exactly -800K bytes long (819200 bytes). GSport directs the emulated GS accesses to -the image, and does the correct reads and writes of the Unix file instead. - - If you do not have any disk mounted in s7d1, GSport will jump into the monitor. -To boot slot 6 (or slot 5), use the Apple IIgs Control Panel by pressing -Ctrl-Command-ESC. - - Support for 5.25" nibblized images is read-only for now (since the -format is simplistic, it's tricky for GSport to write to it since GSport -has more information than fits in that format). Just select your image, -like "disk.nib" in the <<>> file like any .dsk or .po image. - - In addition to changing disks, you can also just "eject" and image by -moving the cursor to select that slot/drive and then press "E". The -emulated IIgs will immediately detect changes to s5d1 and s5d2. - - Care should be taken when changing images in slot 7--GSport does not notify -GSOS that images have changed (or been ejected), and so it's best to make -changes when GSOS is not running. - - -* Keyboard Summary - ---- -F1: Alias of Command -F2: Alias of Option -F3: Alias of ESC -F4: Configuration Panel -F5, Shift-Insert: Paste from clipboard (on Windows and Mac) -F6: Toggle through the 4 speeds: Unlimited, 1MHz, 2.8MHz, 8.0MHz -Shift-F6: Enter GSport debugger -F7: Toggle fast_disk_emul on/off -F8: Toggle pointer hiding on/off. -F9: Invert the sense of the joystick. -Shift-F9: Swap x and y joystick/paddle axes. -F10: Attempt to change the a2vid_palette (only useful on 256-color displays) -Shift-F10: Toggle visibility of the debug status lines (on Windows only) -F11: Full screen mode (on Mac OS X and Windows). -F12: Alias of Pause/Break which is treated as Reset - -F2, Alt_R, Meta_r, Menu, Print, Mode_switch, Option: Option key -F1, Alt_L, Meta_L, Cancel, Scroll_lock, Command: Command key -Num_Lock: Keypad "Clear". -F12, Pause, Break: Reset - - "Home": Alias for "=" on the keypad (since my Unix keyboard doesn't have an =). ---- - -* Using GSport - - The host computer mouse is the Apple IIgs mouse and joystick by default. -By default, the host pointer is not constrained inside the window and -remains visible. Press F8 to hide the cursor and constrain the mouse. F8 -again toggles out of constrain mode. When the GSOS desktop is running, -GSport hides the host cursor automatically and enables special tracking -which forces the emulated cursor to follow the host cursor. If this doesn't -work right under some program, just press F8 for better compatibility. - - The middle mouse button or Shift-F6 causes GSport to stop emulation, and enter -the debugger. You can continue with "g" then return in the debug window. -You can also disassemble memory, etc. The section "Debugging GSport" -above describes the debugger interface a little more. - - GSport has no pop-up menus or other interactive interfaces (other than -the debug window, and the occasional error dialogs on Mac OS X). Input to -the debug window is only acted upon when the emulation is stopped -(Shift-F6, middle mouse button, or hitting a breakpoint). - -* Quitting GSport - - Just close the main GSport window, and GSport will exit cleanly. Or you -can select Quit from the menu. Or enter ctrl-c in the debugger window. -Or press the middle-mouse button in the emulation window, and then type -"q" return in the debug window. - -* Command/Option keys - - If you have a keyboard with the special Windows keys, you can -use them as the command/option keys. For those without those keys, -there are several alternatives. - - The following keys are Option (closed-apple) (not all keyboards have all -keys): F2, Meta_R, Alt_R, Cancel, Print_screen, Mode_switch, Option, -or the Windows key just to the right of the spacebar. The following keys are -Command (open-apple): F1, Meta_L, Alt_L, Menu, Scroll_lock, Command, -the Windows key left of the spacebar, and the Windows key on the far right -that looks like a pull-down menu. You can use F1 and F2 if you cannot make -anything else work (especially useful if your OS is intercepting some -Alt or Command key sequences). - - Note that X Windows often has other things mapped to Meta- and Alt- -key sequences, so they often don't get passed through to GSport. So it's -best to use another key instead of Alt or Meta. - - The joystick/paddle buttons are just the Command and Option keys. - - -* Reset - - The reset key is Pause/Break or F12. You must hit it with Ctrl to get it to -take effect (just like a real Apple IIgs). Ctrl-Command-Reset -forces a reboot. Ctrl-Command-Option-Reset enters selftests. -Selftests will pass if you force speed to 2.8MHz using the middle -button or F6 (and also set Enable Text Page 2 shadow = Disabled for ROM 01). -Watch out for ctrl-shift-Break--it will likely kill an X Windows session. -Also note that the Unix olvwm X window manager interprets ctrl-F12 and will -not pass it on to GSport--you'll need to use Break for reset in that case. - -* Full Screen mode (Mac OS X only) - - GSport can run in full screen mode--which is especially useful when letting -small kids use GSport (but it is not really a lock, so do not let a 2 year -old bang on the keyboard while running GSport). - - Full Screen mode is toggled with F11 (or Ctrl-F11, since Expose on a Mac -is intercepting F11). If GSport stops in the debugger for any reason, -full screen mode is toggled off automatically. - -* Joystick Emulation (Mouse, Keypad, or real native joystick) - - The default joystick is the mouse position. Upper left is 0,0. Lower right -is 255,255. Press Shift-F9 to swap the X and Y axes. Press F9 to reverse -the sense of both paddles (so 0 becomes 255, etc). Swapping and -reversing are convenient with paddle-based games like "Little Brick Out" -so that the mouse will be moving like the paddle on the screen. "Little -Brick Out" is on the DOS 3.3 master disk. The joystick does not work -properly if the pointer is constrained in the window. - - You can also select from a "Keypad Joystick" or a real joystick from -the Configuration panel. Press return on the "Joystick Configuration" -entry, and then select between Mouse Joystick, Keypad Joystick, or one -of two native joysticks. The Keypad Joystick uses your keypad number -keys as a joystick, where keypad 7 means move to the upper left, and -keypad 3 means move to the lower right. Pressing multiple keys together -averages the results, allowing finer control than just 8 directions. -Also, joystick scaling is selectable here for games which require -a greater range of motion to work correctly, along with trim adjustment -which moves the centering point. Adjusting scaling usually means you -will need to adjust the trim as well. - - The left mouse button is the mouse button for GSport. The right mouse -button (if you have it) or F6 toggles between four speed modes. Mode 0 -(the default) means run as fast as possible. Mode 1 means run at 1MHz. -Mode 2 means run at 2.8MHz. Mode 3 means run at 8.0MHz (about the speed -of a ZipGS accelerator). Most Apple //e (or earlier) games need to be -run at 1MHz. Many Apple IIgs demos must run at 2.8MHz or they will not -operate correctly. Try running ornery programs at 2.8MHz. 3200 pictures -generally only display correctly at 2.8MHz or sometimes 8.0MHz. - -* Debugging GSport - - GSport by default now continues emulation even when it detects buggy programs -running. (Now I know why Appleworks GS always seemed to crash!). - - GSport divides buggy programs into two severities: Code Yellow and Code Red. -The status is displayed in words in the text area under the emulation window. -If nothing's wrong, nothing is printed. - - A Yellow bug is a mild bug where an Apple IIgs program merely read an -invalid location. Although completely harmless, it indicates the potential -for some Apple IIgs program bug which may become more severe shortly. -For instance, closing the "About This Apple IIgs" window in the Finder -causes a code yellow alert, but it seems quite harmless. - - A Code Red bug is a more serious problem. The Apple IIgs program either -tried to write non-existent memory, entered an invalid system state, or -perhaps just tried to use an Apple IIgs feature which GSport does not implement -yet. Note that entering GSBUG tends to cause a Code Red alert always, so if -you intended to enter it, you can ignore it. My recommendation is to -save work immediately (to new files) and restart GSport if you get into the -Red mode. - - GSport also supports breakpoints and watchpoints. In the debug window, you -set a breakpoint at an address by typing the address, followed by a 'B' -(it must be in caps). To set a breakpoint on the interrupt jump point, -type: - ---- -e1/0010B ---- - - The format is "bank/address" then "B", where the B must be in caps and -the address must use lower-case hex. For Apple IIe programs, just use a -bank of 0. - - To list all breakpoints, just type 'B' with no number in front of it. -To delete a breakpoint, enter its address followed by 'D', so - ---- -e1/0010D ---- - - deletes the above breakpoint. The addresses work like the IIgs monitor: -once you change banks, you can use shortcut addresses: - ---- -e1/0010B -14B ---- - - will add breakpoints at e1/0010 and e1/0014. - - This is a "transparent" breakpoint--memory is not changed. But any -read or write to that address will cause GSport to halt. So you can -set breakpoints on I/O addresses, or ROM, or whatever. Setting a breakpoint -slows GSport down somewhat, but only on accesses to the 256 byte "page" -the breakpoint is on. Breakpoints are not just instruction breakpoints, -they also cause GSport to halt on any data access, too (usually called -watchpoints). - - Frederic Devernay has written a nice help screen available in the -debugger when you type "h". - - Useful locations for setting breakpoints: -0/3f0B - Break handler -0/c000B - Keyboard latch, programs read keys from this address - - - -* GSport command-line option summary - - There are others, but the Configuration panel provides a better way to -set them so they are no longer listed here. - ---- --skip: GSport will "skip" that many screen redraws between refreshes. - -skip 0 will do 60 frames per second, -skip 1 will do 30 fps, - -skip 5 will do 10 fps. --audio [0/1]: Forces audio [off/on]. By default, audio is on unless - the X display is a remote machine or shared memory is off. - This switch can override the default. -audio 0 causes GSport to - not fork the background audio process, but Ensoniq emulation - is still 100% accurate, just the sound is not sent to the - workstation speaker. Audio defaults off on Linux for now. --arate {num}: Forces audio sample rate to {num}. 44100 and 48000 are - usual, you can try 22050 to reduce GSport's overhead. On a reasonably - fast machine (>250MHz or so), you shouldn't need to mess with this. --dhr140: Will use the old Double-hires color algorithm that results in - exactly 140 colors across the screen, as opposed to the blending - being done by default. ---- - - X-Windows/Linux options: - ---- --15: GSport will only look for a 15-bit X-Window display. --16: GSport will only look for a 16-bit X-Window display (not tested, probably - will get red colors wrong). --24: GSport will only look for a 24-bit X-Window display. --display {machine:0.0}: Same as setting the environment variable DISPLAY. - Sends X display to {machine:0.0}. --noshm: GSport will not try to used shared memory for the X graphics display. - This will make GSport much slower on graphics-intensive tasks, - by as much as a factor of 10! By default, -noshm causes an - effective -skip of 3 which is 15 fps. You can override this - default by specifying a -skip explicitly. ---- - -* Apple IIgs Control Panel - - You can get to the Apple IIgs control panel (unless some application -has locked it out) using Ctrl-Command-Esc. - -* Details on config.txt and disk images - - The file <<>> describes the images GSport will use. Although you -can edit the file manually, in general you can use the Configuration Panel -to make all the changes you need. This information is for reference. - - GSport by default will boot s7d1 (unless you've changed that using the -Apple IIgs control panel), so you should put an image in that slot. - - GSport, by default, runs the IWM (3.5" and 5.25" disks) emulation in an -"approximate" mode, called "fast_disk_emul". In this mode, GSport -emulates the hardware "faster" than real, meaning the data the code -being emulated expects is made available much faster than on a real -Apple IIgs, providing a nice speed boost. For instance, the 5.25" -drives run 10x the real speed usually. Almost everything will work -except for nibble copiers, which don't like the data coming this fast. -(Meaning, unless you're using a nibble copier, you shouldn't run into an -issue. All games/demos/etc run fine in this mode). To make nibble -copiers work, Press F7. - - GSport can read in the ".nib" nibblized disk format, but as read-only mode. If -the emulated image is no longer ProDOS or DOS 3.3 standard, GSport will -automatically treat the image as "Not-write-through-to-Image" from then -on. This mode means GSport will continue to emulate the disk properly in -memory, but it cannot encode the changes in the standard .dsk or .nib -image format. It prints a message saying it has done so. However, -the "disk" in emulation is fully useable as long as GSport is running. A -standard reformatting will not cause an image to flip to not-write- -through-to-Image, but running things like a "drive-speed" test will cause -further changes not to propagate to the Unix file. You will need -to "eject" the image and re-insert it before writes will take effect. - - In full accuracy mode (i.e., not fast_disk_emul), 5.25" drive accesses -force GSport to run at 1MHz, and 3.5" drive accesses force GSport to run at -2.8MHz. - -* GSport Timing - - GSport supports running at four speeds: 1MHz, 2.8MHz, 8.0MHz, and Unlimited. -Pressing the middle mouse button cycles between these modes. The 1MHz -and 2.8MHz speeds force GSport to run at exactly those speeds, providing -accurate reproduction of a real Apple IIgs. - - GSport will always run at 1MHz at least. If it is unable to keep up, -it will extend the emulated time to maintain the illusion of running -at 1MHz. That is, it may do just 40 screen refreshes per real second, -instead of the usual 60. This happens rarely. - - If you force GSport to run at 1MHz, it will strive to run at exactly -1MHz (well, really 1.024MHz). If it is running faster (almost always), -it will pause briefly several times a second to maintain the 1MHz speed. It -does this in a friendly way that makes time available to other tasks. -This makes older Apple II games very playable just like a -real Apple IIgs on slow speed. GSport is running at exactly the same -speed as an Apple //e when in 1MHz mode. The 1MHz mode you set -through the right mouse button overrides the "fast" mode you can access -through the control panel. But, 3.5" accesses will "speed up" to 2.8MHz -to enable that code to operate correctly while the 3.5" disk is being -accessed. - - If you force GSport to run at 2.8MHz, GSport tries to run at exactly 2.8MHz. But -like a real unaccelerated Apple IIgs, if you set the control panel to -"slow", it will really be running at 1MHz. Accesses to 5.25" disk -automatically slow down to 1MHz, when running the IWM in accurate -mode (F7). GSport may not be able to keep up with some programs running -at 2.8MHz due to video and sound overheads on lower-end machines. If -that happens, it effectively runs slower by extending the emulated -"second", like in the 1MHz mode. You can tell this is happening -when Eff MHz in the status area falls below 2.8MHz. If GSport is running -faster than 2.8MHz, it takes small pauses to slow down, just like in -1MHz. Many Apple IIgs demos must be run at 2.8MHz. The built-in -selftests (cmd-option-ctrl-Reset) must run at 2.8MHz. Many Apple IIgs -action games are more playable at 2.8MHz. - - The 8.0MHz setting means follow the ZipGS-selected speed, but don't go -faster than 8.0MHz. If your host computer cannot keep up, then the -emulated second will be extended. You can use the ZipGS control panel, -or ZIPPY.GS on the sample disk image to set the emulated ZipGS speed to -anything from 1MHz to 8MHz in .5MHz increments. - - The Unlimited setting means run as fast as possible, whatever speed that -is (but always above 1MHz). Eff MHz gives you the current Apple IIgs -equivalent speed. Many games will be unplayable at the unlimited -setting. Setting the IIgs control panel speed to "slow" will slow down -to 1MHz. - - Sound output has an important relationship to GSport timing. GSport must -play one second of sound per second of emulated time. Normally, this -works out exactly right. But as noted above, if GSport can't maintain the -needed speed, it extends the emulated second. If it extends the second -to 1.4 real seconds, that means GSport only produces 1.0 second of sound -data every 1.4 seconds--the sound breaks up! - - In all cases, 1MHz to GSport is 1.024MHz. And 2.8MHz to GSport is 2.56MHz -(trying to approximate the slowdown causes by memory refresh on a real -Apple IIgs). It's just easier to say 1MHz and 2.8MHz. - -* GSport: What Works - - Basically, just about every Apple II program works. - - Some old Apple II 5.25" games require the old C600 ROM image, and don't work -with the default Apple IIgs ROM. This is not GSport's fault--these games -don't run on a real Apple IIgs either. GSport has built-in the old Apple II -Disk PROM which you can enable by using the IIgs control panel to set -Slot 6 to "Your Card". This allows many more Apple II games to run, and -is the recommended setting. - - The NinjaForce Megademo mostly works, but sometimes hangs in the BBS Demo. -Just skip that demo if it happens. - - The California Demo hangs at startup unless you use the IIgs control panel -to boot from slot 5, and then do a ctrl-Open_Apple-Reset to boot--doing -the above lets it work fine. This seems to be a bug in the demo. - - -* GSport bugs - - On a ROM03, GSport makes a patch to the ROM image (inside emulation, not -to the ROM file) to fix a bug in the ROM code. Both ROM01 and ROM03 -are patched to enable use of more than 8MB of memory. It then patches the ROM -self-tests to make the ROM checksum pass. But other programs, like -the Apple IIgs Diagnostic Disk, will detect a ROM checksum mismatch. -Don't worry about it. - - Sound breaks up if GSport is unable to keep up--it should only be happening -if you are trying to force GSport to run at 2.8MHz, but cannot due to -sound and video overhead. - - -* Sound emulation - - GSport supports very accurate classic Apple II sound (clicking of the -speaker using $C030) and fairly accurate Ensoniq sound. - - When GSport determines that no sound has been produced for more than -5 seconds, it turns off the sound calculation routines for a small -speedup. It describes that it has done this by saying "Pausing sound" -in the debug window. However, when sound restarts, it sometimes -"breaks-up" a little. - - If your display is not using shared memory, audio defaults to off unless -you override it with "-audio 1". - -* SCC (Serial Port) emulation - - You may use the SCC ports as either a LocalTalk networking connection -or as traditional serial ports. GSport emulates the two serial ports on -a IIgs as being two Unix sockets. Port 1 (printer port) is at socket -address 6501, and port 2 (modem) is at socket address 6502. - - By default, slot 1 is emulated using a simple receive socket, and slot 2 -emulates a Virtual Modem. - - A Virtual Modem means GSport acts as if a modem is on the serial port -allowing Apple II communcation programs to fully work, but connected to -internet-enabled sockets. GSport emulates a "Hayes- Compatible" modem, -meaning it accepts "AT" commands. You can use GSport to connect to free -telnet-BBSs, or run a BBS program on GSport and become a telnet BBS yourself. - - The two main AT commands are: ATDT for dialing out, and ATA for receiving -calls. To dial out, enter "ATDThostname", or for example, -"ATDTboycot.no-ip.com" (which is down at the moment, unfortunately). -You can also enter an IP address, like "ATDT127.0.0.1". On a Mac, to -create a telnet server to allow telnet connections (do not use over the -internet, but on a private network behind a firewall, this should be -fine), in a Terminal window type: "sudo /usr/libexec/telnetd -debug". -You must then enable telnet on port 23 through your Mac OS X Firewall in -the System Preferences->Sharing->Firewall page (just add port 23 as -open--you'll need to use the "New..." button and then select Other for -Port Name, and enter Port Number as 23). Then from GSport in a -communications program, do "ATDT127.0.0.1", and then log-in to your Mac. - - GSport also accepts incoming "calls". Start GSport, and initialize the -Virtual Modem with some AT command (ATZ resets all state, and is a useful -start). GSport now has a socket port open, 6502 for slot 2, which you -can connect to using any telnet program. In a Terminal window, then -type "telnet 127.0.0.1 6502" and you will connect to GSport. The Virtual -Modem then starts printing "RING" every 2 seconds until you answer with -"ATA". You are now connected. - - On Windows XP SP2, when GSport tries to open this incoming socket, you'll -need to enable it and click Unblock to the dialog that Windows pops up. -If you do not want incoming connections, you can block it instead. - - Once connected, you can go back to talking to the Virtual Modem by -pressing + three times quickly (+++), and then not type anything for a second. -This goes back to the AT-command mode. You can now "ATH" to hang up, or -"ATO" to go back online. - - On Windows, the socket code is very preliminary and there are problems -receiving connections. - - GSport also supports an older, simpler socket interface, which it defaults -to using on slot 1. In GSport, from APPLESOFT, if you PR#1, all output will -then be sent to socket port 6501. You can see it by connecting to the -port using telnet. In another terminal window, do: "telnet localhost 6501" -and then you will see all the output going to the "printer". - - Under APPLESOFT, you can PR#1 and IN#1. This gets input from the -socket also. You can type in the telnet window, it will be sent on -to the emulated IIgs. You may want to go to the F4 Config Panel and set -"mask off high bit" for serial port accesses to make PR#1 work a little nicer. - - You can "print" from BASIC by using something like PR#1 in GSport and -"telnet localhost 6501 | tee file.out" in another window. - - -* GSport status area - - The status area is updated once each second. It displays internal -emulation information. - ---- -Line 1: (Emulation speed info) -dcycs: number of seconds since GSport was started -sim MHz: Effective speed of GSport instruction emulation, not counting - overhead for video or sound routines. -Eff MHz: Above, but with overhead accounted for. Eff MHz is the - speed of an equivalent true Apple IIgs. This is extremely - accurate. -sec: The number of real seconds that have passed during on of GSport's - emulated seconds. Should be 1.00 +/- .01. Under 1 - means GSport is running a bit fast, over 1 means GSport is - running slow. When you force speed to 2.8MHz, if GSport - can't keep up, it extends sec, so you can see how slow - it's really going here. -vol: Apple IIgs main audio volume control, in hex, from 0-F. -pal: Super-hires palette that is unavailable. GSport needs one palette - for the standard Apple // graphics mode on an 8-bit display, - and it grabs the least-used palette. Defaults to 0xe. - You can try changing it with F10. If you change it to a - palette that is not least used, GSport changes it back in - one second. Any superhires lines using the unavailable - palette will have their colors mapped into the - closest-matching "lores" colors, to minimize visual - impact. -Limit: Prints which speed setting the user has requested: 1MHz, 2.8MHz, - or Unlimited. - -Line 2: (Video and X info) -xfer: In hex, number of bytes transferred to the X screen per second. -xred_cs: Percentage of Unix processor cycles that were spent in the X - server (or other processes on the machine). -ch_in: Percentage of Unix processor cycles spent checking for X input Events. -ref_l: Percentage of Unix processor cycles spent scanning the Apple IIgs - memory for changes to the current display screen memory, - and copying those changes to internal XImage buffers. -ref_x: Percentage of Unix processor cycles spent sending those XImage buffers - to the X server. Very similar to xred_cs. - -Line 3: (Interpreter overhead) -Ints: Number of Apple IIgs interrupts over the last second. -I/O: Rate of I/O through the fake smartport interface (hard drives). - Does not count 3.5" or 5.25" disk accesses. -BRK: Number of BRKs over the last second. -COP: Number of COPs over the last second. -Eng: Number of calls to the main instruction interpreter loop in the - last second. All "interrupts" or other special behavior - causes the main interpreter loop to exit. A high call - rate here indicates a lot of overhead. 12000-15000 is normal. - 20000+ indicates some sort of problem. -act: Some instructions are handled by the main interpreter loop returning - special status "actions" to main event loop. This is the - number over the last second. Should be low. -hev: This tracks HALT_EVENTs. GSport returns to the main loop to recalc - effective speed whenever any speed-changing I/O location is - touched. See the code, mostly in moremem.c -esi: This counts the number of superhires scan-line interrupts - taken in the last second. -edi: This counts the number of Ensoniq "special events" over the last - second. A sound that stops playing always causes a GSport - event, even if it doesn't cause a IIgs interrupt. - -Line 4: (Ensoniq DOC info) -snd1,2,3,4: Percentage of Unix processor cycles spent handling various - sound activities. snd1 is the total sum of all sound overhead. -st: Percentage of Unix cycles spent starting new Ensoniq oscillators. -est: Percentage of Unix cycles spent looking for 0 bytes in sounds. -x.yz: This final number is the average number of oscillators playing - over the last second. Up to 4.00 is low overhead, over - 20.0 is high overhead. - -Line 5: (Ensoniq DOC info) -snd_plays: Number of calls to a routine called sound_play, which - plays Ensoniq sounds. Always called at least 60 times per sec. -doc_ev: Number of Ensoniq (DOC) events in the last second. A sound - stopping is an event, but changing a parameter of a sound - while it is playing is also an event. -st_snd: Number of sounds that were started in the last second. -snd_parms: Number of times a sound parameter was changed while it - was playing. - -Line 6: (IWM info) -For each IWM device, this line displays the current track (and side for -3.5" disks). If a disk is spinning, there will be an "*" next to the -track number. Only updated once a second, so the disk arm moving may -appear to jump by several tracks. "fast_disk_emul:1" shows that GSport -is using less accurate, but faster, IWM emulation. Press F7 to toggle -to accurate disk emulation. ---- - -* X Window (Linux) interface information - - If GSport fails to start under Linux, first try the following options: - ---- -GSport -audio 0 -noshm ---- - - There may be a bug with drawing the border on x86 Linux with Shared Memory-- -add the options "-noshm -skip 0" to fix this up (but lose some graphics -performance, sorry). Try GSport without these options first, but use -this as a workaround if necessary. - - If you want the display to go somewhere different, make sure the shell -environment variable $DISPLAY is set, or give the command-line argument -"-display {foo}". - - GSport also forks off a subprocess to help handle the sound if audio is -active. If GSport crashes in a unusual way (a core dump, for instance), -you may have to manually kill the subprocess. ("ps -ef| grep GSport;kill -xxxxx"). - - Geoff Weiss adds some notes for mounting disks/floppies/CDs under -Solaris 7 through Solaris 10: - - To use a CDROM, insert the CD and let Volume Management mount it. - Edit <<>> and use the filesystem that shows up in the "df -k" - listing. The volume name of the CDROM must be included. For example, - a CDROM in an IDE drive would look like this: - ---- - /vol/dev/dsk/c1t0d0/ciscocd ---- - - A CDROM in a SCSI drive would look like this: - ---- - /vol/dev/dsk/c0t6d0/j1170_10804 ---- - - To provide low-level ADB emulation, GSport turns off Unix key repeat when the -focus is in the GSport window. It should be turned back on every time -the pointer leaves the GSport window, but sometimes it doesn't. Re-running -GSport (and then quitting it quickly) should turn key-repeat back on, -or you can type 'xset r' in another terminal window. - - Sometimes the converse is true--key repeat is "on" when the cursor is -in the GSport window. Moving the cursor out of the window and then -back in should solve it. This is sometimes noticeable when running -Wolfenstein 3D GS. - - GSport uses a private color-map for its X-window in 8-bit mode. This -may cause colormap "flash" when your cursor enters the window. - -* GSport details/troubleshooting - - GSport will work on all platforms with a 15/16-bit, 24-bit, or 32-bit -color display. GSport also supports an 8-bit display on X windows only. -On all platforms, it autodetects the color depth--no color switching -is necessary as long as you're at a supported depth. - - -* Disk Image Details - - Images loaded into slot 6 (drive 1 or 2) are assumed to be 140K -5.25" disks, which is usually have the extension ".dsk". Images -loaded into slot 5 (drive 1 or 2) are assumed to be 800K disk images -and can be in any supported imahe format (including partitions, if -you have 800K partitions). Images loaded into slot 7 (drives 1 -through 32) can be in any format and can be any size up to 4GB. - - GSport boots s7d1 by default. You can change this using the emulated IIgs -control panel, just like a real Apple IIgs. GSport emulates a IIgs with -two 5.25" drives in slot 6, two 3.5" drives in slot 5, and up to 32 -"hard drives" in slot 7. However, the current Configuration Panel only -lets you set through s7d11. ProDOS 8 can access disks up to s7d8, but GSOS -has no limit, so it's best to put HFS images past s7d8 in order to leave -more slots for ProDOS images. - - If you're trying to use a real host device (CD-ROM, or hard drive, or -floppy), you should make the permissions on the /dev/disk* files something -like (meaning, everyone should have read permission): - ---- -brw-r--r-- 1 root operator 14, 0 Jun 10 00:01 /dev/disk2 ---- - - You can do this on a Mac with: - ---- -sudo chmod 644 /dev/disk2 ---- diff --git a/.svn/pristine/3e/3e6de946cec8f601bfeb069bc843583ebc37a45a.svn-base b/.svn/pristine/3e/3e6de946cec8f601bfeb069bc843583ebc37a45a.svn-base deleted file mode 100644 index 9b86de4..0000000 --- a/.svn/pristine/3e/3e6de946cec8f601bfeb069bc843583ebc37a45a.svn-base +++ /dev/null @@ -1,53 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* END_HDR */ - -/* xdriver.c */ -int main(int argc, char **argv); -void x_dialog_create_gsport_conf(const char *str); -int x_show_alert(int is_fatal, const char *str); -void x_update_color(int col_num, int red, int green, int blue, word32 rgb); -void x_update_physical_colormap(void); -void show_xcolor_array(void); -int my_error_handler(Display *display, XErrorEvent *ev); -void xdriver_end(void); -void show_colormap(char *str, Colormap cmap, int index1, int index2, int index3); -void x_badpipe(int signum); -void dev_video_init(void); -Visual *x_try_find_visual(int depth, int screen_num, XVisualInfo **visual_list_ptr); -void x_set_mask_and_shift(word32 x_mask, word32 *mask_ptr, int *shift_left_ptr, int *shift_right_ptr); -int xhandle_shm_error(Display *display, XErrorEvent *event); -void x_get_kimage(Kimage *kimage_ptr); -int get_shm(Kimage *kimage_ptr); -void get_ximage(Kimage *kimage_ptr); -void x_redraw_status_lines(void); -void x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy, int width, int height); -void x_push_done(void); -int x_update_mouse(int raw_x, int raw_y, int button_states, int buttons_valid); -void check_input_events(void); -void x_hide_pointer(int do_hide); -void handle_keysym(XEvent *xev_in); -int x_keysym_to_a2code(int keysym, int is_up); -void x_update_modifier_state(int state); -void x_auto_repeat_on(int must); -void x_auto_repeat_off(int must); -void x_full_screen(int do_full); diff --git a/.svn/pristine/3f/3f8eaa53799f715974819caed4bcd6144763f890.svn-base b/.svn/pristine/3f/3f8eaa53799f715974819caed4bcd6144763f890.svn-base deleted file mode 100644 index a496721..0000000 --- a/.svn/pristine/3f/3f8eaa53799f715974819caed4bcd6144763f890.svn-base +++ /dev/null @@ -1,76 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -// Various ASCII codepage to unicode maps - -static const Bit16u cp437Map[256] = { -0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,0x0008,0x0009,0x000a,0x000b,0x000c,0x000d,0x000e,0x000f, -0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,0x0018,0x0019,0x001a,0x001b,0x001c,0x001d,0x001e,0x001f, -0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,0x0028,0x0029,0x002a,0x002b,0x002c,0x002d,0x002e,0x002f, -0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,0x0038,0x0039,0x003a,0x003b,0x003c,0x003d,0x003e,0x003f, -0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,0x0048,0x0049,0x004a,0x004b,0x004c,0x004d,0x004e,0x004f, -0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,0x0058,0x0059,0x005a,0x005b,0x005c,0x005d,0x005e,0x005f, -0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,0x0068,0x0069,0x006a,0x006b,0x006c,0x006d,0x006e,0x006f, -0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,0x0078,0x0079,0x007a,0x007b,0x007c,0x007d,0x007e,0x007f, -0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5, -0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,0x00ff,0x00d6,0x00dc,0x00a2,0x00a3,0x00a5,0x20a7,0x0192, -0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,0x00bf,0x2310,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb, -0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,0x2555,0x2563,0x2551,0x2557,0x255d,0x255c,0x255b,0x2510, -0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x255e,0x255f,0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x2567, -0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256b,0x256a,0x2518,0x250c,0x2588,0x2584,0x258c,0x2590,0x2580, -0x03b1,0x00df,0x0393,0x03c0,0x03a3,0x03c3,0x00b5,0x03c4,0x03a6,0x0398,0x03a9,0x03b4,0x221e,0x03c6,0x03b5,0x2229, -0x2261,0x00b1,0x2265,0x2264,0x2320,0x2321,0x00f7,0x2248,0x00b0,0x2219,0x00b7,0x221a,0x207f,0x00b2,0x25a0,0x00a0 -}; - -IWCHARMAP iwcharmap[] = { - {437, cp437Map}, - {0, NULL}, -}; - -static const Bit16u codepages[15] = {0, 437}; - -static const Bit16u intCharSets[8][10] = -{ - {0x0023, 0x0040, 0x005b, 0x005c, 0x005d, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, // USA - {0x00a3, 0x00a7, 0x00b0, 0x00e7, 0x00e9, 0x00f9, 0x00e0, 0x00f2, 0x00e8, 0x00ec}, // Italian - {0x0023, 0x0040, 0x00c6, 0x00d8, 0x00c5, 0x0060, 0x00e6, 0x00f8, 0x00e5, 0x007e}, // Danish - {0x00a3, 0x0040, 0x005b, 0x005c, 0x005d, 0x0060, 0x007b, 0x007c, 0x007d, 0x007e}, // UK - {0x0023, 0x00a7, 0x00c4, 0x00d6, 0x00dc, 0x0060, 0x00e4, 0x00f6, 0x00fc, 0x00df}, // Germany - {0x0023, 0x0040, 0x00c4, 0x00d6, 0x00c5, 0x0060, 0x00e4, 0x00f6, 0x00e5, 0x007e}, // Swedish - {0x00a3, 0x00e0, 0x00b0, 0x00e7, 0x00a7, 0x0060, 0x00e9, 0x00f9, 0x00e8, 0x00a8}, // France - {0x00a3, 0x00a7, 0x00a1, 0x00d1, 0x00bf, 0x0060, 0x00b0, 0x00f1, 0x00e7, 0x007e}, // Spanish -}; - -/* -Paper size definitions. Units are Postscript points (1/72in). -This list is based on the options available in the GS/OS -Imagewriter LQ driver. -*/ -static const Bit16u paperSizes[7][2] = -{ - {612, 792}, //US Letter 8.5 x 11in - {612, 1008}, //US Legal 8.5 x 14in - {595, 842}, //ISO A4 210 x 297mm - {499, 709}, //ISO B5 176 x 250mm - {1071, 792}, //Wide Fanfold 14 x 11in - {792, 1224}, //Ledger/Tabloid 11 x 17in - {842, 1191}, // ISO A3 297 x 420mm -}; diff --git a/.svn/pristine/41/41f097fa2f4b78c882d8f039b1c849a5de1663ab.svn-base b/.svn/pristine/41/41f097fa2f4b78c882d8f039b1c849a5de1663ab.svn-base deleted file mode 100644 index 1e612e0d21cddc3d735e7928d8f6fc5d06c6be9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74738 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�uEWE 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 diff --git a/.svn/pristine/42/42ded6ec321fa4a9f2605ff43dcf468d1c016ffe.svn-base b/.svn/pristine/42/42ded6ec321fa4a9f2605ff43dcf468d1c016ffe.svn-base deleted file mode 100644 index 4e405fb..0000000 --- a/.svn/pristine/42/42ded6ec321fa4a9f2605ff43dcf468d1c016ffe.svn-base +++ /dev/null @@ -1,279 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - - .word inst00_SYM+1 /* brk */ - .word inst01_SYM+1 /* ORA (Dloc,X) */ - .word inst02_SYM+1 /* COP */ - .word inst03_SYM+1 /* ORA Disp8,S */ - .word inst04_SYM+1 /* TSB Dloc */ - .word inst05_SYM+1 /* ORA Dloc */ - .word inst06_SYM+1 /* ASL Dloc */ - .word inst07_SYM+1 /* ORA [Dloc] */ - .word inst08_SYM+0 /* PHP */ - .word inst09_SYM+4 /* ORA #imm */ - .word inst0a_SYM+0 /* ASL a */ - .word inst0b_SYM+0 /* PHD */ - .word inst0c_SYM+2 /* TSB abs */ - .word inst0d_SYM+2 /* ORA abs */ - .word inst0e_SYM+2 /* ASL abs */ - .word inst0f_SYM+3 /* ORA long */ - .word inst10_SYM+1 /* BPL disp8 */ - .word inst11_SYM+1 /* ORA (),y */ - .word inst12_SYM+1 /* ORA () */ - .word inst13_SYM+1 /* ORA (disp8,s),y */ - .word inst14_SYM+1 /* TRB Dloc */ - .word inst15_SYM+1 /* ORA Dloc,x */ - .word inst16_SYM+1 /* ASL Dloc,x */ - .word inst17_SYM+1 /* ORA [],y */ - .word inst18_SYM+0 /* clc */ - .word inst19_SYM+2 /* ORA abs,y */ - .word inst1a_SYM+0 /* INC a */ - .word inst1b_SYM+0 /* TCS */ - .word inst1c_SYM+2 /* TRB Abs */ - .word inst1d_SYM+2 /* ORA Abs,X */ - .word inst1e_SYM+2 /* ASL abs,x */ - .word inst1f_SYM+3 /* ORA Long,x */ - .word inst20_SYM+2 /* JSR abs */ - .word inst21_SYM+1 /* AND (Dloc,X) */ - .word inst22_SYM+3 /* JSL Abslong */ - .word inst23_SYM+1 /* AND Disp8,S */ - .word inst24_SYM+1 /* BIT Dloc */ - .word inst25_SYM+1 /* AND Dloc */ - .word inst26_SYM+1 /* ROL Dloc */ - .word inst27_SYM+1 /* AND [Dloc] */ - .word inst28_SYM+0 /* PLP */ - .word inst29_SYM+4 /* AND #imm */ - .word inst2a_SYM+0 /* ROL a */ - .word inst2b_SYM+0 /* PLD */ - .word inst2c_SYM+2 /* BIT abs */ - .word inst2d_SYM+2 /* AND abs */ - .word inst2e_SYM+2 /* ROL abs */ - .word inst2f_SYM+3 /* AND long */ - .word inst30_SYM+1 /* BMI disp8 */ - .word inst31_SYM+1 /* AND (),y */ - .word inst32_SYM+1 /* AND () */ - .word inst33_SYM+1 /* AND (disp8,s),y */ - .word inst34_SYM+1 /* BIT Dloc,X */ - .word inst35_SYM+1 /* AND Dloc,x */ - .word inst36_SYM+1 /* ROL Dloc,x */ - .word inst37_SYM+1 /* AND [],y */ - .word inst38_SYM+0 /* SEC */ - .word inst39_SYM+2 /* AND abs,y */ - .word inst3a_SYM+0 /* DEC a */ - .word inst3b_SYM+0 /* TSC */ - .word inst3c_SYM+2 /* BIT Abs,X */ - .word inst3d_SYM+2 /* AND Abs,X */ - .word inst3e_SYM+2 /* ROL abs,x */ - .word inst3f_SYM+3 /* AND Long,x */ - .word inst40_SYM+0 /* RTI */ - .word inst41_SYM+1 /* EOR (Dloc,X) */ - .word inst42_SYM+1 /* WDM */ - .word inst43_SYM+1 /* EOR Disp8,S */ - .word inst44_SYM+2 /* MVP I,J */ - .word inst45_SYM+1 /* EOR Dloc */ - .word inst46_SYM+1 /* LSR Dloc */ - .word inst47_SYM+1 /* EOR [Dloc] */ - .word inst48_SYM+0 /* PHA */ - .word inst49_SYM+4 /* EOR #imm */ - .word inst4a_SYM+0 /* LSR a */ - .word inst4b_SYM+0 /* PHK */ - .word inst4c_SYM+2 /* JMP abs */ - .word inst4d_SYM+2 /* EOR abs */ - .word inst4e_SYM+2 /* LSR abs */ - .word inst4f_SYM+3 /* EOR long */ - .word inst50_SYM+1 /* BVC disp8 */ - .word inst51_SYM+1 /* EOR (),y */ - .word inst52_SYM+1 /* EOR () */ - .word inst53_SYM+1 /* EOR (disp8,s),y */ - .word inst54_SYM+2 /* MVN I,J */ - .word inst55_SYM+1 /* EOR Dloc,x */ - .word inst56_SYM+1 /* LSR Dloc,x */ - .word inst57_SYM+1 /* EOR [],y */ - .word inst58_SYM+0 /* CLI */ - .word inst59_SYM+2 /* EOR abs,y */ - .word inst5a_SYM+0 /* PHY */ - .word inst5b_SYM+0 /* TCD */ - .word inst5c_SYM+3 /* JMP Long */ - .word inst5d_SYM+2 /* EOR Abs,X */ - .word inst5e_SYM+2 /* LSR abs,x */ - .word inst5f_SYM+3 /* EOR Long,x */ - .word inst60_SYM+0 /* RTS */ - .word inst61_SYM+1 /* ADC (Dloc,X) */ - .word inst62_SYM+2 /* PER DISP16 */ - .word inst63_SYM+1 /* ADC Disp8,S */ - .word inst64_SYM+1 /* STZ Dloc */ - .word inst65_SYM+1 /* ADC Dloc */ - .word inst66_SYM+1 /* ROR Dloc */ - .word inst67_SYM+1 /* ADC [Dloc] */ - .word inst68_SYM+0 /* PLA */ - .word inst69_SYM+4 /* ADC #imm */ - .word inst6a_SYM+0 /* ROR a */ - .word inst6b_SYM+0 /* RTL */ - .word inst6c_SYM+2 /* JMP (abs) */ - .word inst6d_SYM+2 /* ADC abs */ - .word inst6e_SYM+2 /* ROR abs */ - .word inst6f_SYM+3 /* ADC long */ - .word inst70_SYM+1 /* BVS disp8 */ - .word inst71_SYM+1 /* ADC (),y */ - .word inst72_SYM+1 /* ADC () */ - .word inst73_SYM+1 /* ADC (disp8,s),y */ - .word inst74_SYM+1 /* STZ Dloc,X */ - .word inst75_SYM+1 /* ADC Dloc,x */ - .word inst76_SYM+1 /* ROR Dloc,x */ - .word inst77_SYM+1 /* ADC [],y */ - .word inst78_SYM+0 /* SEI */ - .word inst79_SYM+2 /* ADC abs,y */ - .word inst7a_SYM+0 /* PLY */ - .word inst7b_SYM+0 /* TDC */ - .word inst7c_SYM+2 /* JMP (abs,x) */ - .word inst7d_SYM+2 /* ADC Abs,X */ - .word inst7e_SYM+2 /* ROR abs,x */ - .word inst7f_SYM+3 /* ADC Long,x */ - .word inst80_SYM+1 /* BRA Disp8 */ - .word inst81_SYM+1 /* STA (Dloc,X) */ - .word inst82_SYM+2 /* BRL DISP16 */ - .word inst83_SYM+1 /* STA Disp8,S */ - .word inst84_SYM+1 /* STY Dloc */ - .word inst85_SYM+1 /* STA Dloc */ - .word inst86_SYM+1 /* STX Dloc */ - .word inst87_SYM+1 /* STA [Dloc] */ - .word inst88_SYM+0 /* DEY */ - .word inst89_SYM+4 /* BIT #imm */ - .word inst8a_SYM+0 /* TXA */ - .word inst8b_SYM+0 /* PHB */ - .word inst8c_SYM+2 /* STY abs */ - .word inst8d_SYM+2 /* STA abs */ - .word inst8e_SYM+2 /* STX abs */ - .word inst8f_SYM+3 /* STA long */ - .word inst90_SYM+1 /* BCC disp8 */ - .word inst91_SYM+1 /* STA (),y */ - .word inst92_SYM+1 /* STA () */ - .word inst93_SYM+1 /* STA (disp8,s),y */ - .word inst94_SYM+1 /* STY Dloc,X */ - .word inst95_SYM+1 /* STA Dloc,x */ - .word inst96_SYM+1 /* STX Dloc,y */ - .word inst97_SYM+1 /* STA [],y */ - .word inst98_SYM+0 /* TYA */ - .word inst99_SYM+2 /* STA abs,y */ - .word inst9a_SYM+0 /* TXS */ - .word inst9b_SYM+0 /* TXY */ - .word inst9c_SYM+2 /* STX abs */ - .word inst9d_SYM+2 /* STA Abs,X */ - .word inst9e_SYM+2 /* STZ abs,x */ - .word inst9f_SYM+3 /* STA Long,x */ - .word insta0_SYM+5 /* LDY #imm */ - .word insta1_SYM+1 /* LDA (Dloc,X) */ - .word insta2_SYM+5 /* LDX #imm */ - .word insta3_SYM+1 /* LDA Disp8,S */ - .word insta4_SYM+1 /* LDY Dloc */ - .word insta5_SYM+1 /* LDA Dloc */ - .word insta6_SYM+1 /* LDX Dloc */ - .word insta7_SYM+1 /* LDA [Dloc] */ - .word insta8_SYM+0 /* TAY */ - .word insta9_SYM+4 /* LDA #imm */ - .word instaa_SYM+0 /* TAX */ - .word instab_SYM+0 /* PLB */ - .word instac_SYM+2 /* LDY abs */ - .word instad_SYM+2 /* LDA abs */ - .word instae_SYM+2 /* LDX abs */ - .word instaf_SYM+3 /* LDA long */ - .word instb0_SYM+1 /* BCS disp8 */ - .word instb1_SYM+1 /* LDA (),y */ - .word instb2_SYM+1 /* LDA () */ - .word instb3_SYM+1 /* LDA (disp8,s),y */ - .word instb4_SYM+1 /* LDY Dloc,X */ - .word instb5_SYM+1 /* LDA Dloc,x */ - .word instb6_SYM+1 /* LDX Dloc,y */ - .word instb7_SYM+1 /* LDA [],y */ - .word instb8_SYM+0 /* CLV */ - .word instb9_SYM+2 /* LDA abs,y */ - .word instba_SYM+0 /* TSX */ - .word instbb_SYM+0 /* TYX */ - .word instbc_SYM+2 /* LDY abs,x */ - .word instbd_SYM+2 /* LDA Abs,X */ - .word instbe_SYM+2 /* LDX abs,y */ - .word instbf_SYM+3 /* LDA Long,x */ - .word instc0_SYM+5 /* CPY #Imm */ - .word instc1_SYM+1 /* CMP (Dloc,X) */ - .word instc2_SYM+1 /* REP #8bit */ - .word instc3_SYM+1 /* CMP Disp8,S */ - .word instc4_SYM+1 /* CPY Dloc */ - .word instc5_SYM+1 /* CMP Dloc */ - .word instc6_SYM+1 /* DEC Dloc */ - .word instc7_SYM+1 /* CMP [Dloc] */ - .word instc8_SYM+0 /* INY */ - .word instc9_SYM+4 /* CMP #imm */ - .word instca_SYM+0 /* DEX */ - .word instcb_SYM+0 /* WAI */ - .word instcc_SYM+2 /* CPY abs */ - .word instcd_SYM+2 /* CMP abs */ - .word instce_SYM+2 /* DEC abs */ - .word instcf_SYM+3 /* CMP long */ - .word instd0_SYM+1 /* BNE disp8 */ - .word instd1_SYM+1 /* CMP (),y */ - .word instd2_SYM+1 /* CMP () */ - .word instd3_SYM+1 /* CMP (disp8,s),y */ - .word instd4_SYM+1 /* PEI Dloc */ - .word instd5_SYM+1 /* CMP Dloc,x */ - .word instd6_SYM+1 /* DEC Dloc,x */ - .word instd7_SYM+1 /* CMP [],y */ - .word instd8_SYM+0 /* CLD */ - .word instd9_SYM+2 /* CMP abs,y */ - .word instda_SYM+0 /* PHX */ - .word instdb_SYM+0 /* STP */ - .word instdc_SYM+2 /* JML (Abs) */ - .word instdd_SYM+2 /* CMP Abs,X */ - .word instde_SYM+2 /* DEC abs,x */ - .word instdf_SYM+3 /* CMP Long,x */ - .word inste0_SYM+5 /* CPX #Imm */ - .word inste1_SYM+1 /* SBC (Dloc,X) */ - .word inste2_SYM+1 /* SEP #8bit */ - .word inste3_SYM+1 /* SBC Disp8,S */ - .word inste4_SYM+1 /* CPX Dloc */ - .word inste5_SYM+1 /* SBC Dloc */ - .word inste6_SYM+1 /* INC Dloc */ - .word inste7_SYM+1 /* SBC [Dloc] */ - .word inste8_SYM+0 /* INX */ - .word inste9_SYM+4 /* SBC #imm */ - .word instea_SYM+0 /* NOP */ - .word insteb_SYM+0 /* XBA */ - .word instec_SYM+2 /* CPX abs */ - .word insted_SYM+2 /* SBC abs */ - .word instee_SYM+2 /* INC abs */ - .word instef_SYM+3 /* SBC long */ - .word instf0_SYM+1 /* BEQ disp8 */ - .word instf1_SYM+1 /* SBC (),y */ - .word instf2_SYM+1 /* SBC () */ - .word instf3_SYM+1 /* SBC (disp8,s),y */ - .word instf4_SYM+2 /* PEA Imm */ - .word instf5_SYM+1 /* SBC Dloc,x */ - .word instf6_SYM+1 /* INC Dloc,x */ - .word instf7_SYM+1 /* SBC [],y */ - .word instf8_SYM+0 /* SED */ - .word instf9_SYM+2 /* SBC abs,y */ - .word instfa_SYM+0 /* PLX */ - .word instfb_SYM+0 /* XCE */ - .word instfc_SYM+2 /* JSR (Abs,x) */ - .word instfd_SYM+2 /* SBC Abs,X */ - .word instfe_SYM+2 /* INC abs,x */ - .word instff_SYM+3 /* SBC Long,x */ - - .block 4*16 diff --git a/.svn/pristine/46/4659fb6ef67724bcb76b861ec0988035086fe7a9.svn-base b/.svn/pristine/46/4659fb6ef67724bcb76b861ec0988035086fe7a9.svn-base deleted file mode 100644 index 04e33e4d884230ddc12f0784db6b3da4f85b6fa3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9867 zcmeHtX*`te`!{n>MH{BvC2spzM{X(+hKjLF5{Y}PcQGhsn;XN7twl!mWn_uMR1$7u znHV!v$Uf0x-^rF`Xcqf(jealw|K2~J=Xvpa;p4il^SrKeneTBN-{X6nge#X#4(&g& zpO264keR8GH6I^HlaG)8t^f#l5)e!O2K?j4SesnnE9sP&1#Z9|=Pl0j@s%YU*u1_6 zxEJ&_MPc~(Aph|G_=nx4uzY+9(q=~IZLrP@Pp-$$youX84XfVyqx{j2jj?^k=2j52 zz0cFzZcuDs?(HeA5I3NsIu?Ux}%&+h+OfSpK|SJ{M^)&JB^+E6p!xY6yaG z!$GadJx06NN=Ak#6`O-X=DROGg()L{ejz%7Z1eJXPO|*&J1A@7?!{AKestj#4LztC z@R`I2ash1j!cYd(YW?g6);t*)T$&$khT6S|yZ}xmU1(fRmERq=HJSYL;(>q?@?G~JCv<-fcOR)8c@(uSc#j%pU!~l>mVvtkU8xquRWGsF z1vQI0?=Nl%oFadH0ha#=8O3P(I*eb&@zc%}*vh*2l+sX~PNjK2cWiGK4sm}yH3Hlz z40LiLhCEvq?n!#$SafWm+R})jyQg7)kCm)5D(typ3 zCwER)#IjD5k6YQ z46U#n5sD4b^h{+^{gRB~^Le4T3lu1Prd!J)SK6L5Qb1G)FjVJ}E5z;f z^Ly{!>y0&DEPyeIvYJh3`t-u3MLjPysC48lFgKP}^}~g(mednEId#0+)!5--I$Jq! zqV#;Lb;bUEq#?)(gb$=CAQkI;6Dzef;SD2cP|4|A z6~NZhO(Pg5(aLy-n8S`}LNwHJMB11bef7>yfPySR1a&4@?I*yaAy zz+-1JE&$6h1o4JRh5pZ$jm!G(JX}hf8~y_GJdgbgP+%&9Ccm~U>ardu@er!?E7+rR zlq-1P^_7Y=LS=5O;^EMrbCUL-cM+yo?oM}97y!2HWrr-SiJaUQQ-k)jFG0cL8#*=) z={!SNJ`Zv`{Lly4P)Ppq)?34kH``fo^xc9s>!njY+|^?{+KA-A`HlhWkm(xUSjzmG zWoe`igYux8>KR1dybgiQ+aT2#;VdTQrKIr++G|m@C#q)l0~QssyzMwDd&QK< z?f9nbs_28nteAxzrC%{Q9>W{fPEZLM9@ZLP_w*6{whhsF!S@)j8F0kY`!JULb(kn- zN7Y4D#RiOCqO;0MG#q&=y9sWFS?p9bkjBMI$f;jN&k=cBa3T^yKDy=p-X-6!O>6J= zN}S>CJ*>)1>c6~U-hrEqEb7#hkq>kmKJs={0t!sYR4J%eqWIrOyjgRP@@q~D4edU| zzq)wPmbY*#kXz?N^sMLJlM1`P$uR&6Csm#o0+WDn;k!Rc<$oN}vdc!WeU!_%p#4v@ z2}74LpX4l+kpf4~7sdf|;1~P>c(ItDmq%rv!bDY~UMTM3>KA|=v^4v_<6BG8NYl9i zK9*86gZ1r-LDs{uaJ>6w`Jzt9$@$6yKKU~-9^VJ%vQZRDYfms8$@o%tIfAqEVcVvN zY;^z6etN5QYHzmw2obX#Y7R;hT;AR(fUy>jOyHW<)e1z7Wg&y^J;f*cGdV5R9kJZ1 zSlcT&!Ox2I8!o8vSIqP&=OnKKT4G%w~sp|!)!-K;lxKyMJ57z5a zllZt}J+>`bt!B{zC7WHD#HUyvH1!az9CA-=E zw{`FcF=WIYTfS1u4Mh(n*S?J1FV3(*3gRE|jm+lO0!VgEa=3XFU8pF7zv@@$P?*Xv zA9Vn853d7@q-=4o9o!)rdaErQ+Y_d0Pgqq$#n82G`+Z-=Yn!^udG@6P>S^ufl2AgnOCI&#M&Wf5ud&kV2RZ9ftFw*eXZH?g;(DO8 zq%KAIN4GASw)X?RGlH}Bfex&r%T}7L815fSQ6S)lqVQ)NUC`g3ok;nPXYJ?;F2lo7 zMC{XIX=6(c#>?2}IOb50_33vq&|Ka=kfewBb?Wcar_KuC%|QVI%fTerR)E9!#fN{DoV`!}-0Gp4T|2ZU z;$fVO6H!6V>s}BVf!1?w=D~~^&#VTmu0IxM_Mv|4g{ogq9l)MW@IhuHs-V?hL^L<) zkdA1(M2FCZ8aZBJni?8BL+9&;LjBgHx*lHbUH{$}r38p5J z0`aT=e)DY~df24-{^2*r_F`#211fe!Vind>{GiQa?|arD&T8S69K#+dmf(mg8TL?T?0b6Lq&Q$MPPZ2coK=*H#67~)lhGOVTeDx?0omhZS9;5vo;M9 zO`R#Qz#3e;bCZ;Ada~biRF8l7OKW$P4^pCre3~=2!l`X=m?f=FG>JkD1(r*;3t;+7 zs*H4liBB`mfbX?FE-6C@L>tQ$eB-UomU&Bl_N-Msn>|d&R$)M31Fg?~FMZx9J zXRrt1K81hGNKnWPq|2ytI+~71P#>6^ttXG{6P$P1b)_l*Yf;$gcACmNk;TK>5`-&C z{v1Y;E^Q7JO_NhlWz*k&cY3fa;}UC%SSadbUd0dTDFo-_Pg)|#L2BD)H2P(_O61tJ z^U-JTG)pR`!Z#t7DA_#mjAx_v) z)ygg>pI#G5?^G?*F4iK%p0wMAyLV7SFa3Qo zzxs0ia{aLsGPcXgE0J?mXfvQT*~Hz&CH8}vUjiCx(yIn5r!bMhSGw4++c zjY|UG7f7BDg|{1`+FBlqa>~7OA=_zpv>zIwV!X4IuK4@k7B8ZhpSF+3LQ7}LF>L%P z6J=&(o0{O7Ghz~6QFJk{^6{fM8@Eo(>21F~b~mI&84gc4zZEu0e9_Gr53nItZCTVh z6_?KswoX_Pqm|r+o>afJ$je-9-*_moZF^&MBKG4bC0iphu(K5gk zkk{c5#C+YrEmbkUC_NKzGsKs{i01h`oqp=LOwsCZU=e%olrCh~;hUK0t&6=7krN;O zr08l7lsc?D$%Ca))tC#dZI`Mf`X({r2_MX0gpR?zIpWT|msOFLpaNIIkL3N36%5t2 z#IBBebZj%lt_GG=6)l^iYS714jq7|?`Wk{Z{;tFL>aVAe_eJp_P9yQs^ki`M9zsTg zR!^=z!_vo!p(@679{-@8JW-CA&^;=^`;p$tGCcAjmDu^j%2PgO$J z24)+GEO{y_At&oAE`-&3<#iulAgcGTN&<$%x{R2(Dthyi=P8lg+Q_^j3}cd5Z|76~ z&EX#!;ts1vCvmVE%V@l)rKUq*G*%a-nB8B{zgc^ZV|E;2=TiMpq%Uips19!|%HK7m zp0D$97osNCRcNbl7bny$+~2g5Zl99*i(yRrb{5{|of$f~eWY?y;&4lMkkyH5fH#SP z@XJ%^2GU9OsLY(;fK*aT9l@@A83BzPxfCHp*E0tkyRp8^&UMuIRDyGj;G6G<5*Ko7 zqt1!_c0K3%MdwH8*GR5MX;HXfHo))+R7@NXF?i>z8Kp#WVq*-X|Mg-?8Pr9tI^PJ{kmVnq zZndr+ux?T{0itZ}sDo#yVYZ`}zP-Nb-|>7)t37UnhrP0oaYQ|1y4@6w9gJwsf8v!i zypYmRugvWCd*v3;DIek>TSPgCGdYxVhGB{n{48(i-fubCYR%;kR}g|p;1$hN{i(Eo z4{|tsk%JURwFm>6_lqY5!CZrB4T7G^k*5H@YyHoAldeRJs?>Owr_POJyZJk%;VY1( z5ALwI?Cu)$kLSkP9DK5KjC+G>v)Z)(4`o3c>0KAxKw(N~YMQ4)-w{WMSc@LDG^n-i z9p1J>-3Zxq4(N{;`kcBIW=%433Ek<~-ero77b7y@!TzIX#fKLi=iW@MTLeM3J&P;T z>m9(@T*YA^9dQmr69z-4m6*pK13?0^gi#AW6?uXDIp$Nyb#BJiBvSA26XD)@HQZ=& zmmXa(X~1mnk;RmtKRA5@e^?0>6Z8LGyd_fxMTDuVFrA!Gb+KQ=AATQq?({NUe3gsBM>rS+-SfAFX0o zCM2=`96wz>m9)I1R>?USpOvolUeTa9Vd;(AX%3>8e7fXaOUJo9VnU^uxC@ibG-JH7C9m3SULAK30u;z}?!-#jLY_$KYcM&eP zGK2h_qVa|ZCJQb<*%(X5;$z)ovGI?OI-q1z!)|vbPBULSEOvP6OX{0S-vf}6jwb9| zZ}^P6_5F@_@hQbYTA8uKt$2@r(wx{h)V1bN9|To<-UJA=%WylQLfr+whJp$lElIQo z4X9jx}ur67*mYzEcS~Hsa7K9`6>N;&8cQ3`{HVhJxq=yj z(dDY-0$}KylU_dAC@SpqqnDvS*jjYEq>@L7Gsv58Ra3lOLw4gp|u@7=^N(5lP$@PdN=naV7a&IT) zon{Q=qcg}uV3|e)xc2co;r`zd|j`8}06Lxr~&K~{c5^3T*^EIw{ zW(hI$_L$%_f6&-Iks!t{YOrJ(Dw$R2|f@s0btZ1QGsQhU{j)sp~l|btPA@n0*KP- zi^D39=Xr_&AhVPvLbqGJdJg2WSxyLXW^G{caEa-O=-xzuptV_=W5>&Fhv1}uN*-;) zzX<0-C8b8h?h)kTs{|OTbJZTDum#!RZ==Z~#c*h%MFgXrhdOhu&EA1Q`w1&LB@rh# zS!NtgkH;wx#ZYxwU6xkMjKrm8WE=j)uGcFJ*szke<2zES8(jRACe%?6jH2oE3l zTXO_(;Fn^h;Je$={4!2UO8t0nMzvP}y3hm%(-HdvQe4P}yhKD;Rs(TA=dXO>{1;ss zsQ~6QTIPq&|K9PWwqP7@kKDeUpf=rtSsIFK(ny^1l8YQMj9BtQ7dF)S5E8m#*;Dx$ zBVVuwRFGn4zPtdx5*a-uV@2#gbq0v#GlQX?cy_LMUl(`Uwy*J&Pk?_uREvtO3d1g1 z^;>Ot#`hz6X-oVS;{G8b_oIAi7q)GstKA355cp792Y^&r4Z7?E0Pf}z-xF$I;_KesRib7fe`zTZ^3pKEGS;#c5`I3_qc6l+9p5w$gIuF7zKJx=9-PirieDWU zj|ejT?16Zgc&gXD31fp_iRM#rDr$ z1-ZxoX`u{ieZTeuAY}oJ^&qIVd(x$*O(_b_b8e=icFmArW-=!%S59G}7Z+C*l;$ii z<`QK3wNI<|B3Uk&J(f}FXbk!S*fpEy+-BVH#beQC7$xL=>(5cZv{tjXhI29=y?r6S z{5${fj(QtJ=m)`n@gD<!# z5|>K+-C3gW5lH{iO8d(sc(^$5rP3CNkYCTg3aZIHaN03%Tvn_J)oW-vX5xzu)S4PN z#7Zx@?~L1#EESJiy_Ea?6+KKIKsu0qD{tbE9!-aoWy;2ip97+BtwTksVJcs)9fAD$ zz}GB!l zGxYFPZJJur<)22Qw3`AA#HZhZk-7rboZ^HA1KMg~sU*=VAY0S{;pwC{>n6S_Id#|3 zc$bxSQP{n1NBLk1X&CwE@M}G}VVQa2B;v0Z^z3IuNG~#C=^ymX0Sfdm&F*`E(EObO zSh1Auo6p5PNFfM!KR?Zb({!+XUwiD6nsjpJC*YYZ$84&1 zz`~s9oH+U=4IC&kx>dSM+!S5s8z;~XE=be~DU*JCBY@9M1r+AgnMN!Rh!w9c>bVF=)XHtfunqvdL-_eJ^!>LA@Zc zXUwtiL()=EQG}#&6IIJ92Uobr`W@PWNeKDs45)FBVI7C^hp%?+Y+s_bPhl0R{HU>V zBUwGpKH1J4Ib%#O<;YUuQQYR#0MAt5=ghy^_FelPWT%KS3Pv#Csv3zNcDKLzyP&!} zpv!>pV8+daF@*;pD;_&-CiiwW?Pyif>X@9OgoU*^ytaRCElbDJU)%Fejt1wIS+j|q zA~>%avn?;T7&n<02Ua;UinBniBlEaQ!NbQxT+@aAKob(}h$=#VxTe%UHWWmS=LeQ# z;}iWPCf&8*8%Kl&pU3GXs7#wVj~h=o7Ir!Av=7bMem#fkNYf6r1&M*Vl9sh<#`~@w z1xw{i>=QW%luTmSw-WwhOJ+R!^g=%Id<0{RmqEz_Ubl5!L9uiw4<(F~)S+a%HoK(8 zt;RH&DKUFB{c|7r;;}K-_6z{C*hhRL=UcmXxK#}x_wwkOCVm zUzP~>UJF9sB<+Xej_}hxKA{P<%Y?jycrDEvZ!8a|*VW7#Yi}>*%Bi;|4(bi3k(8!& zKw<$doL~ix&J8#eu&~-9p1MI|S-tZ?Ix3`*st?uYw!Yk`v7|=^KespM(TpNqoOckY z(-3ZBryWQVw*EddxB1-IR#9uB$6{eYB~#?4`FP4Cq!QH<3cKLSaIDW0yQvP;Dw@Gu z0t#imQ}sD!hU?6N4WG1x=CctoRgvt#oak zen#RscL$(b>rW{ERCSw*J)~B7->d(%Wv_vSC$DxfY73Op{#R+sZ@%wCEl(r%{k7$- zZvM zv#Y-(;qA1>T5o#VZ9ohx4|_Z|vXgN-wgC0Ew9PGIJ$`?VRCds4)qdo_yjZ1%5$R-R z!0B%~=3Up`(8xb}?htO{ZoC)Q=ohZ7uwt-W7tOlF6uPc8D-qZbiXx!ox+P40d9w7T z_7(&*`Pg*RH+h!)6^T*^zw6abFwaYY2hO;Qq?su2Gn`_wE3+|J@>55 zQB^LJXNnuk+j>p1ui0o5JaTlIS{~(OInBASFyv6f^~*T$74;#aTN zGap;3a@)@K`-zuIh^|8$pI4@Y@akCj1k`uV3S}lJE~YpjOfDhBjq~H0{#|rI$=*#W)BSeq zEazy8AB_{(_gi$ID%C!6V+mh+t=yn{7>aP=zz91I0%>hh@J{dy_X%FZr>jR408a}BP<)ic$FK;^&zGCnio M%SI&^{=WNv0L0d)DgXcg diff --git a/.svn/pristine/48/48cb6ded1d607df9ff042ddf7054584e6f8c1a26.svn-base b/.svn/pristine/48/48cb6ded1d607df9ff042ddf7054584e6f8c1a26.svn-base deleted file mode 100644 index 654f37b..0000000 --- a/.svn/pristine/48/48cb6ded1d607df9ff042ddf7054584e6f8c1a26.svn-base +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 1999 WIDE Project. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the project nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#ifndef _BITTYPES_H -#define _BITTYPES_H - -#ifndef HAVE_U_INT8_T - -#if SIZEOF_CHAR == 1 -typedef unsigned char u_int8_t; -typedef signed char int8_t; -#elif SIZEOF_INT == 1 -typedef unsigned int u_int8_t; -typedef signed int int8_t; -#else /* XXX */ -#error "there's no appropriate type for u_int8_t" -#endif -#define HAVE_U_INT8_T 1 -#define HAVE_INT8_T 1 - -#endif /* HAVE_U_INT8_T */ - -#ifndef HAVE_U_INT16_T - -#if SIZEOF_SHORT == 2 -typedef unsigned short u_int16_t; -typedef signed short int16_t; -#elif SIZEOF_INT == 2 -typedef unsigned int u_int16_t; -typedef signed int int16_t; -#elif SIZEOF_CHAR == 2 -typedef unsigned char u_int16_t; -typedef signed char int16_t; -#else /* XXX */ -#error "there's no appropriate type for u_int16_t" -#endif -#define HAVE_U_INT16_T 1 -#define HAVE_INT16_T 1 - -#endif /* HAVE_U_INT16_T */ - -#ifndef HAVE_U_INT32_T - -#if SIZEOF_INT == 4 -typedef unsigned int u_int32_t; -typedef signed int int32_t; -#elif SIZEOF_LONG == 4 -typedef unsigned long u_int32_t; -typedef signed long int32_t; -#elif SIZEOF_SHORT == 4 -typedef unsigned short u_int32_t; -typedef signed short int32_t; -#else /* XXX */ -#error "there's no appropriate type for u_int32_t" -#endif -#define HAVE_U_INT32_T 1 -#define HAVE_INT32_T 1 - -#endif /* HAVE_U_INT32_T */ - -#endif /* _BITTYPES_H */ diff --git a/.svn/pristine/4b/4b5f1360fe1fd10e5a8321f46c4f59394282008b.svn-base b/.svn/pristine/4b/4b5f1360fe1fd10e5a8321f46c4f59394282008b.svn-base deleted file mode 100644 index a8a6e1a..0000000 --- a/.svn/pristine/4b/4b5f1360fe1fd10e5a8321f46c4f59394282008b.svn-base +++ /dev/null @@ -1,17 +0,0 @@ -TARGET = gsportx -OBJECTS = $(OBJECTS1) $(TFEOBJ) $(ATOBJ) $(PCAPOBJ) xdriver.o -CC = gcc -CCOPTS = -O2 -Wall -fomit-frame-pointer -std=gnu99 -march=armv6 -OPTS = -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DTOGGLE_STATUS -DHAVE_ATBRIDGE -SUFFIX = -NAME = gsportx -LDFLAGS = -LDOPTS = -LD = g++ -EXTRA_LIBS = -lXext -EXTRA_SPECIALS = - -AS = cc -PERL = perl - -XOPTS = -I/usr/X11R6/include diff --git a/.svn/pristine/4c/4c0dda058c6161d1cb345a63988572e7abcc9722.svn-base b/.svn/pristine/4c/4c0dda058c6161d1cb345a63988572e7abcc9722.svn-base deleted file mode 100644 index 3ecf9dd..0000000 --- a/.svn/pristine/4c/4c0dda058c6161d1cb345a63988572e7abcc9722.svn-base +++ /dev/null @@ -1,18 +0,0 @@ -# -# There is some very useful information on compilation on the Mac, where we need -# to take a lot of things into account (bitness, OS level, endianness), here: -# http://www.kyngchaos.com/macosx/notes/universal64 -# -CC = /usr/bin/g++-4.0 -ARCH = -arch i386 -arch ppc -SDK = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -isysroot /Developer/SDKs/MacOSX10.5.sdk -TARGET = gsportmac -OBJECTS = $(OBJECTS1) scc_macdriver.o macsnd_driver.o macdriver_generic.o macdriver_console.o -CCOPTS = -O2 -DMAC $(ARCH) $(SDK) -CPPOPTS = $(ARCH) $(SDK) -SUFFIX = -NAME = gsportmac - -XOPTS = -Wall -fpascal-strings -mdynamic-no-pic -XLIBS = -LDOPTS = -I. -prebind -framework Carbon -framework Quicktime diff --git a/.svn/pristine/4c/4c1941c1ef4ce4aefab3de8c8a1085c7dd23ee77.svn-base b/.svn/pristine/4c/4c1941c1ef4ce4aefab3de8c8a1085c7dd23ee77.svn-base deleted file mode 100644 index 78bc3a9..0000000 --- a/.svn/pristine/4c/4c1941c1ef4ce4aefab3de8c8a1085c7dd23ee77.svn-base +++ /dev/null @@ -1,66 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defcomm.h" - -link .reg %r2 -acc .reg %r3 -xreg .reg %r4 -yreg .reg %r5 -stack .reg %r6 -dbank .reg %r7 -direct .reg %r8 -neg .reg %r9 -zero .reg %r10 -psr .reg %r11 -kpc .reg %r12 -const_fd .reg %r13 -instr .reg %r14 -#if 0 -cycles .reg %r13 -kbank .reg %r14 -#endif - -page_info_ptr .reg %r15 -inst_tab_ptr .reg %r16 -fcycles_stop_ptr .reg %r17 -addr_latch .reg %r18 - -scratch1 .reg %r19 -scratch2 .reg %r20 -scratch3 .reg %r21 -scratch4 .reg %r22 -;instr .reg %r23 ; arg3 - -fcycles .reg %fr12 -fr_plus_1 .reg %fr13 -fr_plus_2 .reg %fr14 -fr_plus_3 .reg %fr15 -fr_plus_x_m1 .reg %fr16 -fcycles_stop .reg %fr17 -fcycles_last_dcycs .reg %fr18 - -ftmp1 .reg %fr4 -ftmp2 .reg %fr5 -fscr1 .reg %fr6 - -#define LDC(val,reg) ldil L%val,reg ! ldo R%val(reg),reg - diff --git a/.svn/pristine/4c/4c7df4d571f945b269eb36cad0409038ff9f3d36.svn-base b/.svn/pristine/4c/4c7df4d571f945b269eb36cad0409038ff9f3d36.svn-base deleted file mode 100644 index e3a04f782fb6290269925b480ee7035aff12a08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10368 zcmeHti96K)`|e;ql9DYHA!J{(mwgwLZDikyp|NM*msCU&4H^oCk!*#?*ehf#Q`W}* zAvE?SOV;1(?R(C-u5tLtonr2BVaL z!6+WmP=Z(D4QHLee-!>^dYZ8E-b-Zg0C&^4sR4t1NI7$G`ycRp+E?G&9|mIzfPN?@ zT)9JFFd>#3+8X8|4$I?7X)hJ49-69k9UrYKb_o8?yNWMVH$QE~%zV!HqXgEG)~m*x z>-g{F@zJIvCC%j+8099zu8gq|uLg_)&Y(UeNkRB3%?n

DHM#PA3y{)s7E$j+-Tp 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 diff --git a/.svn/pristine/4c/4cc8a15ed139d71f20196b52c1af5602aa8993e7.svn-base b/.svn/pristine/4c/4cc8a15ed139d71f20196b52c1af5602aa8993e7.svn-base deleted file mode 100644 index 3db37e7ecf8d45845fc16d0c85f4f06629c42c52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2666500 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

}M1s*~r$>$PcjIdIO2e=G4*?Nux!K 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 z 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�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%0AAS+~ir( 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

9O09QE& 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

Q7Y7*j^IrgT%WLIf$+ziV$T>*dsva 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

{GT!T0FFHA|2T=RX)`(acI_>+kgnF)M$ z$)NFrr10hyaE24%wc)JC(fBI;={OpXPFgFo=1Zs@2ZY?X%7fMHZ2ujk14MY0WJ%WW zZ)oZ9<;A0q59Ug?S4bh(_L%bi$5u3#hxQb^Bj8wGhbe=PqfX_rczY2c@^=4B^1FI6 z$x%iI!C;o$BD;!G$N1!fF|^2P!LBuP8hXnV(?#1O>Q{7u#U{wq)`d7a>Qg|Y6}|c! z{pn!Nj-fpN;}Hl#yV)f5bm+ztK)7OBXWK_k!W1T3k~B79 zA0$X$bttru%;q3(Hpvp8iuU2sbqLR-v;#&|X~Fm!X3E5ScaSo*gCbU+)}wKaK`TSz z6DAeU6{F@4qTt(U!|x@)zgUhQ^VQ!#+54N|?^3AGqKOaE)LdXOMH2~7?4MF@BNVwf z^T`>Ntxj8m8}Xfxej=Vu@ym&x&V}Gm?HQ^ti{k4}V!4%LifFPjR*XDbvWc10gn(o| z>NvawZ=p@$oZox0Co7XTVV$sCRMut$3Z@G|5Bk|(uE?7;{&NbiJ&fy%s zBsbe4z;&`d*d>vVmQhNj3N`%ncbYlozYC-@FDM0ReJ^wGu%!kET7>sni(5&-)!DR~ zk<>^Kl4tCOd8VSc3*QTwFe!409P`qpg51SDM;-Aj-O9nRL1PlXvH|ED9 z;G_s-pO3uSqJGpT$yK4l*28S~s>ho2%ND#nF#a_NwG|0n$}8Np&z= z$Ai5bcy%Y-A2T8k(O+Uh+~Dgt41mg_U%M}y#%kc_IyH=k@UuaG2I}1!F1G04MnYJ15^$Cr7|!&NmL(`x6F^162Iph^nm-cGJxEgK4?x3#nP&Ed z@j2Tq`JI|XqDf$>55ZE2_fHXV3GeHLG=5k>FZT_!m8(J?#TY7{3Yf@G-#gYJHfo|qQsCk5)%rN7=W*Ah*)|q6P2caU=SJ;T{ zIjVyvW3U}W4mT=;C;mePUC+hZB{>Fd$S7a(HPrra_oL0y9pq@D1D&X*eG*~3*tpx; zjjnlJ=%ByX+sWUF(jX?n{1c{!Nyeuim-!Ff40=ISWm(z_&L_yhqbLT~V+wQH6+uc|{C6F4~By`0Ah zS<|kCq_n@rHau(@TxVCG2EK5!aJ0}+r-s)&{e+n4_Uw!)*Qcs46mnt%qUW%gG#>EdccMry$py_@FAQD;b{`KCyIs0wE zyJkRd`vcmaXd41|```u?S3(;Wpx<2e;(yV^!)SuEbdqO$coIHDVvsQ#k^gktK|a7L za(^7)iY=>z z4mQh4{^HJ5R^|5`@$Eom!`2tUHU$@Q9@eIby%`0KP%4=yC~|LXiTbN`AW7K;kFO=F z5>^Q`w$X*~eO)nqj6BEESCSTdp$1Ke{DZh;%$EpO6WOqLg5ft1posBJJ}(i0@_`6} z!ppAX_aQc!z0oqOwgAoD-E!a!55`&n4Ec#!Qd{pdv#U5h)e+s6&&GK%q3v>l68H?m z!-ypH86&v)3CQ2HK3KGuFKhqlRXGo9;r5ep&qJ|dQ<~Cw;)}K5G8`4N6rW(!UmD)A zydZc4usr46g361{88IVraPpNKX>6p<7=piO8M6H{|LRKr>RSKmX8-Co|LS)C>MsAP z!oM2lUp1I3;22ldg5x6_D@w2|2~87Q_)D(91g{P4>19P8rEsWbr#QJPa*5x-^9I$D&Na2@6l*(-X+^vX@~?Ex3%U ze?QScyl)C}zXYTl7l^LD7qfE_nNhy?o%p@d(YhV%6bAss*b@CmWSE5_L|(c&8dY$9 zMD+}ATXs2;3^fGL^fkUOz()h@ngRGJ+F|y8?vNo5s5m{eFUy+B&jdJ9K=A`z$nPeo z(|;i=R^cO&&S5%B9$xfIGrV8}2zkdqgxA9FGrv+M7-6W$RzzX+bOWGP^$#>|z|!z6 zLC0xwu#>rm$$$!^07PbRMG9!R>xdiF#i*ZDhHoCf^9XE;_2@;NoLr_-M$WTbbs2<` z6IFcaF3nR{qUG|?`Pfdm2t;Ktq$ca9qwTMv5s%ib@O+f8 z7G!`X%Yq$4OA(I60b&5*I<9SB1bd3CBA@%VT~4_-|5aohm4yMJr`up<`8{Q+BhiyV z1$kd>#(k(2CfqQlzkiu-FDCqC6b_hnpZW-kFCHsIj^VuO<1$|9z=$fjg8$S;6eB&m zS#P-a4Q^1+;$B0PtNw`VgbC2omA1d>x+o5#CX!?VAi1cMP)5gZTYJ`wyZpEt+zVRI z+i(&PHuZf*`fA7um0xbe6MOL-T))A~%6F$Qnk!Pu7Ab`f`Qjy71TD<)uV(vK51Om` z$YZ>!kNlB8-~pZ{!xb%LQarOAXFV@<2fP<*8E#E`4tT{GFEb2Gw<9Ian)X*8Cbzl~ zE!frl@E72~--xtUoaMUm)a6tAZ8nb`6l@;Mc`=)>ljcjTsb!$s&@LRQv>F#X>(ekr zR%9JAyWPS2^pLCtgZG76#^F#Z&U?!!E1ZUlo%Li2yLt$Eu)?``;s^qIN7$zp39DMt zMbfCh?*_5AF66vgLs}e>AfYWsgj$ZU!sV!{c?0=h7l0Iy~Y4r^2hx#tULDZ344sNUpsjB<5&j82)lLn3#4huGLiBSPQCG;M$QVP8Cba z_i&)em}7hD`y#y}H7FYE^HY3EXKZV6{oRKnfeH7CMe-O@&>n#c5&?3ne2 zq~}s>_k{I{TKB+}VlAu?Zov9ONFYkLcNTt_ED>uy;{o3U3#(%lS7Q>39pPPaC`FhD zw98>QGCb*-*)o{b;5rR7i?U@`MhK#!jxdB(6l6^S2aVQ{h9cw8T0P++?%UR;!z7RlXe z0Luhgl8A`?da*x0VVE?)KU_C?5%*wzwWKhqkV$SMpi_jI4ylfo8_Kw&U`pAsYSGF3D5%cx5fArf9># zCRXHRS_hE_acl3iBagEsk%~CYDBIpy`L9+;e|Inp9b}`qP>a?Qk%u@@Ce+dq2SGwy zPgzU}nPJWB0GVXXujZXo!+}lNlWEP&M-eC!Bwk`GyV>vz(+h0OX^;KvZYei;6BaI6 z)86N}tQ&fs!%7duus&Q{C=|G}!Oa<{1)wcutjJ1$ujQN-IU19rB^dfZemx3} z6jwFiuQiLGJHiLKaP3Z{=6Ac#3N6ioh2RX@YiEX*W%YMie9~t)@d>|<7@oQUMssC; zx_jjj*v`Z*-(8iGb47dCJPSz}^idKjEJG%Ac{$o%dW)93WrZ-al;3HwJm7h+g z1u$D9P-muUM8)afiktziGF25m2Z;63UTJ95;OSz_7WyL2B1O0+|C`d}jGbg2o`_{+ zTIF2;xk|{Vio~OqKub?qO!7((MzspfP`?7pqEXCM#Vgp?ftLW4D&L*XI+x(J-5jnR z{}3MITJ^^tO;w$O_iF{5txobEcGO=()Gs=z!{mi1Yn&$p$UO=UcH!8d{?FqdD|{B@ zh;BB$;xK)YWkrr>bs@cUwG{Z!FR+;00WWkPnd)!;i?rYwUi(($BZEJ`j|fjU!zfz3 zs_E)ZziMX1!@BVfmYjUnG~M23<~4j4(4p~OKHG{6q8@slY>=Tvgy9C*gQ1pND$WSC z1S)uPf5+l?HtmquE3Ns_j3FLn$l1e!xVa>&22@dBa}Q_{T6=>SoGlx zSXFlbtiOFFuZ%%_d{7;t0Qq&NWVh$KxO!jKtVq)ueh`3*GA3 zdW0e!K+q0BmTzYh?8rhU+j;Kg)mWekJl}_|CcBHS^ zJ+H(G!F=mJ-navHtF}+ob&S5p71}~nfb^rPppiEZw+A%xy503HNaS_X4UQ_2>-548 zkzY&xOfn-zZ}rWH76_c!=+j^>w2VC*C&!}!T4jghu_G2F%mt%CbfAVAxH&Wkch&e- z!*Ik9i(9N|JRt!`ys{0*$MKl?lvYEJTYRgb6lKiBu58)es`fArSC+G5aLxcL(uMKS zc_#_pKEewv9#Z2GenETgJ47G;IDCQp7xOq;8XeE1SO5svk(2qthtS|ei{ zY!%!4p|Nr*2Eu4P*)v*$f7OOHn`fgGBtYf6Z%e~}ZO;G?{t_@77lL5YVjqTIE4=&* zyeY{G)n(c4(|F?Ozg2vjUPVP7w?KxlEb`=VARh%>)0wkr9Nj=3h4O74r7g$HNhjJ6 z_%hw7FPy+8yY^Tu*^WEb8)5JjgO5O7R+8;g9tHKP6`!MKNgliJ3_Wd&0i{)>x|&8) z;yaSL?T*7=`BoyLOxn54P)pH_f19md!L2(oLp$=c8`RmpAm}aLrWKwk;*5~nbvxJN z@7IOq$w4L=X0dbbgJWzrUo4v#0O7jp;qqq9s#vxH&kW*Yvl9m`^ z_Gu<|syH9U%&iqOcXtyWxO|*6)iiTIa&H+fti=)ahZ zn85ijIqvO*D}nQYp0zlL9nHN&(UI%|JyH(T2(NR3)^W9pJ|tOPT6Wi7WhE&f3pxB0Vw)zK}X)n_1ZovpvLW0{XjO734SCITi3;E<2(a9oKZga|SsR%9e#*;x+>mu7`0 zQ_xk*;NW4r$`M3Hp&CB1a{Aps->`ph@2!-NiN~ zoX6>UP43uQv9yfTaJr@vwsaV<6bI7ISI;0R#9&qjI)Pao=#-CL;Dg9$1Iz3S;Vy8P zWqJ7Uf;c~+Wtez(9ta*EUq_)2^7RBXUE@^A(6Bk|GYr=eb})7LNlHC$MQl*dn=Vix z^Y%er&kw3kL36R)z4n4KKZx+g3f~S+S$}*o#gyf#CZr!aHPRjOf#mB=(q^#?#+tc_ zxCKSPMI|Pu=c|`tn(KbOGN+TcNHqxDUPr?AvG{Mkk(P?3Rm**oQ2SWK{9K7vF+b`? z0+KX|{Hlag5g{>(AEP}!A`n3g{;<6Yqd1_m zEN-#JIi2O~bf@1e_sXvLZV@qq+U}5Sddg~z43-Z)FMOI^cW_OoY8M{3s)cO$pb^J+ zVuWe2udcxHw8twfLwby&$v-ZFejX=fUj(TKSl*8kXdHB(1r~zA1o7nzG_eAi-|rJE zV2A+Jq7mWdg$U_1&acO!Pf(eFoS<2>LdrC27chE2A@c2O;!91yta!nWV<;#*IUAlx zf={C2A(&r^B1iZKgnl=WqXQendkLZ+)9j@O98OG_>yK(v%YG4k zK?+%~iU5$7f>0bTap3dsshk**sh$*kk;Bz2buE}rYz;epq~=^^;ic9yQ8JpaUR=+p zJ?PuV|3;ShKKNgS)oZ`jFNtyytft-lh*xzgX3ej4JZr(C6#^qwXc>A2g>prLP*%^; z=KxTkyJcBUx*AEB#G{x##1Hxw5$APJgC0|oL@`}C>F5p}32A}PoJ`djjF1`&=a^2Pn zUnbJ-WGTn}$SE1DC9FG%`ls3+(|2`gw)*9@@+VGo}nzWKgA zd``Cdzd%A)N>tyQ;~%a?wC-Tw*~r@NAuZ=gs@9oRML_E{870$W_^{SPU6w3Q)w5*5cChxq2n=mc z{>}HI#c3(q$pKVeJ3nJPLam1Q5t0)d0g?dA;`jgyI6}R^akPV{FsXG@QH4;}5Qh0a z&iBt>8?@eh&k^}e0a^?te~Z>vE=z12*Zz2QY}-%S!$;=KBI!j-zhyOprX+YU;L6V= zpHGtgXe4Dj@tV21W>Sx+U%7ocIRPI4iU#Ip;|q>+5c{4S4Lr#oJ22Z0JdWT8UOoo6 zrC|;W8{KCom{R?aGUt@euFptYxlCu~xNo4J%&EB49nx(dT^hnS*9qj~?L&Z%(Y=0jU$N6_I^l~w zQ=Fb=FLeUbi`U3n@YqA69UVZn2<^6pwokDeem=Tv8CpPV(ZFm14LtD2w35&=ZJ2&N zV^^WcrdK82>5UJDanIb86W%7xvYQOkpM$pe&%ywSaS}-1C$Mx9nD^qPc{fA@%Qaw) z{LyoP6CMH&+Bn?~>oEJ9mOhixIU!8Udi`Wp_25lGnQZ{QQ2_PJ@0T8bIZMd+2hd|* zUDL+}FZSCXjYpZ!Yu-D^{`{Ie?xQWkNq;%=6{&j0J?;a?jLO@wEHikE-MHw4NYmwY zEhqHi_Xgbi^5@zu_O6|u)$PK8Q5_23dKGFt?N_UBE`Gn_Y-eb9XJkJ1`?-0SxmkyV zT7ES7%1}#zHG}!53rT8D_nr>o+zxtxY*}XT)wYvs(MhAd-gMHb@U5bizgRsR9Tl&! z9;|Dcb6!0xt4ZC?dk;Sq{my%zKYh+y!=ICiYRhM%#8TW$Jm$PV;ir6dMecpEJ}=`E z-vA;RjNPF3yWI(hcpqvxY*M#SOYVJ3k=}*%KWpZtcoT|sZ#rC`|Iu=Y<(|t&E$J+8 zP5m)$aMEcXHZVrh(BB*Yq^F00u1@at7r);mYd;g6nZlc&Ff0C>+6r9HS zqc{OVz@Pp=y*I5g)2J>X{25TxmQ;HR?{)<`l?#3b{A146q zjzB)>&ygoI3U9GNA4gbJ!xKh8^l@aN;6ZOI{1C6A5k6*q;6JgdogIx7$StDHQ-7;V z2CQ%`u8MY`)}>Z>Bd*=S8&SA)>;w9Hulc3N-B2Fdcj-c)1i4PlFz}sW_`oPWu7TW{ z(5@US+zS`>ibc;p^USF`Kf}I(mJ?R(#))cqSJZu!QMk%>PZKcrq5VUcZXC4( zJ3{&!|6oz8x|^NAf@pR|=fz%weu8BYIfZ>re-~*{hNXcA9xZ3Dr>t1&-rW`Wp*%78 zk*5$Iz|LDp^ha&P=ck_~*~YvpT3NY=hsarT>ms$2y5eJlmdKl^ltqEo%qo^+=2mz) zaxO!=Z??iGqyDezZ;q^V@p0Mk?}Y*aoBDtlIq%?uPNC;{mF|{q#wWjVqMVQiRz!QH zRbaUb#sgxuurssfF~0)icIF_XvSbrHv|Oi(Rb`a}*wXZEFjcKFbuVia4$@=cDM9g> z>Cbtn(KFLg-2fC~9zc6jm@W!UKRmB;mmY5|C~JPRHT_iNzWX@yWNv6_R}bjdh5^J^ zN8(RKkI?R$CgqtIyTV7`E;@1{I{J#}xSa?^BY{6? z(NXbsJF#Jf(%4p_=y0l8FNM%}6lmoUgd#M?LTIRZ`ZMvKDYWjBo^Liizm56TLaT)1 zZY#8`(EV&7xp&r0(fe___qfPX_-0{ZlUC?VJ`iGoB)+#7j*CrKp9)WUgcz9HD-CJJ zheFaUs3CFcdFxPa2OqPh@epgb^l{h%q|qlaZL!a)pd~c@mCVI16rA#oT5i_8Ok}_^ zXyI;5VHWunQe!bfZ{V|;&(r-7IguWPq)@8}mrx;yZ~7R}q)&Mw&4gR+739|jhz11H zVOUdO6T3*g~8{6A*NPww(&LR3k%rTWHcS?fXsP&S!~I1*ijSAUU(Xn%gBPr z>P4~uJ$$KiZDww43f?ZXr%#{0bK}k?dvo2s6Vf-Zw1ptImXa*k>_)8=|uRK z{qIBnZcc{8tm}4lC|vccRp%BqEPC^mKmC?a+KoFuV`GP+v9`P`bL(bJARXRuz9wcD zc#8AxWCko<&AaL9FT`CSJ61=>PH<)~<3R7gSW;lk$T*~{PG_nmK1a}nC;;58m6P&* z-vSXgywUB~^)(7dyV?Ht&L%KB$3*$h@xR3;)`jYCwwr;MRrXhPyH7A<#B)q@vMfqu z&g%2vfsO|MXrW)r?BP;;^LNk9BK4h%azxd5S_ZimO|MWcAxjI(*l7@$M**L!b4n)Sz8Co58$ag->99Y~ZSAd{|es`J@?6Ec;pP&Lu3 z$%z(@e18ejXpc2D#5XV-2C(fv)`IPk$!i)cx0Yn(0>a{TFnuP!8ykNt((qgn3RDnl zxaduG%R7(y!JTtEjB(5TGakbaf^OTn(Gi&)*>UjN?fKt=tEk#sN`1GCdXD*r$rM#X zj2b)O;{Kqh5Kv{v1X0XPA(I**ld0c$WO4?SFIHVq)0s2Jkjd!Z;yS1tN|&kKKNuh{vS+x?KbJsDt!!nZX6&&Jr>Sx=XskHUR` zT+&p?HDW5ce9jQjoO1y3)uc;s?V$`>@l*4#1^c1^L2xe5cYfYoPV%*exO^IFNwdqQ zyaurGJsUo-W?lu6tbw?i%WcAC#)Qimk8hBpP%0q!oIrFX5OUC*m|rh)R^!UX3Ux!k zR8Wu)3W?mwaf(paHUqWAS=1KD7FRtfcoOS=$gpXf(w)81JJ7I(dzh?H$XxcjR}*gG z9?k>}9+5WG6ktqB@z{;U0Jxd54l-_NmdN^{vZPT@4AbLIv=tMj=*g&xQP_)68+<*8 z;FaLZO^9g|x8t*Otm;}P9C}i?yMh=3cMk+Df~g|oaBqbhk_TxA!d7S}=T15*+6V^k zH=(JINvaD#x}-#L8iz}>pu~7Ut?X7;pL&?%Ysp-%2XW0zTe{p zkHs2Izb2Z*Thcgk`;7ydNS#DNoW?Y+V&|Lses6UvT<3!2mqZ z!9jJRuw@cAm`PMUe9-5M*GACW4m=mCU2*#ZA+f?&lR6Y;8hAF;R5sr0Tlb_rx^X8ed2wHOqWRXpE2j#d5J7nzPmM8?MC01Zf@KAY84U19Za6;h7Z2=-Tr!ooQ}aGntT30If)Z8wLDP zS9X1r_K(=+fo5w#zAbG)lLxE_k2XMtpV#amaF))|jV}qH5gcTv3O)D&xn8l{$m)s# z+6Y{7sT4a_Ww0gTQs>cmKp1tpT{hi{{MiQvdyS=4$?(Sh3X$-CSZ)gAbCg^cGmg&j z(y)528OWJ;5}H6h_GuUpQu@=>c06@Tavhx#%<0v{(bg>nwjFVx?XQrSfZDNX$o8U? z+{+e>U3QFGj62{hi;W{m1pr~c)lK@Wv;nAQMI>nh=SmB<>_b#!TdgO2t z+9yHF$^}PyewxIS!c2#BOE|(tAyjY~V1}MSFA-kaU&Y3o_Q!&< z)V)I3xz0}`JM5bKPyp$~YzT~!zPJ}rMv-yx`UCb`KiAYpYF=!JX<`tY$mb}e zONbAnB6U5OfGY%YWh$$pYa=!lsdQ{!fbX%fqxn2|H zFqxjWNUpSV5jbhWk}#k0D*_qmtk<8pxussp15V5Rfj(`e7B;XTyn z&@3xFhY}f9`Ik0g7emtI)WFOeQAip`p+VVJ_+l2K4nqr1p>^GYGdjCyN7K=|c}Wzf z+Ux!zj^4nx?0tyPc!oe^FAc8I%~HK|f6=KHxJq*EW7H0e-J^9Y%oHO-=Qq*T3Fc@9 zD&P$cI$R6|9r_}D(M=egq-bL`!O7Bnl1t*=VPq2N4xhd+#MT_OjF={ z`g-6!?z6pZX5kA=v<^gQVUMKdQ2$>!muFj%Oi;4oAEvO16uO5~JwT-I0HYuGs{jV| zWoRfbx=DK3aEArOrpS`O$gJy zu>l64$AQ2&;(n*m8M%~*5hVj{qw0-ll7SB9l$B<`ig|&kmsvqLScZ)$0qlVlGV0jo zm>%-^Nj>y6J&eH6)lLXgD^ftFEtw*6C{%YyZ?U=CcmP`NmSk6s&#MAzEcYcan3(7y z`hoe%apujdXgMKTNaj-f)LiVi!{E@tTmxL7=)S9Gt9S8OkHPIX$(Hb{mbQia)UN=j z8=}8OCi!<~XyCeq62nyJ4ThS%u5Mq4!grlvG=%JKXv(ehiZ5kx5v5YaadSYlJ0)y^ zn&Q{%XC^?PcCa_UdI;4QNl0KBY{T{JtkDk!G^nwl)Og{Me&Ko){*gH-A3mvvIbXAiW$}*{<(A<9G3-_r1aLTn&to3u&IDF0tBLbQ_ zu|`{iS!J_^5QiZ45|s53dl^Yrdr%2|%%NU=tQNCH;dMp?cG}bAuSZ@tk51sDDtW|J z9G1%Aqx*IC}PA34Y>H@&;A#DgHnMT@d5S@!P z^GF^FK^|%|t%`Rr+Oc#qok{W_m#<)FV)IgBDOXA{0usQ%ydsw0K`D0*9s54N0-c$d z_od6Q3hFmrBh?uF_p4P&qk#D1q`=DR)X{ z*k!Ycg{r$S45x~Nu_I^mZ;cErFyjQu7e-|A`bSu3^1zBdXkV0~ql*I3pnS0+M!9N19 z;^8@yAI6y$u;R)GlPBFuA5$x`6$I@JXkBs zoDcxTtAeK=xNxV!rA4)7k#!Y5{^68PDcV?A)fa#iN{9sCHNbTTYwohpvVN*X%%N;( zP_=CcMZQoTJVXQx-W8xz6w$r>{C2_e^A%?UYSNEv)c;1Po>hixoCFRh)TSOq6r* z+;N4J5P7+J5_n-*?`pXZG_Tr&)Cu9e=25hpSk2f?TRA-lfMF9C+k&kLj*cC3KWJ8a z4Fj{FQAeS1AwG{3-HK5ebkUk8k`S?`i)}%KpsX36NAi2SpS=l?#sGVOy@9LQBL&7w zNTt`{I76`%#eURqh}O!*qDmG!12KVE^y3Hdz8f7xCDLV%QoEd=?2RGV+K z7(s#xQeG!ZBFzdJHb9DvsczvSu8V}Dp#`1u$np~;o=!+2rH1>q>snAC5W;Z3kdT|3d7s;tW{kIGW=K zEiZWnM_KNe<1&#&CK`w+ZG9iS`blVcPEoC-5a3G0joh>wzqH?-2~Dyy&gm;&M;`b^ zn7*Qm)2%-e=*ybNV3S#P==%;mOFu!=&*v$xXU*VKCzk#Ya z-n^oF(MAwFw{Vb=@_M$GcF#mX1W}@6NgHS_hz(4zs7c(`NX&O2Cra8$Ynn^>j)5#` zT1TegSEi6JVj)o^SS{_VvFO(+X+}8ZOQ$T~dZDb@#1%M#SkVZOOg-9ztKGNa7_xC9 zbDVevER!;{fI4@LJnn{~*4V87eA^nks1uZAnnXa3#@nRXF!?{H5Xe9b84zitdp8gx z(o3_Eyi+QOwm(5OiNuRAe*_*5419(PoKcis(H$dz7{>wwC>U&6hLhx5x0-1on_??K zX?B^D-MUrI$17`E1jjpxUKuVp0usIA#Cy8H|05e}v!L~|td;meT!uhV@l8?f%4K-( zmhPpbM48rHKmp@;FRSQM?egKunjT5&&x4<^7u;hdKsc;t>(+$9NPI00|FDAAt<0DD ze_fyF3wrn}y61R|+~#ZsIe|pX6+j$@?c?s>z#Z;Wpzl+SKAeOjSZ;^E z6#XsuzuaG{@%8*ZPyH=PF@Fa=zUkkeUgrP*)E~50 zPvkjROET?1iyP3XOL~LTX2b@IR)gdYaRM#eJe@W@Gqk)XQeG3}r&oV|`}$vepZbaX zc*Z>^Qp;VQ#kF&*ibA-(81QAl{^TcC$`H+;xHk61OrKv+ z)*@2J2};W1Y>3~ACa0_gAn7MJ+eC3rF=G?7^B7HAC@H6 zfEq2??pLC|0eqT1vNZxr@A(;(Eu?#cGXf&M1tD0Z%?7?Pgx7jSPa(Kocx%j7Vp%`6 zs+Kn80HZ>Q6&XdVJz4~I+|m}&p_~#5$&cjOH%ZUlbpqc=UCwkmNE)9QZ+cA+BrZRb z;2m)fPTI|(P6enL1o{6lw5j$JoI>Koo<puuhwF zA8qrVc3!-EXuFp$%xxJt+^f;iIRS>~&2UXF#{gpw4;H_QVJ2D+@R)8vFat#K6Ts3x zkUO?FwshB}SM+p_qLFs--B&`S1dl@1*|FXif2|MYiz1u^D>nn2o0xY}+Uib|5 z?JxK4HTG>$ZBrQSG`&DZiqj|M73^F1b;76^Aq;hz=UWh8fe|t9Bm$mTp7yY8X~{K- z)(VC`}FdJ*?RP59lTBd=)=j}9> zN*Bm@$bzGJ@(woX&}K;#VF{aEG;0b_^&kNskNDhdgTJkc^Z++_Kwg$mUfHtt@|W}y z$W0%VXG*lyC#YZM49LTlE9ygzr)-(M!{g7k_ut(gzAOzDb)_AMaXJFE%{#kdf6t2C z7XGZgepgo}7eRS$iw555D-Rn6$WLPd-bDjju9v&lFO#3;`e&2=*+!&A119d0W@ zBhkTh;L}3OvwTa^-|vO`I1vC86hz8XXn7t=0EG_HErMSbkIEf;77;#(W|u%Qfh3n8 zRyGWxSb zb3BLUIbE?q+#a2SMAU}5E%|jSzjK{6zrJouZs$5oXx(Sol^>-c-q(4Roh=mQ6DIv% z!w>D+?~lgO1>1+&HZ&&-(mlBYyYw6Mf#y5c=?wIbF}3Mj(`0ggN%RhFJTk9%!`(elw{U|! zG7rot$89)6a|rh#9^C1padw+=aN_$>iLcb{`Hit5NI1fV_7-(Fc-Vh?De-~o{}uiR zdHw!Z_}|;@zrerN_Y{t$xzPbxQz*%>fRPg&pyloW5p?!tIS|aA{oIznM7s(uQqMoW zJCMjnkf3(SUeXdZD}E)L2GfzlSRJOL+eU0J#;!GO>MZl(t(Z~(2@#%wh$rO9Krvw1 zhWHI8vXA;3Hze2ppN8+=)a@g++=nQ|sE&MU9|9p5R`4{ZbZ=@*C5mpbJM3(`p`AT0 zQdda)`{Co!zwArGr@_Z}zocKw#^&HU=yHUWI+$XHXs4GZ%T1A*!(!w#40f6iTeOXKy0n-T3e zjwPcV_}6qy-G|A`Y2gcyC|luVvI&qV7Er`un6v#GI6C9<{>-YOVtihjZjY zyj?gQe+)bWMyG@a^udzR4*YB2@c>!D7XXB<;5Um+BmlB-y`c|QMc2vnVIKPM4Er4L zG@_)3pZ&talF<(Q+XkLdd;xga3gLM?8J^f?f#>KyvuaUow8J}}7Tl1IHUJyIu#e+& zeU15=j+=$I;g5l*?{)jb4@*Wn@NXM<=I{mJVJrB}ViO7YS+UK)!>WX5MH_hd+`t1M zgnlofia9dvdhGuRthGxUoDxufgEhaH=RB6I-7)0s^z7hgp;jc>9K)TJMY-^=a2J}Gmy5hy{ahcj7T98!ZgT>SMH`o((v(PT@Q~LS9$A9_Cp#tE zoYF0DVub;a91oq79eXK+&2**P@EBj^1ZNcOz+=ccL^QTwwArz{?nkoQN;~k5UAjV5 zqFL};=*zyv6Z5Q@f5I)3_fG>5{evs4X+3a(_jh;hU-phQ?MT8_y21&(Q}k6)W9Oy8 z&iyBDvS#f=EvIA)dPN`B3-8+dtQXdBpWdpSAKQEE(&g#;PyjoCQ)!oHmeqC*F2@(C zt@-C*f0JFh_W!W=Cg4$(Xa8^}86arj3>pOy1ua%nT!^o4WdxON0GA+&aV08M(^_k5 zbq3H9l6Yn$$HRfNl4{@A)U8^(Alk~JvSh&wAYxe5AORyH&LOEru!K$W{eJgz&MYCI z@PFTLxvr1vA~SQ&v)<3WKlgJ#W`4c4Z1iQGSG-!}A_ybOv z6Xgi!+`;#_>Lt9Do#Nt>f|wD47Z-`i`5?fZ#$ILsZTipx<}w=kRJsYPG9R4iTH!?S z_qGq#!sJ9@z&ry%m#yBLGVfHCeD!eg_b0o%R!g^tOh zOW^Lf3j8jbb~cO9p$&Y~7WOLHKP}k3WdAK%-247`ggTBmXN~ zM?--a%42p2GDR$sYW7XciuRG3pMb*37^7cdohymwilu$}*-fYw~|5NFUdP_fX12PVS zDHn*00Yjh@2{N0O*i~x}^6cyl_%QSPz#8#^+B1=OE$kw#*D)Nqk zY(zwp-{AzM!|!_Wc_2HAk+O5}WqvC52X>{HSA&t?7+X{X&X(8Mu_PH^ehXOvD2*I& zKC-)D8F3hF4^CTNN3&h=w;A_G)=#@|XsD(9p>9)uIJ6)(^(=4&@CL=rw8#e->CmF> z+Uzy>Viv^AP|I5!jqvm#Jo^&>i(dm~*B1r-Uuw=)4U~d9u3~C6#PJy;?XvjLdMg!S^qGtZL3@Z zL3om5JKVb--Z_rJ?vL(Z1I6W2d(E0w4V|O7;@l1D_~FTNF~WnRL>nrPAOmp8jm2!fxoeilKhL` zP?EPCCdnaXVu9=*BiB&C3u6Sf<$oSbr)cF@dM}!O`s;1 zLYx1gaR|a1tB=kgxIOriw?bjX8qaD22_W*9Wg1>gv zhdJyo&;%=_`_K@wwS;7$5Qm3tqFTY}gD4TMD%ZkHP?9WkV`|OB6v63cwVVpYW9ma* z*%VKOu)z!V{f>Y#oIpC*QK>>YF>lbQix);+>3_t0^))OyE{f= z=JC0JaS?RBbR)09hHVIj(U`lQ6c3dRyF@ruoIzS>ehd|~MZFMgJuP?w{z7Db$!6HR zgX=Mc>k1Hyev?kODtfDCs|A_Dj;L)Es}?2UP_lf<&*FU`kIO<(xePa{uU1iuY@s&^ zJ)39z31TGHWu+1xNaP^`1N;c-CMiO|c_|pdls7mxcq)0-G!z=%n3a)LGfv7~uPyZU zF7uwsL+a~_cX`%=pB3ttr3H&}@|uG8>j7VS^Y6j(aO-AKOQAj_E!4aD8pl4vI}a`@ zQRRQ^3};I8`wb^lwTvhQ@x_2lEEba4QI;94{4ofDidFuCChbY65a;LAIc1W`J(=DK zq_QU!(Rv`3g=i6Gfm3aeY;zvLZ|rA*={pO&hWPf2e<$$+&E*Gytj6-v5B#_N~%v^ConfbPu z%>0jp!sFY70{im&>TeFGz~Zo8)Cg6lD<@vmKy}6uB+%jzoN)nU64VD0Vdt_CK6{y4 z`l*;lvXB&BvIh?-A723l$pfl-arv06sz(F$N^07ta<2$J5@Jr0nHO$<}+I|wI zYt^_^-l=huY}eTDqFOm-8=D6Lnu(G%cNb!+f38B4lTa$j+r5gdr$}`l|6hBY-D~o{(kbL4GZU4vG7l z18WdBo5fT!nZmT8vH|e$_-KK>v5|;lH47GN3pJylF$}%uQ@n!K2F_>}tnn8#XtSPj z=wK^P4|<=j{tOIm4VbVIXv!#9(|iH_KMY<)@U1n$YxF{w83u*V8dT70eR`nD>xU$o zHJ%OSH|dvkox0Xc#~odF!J=3E4bC{!_gTnB<3WH6P6yuLMJv~28i;iXt!e%TxSLZV zb4$A6*>XCcK9lrR>PaP4qlCph$pf-~j&)J|3}f>L78k)8yf};t1{<`9hIa}5$^1{M z?Xij)(b@lq4-4|188!-*Sb0o7lg%7^PV^Odar=kJZ}l@zv`{bFbxvqG;0dEAP(?t; zvmUNgzla{VuWl2f%Cv<~4!9dBZ@g93R1Ykbh2;b8Ib(9k;^*);vn+qZl*_e+J&iVP zVPM0s6LA9su%`JPz#GlmjQdACGe`l}S@pe(Y5N&Njb0gn#rld#!e_OGC2R?ho=)G% zA%Y7lm1*HHC`^*YR3N#_~=D|h*0MS!hR!#YLDk@qN>h=BIr}VaIl*l%oJkVzD1^_UPf+}kUQ1QPl z??}+Hws5>hDu){E^(c^NYc=Me#|Gp2^eLyJV6Rj57&!U;_68szQJA7KCoigWGR9B zD%r%hAb55hoQsBVE;OzAcV=LP-jqodYL#By#mHM}PX{dVn(+qqgM=$O;M6cfdx=s; zxZ*`V^F*vTF(8BIjxWPfV(Hn30Hp#+&ay;@ied7Nv9yEQ}OB`RhlP__98v}6?`vo`Ol)DG~ z@_bMY^cvXtj_-yHbGtbbJNH^RfK`L?`D63WO#jx0#~Zu3iAc>KVe)1-?kv=%apTOF zb7!WfKPu%QD#75f?Ea`}q8+%{9`y1=*-2;>Ck*mq!I-r6&_A^0*JZU;mtYRTSIj$o zW^Z$BcFxC^cQ_0W=o~xydurD0XJAx*6BK=G^u=`EJlvIGN`a=5&%MFhpt^GmU;RME zaB1Nc00;c$q79Dq(LMo;Vkfs9L~50>S%v2mAIK^xG{)j~!WQFBpXEInGwKG%f`Ojv zjj@?_KOl~>7sXGBX~x!_ty&MQHqj)yD<8-R9C)>|*jv6&&UF;(*JTZlj--4^i;k3a zalIAN9wKmtyHDZB7A26+RE5J{A?bcPn{R$r@oVLeDQ)RTegH372T{ghJt8ZSRq|+7 z+9M~L55Z{A!hOz=5n9%bn3rLF0~|2&7CUSi*`9?om&lj{P3mJVN`j8I^Os>|u|%W~ z{>t0PfcUr3&Np)@TXE#Yy-P%1{1P8l-bTs`t6(QSc&CyQ7zsDehfGdX8}v`d&P>tH zbAp4722Zqkp_;FifA|~`)>hGeP;IuOdR^cv9K0kCQgiL+d^0Mu@hut| z7=LpfzVV;7>`vT{#9qapYE<&Nb~D1idTfBc_crbEC&7=@6Vg)@*(z}9fb9Q6Kvn%miKj52jzg4stw>UNvu2Z-V!}f z#l$%Zlrz@Qy@^!+l>Q(O=vA@#h^oZwB9Gz@Dzs=xb`vy+W8-M9_%CXCjN4>k3aX;% zY&hPcHs`m=i&IkcRa!7tRj~qJftCmwdc-*pc!}d{x*ukCd`-;=XAR>uUiDw7N&)3o zg-RK(Y9&`KT}n`upr{t!2YNIs3G_jgTo!`tMZ6(+9wx|oJN6&|S52TP5&`HGsf-ZN zIY5hgvXUn{1KWGxJPLH+ON`SDB0Q3yyAu5pbV8`{W&t_@p>c~B+(xa2r=TinBC`l` zwSuZB4n1PnW(BbaH*6pd0mP7(TxA`nD0Bee?Gb$UYGLt&B;iT1GwDg3bXGYLrACnC z8i1AP;m$F2F=yZmT1WIKm#B9way!fcwsXK|Nv7E11xH2+$tzY=HFNQ(z=6w<8R|89zA_p=t8Y9*-B~$I$AYp^717 zfE*d@Eqoe)inGgX3p`?nWWys1@aMzR`dGiTH0Td1B7B7K45xSWmOm-Vs6dF&eqlnSzol=(&@qw(lIK*Ok*z|!F%Ae+Se z9|Luomdrm7^Y?PJpL)$_dZ?-Q;MB`ii=N;QjMnZA!81&Og0`^2i_Xt2T8aU$3VD|4PmJ5#n~L zU*eR#YUbu#nXR!QcaLf{T}I8B)djwsmH?sM7xPep$mw2NhFcLl_6Hb{S;>)<4E>oF z-om-bz*Mo}&iGzsF_9=GekkA1vzV-*D&}*Ra;6j`wmL8~tQ$GW@Ht$%h#(ro&H0>J zg!32*x3hI(UrejXYtHQ=Fq_qdOJ{5_)<*USI%~!+pj@}9pnCD2Lq1(#-;9Sx#G6|Z zcoSI(4y?ul=g~FnJC5=%!EjGPqU(AqBuaqQehZb=R7(YUO2A{B+5TZKUOB6Hk}lxz z==*ARmPl9HBFoOFslj3EpG`dC2iU1PG#d`lt*bLu%~DYVStqvpdRk>y~=`KzD6s6tFYa zAp{89>uW9V@0faPSy%cIq`(wxbq&2B@(*!@Cc!9eh#Bjf*6ef+P`yh9%Z%3=uYtF%!5>35@v+M3=xA<3oeH@y#-%kk#|q7j5p*~{eM zf>cTz$L%#bQ6c-wY~_tKE!G$$J@{7|5rRUSJzZoR-*lz~8Vgv;zJ}UmepaD=b=GjC zufij2y7o*+zR!Cz2s>*rmDN2Xap(1D#VF-3vMQiL=?dBu${i(PNqE zj7!X$#O!&jgd)(_q*dNYF4knVDi!$?3pj=q^$zs=4Q>_VA+qlX(u24kUK&LJ!BL4-6*rt3cU^?iJayQO2a-a(&F^!v{1|^sV{3Mi5 zW$E@Gn8Gh*lFwtQ`O+dt<%Qs?o9cxH@+50r7tZ~J!?t}1>zTouZ7_*d{eD>4xrNAWI2 zZFTZwFmf_sg+=Wf3_vRG?vxX?OBEo)v^7Hd5Y+m|$v&xD7vYOy!m0{FlvL~1sKI5@ zK~nqm7_uv^$#HRKC8@B%VZ?fq7U#s?>Mx<5deh51G-g8|m=#H^cePO=npX)yAjY(6 z)f8LY_1XR-Hr0G3_X`!Hj<6st`CuYfGEf3AMbh7CH)FHB z)~N5^V0@^B-@_xt-ib5dm-PQjL8rbmli1{2uoo}TgDfdaM~*M_f&9q$3siu9s3Tc5 zejt=dTejL?ZCEUzMef5ImFzEuz{P?P(vLrjFQ$yyBM4$v3}#an-4G7S0QY1M5UA4~ zxd@dsah4 zJ_`Xke)$T$2{2X!hd!KkL$8=iIaowpMy>(=Bxn#}6LBrZ9#1omguta$Ft=Z$986|o zvu*|d(D&hb-K)vmaa$;JC}d+hW+eoqp^PwV1Of%O+xZleDU~za$~ClXj#~Lr$n&_< zC{l`HCp85I{2UpVBf?W8sIo}X?SEp8Q>x7Q0UD8^-}s%q-$+#^G4yw}S&zDvFN@Ec zdr;XO=B+JS&#Avba;`iNfK;lL{V2XB3oboHaQ%jDCYbUaP;tnV7b>Q#EsKlp7no&G zlwOXGcgpu+AENwfvwFH?y!|^TSOV}0EJPl3TnR-)DT{eERJP;^Q0yy9nDJIWW`{BX z@uv0eFoA`lRVfiS4i%;6e{oH5zjt5kaGDPhixe!CAT^XAbx>&~1h7|HSSN0Lg!>y5k71_Nw)6Af7wEE(b!R1l`ji`H~@IQ|piGCc~+cCLpw! z?t!EwRuHnAP)CORJZ&mjmd>z@D7GB4OYUwIYs9sB~+M40aPBybHUvyOvHTO>Rh zncVE2fJPGII|L_Hk~V51l?Wy%Lx971_E=bJTiA4p1KZbQanx*;uoDJp{}_Ojri3oN`&%&%sb~S5lc%3zZ#fe}m=0 zO@3+(jD1ikkT`TMKC-OHU1&^njKFq$Af-e$x&rORx^6-*i+uJTK<1b$uWG>9eReS> zddzh#Rks;9bj)?HXWc&bRXgy}nU7`i7NzTr#uD1kAJ5Fb`iR=C&wdWWYZITQJ($ZG zp+2bmtgikoI^i2wSm8In5qBz8q$GY*K}SZaqSPPwa?JC-6{9lyAR5MgfBSJ%?;EfF z3t;gv_rCciSZucwM!}^DtKB8hjM4!DVnDCTZD9 z(O1vLp*&vV1P0LYmiXdE5O3k>eObcpjhL)jfiyz_U+sk4@A5u}!Oa9X zgqu0PPeMOJ1YuW&QZG8_%hY79qADq(MDfZqP}SY&AbiaQT&#qMhiDc14lW12PQX2( zdf26GBO#s~j9Dl^ZzS_`bPd<&#V5uI+X+nf&L6o>3-NVqr7RP-DvUY%b;_Ki!Cp$# zrNU%(M(imnbRW7#q^h=vrh`435+I>|!AbN2R27$@D_QUCYuSqlq(oU*K!xbA^Rlm| zS}$mK8)@k!3R15UnC^a={WZ%TQHQu7sgG0v^HWOCl<}OMG!R8BA)wP-7Q$-_3+RawLB^O>z(t;#}Kl{Y^- z4$6FY9a{0(GoY&-GgZ$)U5eek7}haYzQL*750z#5mEQ^EL&qZoch;*xehii={XF=c zE7B!SDh|F+BX=jQoba7vYyeswGc3k9W1NhBQV8vj@dt{-d_)B;1$no^M=y2(JsZhvU?#P`%FBFE04lx)R9yJ!ap23TPSgK#ogtqA3sfJ1 zC!NTug;*GFb@6?+KAfk>7Z^nDKAS4%$as;v zvS+#&zSVYXJUqSHRpMlH0$V1cZ5#y9<}`nT<|W2RJmwTKY6$2A+Y=J5^h3AsG8D$8 zpiuCN&Q4f_hV-N@JG0q@sa&X!!-~#jNd#nnPuu0{H5di-Iu0BS*;lsXH*Yf?fCu~+ z&4BfUc#u!|b*UhSt{_HQHZ| ztTzbLZTR;th^>i82Y3lPMSuFX&4mUZC{-%MsMl9!78;{4nU(f`Vh!SF5Z!zL{m?OD z9H0dvDjyz{r!AZky6BGm?Piavef=hvR*wS`8F{hi`O93)UpPfKlt%`TJ7KKXs70Q_ zX=hr&XVFX(!1QCBSo6>3y>Y=o`j=k3ePqXC-<91a)7}4H7-lq($xfVX#&*W-`$^Ae z3Q1#Q9)ClykTF*1W_@ruJJ^Ktg<|7uXo}1%W4l8lGiTv5G}3&$1O;hA<75Ir+m1tg zE&iLmS|ks1MaBldUyF>y*TQl+LDIfHo*%OL1LIC_^M5-nuxfKHdczUx9J6M%g(qN)0IjzC>MWp< z7QULlZvZN3;Vb2pk4FplyfYk(2gi*fn=zL?)#+NK7H^R`pdAROg$Z#dHG^}~I;vv% znZltARphv{7M>>(9l0I0`-^beBO56t#J74qe97bP7y@GG zNE$!Z4{?hn*cTmvTcR(Z1W*XQg+7Q>6)z{Lsgw~=AGuLQx1T;AL@+DSe&pYYnZCH?%7$_j3zl15OlQ2Aai~{ObjyK=Kt`Y7Azctfy znz0+_%FGdJ>LXD1Va^zd__lhGWL#T5E-UnMYG2L2a z+HIWtyykNwbTo>67y2n7pS)b{HM zi&||?DHc+0EK!GxWWHLM0v9V_-hv}qNCWE}G>SO~jm$udXN_>msH?|cgKPm0cL5(U zYH-X*3$It8iOu|K7qA9hsMAe2VS24IzxYw3S8!4iW7QUoh@UnZ0Z1V1KgMa^;+#1` z2ALM*>}2B3O#2_0p)4){w%d&|yZ>DQf6haho{R0j0bMy?8oh9dgN9p)#bc`_fbeHv zHZXhvFn}fvZNfx9i#4#CyVIjp)9-SSQZ|1g!+II5SBXO9dh865$27pX$`KX>k4vMbN>Fq%_ z?Dk-9qo%O*nyfTm_5S|Gs9TJQlT-rR!qU65+P_lYJGL*`jlbb(I0SJaS#u~;ayMrK z541(2vi7X-ga(&v|7y>Q;gpb}8@YtY-i?&k0iO&bl$!Z^9};WOTLC^Odn%lUl)Gdg zM;vpu(S|>Zr+xd5L&{7vNx z%~ZS~TrpoBp7#OkU9Ilc8==*mA$r`CqQ|Wd-e+Fz)%W!;{x$B|zy<_xZp`|xOmg&1q50h( zqnc)HYJRD(+Fu>zD^9kLOXGDxbh`oDutfb3TE< zV{$%pJU;$Eo=;#BAbq^~1WM#2-~XRa;D0Qiz+HusE#N5m1p56{O8o!%1l%+P-;qz? zeCV-9%qO7nWheOrCYH9Wfpl|hEMo>3Asjqa)HNacjV&bl*P?;B!j}VdeZf?HMm`|7 z=?PJC4!k~JN%0*s@e_Ip())fD?(fMXBW#jZesQf6QBH?E< z@PVm8v4QfKY2|H$4sv*Yl;rd7+d7_iFL(`ePlW+ae!f)I;k-M$$Mrc84&SWcFXKTu zmXoe6P6UT|`7ywh zMb*MDOGFDNMi0u{X8~m@IJu$lomjgs!uDF?5HDShIK<11emB2Tg$pL5VlQghZ(|^x zck~HBZCcV1=6zynN7FBmj&Qa&xsNGnr7v-?&Y7CuISrc@J9Xw^SnO8|PiNp^M4GSC z!d-Cs)~u9yAcKr``-Ny;qF$u=S!YPBLeh!OvIwdZUzfgy)*|idpbh&jM)z{i#*#M} zdKgQ_gEkux^KVu3;S$SgX^-Wj5gxR;2XCM`{Te`zy|oF1DRs?Cj#Tv!jc|QgAhE_q zC8vdRwRt$)#zi%(2K?=O(cPskDf+^rSF#*Xj31_~vRU~wz9XR@GaihV7o|?tgA%+j zD#QFM&)wVyMC2S;Ey=kLLS;_wgI2tBb06?~JoiD?eaw9@OAnOCb05r#=RTlK?Znyt z6WSv^NlXU918ot)jR)F<_?Y{E&B{UdS)PJ&n8au}iBMn0SrkcPz+#xRjZ=RN>^UkFl;S2HU(claQY`#@Fw993y&xK-o14^Z`-j4Yk>V?U{gT$Fx?1LE(_!)IG9tfzSo`XM2nqEBP0RaY^mkj+eFb@Lk zeK;}*Fv|s)G{=kwY*sQJuq{j-U`qm6IuqwrFtzrl78q0b!OW zFS&_F5=|&#gOBH3fWWLIt_%{aBLH~5jAtP4CjeBg436#p2w!x#NjUv_xJ-^6UuK*O zS!e~yIvf%F8*K5)*6eJa8GWpr~vl2HlZF-9~{zDP}(HlWK_*qr?n z)(E|FnBc=1n7_XX?h@yEQ~P7I3GRK-Kw+u~D^y%HkZDy?jKJ3=Da9d&rQ=1&7Na;0 z@JEYeDQB-bESq{LmJ-qs;F$8abOjX|ITWif1aYBTaC$y5q`u_y5n;rL+qViRP~>Pm z8L@LvS`1#edyN^0%uGF2|HTFNeR!zPBfFGifc$cVV}N9N82?2$*=35hV=i5SM?3~d zRG0ItNu1a(1fb=~hap83b5@Ml<-YZ(iWPx)JsAI%hQX_6E+4iZ#xPwNL@t2l>PF@-DtBR6B%W~fn@mmYtsW(~-}%wHm=Ae4t6$iJYZ zbr(u&oI{hX%KW)T-qS|GGxnosPj!vc^^}}i_#^mJ<4{^n=c-E@k(ul-FW%p~nl)!o zqCe3TT$q=M9u^f5Ou1spH>I6XAym>nQpLat#Aqu~Eque~UXzp8NW^faL-YUoH^x%I zMN!aTGgP;R3953kL#d|hIY$;B2QGy=L`N{?FIZvtC3tw%gmI#NDv?MDd7h~M8GpJO zO4%R*+S)O_-+WBR}_@cRdT;W zEwS$b0;u!^B}0FKbbw$AuJ-02ljIrMh#(HNVgp<}3HRop1c7mGt`{?NCDsigUp40? z)=hYwt27EnO3G~#0!1p!ExGJxTKLb%grYdJ8pv>G3ttX=s9aRCW&@lx^E1Arf;=T< zfYC@39u0x!X2`)TEqoG?L@h3t^adF|m(-uvh%_)iz-T26jNtMcJ&4Py!K5rO>;+k1 zNJn*n&s7$f9V!o*ipG^JFf66Az(hDUfsuk5Es66;UqU#3aN5}!>^Q+`B_j(Pa5J)e zj*KijkdcLbP6OJidEJV6+2^8l1)~89U=F0tWoX=yAi|msL?rdGONZeriQ{p0=Y#ob ziuEMmd5Mb&@XYNY7>`lfp8!Bq@U#dwMAQI4FIX0dxOhQgC<@LGl;=^dyqMu!VT?7gn_| zjE_vsiArZ8tSk96u0h?oaaX(j1Rg0acds`4 z9tg}$Uv7S2?kDyZDH}PL8NcE@PR4yI zn1JLnGi3D4XTr{pK8w|d&*F{0t66w33$&>wf{s+P%xA)8C7+3yf2sD7HfJE%Mtmvl z86Z4omrfw!OxN+5aGsbZjzVLe*r%l(kea~chiWw8v$1maFHu}y%JuXh-|OuDaqKcH z=i(s@wkgf&jEuEy29aaYrmC>_V;N4w&@E0IE$ z2&Iq;H6l2L!`bLDP)=JmQJLvlF@H0%23=T1)rP;bQfuhVauMDhNA}d&^w0g9T8tnx zB-c4e@Y@?myPX+M|Ng70F_JaJbXRt}{TGJ$bylO+sp0Eb;~%VX^wpj{1Sl-lTiir) zER_eGR^P&&dNMKClQ{CgM(~u`@B0AOrChoUSyi*Lp3AaVsW?N$rDiNG!!vDsLuB)e zi_{v#$Ap#WXiE>K_Ts`7QB0e)t7=uV%3-2|O$nVpqaBF@Jcc*lhju#Q0Mq`Wfd3Bk zndC_~zo?u7hQ-M`_G|^U6CT&+GmjkC=QmhPhacC!3ojfK3CHzGHg+R$MzROI09TeA zn*IYFW3uF`sKi1_hs+*8W|PEODv5HPp~D-mIP}jsBqLDnm#h)j%U5c%4kFj61XG_j z03b_5G`c~nR21Z-W~04^;v<9@a*VrnDr8YqS&wFhB@$O zHSlq?!NmvDJl|!wk&O)PP|g&^dxk4V6n5ED9Z|(6D)h34V1S(h=t-xaCTJh3A6p~o z(1+2H3V!O8eS>9_M1r}1>yoj6`0f~-6qu27!N8DrS@??|mq^XJ2>2SG1dlhE6{H7M zVo+dX&VI!9)N12D26>ztcQhG84kL_butbiNDNYs}(bAxTjfyf>;An^}NOw-AQ`z_x zf%rY7N+*Q!s^)xHr!1p*SPLU3q6w7wC4|Zql&1nT(m-X`3 zDB%7m0o=id0k;&sCkMEw;=tF~K)@ECEU|x(&&<`!(Yr`K8-nlqK@$+l69~~LbRg8@ zB?Zvis38cptKm04r`kM%pi2@|2a^4?wz7CRz9Ty-uLn>~i{MF2*7KqL5Fd9Yz3%&y z8skDJZz8~zi0hzYOUC6G@lLfkcZl>g;*9`uYmZhECws)G1Ptz>`7@?wpt5h}b? z!XPTN4pd0WtP^)MX?dM5CB$ktLl>}xslM6 zq{fy)TsvNZEmmc$Int>^G8Hl-Hu zBas@V5tZ%5s6ZZ`FYaY`FxZ8B|9OQ8{h&mr2)RRGar!)>xJRFNkRSF!Jc7EbHUi+e zx3j3MDjN^tkg3C-LqW~TrDsRXdUd2hkVc$rrbRbAO#d<;RUWbZlu78M4x5StU#4u( znFWnVsxefWR~vQOoZZ}5U@nNOne&Kp_OM(K13`m08^A6t=7MOnS8hj>vMv@vPdo0! zBHk`gAM5iX*2LLI)5^}H+XWZWAT11`N4#;yQ5{Y5l-I;J-a?z!%e77Z=sLCozY?jU#q#S%y z!r>cRy+UH8#3&JY-3Mk+=S5vJg#ZR-jXs(4r_kh;)mzlf=*M@D> z!jd~4H))3pLBh&}pRCQTRo_P7cEHRAq{<3+#oLkta-~<3UNud5anf}`n7hjYJJc%C z4c2j`v^hKbq@}?dP#1X@@JVwVGSF@|Rc&56ovfrNlJ-dVO--u61;*FBs3t^_BtGgw zZElVFHipBgVZNwJ_-mA>^DPMMGz+()jUG6_!Y!(!2llgY``T#U3!I4_5NHW)B75`F zpP_RgsYL&tj;LhSp^!W&!jum&z9_i*7-*QvXW`aue@gnc^wYT>zpbCC(#F!dGH5+#mAYlOu{KE+4OCsgix*@*Ciz)Rukimp9t%72>kw zTT{wt3n$3N_l~s9dSW>Gg*ze@^OufHv4|K zj-6CA0f5}G47%$>A#NH;xs%|XW#QYjSk1}eu#(+Z_9c{CHbZgEd%4IROW z5QH1R#F9so$bB^Jlav9$1e!{1lLNBYVy6jyL=3zkJ0p%Uv~Fw1W=?dQ*+DRUzh;y! zat_*3)AWT#x$_NYuo;(Kgco!15^BvdIQtSB3R0oGf@NhYlrJR}ium)fp?WE!KvI|t zcQRZiBjCdEYR*pWFrtBZY#_PHtdpo(6F$>vRe!&U*)xTew_;RBb~9Nte_cc0{<~w% zLeRq}=L&joy&Zp0g8o0qKSgy_;vQ;MNL{*qKr)M4JvvBY9`?BWXv^;Q-gPG2Q_o)_cfxhY{|t_f2`khngl6cgsp z&?}UKt6*c>X8Jn!(8EMu=V#C!lz|QRpkrV&RN?5J!A=b9|9V=%@(Y|tR_b%}d@wwR zx5GAdGQR)yV~jfm3*u?dx+*Hcsl=4it)jLlLH90Qw9GU~&vx<#9d;EY&E&O*wf=V( z$DUTibClMHp!KAoAv4qSZsi9^BuC^Zl2onHzFU@r>WpH#_7$`rI&-5u@RS19TfpTM z4fB3L&n2RiO)(X%Wj}$_pzeFMx%!OSTvaSYQT;^#!chv@zao&_9o6t(sHi9S+g~6+ z$ls7~Q@Cv+E$h=s&59P`?Dp6{7GKn@x&b0SH5PFB`xYCSSTUMV*F z9BL@ryj#K&;b7klz_~L}U{IkCYRlGs4V=V%ox*BVK$yLA6B>^*@EA=n0oG84F8l{4 zc-Vjxp;7Nj`>|Xx+z zpy-u$DTd_EI(dQYZDPuBUJ{o$j50&=ZV@-^b^DG`?T=8jJ8kc+q!%(A;F%i2hmA+z z++RPbXzvPOZHgD6d_PxYF3Fen!|QG^4g5w|HK^@#y9N`pa4WMQrE~OKf^DH*W?2!= z0^c%`I}RU7nX8_`Nq*!yI1$4=p6Ugv`cup(&>25D!*%8P**%EOy-j(iljd)ANK4I`FOy)Ct*@s5}jMo|R^}su|*lLB^V${BsLFhh0DSE;>!HL<1m0S&nuEu z{BmOa4l~2)X^=0`?s~vyaX$Ax73l2uflh6*vuD4H{1N)Ra+HFJ#gEC>)wtViBkUjb z8-`g;_ZlYzS+COcZP5NDDj>3|EKseLy#sDm7pNJe@9VD3UI6)TFIEz`ZhKI%*0E$Bp!#fk&@-1m|=9eE5L$G!}YL^&?QhT~znM+JRGu1`lPM{mGK ze>`-bwi03DB~gJ)N{9lQ(vBze?+@e#f-j~avrQ_WHcD5set z=oe7KGh~+bW~A~uo_^0|zdm~ zP{J1A`yvalKOo9UFda3~Dp#A3tkl|^e?Tu1oOl8-Q#f%XRrzONiN`aaT~Q2x*q}6` z&)#P<8<#UsY76|t5N@&SaI2WSRsPjYUHT!$d+VxAOM7C?HhuYttp(smx;n5iyxEC8 z3v67>xFXy?410H1rsN`qo39O;wxbG0XL4Nw&Ia9t*0(X4fM>xwhFm zP+#HI543N!%hH2B`dK#HTQ)tK9z509)x2<1mw{+TJ=10$fX(bap*QBy6GPqgPeGL1 z@q&9W)Q55eetUC}jiE#Nv-oHSKA7+awQB7JX?%hpg4lhzpV_0>|; zCHVx!9ccfN^h8T~E&7nxyua1SSiB|0_0bK~q&;yDm<4W;HCEaW;hU=ACJD6%3g1h~ z5Bd}}kho@i64ld$_WozEvLrR`TUJjt@vKIS%GKXe)wC8E$f;#N0$4gP`vhby9h{#4 z`Rf9;gRT4(R_Gl_rm}Q|QrL6%b!;k=oaH5Io4D7EA93xlE1F7n`TT&IRor5@4i4BP zm&k*VoQdf{#L^{#dm0)+@B;LY6g4taG)-5v!>u%V$EkBJ)+b>ioqmwNI3NiZ_-bOFh4`LaiDR2;-(kJ5=s zu)h^qFBqxKegJB1hWM}@kH=j2FHG6ofz=c_0c&GMW}$Lao-qI`N&i(6?;FfE8G!#F zZ%G2^NAkN9tT^v+g%u&JONtWary~{@>WcPTh(77{rXI^#=nrfq>AMg>}1 z*Y?5{w=8V0#KYrRhS#dl7&QX(mP|VvJVJE{Fw?HQ_^-+PQj@?|9m(H9L{f)2Wq??j zWMIjzgB?YowoOpuFR(8G3rppkwMi@>#p>q%xX{RaSW61FO4vAADrvSljOt&MdnDg$ z;~K`1ihfGLk;3NZB@IAa8_eP64LwZ) z9kmOi)Qf~@rl~IR@+!_<9sRI-$Qp1PmP6>EQ_UVh?wcYcTrb7|VufI$NJjf7Y=^(I zAhRK`h0oX*W4HpbFM!@h2X6auDzbMhL&tsWZ6NI9LCF57z9r4>*>R)MV$Lgf>Z$AX z6!7eLx_V z9v;sSdtr#+=J&?gj+1usz4!2341Be1>qOGk6LSR#oWXcIjxGn@51HBc?I@!8{!v;LO1RsAbmMsh7M zM~&=A+#w&>rY#(M0z}J;hjFScNr;!ish)*&5mZYNeWi&sO+3C(ZWrBunP~4 zXQT(;L_MwTc`%qsH>o0K}K9WZI8mu45UvoU;9q07-2wj6r zblSTPfRr<<65RU?1fDvSLcPm5b~9+XTLuq~n!mLL)%BgcHh2p1xAGT`2F??ugc~II zl4ftAU|QfxR_1Tzcg^x}<|0wJrx6w%z)Ucc^E~@~^(7p|tuo*!gButiW3* zYsi&;7(2DGarm&1@bcP$*$5Z2@^>(Qh!Z5n?GrP?0no$L{vr0AqKL39LvApHndR>& z`Z&nP(AcO^fRp8sHq&DPD=@s)9>R0RX;rN3lI4vW5pwP%uHo zcJ;D!1>r6Sr_CN|cbz&J7j*6!?eS!4;mIt-WRPecv1!h5oR_?!*BKGsID?X+#UJpH zi<52P-%*Z4i~JMCRr}2g9e&ZcoK#&H4ea=~{cV2jWJzQBzd`1jC9G_5-FThac6_2V z)|88x7NFm%bXO5i-DFw9&hw5w5&% zOs~mrtF0NL1WZCihA6OVv(Ll+XItHHJPY0A%%BJIb0k(G1u(&j6~xdyFkqy&_#?KI zSeei36g+;CfX8C}fEVX|W|or?46GanAD}6dL>rg?0^7>k;~|W}tl-2;*Op*D3J4G2 zUFlB#H7W*R8rD)GJ>wgF4iZNr+3|0E;@|o?-|8ag@*4-}LEw}%;)7x1rw-H>Rv}Hx zB#feDDc=K63(&p#fxHV7@Iza+0m-fL5~$U+bVoZTV~qr-@@S8jz!9J=la?`leQ(#P zPCMzi(i87;H>;L1f>$|b96&DGveEr{h>Zy_8J_qFpad_Kbl)&6qxb{ohdz&F?9pS` zsIAHoLTIb^MBC~l9q}Z5!Y0!qx#&m#3g9X7779Rg~#>BFQF2@rJ7xjC@?c< zy~4z|S!OSgP05ljuV5k5f>+{+exDaOkzSTT#xsvidJv6gc!FmuZnHWGr+cjsZnFrf zcEe8)JfGyWm22T=@U<=jJ7Z+Rp5}l{CvHDlcqxF$1&O-6&A*gAAv^HZ-pH!rwMl$r zUaj=;wr43Zz`jRzx>*>f-^n{15VY0thYN$jAPs;-3%`$r%H7j^mZz_0Yf_`PNTXWB zhX}$P0Vv0Kn|G*upS}(VI!HYh+RIqL4sm|K@Iz`1RW-k{Z}M=g;_}L4n&DY zy!eaB6QYzGK5OI$!}7GpC&5zL6ZHfKnj+EsQd*lim&e&7D=;B{g!Q#>%RX4VwSZPR zw|eE3A~914EkioUkiv#MvA6C8A_~4?6(~|VU4;fPELnwePDnU$?q+9@X-b+zF5;^| z7Ln~|kaB6b%$cy(!l&}Z1aD-0@q6lUgruZ-wpww~y|h=Q#pYK*{Ftd0zKhgRLFRPwQs~j#XNwo7vP5(AtP09b>VPe<61Zuuk?9*1@X&) zdF(UsNO7`mTBHT&sJLmSofdxqZqbA8Du+{Q5uTeP?*Kq9=O2hgJV9@OqpI$)t1)Ee z2T^S!SvZ3_)XNMx#iCwx)gn{lFS^+#YK6f*mIDMO2T*G`UW!PwA7q15(%3JcB|J+D zuLcr2+%kL-iYCVR8r}e-?ep;z!O>r{fB^{prIkx!MrrQPvjwc*1WJdTG zIC$USutu&$B#as*Uwm8geiv*r0c>QUxC0$c0;}r6-Ig!1adK|CKJf{XvDq@ zfApmyoweB);793a#jui^U&lEqBFge`TGay>)ZR=(9u$9K<6>lJ4ScK0YRhMJXBk7D z*+C${o+#9u`|(A!!tlhB_mN7Cl_2IoHxPK42n|9D0E0aoMcw<7H*3aAAl;JBibbEX z2eO%jpg*`wP&8cKhI&Cd1=e~L7@x-z{zxbs>`G}OgU9unY?q)ws@5>yX)FrVwTUe_ zudqNw2J*J_MD=BQUwJT=Q z#P`kWuF^pQz)(e@n}b0rg(F$Xa8-+FB%yA&%7~qhfxE)Lhx*b*i@b)0N|dO#SEQgK zPsgQ_%g^ydk&7sd_FR;A&yT05Su>U@=r1DfaATlc7fy=1cP|IyR7^`LkOW9VsRSA# za29j6=W+T1J&siL-P*7|GyUvgZLEv8?*q;kldn`z@(YmDGw* zuHpsYE#sz|9((sk6jXd~&q2}BwPasONI_ajLW=uQ2F=@7R$ily|CWqqj8sw|K1<#Mq6fDv@-SMO9Yuhe%aIwrP<}fZIMF ze>|0<3EYN073&Z6QCw`0sK3Ti;-VpVs89x2jI~Z+t9=vjF`*(o0f48HQ3jt(f{L`2 znri0rVjV5)wP&=?lNq{<;tH}#Tj(k4%Bu_@?HxS{!7S;}VQ4lLzmueH*f?VYh4~+K zT>(!H-l4Rd2Fu&k5vk_a922pkWXR97@O>D9zSe6G!0HTLx&n{2$43*&(9pi}0FR(L zccaQo&I4+G86iT=AG#&`vSeK0Mc6nCXAKk;dpb(0a#I`auhFYp>2r?Y2$jYrS6YIC zIGxg&)%NTII4}iWbiw&p11)?F;BFP|h)aE+fKuQX?2p^YQ3!{}B6C{7*rL=H97T5q z9+;wZ;bMo6Vykj+XsH3oGSmpIyftDUmxa$DvLq~IZeB(Nf35|eb26hdJ303)!v)S+ zt|l}NhW}IPk#~Xvd~G)~9Z{&jjBrc}!*Vw}>xvg$^k}-81s7MFb3S=~!r0A392eDv zQ}CF|JbftkH1tDzaqppEowlf3^ISx3KwfI$47`QSV=drNJzJYI@B`~Ai@LC@{-q~r zUDvYZ&7m#o4xG4JFL$=3SPO+9coHRUFtNaNOwsnOf>*3dOas|4vh`{&B7Dse2Mr*t zcc|2zu~U(^!v3~;>&8rvQ}M=L7*e(&rih|=YqT%j$|^OzPa1jIw%k!yLCah4+ReEOUXyDIrkQY7F(9rI5^?-sMmN6W`(z25&eLr?Q~Q$MQv5f zT9*z&rHIBt6Z^SMlzA42nAr^s5iGutRMjbb#~wDUbd=pw z3l)=ER{{&y64D|{{UTOpj4?+?UNQDVf-=!me8}a;up& z8gm#x`k;k9wa}@%5g>65<2_C^i7aOX2b(l#|MvBxl97x|24X{Z|@WymmCp6 zMjZx^(*z!H13f_q#GOFg_eepIkwg&tpV0o}$g%ktkmDa5()U9S`&4#9*VS*aM5Rl~ zN@A1=;DqilRNUOR@>IFX%*iFs5wHs6p6 zM_XLz6#`6bB}~IQCDV*Hr+`nsAIjTe$} zxV>z1^I6boLNjQoasxt}{aaaI8jMtexZ1H(2Pl>8VTn~ho{x>kqOt{*%C>Hzqq1Fq zR-lEIMPUDiy2v$h9d$GqWcPDn>Y%6DvVoB>$?u!5)U#Vq0P0y}D}ocS52IJeE|KkH ztU_E>;67mrvR*1oy3VHBb~xznpgM9G&Q5^@iW8nGS`-v9l>496FzkCdrtgWjeuBr9 zif=MbG(PO3OT{#Ttvz^x;{k*H0j~)8vp5Dl_9Y0sqSpHfAcsQ(ak780BP4SP$<0IT z^BGitRKQ~E#aW57g*EGnLlS6Wf4~@~@5j6p_A9D5CN=g~M}*&Phw9A4LcyYno5~kD#2{?@1{CRId6HWTNUTyhc=-UocR!DmZ@; z=Y}c(8`}PgBZ|-_$4Y03v%*o`8CICEV7D9CYONk*(SKw`D#?*5p21(g)YV2-h*=NA z7tMHwW0#6X-E}|sw%s;_e(CsC9ss1K#S^2tZIki^G`|){`_&vFuwBr~8Dw9_^uS;f zriWifoeanSDf1u!$;z*Q3)OHOrK=5W`#(NA0%(g|%{KwoyHFW3Nu7iJ7-Xf3UYC8Z ziT2?jkmYYJ{HNlRdR2l}J2w0^Xq;A8I<~FS?8;B^%Oy>QA6#Mrh?t8xQrVY&!GfaW zw=bV#gl4CV?WV&BGl;Tnb##q6nQ-I!6eX4#r!$}%lDt=o#Cug}_-qZ~8F3Vm{j)e- z9i21oXF%QmDjaSiwZ%u{Qu$--w^Qicco=lD(Sq6?!=?%~xj27r>WsUe~jt(2rZUQz(6oG#6MEoCM3bdt8AjDmo&LMQ`VG#161$_rJ-#!FSoWF1F z2%cM%T0jo3+;~Zup4V(i0@Jae(33LIWJc40VIL=e5^QEdrvN(rhyWU%0wA*Ro@^nm zAiWeHu`{$0s)AU_E0P#cKJS23oL1p#AHB+pFeM{})4tB;j;_7BAh188DS!r2nzMiP z-7OrazstPDm3nKzB080NaetR$&DdDCUr4Z%;-7b9!WTQz1_cw+=0Vn&$L%pX0+q{) z?m$>t+Ol-lb6fKgSnmk3=Qs(v450uH{e(1d`mj$!v+BM;oQKyIW(<2s3(o*n51Sgi zZ`kDEDcl)KBSX)v;uU}@f9GQQEZ)NZv}Kv_k!cIB@q||e2bJs_6uhV8H|c|dca-e= zN$@Id;qB=q2Yymm9=xJtUohCEv;1V!G*6dyJiEeswW9 zb?$m>%fBf1A>{d3&6CDD&8y4xrq9$t(v`mE3U%M1-h%u`+0ibq{A<8u)TPf4w^r~{ zO1QseGwZ1?`w)fF9!y_VYo5YlxMJlSI%s>Xs!fVD<5%7n$O{zv;Wg6)tP1u79Lxzr z7^n3#H!7EdQ{Pu|hdGpjL?~L0D^}Dk^;q{FD zcs=8txSw(2C79C-yd=CPm`UB|pN}BV!KmTR9pMN%8s!Z>W{w(`yWYr1)GMcZJF_>` zB<@qfA03)ls9%#c;4S=WPZX0|!1W#73!|g5aGVrA0r2v5a1*tWVDTSq)x|7!KmD=<NE_ECI!YYB(NW0jfcE5Q??QgHmh&&x7mA9ud}Nm1)EzODL2qtVL9LOWSzup} zHo5+#EoCSuH^=fyRothlExHLSRr5-E=s|7K_@0GKY4-%143rbuwB^-_Rf;|OpZlQH zPb)O@pL?5;K&9K#TJd*(+5oKb+$wG1UNeA;w6*IR@T>&S!vBq?3QNalrDZlx&=!qB zaASJtRDET7p)n@Q8Z*}DYK-wk$1q|LH`af{TUwnfTDf1KhNd@_4D+0}xnyl->1S2I zC&c{J;(FVgvXBBX_Vg5<%nAMp6K6LiyqL9XbmXv-k9$o<)5aay!9U9ltxlNLEkB?^ z9DK4+AD`uEo>e;I{MPHTCu@=pLdNMe#!SHd(+<5%B%N#y_9C5J<25H-YkHqRa*cjZ z++I*yo}ar)Al_DkYrfh;nbq5TZ({Q*jla{{LtT*&sCrwb{A%SdFTz;mR~3JyS8q#? zte@5kXLta{w6x)G4!~axDbQA;ZSn`MCn&Yoo|sI z?&{_m++WH86x6QUDd9y@>Wv@bQJNLM-&k*vKrvoxUBt`2y;uWtgwMR$XVm3<7&_bX zR|=U&Hkt&KXa-#Y)fqkSGlVuz^~KNGSfEfO?}^KPjPzFTh0e+kdi`sK}^mXFCGnS=cJANCS04nCD4>YDP~?Qce6jQ<)JBv^W1r2 zaDtiFf|$`j;{a62$#3-M#ik$}Go~%X9qSJs-0&rm!ZmF8fZUH1Hy!?if`%D=s++PsGVjJvgTCTC zN>^zg&jE~_Kx5*$lbAk^uUH&?Z|@nWY$AS1yiG%o8-I1iL5(j!XFhSXqQ|NB#Si&Vfs67+P_L|kSJ+%U)B7Vs|q zdZTuF){M)!CAvZXw0~%nb>km>)_9y=^ZKhFz6dAU>aiu7?Ti*t%6iT0 zg+?zo(+y8_BqMp#3nE;7RMo|>33C`!$khf$u|3T5e=qKlI31ng6*}TXFwa-7EQW6)5 zHySnP;A^oFErmj;rB#2G4W6GL3wEb6dQ1A}ii*DggatQPJ@UXK-Ei#MK zz{4@PsXc}O-qSYYSPPmM)5o~O7rG8AruEobIF^x%e)J!G)t_}?b%uoH;Hv08Mjw5} z`9`Z+%0Ns7x1hjvC}8HtBJI&JK91VBDchPbAo#jjkZpx8dynm9EdEct$f-B;`xxno zRxk=-{Wn@-GYF~(Mn`6Bqwvk*J`qIf%Jo0@GE7NPhq+<9DFd4UGnPYv{^qIIpz6q^?sLi5AYxHBh zQC^Q`V@4)-&Gi8Atgp6cWp&J_E!vQ?E+enCy4i;laH~t<5y6SX{XS1UtimQ=_mxIB zObHM4sMilT=eJH>>qgBBFj&`SCJUhd@PGJF zE71yt;0zPkw85PVKtzYjszrwrQ_(`aO-+AI)Ha`5=^~%?U^XHR{u>X$FC2XuTqEQ& zsu8tm4);|b>S9grihzSme{@E7PZb$Lw788##yunOKb?Kn>b2RCJy_xy{c@{>e?+}> zqw;9Czpj`Z)tdAgPF-NFvE6{HK(K7vtJJzN?^-qhbs$FSkk5BJquTRY zH#8Yvcds!6+l`a;TJQ%kKDTe!iPf0;vA*Af$DhEIidkcsF3f=ZPEl{rGc+7mi#7AN zo9SY@ZHIPU>-FciOl@wiPNLUgXoQ!j|HfxN=<~N}vt9-o8hed4qt42{G`DK##7rZ9 zjrMF+#wdlAilB?Qd6T!ssIjgs%f{^ds|_eWc^e--#i&>CAT$6DV9~~@yR1=w1#mXT z<(>4;Y@?t-ug+i2nJTI5Y))458iGT#mvz5XrP4+ zmz&*yYUY{RqIzw9KGGMzOXQv(s0U(uR%hh5cp8j#@F@m&H*{6!5$ zUdzX-aoJupQA+U<+o!8r%_pQz{#g zanii{Am{@&-AT=-IrDd919GT5u*QS+3Vn%m0)+TDpT1(4Pz+#c6!?rU8n=v#(w0xN&t(O%I`iN3&;D#koCy|W3kvvjT-4OiW{W~neV{+@<65^b zXOq6q<8s4la6>dnZiqfY49Pjv-2lVt17$-HZ)CPM+d^;F*zRv*zb*|B!Fi!&-u}cA z)T2WlQ#k>z^w?m?I7}=nc0Wez-)hw0I2I6a`ry6(Q1*-=5QvH&d}sYZoGtRF{f9r0 zUA&HfRvrkaz8*bc83)t+ikOG6|JGyjx$XZKZC3&xRdw|L(9#M^r za3IFZxlt#$A6Ddb+O9fuZbO-Wzp>Q6-)b%M4ltIU;!N?(ICKHdNDlaB94ZcUgF!af zIufb{r3#{rrMG&VN3&(~n3yr~-&$+pD-kc3p69!s(4k_O9|5m#M``!hVL4?%t;$0K z{`~-3**FhpqT;>NKR`%dyiEK-=(XjCf1u{MmeWe22(}02WoE-YNux);l*pg;2IV_RTZB&g}>fZLkARc>$z-t@|k( z*FwiIOax!UPqr6=-uBlc5A_r(DZfUDBU}e%vZP+Pb_6(gAN_=dEtrpN?LdVx0x=DN zoxk352-4Bol$5RcjWq`;QX(Q*p|{kuyK=f{&!m;m_t@iVuRU?57b^7EoxGX8qJ37w zq(OF12%DbqJj9nnkq-6_J-pQe$?5a&d+Y-dtqoK%idrBt6Ar1;eGu;v_u6(p7Zb9? zpGQqe&n9cT6z$aFe66*`m3Wv{*4W*x=uE72$&`XwOSGXzQ=ct{($?;5?`}V+yPd*yLwlRUp(1RbyOIui1d5vdH)`goj=E zB#J>0mMMsm2;84wVr-OvNq;$ia5yQ_n@v`pI9wq(a_U7`MK2m^7Y;HvN2t`Rx5o_a|(uHe{4%L1q$SV7I4j#RGnjgKqRH*Ut%>ji;t%! zmS?R7LS!q-6X=2sE4QtSzr|T{5!Axaks(I;WK0yVj$sQs@;}=0wo`TjzSz>$EwLWZ zRYz>T@%r884|RS`wH_?kTuDQC=HdW;F*r}e|04U|Y%;m=tTJ@@rk#D}C`*pXP+$;2OHCmNaD0TUbM%gncY55nqR{)|AdFw$W+C|l#BBak}6;{y;q0&5@ zCff+%9`TFvD`F<%7at=X3D}1XwECabe-^SA&}Adz3s?aiRAUR=3D*VrA_gl%+x3Sv z%&qZbWE)cWhn!Uoh2d?!kC2x>m7fhEj>lJ#l7%a?+(98FT2s^JeIeH{-$Ji3Yo0b@ zGXjQJdtUGa`bO97?EO{?jQ8j|$cRmC!GG=g$o4;nF@~E_Pc(+}>}G9Y|NON`EMF^+ z&+>5_24DxPQLM4gi-5je{44~idQox=iewq*;JY9jZC>;04Uj6&M*au;Wl388Y50oc^RU?z%x@QA(IRX%Sy-z)B6h=2%ZC&Ve8>ShO)(Cy zR3#!S-c66o_P3yaWp|-};G@3AyzjE7#nsK;W_o|@;{KFUQ$U5TG^%d=7_3RAOtEBf z16UF>$PIQ;7=U-i4iD9O8`oRg%d)wZv$WQ;O9k$hxmiN1JkEkD9&hMcUi%S?VjzvqS{?5xU#XDC_D$^RG-=#Jay^-IU%t>7nu5T^zj`2 z%6t^8R-Pd?#wKbu@+NM4hv@GPVhW(V6rE~4ze3z)q_GwthS_D5XJn4&k zrHhQ~BKiKg`S@9cTi{{E+-VoGXqel+%>&b}fNvRovE`!cVKEEAc+);1=`XST%Rzv0 zX_l7rv7qdYSdz%PhMC7A*vKkgV*BUk@52UWR7$OuT1!>_T$J_I@L8#QKfw#^uM}gryMRPsd zAz*PrF@`(HE}qNo+L(b-gue!nCzz8oL_pY!WW_UsvldF06kacy00TJM)-yWt9tyqVY29HJms$Q- zaG)?mgk7{^m4?!inB1FP_zLcmvT)ywF!B;I@}~&Df-(obM`J+JiUi~Vw%ZVp0()T$ z&LB6!c>tRT3+-uH%wVO$ydEC~d)fXnX80RB`L|#4CiM{ukIi zgk%-YSM!kEiesaYx`?Uj9_A~~!yyQda-ykt90SzeKxiK7r`&Wz@$pR3JoJ`5Uf>garEZOtDKv*IEAn@S0Sa$CzCPe`U0$@q!mn zSK|EDMnETY*dtUv{alI>wWO15uQD4qnTu5kX=ltbmm;1>SaF5soF(EfeHT>LmNmV*I)I^C+i@gTyYt<4 zoV{pn1&fa=3J2dOX#LfmI?o6dL!ZSzDZ=7cC<3hm>jysnd}Hn%d=1Xehv&K$GLf{t z07)JkU=HmpQz$(F{TcF2M}xa6h+#fO!D>>S{v(wF2p=T;Q7h3UcnqN`VcL*?kw@Kv z6xUw0w(I#Y+5OV26RW9&zJDRUVF=Y-;O&N&689`y z{%5V?T4UbZaHxb1i_G7K1oa7mFOvEDV{GMe?{s1XKkmha2T)_4hvkQ6$13{m`v;2f^(A#`n3nQc3H^= zqr&^q)r~dL^-b?L?=WUF5M$Td?iv2GJP;UA0lJI6VMS(4ZyyeOAn>VLD9|GBSwYwj z8LD1k7*uQ*FBj<`L{VJt@{PV3FCpTWaArIJe?Ks7Jw#fd*>MyQm!tu)5s^K1@j|=k zSx`|?tq9?ZNEIDR6)sQH{eFv5U<4av=dV@S$S?X#@d|{P*ae|nlFl@Q_`Eg*l$F0) z{aEO>Kj}<30Y(d-VYKj%Dujg4Vke&K{uL$31&3;)>RmJ+vjC?5bRD#(mJaF-x~NL? zaGuLdv}706nw#O@G|X+#64FP~6|H4Xh>g%VsERQ8mg<*!86VgC6e4tV@8;NEKWb1;(3%4jPUtTJA} zxkR-wHoxdahWi{uPrF`B*(7?JdI$yaIHG!3X|4J`UV)E-RMK8bOBDZ{SDz(yntS+ z!Qc_~3`KhJayw(apb)ZxD&ZP9rqaE+aO9 zmChaJ-viOC9tC%c2vnz|UG^w|!(sdjn8sO4bw_etcOM@=BGog;ha;*(rE9aWs^Rf3 zFqRfC&^_lJ&W1e|Xin$k*i>NVD` zlKJX4`;asBPvRq>M;|vHY&LHF{qpf(UmRcd&E0KZsXjVF)8f_W-|h1yBhl8lHlHInti~g&jc<4L;PwoJ0{;KKVs~<0ZeRfx z8frX@LdeTKeghKjpzVA3C$`}KSMmSvDX;K%-iXcWCkcGx`3^ke&jcnh9t)0REQv34 zPQEL)arwdaL?laEd`a^ABd_y&iW*Y!e6sjf3Y9x>-HdN%1-=8-!#Wi2F&}?tT$UB+ zjtK@^h(5Bmm^U7u@^TyI%VjzvI5ctWLj=eXZqq-x=JY z{q;qNRKW_XRd*BAkiA0@e}V89EHKp^>}mz~`f3d4WwhaNKG+V|vaE8(oUvY~cgWg+ zmCDe+2GhkFrUL`3nASlofDgfQKK!=@@Kk@y74`EIq0KHQM*eFn|@)(7|7#e1BaU+*7Z1VPhbz3Lj*=6y~b z=6Q$k!vopBnSe#FqO~(F-vZ3(r%q6S_{nQd(`md;>$xH^z0@Pl|q zD6X3s^jN$VQA)rEbj`imlw6AmlD1gv`Kx#;L7R%jl2GcCpe@6gtANj(56+YOirg8DK#i!LlwuN%2;6!`fl( zcDoYzh2~!jh-ZT7!300DOSf7$znJW+zhjjZq9^7V=5GkKb)VLAQyWU)Y5D=NAGMYH zhn<+E3Nf-4jtt6Us5;LF^6*3V*<*yBb%(owp4Dn3f41AbUdo&2|0D`TL0mM2uwNY>I z1uje<5YLWX+>+?v0K_I)g?r+2u>MiJ2UG^{oviZ@E3U0MoNe8nh=A$4ode6Yd*rXN z8hsnU8pgc4fNx`NfBb@2uqf(}jT)b0lrtun)o`Is&%S@%#tFT@UP65Re=zJ6W&ka$ zvlvUq3PlYw!k?h{i1yJJ7~w;B0)4rVfYubwgVqyj8(_@qg$HK>sBfGHYfZ+|`6M;0 z-wceOhQn(>YR)y|@U=_wOQ37$(12<0SZiAwK~?^>p2C<~M|UdLq8M;qyjE*WVC$i= zuU$#{Gt3P{S8+pvYEA^f5@!*A48Q2w>Lls^fX?AV!$F6Jc_9D-deig{9yyT4BW6E* z1Zjz$3Q`1nxs|FOtI2&Jv$xJf06;(Wt2>YU&!PKL@S^6UgL*178op`zG+*0?}QMKsvMF zr+I<1uw8T7sm}N#tLR%04IC~j)DV^$f?Zc(G>|>@){fXuq1JhdW9pki5Fo~WE{fGp zq5ql(obR^>3N*?ZL+=c>AmnSsh}-hE^$}tOL+i55ypVMWwaJNBhX14d(#F_jsFsm2 zW4sLI8jWGW)wxmz18`u`^B|bYs*C>#getXD=1|^>;8d$=^!f*p?$1J5R1VX_emvK? zW_cdqgRq=7XqdMHI}r{AP8qLn(-efb)LU(%rsWvURs2*iOTw!$Lo*;cSRcY+Y2o#H z=%XIbHRgW8XGGJyGuSZS#PjQ4!;e}jpcq7d?g?zXFc0x2aAH{f5Wf}~ufwIdww+}S zeEn{gn1}AR;-nHVMmQ*?YkQ60k&os$$WZ9BcOp@6Hq1XrosG0nAU5+Aq=rfxJ@cpi z3Q>C?FKsN<(^!f^ZgBWKD3pM_-mB03)j*kwRCN#PAy;IhozCM#T~u|LoUJtJOzibr(xcK+!5sFv5RA)Zi5JG!;sabz&*j1t=19(;Hhz5 zzSEPd<=U&1Yd~e)v22nnB*NqpTpq)~8?uXbVJ+N*f>-3KI|Q_i0+pK5#;$-dh?#WU zXcpLchRH2H>H>^0rSF~ZPTEFzEP#z^4}EuMQdg?mxdK6cnyCIJ6zP@ zT>ly4BezG!d~*mRuNs0<`G{`9Jw|);>#WlHkiQXqVN0%8pT`xv#>_i*sM6V5sa!=tF>N=ZJOa5YI;fm4P)7KOmhm ziS+r_5t;3cFjuVDl^*DdQT{sKe5JXF7YSi03=>gqLSN$gJR&c_CBfLFkLIVCrYJV) zW5mPR)RPB8X8QcO!M^I>tjM2hg!kaV4W!y>}b8Dj)f0@6hiScUTsNwA0t%~lO~N;gN`{Y6l{_fDiP22oYiAFCEnISX5` zv~82Dz@W=ccWp;VB`j{lQDfT#G!)Oa_<86B z=-AG7uJ=L=WnuRS^g{nuWDC`SefJ=012yyz3f&XBwA+-8Hcx5HdK9j8L}sBVjtK3I zz}{^8J301^UQ}>xj&+L{)x?*ja_|~1PxI+aeLgK!%1I$z!eoV>^uDMc3B8pjLoEcEV$_nvkaf{vCC!QaUj8_Q0%_FHYEdl}(h06Azk{x?wu zwnCk+xv$m>{TKm%{kp(CT{}?-81=Fa0BI0_gk#@|bL?KQp{y>9eZii*TteU5Gvwdu ziT}nK_eSWxtvMy3wr?7q zl)OVMSy-QI?N^NIW;%URRIM;n1ax8Z(&Up>efqmG`%GlDc41RcwsS`|3IyL#xl(#H zDqs|tf2~wgp^G^a8gOgo>Uwx3;6unQY~ zg)K%Q=)bT<@c?X`x&~N}0j%}YXLt&gHgu!>HD-^Jb{nu7wDZSEFRULTHK}uvPM_9L zw2Hr!6yK*bjE%=n!7N)CF0 zO4fo+6A~8Rl{Z`UM-~=BHb64VFuUu7AxMzP-aLS6p^wD>gcRyp>Rk~g(D`y~gi1i> zs+W)gbblXzI4ppfkXP3+BS;P=z=^nv7}uMD@Um%2fX}=GteXdTH7r4X>I^sYiO2>H z?E=mRQV?C*;%y#;u=JBjr0O$H`d~~Lg#B9qr0T)+J;;@etYKL^U>#s ze+fE{KN9WW`dwo?x}mNys5%R=Id4O#&3L?b)=zpNi8JJjXM^m6xsKc=>Qs~gELOxR zoZ}SRR@J#2Fyn6|oWorNOvH>yC=xIO(2D_#%ev5?hV(%<|jb&hs>cDrwb!P=`z%CMspDsu;%xgh5R^u>JdRB*E)bkzhB{-Uv zHC*ZS_+P{Vw`I_g)7IVczhKO(#~IO~NRFq9ov|vJQD-j+`Jm!GkAuGLN_N@W$Rq8^ z5Le+O+2Kgh-5l*cS(PL4g+RDa`-cl3Fav}hn0H)0U=Hh*!aRB-%Svl z;Ob|`fy9swkbuq$cMBl_X-Gq=;S>#t3lZIPJV<0zWXv0Y&;g9DRTC{I4wE(5COc|Z zk(@l$NkCfPOdIKgy66EZ>NUc01WX4^&vb|Rl`(zP`1YNw$H%Mbk2k&yk}>984RqMW zFWOb4KwlMU*eH}gnyY~ea~lWjkOMUFxUvdbV_%(2N*gm8Tdu3fo?5gi2euJ~jA8x) zPwId0gNbd?W6-orW;2%MIJai2(;?S1h=$lA-XbQ&*l6T4!n0|Bq;>W+H6xq1X<4rF%@db3fZKrB-N|&fDx8F3DNYRfPVQ z5eIY?dRs1pQNwWF^0E1Gh?a$@=yA|NYT)W~5L$;pJU~QAqipWeK^zjB^Wn1Pavulr zw%5)8#mwKa)9vW&h-&rcqicK`^qH#hiqrTe1At51x$P{}_)pZ>M<628P1>0rV(>cz z4MaT@wx7!IQ=r0(DA?tZ>n`wYk=@3!UYK#zxpZ6z8I**0rms&>lqx^Q1$7qkbpXUm zm~`w)p$UXsdf4q0HvfI5VAEcp5jj^7i7U`IntGwauwDS9Tbsn34sFY7-NlLF0vx!E zf$d$+aVeTS%caQ$LX#HouFH7>r(64aGzR(`%PNR( zml|9`u!=UPkR_KPu~)2kKJsD@`03V1I>U4zv_~`uzLPJYgj)f*(QvrEgTJndQ9-F> zJoOCNb~HRW!*Mb-){q_oN5vleKKu-oENfTsH)1j`KXo=KT2&OvI9|B0(Gr1Y$rKfl zo7DlZw0TkOYeSvFs+uYE2x!O6p?K#lk(Z(}4_0N$|A?iZn%|Muyc%}43oq$84jRT6 z>Q6s97qV<6;WY`~OwlG}*a*kmEes$7ahN@+^kRvg;^_Gwi+?tJKM*oZD%{lOldD7Z zNQ}9Up$4;>n+-IL*O+E-0_+3Z(14-=hJ7!;Q(p zRYJKqNcBfp(9x9ZgB&VVS`6n6_22>2E&M%GB;^bORdf2c_^CsMp+o2C zI^njw7$|;!IM&J!_0U(l628Xl{wOy8%X9~HGNHy2%&K>=Jg(c)YA5;*I1WS)-I+<0 zQK*MZ(&+LMSHEOAEsel;!?G|hL4K)FvN}|hv^(7zjoF`dBftqN>|m*ZRI_$D-k&*n zV~u6-BW1hh<=#*mVD%6Lbi^d;Wq7&=>I^ghfBq3MN52`GnEEXYD~1@FhOtC%+9ThN|f62@aUH0*iohATZ+!*8RjUzGJ7xi8aanycbT<yl7(@eIMvJhQ3~p%QC;|Hba0@tp{qQ?dO* zjW4scZS>-1YP3h-o1@t_5v?6hxkl5~sqd)!^@&9xR zj-R`^`!Kf{PpTK9dr2>#02aaa1wfF#d%9fick}-pimjV}6~cpE^FUz}L?Z(i%|>7Q1SVt}cHK`OP8&li%h- zd+Utf0!aTNemjZ-K0~AwIpB8axJiDK$zDqe*x{DPDY)c_HP&@sq{);Iapwsr$u_U& zpo`{M{hXiVz?M5YYq<~b?G)Ef=njMzf(6x9iqg&~qR7p)0M)3MkSny9K+m>tAS@q@ z7x#BTC{xV`T^OGHagQA(mM7ShP#g!rh#GE$e~Ru3<(XYxK()!<>8) z)OKxzQ%r>agpVm*>dkXlB^64s3?GNmM{`JPmAEI5b5mKinh3s4Q;{O*2vww4L`A~I z9LS}nK|UwD0B2sR3v)p*>0S6V8}dfbamUw_p!Cr$#Q<&pH(kGE3jZW4gi@C*Q~7ZV`E*t_>~ZLGrldyx#~9 z!2GCRt~A2E@#2Wf&C)7)(rJbXABya?r~qeyiGs*Qq-b?h>9aFRpNGFR+Twn{Ak~XC zSoj^lS!8Q7VtycCV~Zn)5Z`Z^Ac({STsqOb_rSRXLUmQmOMRpeYYQGpeZhp1bYK#w2xF1>VTMcsfwaOJ02nm=`}b#_*vvix6g(c z%X(1f|2;BvDy{#}MNcYSAqd?0JB-Ja)>Fo;nksMIQ=R2S;mcc>)*P6%#Nf$DD<^4&2H=!(snXXhy_2 zKpwOz=Hgw25Z1!@lS(P#h!4z_2@l~rGGgxV@frJ4$ z_d@m$!G8eOM1<1XM^R{v)zG66p>*NWu4qKYWXbTkj0ROExkb#a#hsXAfBrGEpO5N8 zLIH?+9bN*}*JLL!_l2hd=DHV%ATn01_DMFwyc_8=4ox@0x8VU}G-iE-?zq)r@5mlq zt1c=vawG^YnDMyBGhlP;=Fr=KJ%^5jETdqp9;7;%?YW2}kV3I+jWTCEIwnXw3VC(# zG&p7oq;|!ls27KsXsrd|hDo)>Tk`?VGw_as!b0~}aH}orRQc<5M>id^Du{2lGY=M{;3cRLx%DFDbmbIBQOJXoBiSmhJ-!0OI!-2nOaEY(utlJsij)Nd4_nXv` zhnZ4duraJ?EBsCk2z3?J`E01pwpOT<3u>pN>7);Hrj6tz6=))KSn*b^L;nriDn%ZA zAFDH39;EEmtC9AV_2(5w1cc^5Nadvd?CVetHpB^-ICc+CqR$@1^b}GbLbzEhxve=dpXcx5I6@Ts%wO8vcvV zHHccFnYtialHQX@_YA3P%v%92(*r@v8a}ECX`R|ybmXP zq9S{ak@ua?bg#!UuUNS1X{k5e3ws63zYJX?pTz^;#jSm40btXq~oNDI12)hzkR2#V9lhV3s zjCr4<&xq+V<^{obi0i=li#Wa8K7r?Uc`dCf;oMflE2&mqMv>I6n&~u5St`GPhMTff zwBroH5PxI;lVvVTmXXDtE9chU$?CG*7=Ek^|vtj>0rAPnvv0ro)rFgBz+W1w1oHhGmZ9wD>1vHdkP z5?aZs?lES4n>eoEi&JnyHhVPwblDyw296QlkIYWt(F1T~09cGzbQtYd1=z9}nekKH z{RDN{`O@FO<(^6cgOM&WY~7sgFp)Y2&aXkI?tBP;LNPPLK?f zwmLKEHytsqs28Yg*>YFpDelBL) zq`|QZ<&!r;n(nQ$2F`#tm(6?A4 zE?pRiF4>Qf7d0np>%-F4hs%(A-Ue5bcRxnAH1C3O6D2Z6F+P#?ubpKTMK6=t$6#Z4 z8qC(}?cLJaN@&<_7d!UP?btJk)^_XGzSL-*dxvC`1WKbZcP2`Q4r6?uC$WUPC;rlzX-NkmV6ssN=Nrb)}54Q?W|7LsYYR)%K0g* z95`V*I!gY|GQs4q>Wq0GP@6b{{=DG!=k^?gZY4*C6M;L7%zCaX7rVHl4PrP4nCWy5 zUWOCYDd0|m1a#-hnAmEaxW;WauY$aF=fB@kDPHPSm z&r0~DI?dV-&AFx}Hfq7(RKLWJ7BLh3AYrH(G6>G?<4ke%icc@k`uR=s*; zZ+c&TMW0RzA-NE4B=2ReAMlN&G<%TZRZuXBaVYN)b4h=P>IKa$G4gag**c^Fkt(EZ zbrIMkGn)=!QQzTU)2LBom3p2dNu{cLnp4F)bJx6z?oW1O!ZuZ( zHl=D6NMtTTtA`SO%fWfo(3&3es%=Pe$00D+ktm7ilUMqP^XOlRasVdPdN;{y?VTN23{j?-haLkEup_t{m< z=@i_Ood_4O#5Pa*Iv#3+zJ#L+khZjM)m3K)>AO+>TR*w!)>V z-^UsYR`*y9$Kyh@6{%Mc0vd3WdV!0=BdW<&WC!ynzy!;Sly;KIaeIkBq{_2q(o%Z-kjr%83h5e`wcvB0$aPY_O&4r1o)Xy*>bOORJ)uGs% zIC>*XP2}v0B}};kAl=Q={{s!Y$q<(=-YXy*W!>04)MWN-ShAYICM-WgVwvcI8;B=k zyz3Rb*`>Es7*)b`Inn)+BHI*oYTp=WH!adBB818`_1PA33E8*A2tSKXj1s30wy5CQ zo!y*qVDZ&D=qTlE!j=d~5Ns%@V8@K|3-G36I*g?!N5r2(?nw11eo{zMJ^8XoYpu4# zSt35eI@pKCsvSQ0Vw5kVxhN}w+7DqYy@CfIz?r)uB)%CBc9%=(_{+Ae7rw@}82@nr zT1;{#)^N2-Qb7|z85k_3+@a5nx!mvRli)OCuEKLfWZ3S0T-}V4IvDLWg44m)!GfVf962^@5Y~P0hV3XhSSP{(#n=;>*R(PRJpnJv zhP`iPVIfPeL}6b>(_(%z!X>Cwr$S8Mh8OGO@MfoX|3L2xp#y4;JuVuaC$;V$+M+zsnd<_Wb08V#mE}Pv0*fQYL@^3cgT?^XKG3kkDbQ*?iL~VtFs3Y>u1MM!q2tRr# z6V%1X(<-4PYB+edQ&aul?`u}MdM8*#yh(Z;!kOwiSFyT1E)mB+Fy(eEzYVDEl=*(8 zYYbO|`P3(9H?)}4o~?4z)Hm~&Ksk?PtyQa%$iFYpUw7RvH&$sh8z#4kxG0A@&kfM3 zE6Y%U9!VZZDJR;1t0+Kw2~$NJDv9V}E&(x)OZ}EJ!qL+}nnXRe0Do{D`s1!*sL*y& zD-qVsn8ky=G%oHCiINZ?oiS&MX|%uq1EOpKty*9(O>Mw@ar~|xTim{}7G3QR$*unQ z7C<6`qqEMaSqKP&PGHRY9_9%wXUdXzFMwP0+rI9qxVte!A{Vh!f{?TX*y=`1Q^#|Q zm7lW-P^UKC$xyzO%>N{Uq2#J}H{*|X*}H2$vSGkyI~^rwE*Z5gE&Jm7nU1DK1MLhazh)@MCKoN3V|E=YsCo4IP^b zUab?*{T3Vxma7PJv{n2Ktvb>{u&*R^*yr4YHU9q4C86=D zL0s58nqOSZ;ZI7zNz*;XuwjYU0KW*;7|Slv;h!Z|l`!G}j7!fV>JbJdCR}#riv+c7 z!%2udG8trZ8keZ;w1;GV>Y`^l0hwBk-kO`mC@{+7a1eG8ajOBU{=|0DWQL~T`OQq- zs%NDVG{cFOo@1lDJ1l@i$I@13?`Az>nmgC@^SEy2LNXF1la-WAG*>!v@{WV&P0KYM zBCX?a)QhfQJu1d-+`F2>7lK|~$G;b*oV51H7q*te)@0PuAGH7sDMjTh!PJLNywQIH zl#_P%NZQ@!;-|HVHV4AsXYWVN+Dj`Fp&nC84nmE+O2Fg>8abjG{2h!e?f1bnn%1#S z+MgrK?n%E6JQ62BGA2w|vGLuI2bDuPBvH_oSg$%fI8(N&=ZR|Z_9D(pe6xSZN%zej zfz_flJvCXVBI&eL3e#k#;^%koXykN(oOQ*|gLK_!I-|*|;?#Z9eWT^;fVGTaBv(_O z#G;uKTwzt^fdV1kIy$;z=DTzc)4vRBDEuiX)TydwUe|$}m`GG}Ch*{2X{T8K-AH8i zYF`3cmH2UW8Cp#_-JWU2n^^dxxIJYhL;+kF?)DV*YkuYEQU>`OP|Guuv@hfy%wU4* zCbaBAS;r&X@5mMV=7Rc;Wc=JBSij=iiBV-ow~Vn5PV9;C-QB{I~Dtg>_R`v&xh z^sM(&A*6hK4DwxnIF{@4EJ~~l(4T@b3DAp!3s~2b+mkCr8F|m_m^Xp-uQj?o2qtCb zv3hVG>~867Ur3PScXkAwivkkY&omd!*s@wRqKW!R_;YIgWLUMG;LGSNSL+f3(@}d% zbqtrP)^>YJwU8+{T{%ta9-M+*#Y1}LAHYBH>e&6oJnq< zb8cv$c0c?I@c^Qn7 z+K8eSuKucnO?C7_bd>be0Di@J492`T<*RIn;Tb)Ge%%x`J$F0M*S~UuDd?_zT{pN4 z4IW>Rrt?&WLL2)D>Hr_T2p&kPfv30%Q7RJ32;TttuazHe>=7@Cx}0eu7evUY`&mi4 zoT&RhpuOcaRF?Iz-#q1srMxf_j4+*sb%4F`#!~X@b)vxV#vy+morBru*ha|leYaJwYA$<}`q^;}wvMx3ig%PK^mylH@-3oQ}lV7Tc?o% zvRR_61b;8-GQkIMhiRKiEW32(Js^aKN_+VtYSo>fs!M|l{fs>=W=!;!REmtcL9Ti;! zGK^@7{d@-|&yJeyWiU&Qp>+(#ClN1m;j3}3XM}(0rCfKCb`vrF%W`x#)pQ|U>|DdG z+v+wHK_F8}XaZiYVR;-?l(g(+`o%(lj!$*%UY_))7ZmiwJ7F0IrH9yyt|Ah#8o*Wx zQSnu%ct1Teg*g#f03+2$Jd7n(pD?{BPlE{&LRvKuXuA6!Dp;?ohetx6pK85(6HesV zn}@?q%+1qIw!4IW=!GGl%Z)5uLbZ9{E4CVVSe^txzH}DuEM{}qn)eny%IUXy;WTx= zC(iFhj5_Zh-oP7(x8V+AD-sx561uDRZu_c{*uy^-hbWI4e`)C%HjYg>g8Sk2m5n?Jz&_E3+p>&h?qc zlTJ*WuZ829ZyFsLe<{>%xFRO`aq*8czQ7tk(i!i!x>QYHyhJlL zV>~Gnmk45;YR`$k>dS~+K-sIB*$)`s5$#MqaDKHKcj%hbmyZSKT6D$ZFJ}dAj zJB*)5NC*xHSL;o7lP2mwRN%vugy_D;IR{|Q1tacfOr z00WTj)-AjZ8pHvzsJAU|}(JNY_JLtV&3>h>|TzV|ojz`xkhcm|i zr+sME5ZyL>BtfTE~4hhItDj2BF&?ajrgMIU`y8(BnpU5Mnbzhi)~(C*lDo@F2al z4om!5I9WFQPsE8}zDJt1dzi^yXuNG|^9aqVYe*dqfxaA#x8qO>zo5X9Ut3TfYUvkh z>t}@j2bF3ffE)50$VS|9Cw0farAJR}^hML)pV;g-gdEHx>_LU}b}^grxU^AX4GgW$ zw&aTom)b)KI$46i0pxYQ?}ZzbgPlfNbXE&BY0sbqh`0Z$%)#G@bw&I z1zX2yVs%MoTZ9~nPM0qW0Itv_0q_a|aEe`ZC#oG*H4(p7MJ;|e9nph|Ut%m>y3EaRrwn_1Y;*0DGR>~GwFIr)I z_at5SqT~oyqY{n&VW#vA9_&k5F8n>vAi!%oe6@CCdnNw5;N@|ccBRk+fS-j;ESe_V zp=;7G%2IU(2C1(~?a2By$p+%kc%H#yY2U zSl7V=V=hKxBM!vRu`Bo;)O>>GEyU|2xryq&fHHvNfdz~|gy9JR99&1o4e~~z)-G0->rPeV63X7aD>i*qnK&F>$&7HRD{(Ee6gyQ@VDX>{NmCY{6gIIp7|bj zX}I5Tg^I-BW+A@FSS3Ohay``6&6r&S$vtBw#V&5zxEoAmEUn}le4qH8akz_7{%d4G zoDABlZq7U*Me3A%EZucg)k!Y9g;lyO3@W`kb4Cdt0=~HOzP0 z2qD&N?K>+AL%WiWB=EhKaF6CD=>2L`&N6&3;Ej>QO%Lm3T_;OV*xt~hocC+su?9a02<(k8M1QZ=Qw zs0XD790=mxKEaFDTC&v*ct*|0jky@lcBRM?0c}Xy=Ls3%(fAZv%ukqjhx3ohXYRCV z3&#;6oy524NPMX6OvD=wtxQfV2wEL@o=jTT;_x3<;fj?!tTJh37H7@ygHPsIOj8y2 z;tkU2W!7`l6j+}xwY?1X(OU1RvRuU)D2%GHk_El;E{GvlMWmg95H)-U58&xmJT*Mp z?=JNNtSW|9a#--BCZf+Q}{*IvwmR>IWSyTxA2jEJUa=+P%2C1 zvSOLra@BLlUlRJ(Lq_;DFrBL#t650Z6C(DwUzL2xfj*kSs2^f-vduF&UfGyB%<_L z5tv9znf0qKo_NbWX2Yjn>j2F;fOS1l+43K_xN`*q>$Q z?g%%cMm1*U(KS*YbXwz|GIQ%ZvUwzh;#sLY5TsdZGTyZ=$5VO=#y4nnL>>4T5O77h zh-pw4MKtD(72GpbF$hrciDaI#T}?!8DE4cooOYLHPu%(nfRUxaQalwE0YFEbaMwL7 z1vBq{e8ubr0hAgE4guSW&n4E0a4se#|qF}Fw7 zPY@P#FvpUF>AO`|Sg>StcYC8Y(NnsyaNmkC9&veB~hzz zP-QP&d$>J*tybyKKdN(7apufTwJ=s63M%>$5rTGV$@C2c4JS&3T*a$+BH zRcmE6D&Uw~@-UZi$x6D~c( z^$otrW69pd2ts297?(KQ+}%@)w}c5Ls&Dk zO!f>BM1h+Vwrap&qX9&rB? zK`sc!4GFI9r7D=%nPt)S^`vDnhV{y*aRx2nhiDVpAlJZxN!WLZ@dr1ke6DQ20waPX zKa%-HLfFm_JR>9?$(o0gnx*FD_6p9Pt#w0?1JO5lHo`n?)2`s0$%v|Ja-E&fmBuvZk(0E@fSiXi7%|={~TJa?!JwS?cn<704#Ku zw_M4v)LST^Pe879wU5)DQL z9qJ(t@Gvx}yV+iHKtfASZ`*R7V}^s+jf%e*oL#{Lj4vc9xcdXwMOZpf2J5R}&S_f{ zLndT6vw=gU-m1wfg@JuNB}NILWmtnWLtl^(5FyLF@k? zY3LwbBb@`)N)kmHPp(7$1SrIGQfH?3He0R3(sOGapa~+|0_8dd^k48TgUHTf3W;o) zOJoH0XH;vdM0mla(nP@^+PzP}J?%&KL^ENC!x#Fi(nBKT3eZ_?o<~nr6Cntb&crK; z*(B!s9EJG_G+~pNx08rRSLR@;(`8(Z<){DeIJO5p4fa)+VM^lpFR~P&vC9}-5r?H? zb$=}Vabm>^)k}1nPDCg2cBFgU`vwJB#MSicbk#Pl1oi6btcmHO>Tk4R-MkmOd5K%;f5b^*r>YZxkmS_&A~{8XkOrE}sc#LL*Pj!~!e-Gd)q;?VQL=1f%<|)zD=e|m zISBaiiBbns^{-OCGp@SpDB!#U;Aoiw1?$|5+2jL^Rl`NkCZ#uNiA70;L;cWV>RfO- zBh*FgWkR7?m@IuvsNRpZ)8vrLA$d<*6)&*z)Wplzqo_|3{{!kvlT>LvQ#**_PAO`P z9=1DMVDJiu;sE9eMf9h96II41-6{RHhBBuB1%G%7CW}%q5rHGkWlFC9k*X=>s9gzF zS}UnnINlIWtHXmngdxM4{O^C|J0DPuNrrGzB27D|}dJ5PcgXRf>zaHZ?g2#+Lt ziu1?T3$sNuAM_$Xn$7o{7mk2=9z`*$B7oo2Sbi?OATj8%OgoEpj(;t@w=8Xj(79C+G05A;iap9>Wc5k>m`Xhd#g-nVTA zzvPYGU+O;bf6e}qwYmNIqWj7JfW0{IvIVl&t+7vf;on1WXKUaSUTf2DUB>0siSd0= zeXY-amHKXC^c5~B?aG!xS6o-aQfMyYxadrQ6A|#Fo6h(-T!A%T!{zdxKn}yN*5dN< z=cU8dfe(2oG$XboHE{_Z;EDRZ*d%V>G!nxag5W3L>VWvTvbKNJZjT=m89$P(;^>X> zUfeV|K9_-PLl7AyeL;=hyT)(v6z{da@Ad7Pd=~=Aa_sK;yErgj4~#**^a9*UgK2`s^aUZE zzALQLuE`JX!)4R{eXYS<#*6y%LbZb=Oex}*eX?mO=pWrs2=z!+e;ukvmi#GR&o>h# z#cLA5X}x@FC!J(0y#eR7w)+kRdrEMcC%(z*02%s4QYmz#BgyUM=}_bMk3o z^6Adx)06I#Rl(&u`x^`A;NJLW9_9&GvESg2gG(W=8JY)fa*93x`gy37_{K@(CR+!x za@x0n{36yGqwG`+#8_7Jfn1wcj;?qrnJI)d#W4N0ysQv+I3SnV9>8(a{FuLML{og2 zK5r9I1lh*YtjoNo2XDe&-_V0zPbeGfi5!o|x7#Sc4RE8*Jl1PgPj4WxxeEuIVCDhO zD`6`lFLIK74-|MjSW%nEOz6ZoR6p(f z`Fv!5+^;)P*zFR&xV@6R)8C@Naf3Lnkggc!Vq~|af%sB4%+kN-4K&TI^B;WP{yHB! zL2K-He>sfnGg;ap`gm;F%ye}a9032~f zc>olSONH_N4-6!9xQpAKVctfkn?OTCJkB;|-O5GIl^l_^f98f6@JHfKIJ{9ngg!h6 zjA2zgig$Qk@ry(Wzynrsapzm33nxE(AmYI-*unrl$!W~q#1qC$vV_lMStHC#RSvAl z#evM?DdeYop-Q+c@Z3cz?;@GuSU`&U3#b4QBD|ZC>u(#g6^E-+&VK^yY>jTz21jg8 z0pZQ~*XJ|-(N!aYE26f;w##tj3S6mt%!H~@ejzYJ_E^mEV%7dkR3bO~hE@tPjq)K# znfcCi%=YoWB07v6cq5!O<4JU=4fljF0SkgSu}`1hizRtH>H=IjWJXKUOk|nWGA|+E zi*H(o#_nJ|8|Fb+)}i+R?1?n7g+N9$Wl)%5objDA9!(%e0EtEc2eUAhkIBa1pM3p&YHeH zO?;go{R=Gf?ZVwwU=M3|ek=LmJ9x(0VMqj*C+<%`A<>W#zJudMW4N&v?S(uZ-%9pA zFwnluYc@^anAXT*XycHPuX|Psh4ulC(m*s%z8c|N5U#4iH~N=Jc8X;kUwcV zU?P$=qr9Q*6%-=})(qiN=c5c55;4W)mP`1S4z+ow%6CH0DPDrhT|4y_lUKM3z-+pB z!VZ;!SOwsf2=*Dg^lUFG2yOJL?nu`2WfIH}f&VhVTz;YU zCNE+4q|;ih67+H6!EBW)=!3TQ32aUR;th=5BjPIoKSiPdORj_bQ!DW~v@uuB1|&lw zauE#EfZM|KX!P8~x>NHNq_ib+UfoFWr_VeSF+y3wk~wJjgnke;GU}PkDctxvpp0Xx zCH05N)R`L@IpV^OwNO~PhBKVfNr(?imP@cSL^8v|P!;NM<10i#o52h3#-ey=qeop081h)C*3KsW z7yp1o>VF~3ryC}~RMS7?n>6GTiZ{wX1>vw!s}8!;W7rJ3=)*FiZV_ZyRw%0;Owc;}~p+)lmNxC`)TE`n)WBgW(`L z5f!P}zB}<<=tYwSu8Kkp>RuL;WF3~0hTINhpowWD^Sh0EG(G9|PnGsXxML~$GlDo> zOqI_eq$WbR@1iP{^SmgEOZy!t$o1p|FXPmMdB<4lDZ{cQo$Q+zQ(NWb0n1A{^fEiO$RRB=H`R|;^lC-&t zq3;>Je}E|k=zSzPbLPqrr2hdN!OeO=17>%$SrUP;NU;2YwDnp6oV9;MyVk6n!ZNLi znAItD3Rlts^Fs9r$_gxu-F26ys)y)lAXVYEc4*RHNL4(!3Bx_3!lkP7Q66Bs92AB5 z(EJ3fPKieF8uQMeI+0Sm--H)~WX7Ip(EE+ z2P;Dna83Lfr}P800&vpO2xR;^hytR9LZ^c$(L$#Vy(O3bf}<8Hb-W3=V4^fUm}~?xId1v=jAU;*^z7%z+)3;QntD zr}{HyLBw}(%rf^fD8b~b;c&{+M1~MCW&nAqCzxMy{(n#A_Q0szilh;)qzc9iXBfqX2ntKEO6^r$ zPFJ;l?UxZqD@cMQxM5;q+w$bugI$5p;7c|0DY%zzKMhK^Cu&8f11TX*C-b`1slTxXvehV}q%#ngUU?J? z8pwNK4J@;qj5%Q=Q6Z|APxy1%6^LpCWQN6lR&qN zOz((zaaeZ>kSmS?NPpCDU=2*s?im1iGfA7;ew*ees7tI%)jue9{}Xt;1WNtyNT!t3 z_+F>*7|E79g$I@fI0vN3=m7!`c;My`0#%~&AeMw%i8Baf90^2KW70_iV>?THN#b~! zT}p_z<4;fOOg8ckmX6DSqM0jcJyLZy!s7*H6Y&nm4W{;_u}R+=oQ^!$`fOY!WSI}h zARl6*l`$RxPDTsd74|*EP&cBrF>!@9 z!c8TL{|Sic1TNr6({69&K|<%iyyYlhejoIf2*WyoB(_q93ddd}AuCANW?kuxX(rt= zG3gkF^-sicC9zTd6|nKHgvz)g^S?q=w{$8X9%j3p3W%GJf=(W4NUUO?Oz0$K#LkY; zxjqFQtdSE{x$5tT3roUg!B>FIb10u;xc{C)bYrIwI-RX|3ZdJMf>17MkhS&x1W!`l z?CJ=fTeb8-sLK*<5o!o6eiXm(8zQ2fPjF`BV1_YPB_pR7BM?b>!RhpJW=qW0 zVjP8nrK+CT*ulcsK>*)2Y=w|G{5|Ri%>CuMrn6~4d=+P=x|H&?Q$j^NBf*+B*Y`$V zn!dCwv7glmmU(u?yWk1K=75c*-9jIDTvs5?;a3p{hI1sE)%ysrPoU*XYw49JbhN1F zO_H*NeS?E0FVBKw=CPAzD*g@i$hv@kC2>kTzXl0bi&byu*kiocbG;rcmHa2`yF+2` zbA7ik*DlV(5-;p$9M6fx+Ktxkh<^_=KRyLxE;I3DVim~p$E>2A!4rI2CSTIJ9}cIQ zxS{=Vqe^#9eqzKrB(1fvvbh7NnRIV$3~kP8-H~y02>{YZyuY}peQoQ0YYlD|!7_GX z%-V;yI!W7)YL~l(aRdkh`d}qnPvDn5Yuy#vp4D2kr**e_07<%iW99bH$Ahh+y}^O# z%40o76~~O(58<R`1Vawj0fNs z>{pcSr-}Fo9Cx2fcmwJHHV)basMnCCigsef=X~FmDHD!{PbuJIwE;L00nuRqr&q~* zoE?{Za0*uD<>Ar>t=S6JI6%ZUm0)aKVv( zkkEMFI=JN>4jltWn1aBI=-;;`jxXsz3C0MO7KS(Y_qN{G0^s;t9y>kITSJFhcFBBe zA4;{1^0!P<+P|KF&uDy3z-Kt&1IWPd#HfSbgb(nMhyGZFdjO(b#7dlHtrbi(jMyB{ z@ik8V2H!Iw0RO0YAlOSz(i^cESgW%d`PcUEX+04CJN>7|N`c1!xMxGp0$z5}p8Sso ztg(vrAd|Ht{*twN`4FV%w{f(%wFaQriNVM4`W~MF7C@uX+F=Fv+QAn2K&b4*!F{&B z1y_eMNvMVZ+VWoOeS3XdCY>|PzxULlSbp7rEdcq)Ti%xk?`45_uC(VXs-66Vu=`%yzZP!7o~^~PP|@D3RuF?fW*31ZK1qdkU_HMcdxiTX zK#m%5c07R|tj9&H_>Di8#?fmr3~=|~63x|^-tp(r);&uXY z`;#a`LM={M3f8)rKW+`;#?dYBwBEPVw{6m}Vg8+`7B%Lt8L$l)YurLUZvf`r7K{Od z8cOOdOc%kZZ_T8)NMG@FBBql+B5xmU_V;e~=QaBWHT#D~*I+JeT;E*W7G2%AuDN($ zbPfN+@P@>eW`A3=e_wOa{6^L6k2M!P+w5;?E?T&&2KTGPrd}PqwweDL`Ct5^=3UJ@ z-RHCQU;akd#rtQx^-R1)*EJ8c8k%p~rO~>^e>E4q5dB9}%rLo` z(wI|)-{?Pf$Bgi7K5Z2Gh-XJPM&I4t(%g8UHai*%bVGBoXiN0(jqf!VHAXi!#e%0# zJukWu#mu!*&1x227hNCS5Ur2C86ViZEA6d!`djpa=HlhL@@D^X*8k5yH`M(m8hsP} znp4XPP44`T)+4RHDJFDh%()tC4TkB*Z}d&KrH%M2W2)9;qE%wdc^khR)6|m^^cLQY zq~<34*BI}n{{j>5AWKgpd>7Xzp6St7g}FH4Nm}yxXk=0FG{q59;vVJN>H$%31;?c+u1`0*s!42{Q5~7XnQf zA8uz5jIAd`RX?zr;J-uF$89QHZI~CLpl-5(O$EO;^#V;C+~JG)(wOrzqU1}_N3(x^ zBlu%Js_8woFMjVVng2vi{BB?_8x-z;mS3Mmdf%zJ_`Q+*i0?NhzAxnWg`~^|`v2!N z;um`kI0l z(0zIbob=6n*U(=g2)}FUkBEi9RcQ?dPL{?nP5tOS+AZy#+P+!(lNfg zsqQ*PJN4?D$M}*aS48NjU&DW+Wdr&i0~83idhiO464$yqCjpWFqocS&#os&X&yD)? zgrAE)qwtSn4uJ5F7JowFAH`JQ|19cni`F#$GwS~&T3j3T?~4}IH~MR%#W7G!Veo2D zoXCFsMnS9TZ$pz`8q?)}ymum<_=*;Sl1k-^p6(p73n`@>iL?%YfupDi@K^L;T&K7 zM~fR>8R?h#rGxw*NC9l-Q2?i8KLceAb1W0naHPkyQ;%s2M2s<~nSzG0zpoK~7tdPQ zA1(9?S(PjFu|9e!>z{K86O&TE3)9Tc2^w_7nDbjax%_E9!&F!HN7w6F>}csP69U=$ z3nYH+Q4$}NRvc6GR%h~gd`O4)T)}q|^5Aa4bBjoVVN-nqi=Kh8orr!;)mre=3(=w8 zFO>P`yD~pow1;h^6oNks9{8IQ8pkCF(iK#R;7L;lN8iNXpUj{7WTI#s(m46tGxZ$x z*EY7`2ibd0JpsShKhc+SfW{AJim1PyIqF460lOP>HsTkAaS`Lg_}sh`csW<*fHUNG zkjxDy%WtlH?J2)r{*nSN7uo(z%65_ez40XS-OOg1v?+Y`9BSx!#VfdbMHO(+;d-NcIJdiMUgY5f9^T7wBFA$%p2cwz#~V1F%JCqckCEdzj=OUl z#Bm765geO29>Q@U&+i7uOF3S`@nVkWaqQsO&hb%>&vKl{@kx#sa$LgkRgQ}|KE&}# zj`KNQ!|?%*S8&{f>ph5vhj8r2`K3HOisK~CkLNgn<4HVzGsnj`&g1b}9Ix?{{l<@D zk>ep%WPTpU$2h-)rxUBn@qrvKA7{^DsyqV)eJimn; zC-8I$Jbn%5FX4O#$16Er!sWJdxh9++#<4%gF&t0j_$rs5#KR_@&k7z+RQMdv;#lN( zg;FlZ(Ht-2xILG1@N(jKcodJ%;@HOdi+Ok{mp{bACpk{y_yCWO;OX{qT)^>JE_as8 zt>odkJl@9n?UnZ6{9_#3m3%nv&eNxIZ0G6c@^A>3o5#Z^dHgYsXK{W!$5Fi8XpZwZ zKZxg(%F~VF;dqV5gbZ{X=SbG(=HS8(|_UVb4DZ{>1@ zTrPs+CLCM2Ts{xa$0jbff`{jEoWQY>$1{%2oPU7hg&a@i*un8Ej#qMgl;f=& zFX4DE$9Wtlaa_o85yy!f58`+($N3zma=e)1Q5^emy}NTfiStW14&;21<29Tg$HO;x zIE;s5I1b@BlH*b?*Pe$r@NgE#R*wC7d^`^y;y7C3V_h#@*(LG0abbzMiD3!2uQ3@9 z<3wj6Vm`jJN{@g8$AA|^vcMr6n>Y^RxCzG*97l32{csiOjM$%2dVdn6Ta)wv@Q2t# z;HS0Oh4DN6h#7q$CoeC%Bm$40n{tPQMdGKTVY#-jsGO-`O#(Jf4T}!gbZ5XO!-%$r zGkV|$nj`QGc`*G8!cR4!TENDgT;m|=MRBWWM7oo2o%Ja`IG?LB}7;fdMh15hLw%0VA z%%5goo8MQ+e17&t+csWc&UK++MAMxkat8S5I-!ICET@ZjVX0C z$z2w~)&|e(pb3Jgxkd{?7GOW-6J&vL@#|iCTuY3h))d1?9$aJ5$Ue@pqMGseA#W`c zer%Z&oD+mElNW~JC&+UCf%xt79-KqSPQWoeUQJFxzCqcgZo11-v}E+9GRbBzy!4A_ z+a37n?$8_icFFr?u4QIb+>Dg@$ie^8k`PHxzZDYJDp<6?x3dhl=nl&@md?NYaK~da z4h6~_0XuxU!|$si`wfjr4?K2G_spl^iA($}dtY9;-!}{&1`1Uvl`P;jr|(Uu4|E;6fbnDHk3Y2I4Nm< zw)sKWA$wFu#u~;DMd5pgPae4^Moh{`nJ{8cj9>D-yJM;`((uj&_z7=z5`^a`mkxex z=q}3t1oEZ)3vwka7Qp+Uj|1$YTsG1!ot#M&@fyM{Vu+PoyO3&@#)$|k~)h6NL zvaCsE_u}Wmv*?G@yV<<~n}#5V7$GqSc3xipJE{J*pq3|EUZa{n zvB16NvP~|WmHXer(%TMfVa8lNet(Tb^W(mypLmkr5RF%G zeHyxo@_RV(eg$NWq}uUtM#)*JE&cG3lZSJwV~|Zq%B>|$VO<=EVKdGzX^F<3xfm}U z%$Xem2bnMZ&yhH}Gusot%hlYOF%nTae>VL}mumC${A*;adU%NwI7!PW)115;$LS~Q zRH*dYhFsl@Nn%gO9p7c*b8+6~q+=iqukv|*G#*e0*oYTAY@8-N*MS#J&~qLBbGuy0 zDV%${w0f4zzO%1Q3SYK#L2b(e`6V#)w4mIqqtxTYd}vo4&!&tQ z=f?V72+7Nuc7^funXM_afZ5MNPs+>f#`_j3Ve{EbFzc_=on;qZ+aM*k&sW{pz|J~Yi)Ry+(r zr7?lwFMjYBW7ZU^e13L4i_IXbxg64%=Zx8feuIl&n8-)KT#RH{lOW4THq+T(92zj)Ug=hUL3tv$ZlJdBq9O@gR z)>j&MG%^$)uqi8E5s>8ZMx5+|gktk7DClAD?2`5$4kA}b4U5LYHV&OB3X9wr^q~m! zr^uY2uDm%vGXdGetdBz`=rv7p_FQ=r@8m_QqP5e`m%-#QIWwi;beJsn1F}BeW-^Wf zh@+7PPclf33$^5t26)C!Nszwcg16kz8Yl-=Y%N(m1dG5V(gVN6Mw&fOktkh751_<7 zPZdZ3M05)yYEL(L$I~rB4n-2mc}hy!P1^KO1<)ZQXna7vQK)Nlc47Nna{fi; zpLfHQC=MQ4T({mu?RW@zTEsJw9a?-4lG@y)`@?WK_xx6B^ZV32iF=~swxU1tlzOMvk1{Rt0dPY=WoV>W=@^2CU|3$2v_E*yU1AM&caaag%h-Z*42 zjN5#9u%Hu$5b4*-N|IIq8|f=dfw^4+De7gpy)_L&>myL_|lRc7zY=@w+WGq;xgt=f3& zTEML37+EQyB)FqUhqpkV7Um{~wYJ@hq}J@sNvIZHRMQ1=sHZgt2R(azE|$^4kzVL> zty_>TV0JxF*`J!`cN6Ci3_|6ipg;uHHBI17(d5^p29guskMgB8PYy=w4wHVCHd|jp zCTlA6518Ey1?Jv6`y%=YQ5q#?jU)z?$bH;DccNde50oj(lWdY07J;HnR1~mutc4jV z5XA%`K@)X?z#BB?Cx#6I-yhp%C~y>ea-5gYhVLp8R~ zcJrs-sL!DIZhpDOw)-ap3Ejn}`*V!Q9MixMe3$dF$EEkRWf%B0J)G0cFFV~|xUduN zV}ZKYX68e2e7GSPeZA;<2Rut3jdvXd%nFh#7>&tlW6^2wTYk}@Ct_@Cwp{ULZ1crP z?DJPIyez+k3_otieh3N{(~lUH^9?dbJ!(yjIjD*-gOQs9n-+9Ya#DKR8&$jP2oCC~ zPX46PDAK64q!ImexA+k-NpEjvrWOt2`36e)(%h>tE6u~QX&*thcu`$3?b+dCty%Fm zIKRVq*a1ZqeT3L8%avMUiYnUiJg=y9JDx17Lp_RLMRL+62cGv6Zla@diPWyZaZo01 z@7FokMu6yEKb=s|F|jBt{%QQ{-5>w@oWs9|9>TwbGx*oHFaGu0g@64ULfXWuq8x=TgDi@8f3hK&4z#FeY%lqYxxM5w_^n&O>;h=CWwBC?qTioW>hJ?SQGxjv{Sy!D zqld0?GRlxNk(UZ_VbWRw{uGC7 z;=|fM(A_^E`xHd7x63_r)>Z1E=yv4FKWHPy%3fx}k!Eg!Uv6aXD1W@MFEOlpPJ5;M z#D~R5-9kPlG$FOC8{q{aD6l))mAaEZx|Q?>H@S_!e1LZ!oDI$1f@IKOkPsIZ$<@m2 zfIt-LEGeDa*$-sY1A%)3X10ct!Jnx<*{Cf}lEP?DDOHmyH?kV_0{NhKmT$wPsqo&dv2FMN|V|E(Qq9+b0-etSc|+$^$y zBXxrudgd3QM!hdZ~HJBhl>g_Xz-<$t0~t=@*R2>Ms+Is z(STH)PX1DTa#Q?}G)`mn$|{EVIHh9n9r^W|lF~1=r53=@OBzh4UheKYcmNK4h)U-^ z)IPV9AA(U2_#XSo(e~yhlDO;tve2V9PoP1z%d?luicI(64JOfP0kdDG`wYBa&7Mz#7R+UmTTIMBA`D_N zlMw#^F6KSb9GtK%vN)EtccSay|6ph7d-QrGW`A~yWVDxDKWTr~34*jg_1;| z&jIrC{u4XAp~W|!Ko)M7Hov{k$~8I$DK)=d-t!~bp~dUU<>#$`_?qEA+>D;_p6%rs z*4Uf-!_#+Y?7bENxB6)O!9sDK<$3M^Jo~$+yr%qxvURFy%Wqym`H(IC-rudgM=h7r z?+07mUtA;^?Ir6^vc=0NPTM}CUX*i~OF1a*{f>JMN_&&+(BjA3BTMdd_B^Ha>WBhEL-#GDnGm0V`z1+?NJ2TVhaQ{=|{aRr@vlJ)1LLb zrzhFs!w__9&!Si495z!9N_(ClDc7a6C&>;ie#SkL+LNER@6nBVRn9GVqGmjq@0o!6 z7i5bsP4FB~UXycZqSdFDdk(5Tki~dX)lFG9eU$U3r%{aR@4tH{koA$qHw)KC8m~&1 z;VW7(u1lMriRTxs z&F|C4RNW|*k{`(qEjHXTzi6Ic(R&*Grg+bfWQP`SgQQD0qBQN#a~tia@yGcHxFyhx zFP$ik!ns-9)dAX-pECajYxC>iJwIvwy;KGH(P>8@4q@qulCYepFtof_Bz<5in`VKW zIrKj_oAyLGbLf9=_9%&_|GC+z5>5Yev*{*C&K&xmn@vMi&K&xmn>|UQ>3?pvw7{N2 z|8ujmB);_DkzE)l-M&=THyA-oq+w~WE1Tr+n;2MYd}!betvJu=~wGD?e`f1+T?t_ zL$bv)D9%;B(q5yr>F0Y-FSS=Eio3;p$LHH%ZGIhYk>4fXKa}5oh^gbjMM|T+Wcx_^ zEu%PX|7)^Vw$SExHT|U*-hQLWKT=rM) z2AmgBKg>3`%lWK(UnWiD`jKq$4hX8_#Uz|44lSPks9R+quhd71hugV@i~IZ$`RtM= zIhi-;wF5&-b6-0O-^R-Zy72@4MaK}9&iHfk=r(%pqLX0c5&4OM=_-aN@oE$ukphiYb?4sM0&)a*#nOSO$*P}=lU;};&G#H;jVy0t#tc;hcWT~SmUd}$;kHbqmE)Z^gqbn1p~j@NL=qXzDY)E7=G;(_kl_ zEX=~_7webXiyjWZGnqv@I>LCnAR@^YoqklZB|RFc3{Jo}U!c=7*w93inzZVfin9+q zvyu}PRy6k2EA;$PkKBQ{Urguncz6$w_kdt{ZAO!vSpWH5Z8<2l8`#omXiltAYOz3M zWkfbXbOe#T*XP0!>G=}8L)We;UY>vGzy-c>t#gnmvjt|DAi1nPv3`XXY_($Lvz%BF z4_m6G;1GtMTHsnygrpTT!f8#>2TQJ$@pNhmIEm{y2So>*A8DRlHqkZ_3PjNifO9yS z3H<522_`N2^^kOAgl8{n;XE*s^u&@X(+R@v9tMCY|mL4xg4_T)e@ z^T!LtN@c`6H8z|NhDLI$2MBf}@*lXmkHsz^>=^c25D~k}WJy~;Q0#uPom8g_MrLJ-cn?yWeurL3L zYf&?xX03GPGy-V&INFFEXv#GS7oM3Gt> zkP_IB)px0dTLbD{{?QF^N{5dw%G$LZBnCW7?~~!{5m{B_A0QuU_W6+><{xeVFcPp)j+N5p_<`a?fn2kFs6xQSyaXx9lMF>KBi;7>D( zLy!~9YhQ)~{fh6$27YcTH#(UNe`pzh60&%`-q?r&ObH_|L z)ZaER>xl@KIb{CqQW$xg5NlgPi(f@E0XdxbxQ9W2{zq}h5 zSTJASIpaD}wy=PWSr&_y(KHVipBAD6-!=lRZD)8sut^ssusr+)h(tC{+5^$e@ot5{Fw8EyGfinJl+Pm7_%(^6fFAOPVcX zvZCJsHJ;WV6mO*x3dgz@b#kWU3cmjiUve_)dN5!V6jZa6-`15sAdGk~`Dz9rw zT2j}PjPbUI(^E6YCU*VGEMt?C5>l+mv8gG^X|{xn^xAD5DmJlvL^F?pcUe)Cj$Zbw;NDh2H$2YRPxqM-DYG+QUUS4XaAp_-2D7N0)c zlA27364T>jd&I#lxm<}PHwyJ6dkjQtN|xx7mO0j~9RkmgJxGqW3?xS){gTJ0XJ!mX zLn!68SLH}wl7sDFgb680$r+>o+H6B(L~(nhs`5&{kXN$pkv1YdW30uNlAhLy%P&#o zX-`D?KV(f#BVEuXrHj{JlA8;CrG7gexyB8r@&~$?U!uxU{gGWKYf9(L5hIc_r0%Qw zbKqI3KjlaDlB?AzZE{>J<*D(T_Fm)^A#J^rR5{uLAin|QlQW=Xw~X{mtEL~#Q{~7$ zE;%v{)AZjBs+`G9PHK6csn$McCHW1g5BWzQxcAtxDYnE6OWJtLa56ZzxBoe+H_0`T zArJhc<# z`+JpF{kl++KL))?J~lnkGJZ_&o+UhTO!k~5M=Vzx`ph)*Axp2pQy$AfrJd1`@v$+palG`X8`KeMTF(a;0=O1V*|aJSPE zRgU_hB$qxW)7mN1Hj308E)5n5a6HRMOunx1{HU7l4$R|7*Uy{QF24|qsGe3{&;H%f zB5}#%$Jo-XUDH!BlqvR$kmMFaj`WEgWyzpi`3RO8eTaw$HXNbAQWtS3FE>e|~Go(7W8!NzX{p)Dj9{DpcBcg(}bW;~mef zO*HLyRF&s?CXT{5kfi#UGS1#mM3pB!xDh%hCtJBar>gN}CnY{z?N3Y8c+#);_>luGDbzN-GgECT*3@KK)$v^> z@%#>`@>CwJ71RcITi;w&+0xv4{ z=5ko@W58AYAWDs=`XZl7{4vQ>z5;)or^-p?j!K`%`}6q8X~Q-1+y+UmfRERR_{nT~+$#QaC(vlP@`FB0gpDh!AqWV&PR4(O*z7Ur@A=ZM`nP&WoP~|8Y zmrH~=_rG{Gp5}*%mI=u{(y#&JbDv8un<_{4ljY<+i99|mRO6`}IUXAI$s7x%H0#B! zsvM2`vK)E6GH#qy<6ZhBWF%YBn%yxTU}BTY6Mt6f@6rd$a;z=n_%JW=n1V8t_&7D* zRnCAkt6NFh^`K3aSIT=RQ{IYr%zvt!Vh6}+4592p3RO93KeB@?C-0bC<57t!r`QW} zlELJ9`a2XmDD^vdL^!?_0KYZ*Q~*^0Tv<&WYesop$(80Jy;b_i4Bsh-1Wy)r(1_!!kc;?#J` ze|UOY8fFkpKTL9qADL_$g&}g-WDCwF+{Wd3svMQ0%B4xWE=_;kpvsXwxtt^=*Y~Iz zPx>I9+J?lO++2T|zD^cJYwQ96OBGs>(bXr^<1CFpW;&*=hYg z)w`TE9X&}aw@{Vi`jfRa`fpIW1cj+o{3ZC!eqG~WOA21lGJ$G|05rq8&1%qpQXn0^c3GUBYiBd z-wHLJ#x10mrugwAmG&-F<9T|DPfS$7S+`LUGVYd!pbQR=Id!_Cb7DngAXzd$}7 z>oIO?j68_`uez*_m?aNj1egGkfCPY}A+s=GpIG1Qf5-Un{rhsk#pK1diQH=OIi|eMXG$G~D)3 zT6{{{m~t{%;KTsT025#-pa1}acIqG7qX)=}u7uBPNcF2IK4NWMODjNEz@r?701xxv zWq9FD_rjY6-qV1W0ZM*vak(`b-d4~%0b1Ty2%iM}1YqmXZU6(olNacP7wm;+^1^HE zg%{z4*UAeo+6(VNFT6M}yq;co30`;)d*Kc7!W-s=H_8hy%?r;4o~P}nfHxDc2%xmv zYS0@2`!&4dpicuX1N85rPXmGgp1k_tH34)7DETFU9u3F>i! z_Z8q}*j~x+G{Qvyt^IBw?DJk-iwU5}wF2!~Ml^Uzeh-4~3W)b2*Ut-YD0rS}hiiCB zxhY=KrfcMsax=Z~rfAYCax*k?N*Pai;mrrnvwuAAh4+#d-s@g?Z+hXqeB`M)(H61ZWJ10BG$TgK&4w8v>jJ7!9xjW&xBk7J_~mpiR3D z;SGSjfMWnV;0FNdQUa``Wt*^W0fYjg0PO&s0o?(Q0jz)tfSCZ#HlGWgr*Aw%Jdbt6 zLNC16!Fvm^8KCI08?>kW4uE$Qa1{`=8F~U510n$30ZLjk=n;S?G`wd(F9c}&+Zu#7 z0KNj00K^ZGFTk^nLct3Iv;t5WF~HpceE?=a24DhUD!?=CeDD?ms6EyIZvboo6mXuR z^HGG414!qefJ*^vi)+qP8$mak>I5P<^h%iRsuEvwg8R-&I25PYk(U7!$);34FSynQGj-UJ^-a|!$6M$WNCPd zK-0Xx1b8K29bgNIvYPfTsa@0PXm<0%6Z}#A@(7^UL?b z+vtV2)eCP2{B$SyUjdZ5{Q&wh;AQBi@b-9-^Vwcr?lUiP1}}0)yvPN6k!uW|G`_%3 z6FO2AprR#jh!W+uL7AdG0R98W0;~fR0FD7_e+K^q*Z?F?^YT2< zTLE@JlY=s7%O|=!_%yeW?9xN<4M0V*R}n}3!kZ4!M`Rr)0T%!$Z}PKapnZy0Rmp?x>&%3|sxD|W)t$MKOd|}r^^|y^Xu`8s{hPJ=uH$u8Va}_1gZ_xtRC% z)$R3D@sI0f#&#Mrxc~7_wq2Q^3z6#c1TfWQIxwC6&jcpj<^a4&Ay z0nFplpAu7~hF9Jc@tMYt8m_W@J8w&l1zunFPLzzu-=12+U72HXfZ z4LA(=3E*(xr-12!{RO~y{U=)j+yrEoFJEM_zkZr(31GTMI2SkucoFbm;MKrGfH!bl2s{+w zZ-5^IKFjen;Kvab^fImnY)1Gl;3>cjIld2gD#EeA(|{l1csTHMgj0Z@1XeEc`KjQ| z1(4q_2VM&x-`@-TC4l_@XW;7q>H{^apzQ(F5AFl*1fag~7;p-J`oV1AJOK59Rlpkn zn4j{WIyYwq7)tb zdPj%_pC6i-lGd_6`ToD-lI>S#2DQOb}AANun#N(RKg zf3bX~lw+9ZV#qp&$qtAcA_@k-ezrX&K+aFUmt+(i+ zFCl6!3K^NM!b=i0x}udiOOplm8Orr{9si|D$}0b*^;hiRf!*hSG=X%{kR(q`6-~h8 zHQxN+gU8h3{;u{{yhg%*Vf|G@xD#`gBHi>*18%jXltA=nV zl<|jVTkS>L0J^+6J$MSg0=K6vgmnG=?awRy7uEld?7xfxZ9$~}Fsl#!A%LL=fBysH z4^{RrtAFL=kL=~#+hu2E*ox{D0>E{MbdVzBCg2o9bV={mIBE5ne$5iN@$6 z9siL1{}=rKudF`}A({)eRXCEBP(oYs|-M~d5S|Jz*ux!#BGiq8%_>{n^f)wy^{NWr@n zrM>O;zs>cZ>*{}eF(WN%XlSQZ4%vzr+{`ra(?v?lSPE(^>dH=up^Rwakn&YB;E{g^ z`>PIeTk5Z|KPdvclAUCd?9XY{UNXVW@8Z(DEMJrb^58Bmty*RKOKe3-#kb%8AFa78r&jmhRez2D zldDTkFZ(>XFu5*W+?^F0bMIGzz^?H}njGjRuoSC~KaA!Kc^+{)(7o;U=QWh;`Jb{3q&P;rgHal`h^fRaB9kE8?pOIiZaGT>kd^zg*1<|9k3RQ9Uc-d#3lO|6J*o zy7s=hVi?*BHgR4u78CM&m%nB&t<!Wp%=E3`A*h{{;~wq5hNC`dG}+ z^jv}ZQeKGjEM5uoiRJb`|8tw`4?9Um`I3FfmdZv-wLcn+Oz&z0c^Qe;p|yTR_E(!l zF?a>|Z!rGf*7{=ysx6;JY~_M|@pz|l|54$3V%5;@#DA0jbC;w3{~xcvYJVDrXu?$N zuY~8y;||QO#K+wT90|0(rVYN>?(;`*!hmqr+k{jv0i|Fi!s z|Nqa|Ut@oF|0jPZbt)TwJjWvnW2uSc^5u19Dl@6C{cZeTsjuSyO8Bp?zfq@*|2m^U zcHsua%`b}3xyn~!+$~;#eWi6j{qw;eA-V`rYW|M`x8MG^xBfbEbFzsv-bt83YM4pS ze?r2w{*mKp{e!Eb;s3vB{=J>`CqqkyBtrVFm~3ABN5ube{FjX`{pa>qmih9OD~F{2 zJmPQQ|F^gP-1e%`HH13yc*?k)#>tkg_;{*l9LTb2ThNtMfzeBrN^y%T_>{=Jv-9son@&)$iuIrfK=Z+#iPZ{eTo z9}E0rf!k*RrC(O0L2QcwiCvr18*jW{(|-%GWc>kn((Q8PRoV9kVqKzMssHx)%Id$A ziNZ0TPQnV-L3mVno2_JK;V~gem@KSi(}XEPKJyh$_;eOFum^>~!XBT^%pyE4BnwXn zr+lUhQ-wrf2iu8tY$0na=!HGZU)aZjgil$p@EJSE3|Lsj3f+Vw>?lhRzG7dqK|-2v zoLPmF>=YX&e8&a|-?P(9C!A&Nget<1><*!r)e$bRy23^F6AKV(2ysGp;R?IT`U=;W zlRYA&3)k5=;RgGi4Hv%gS;`ti|2NnQ_KP!2(mxXVhYC^9|C*EZzgu{Zz0WqV4_LUc ziEU;rp?`hhKH+2LbWRlt80lZ?EM(OLKj^=g?PL4dr|bYD{Xb{FIuEli80l}4^bZlf zVaM4Cc9NwEL!iH%k^a}6XIXWjD)cYHmyOP|3#^2Z{y($doR`>TM*269^sguU%C58D z*bO#T7%J&63em#DuzwTb0dD`ALPKGMWdC=WZ2y6NAb>`(fS5=KLRL9+iDc9xxEKd^fR z#r}6m_P+=A?<({b?ia4IUl`fHl#Pe|N&ggKjHJIH`iMHbwZ>P}i&aEFv8q^2tS$8;A|XMq-#4E;bhL7MqAo z#b)9?VuaXSY$4t&Mv5)PR$^;0O1w{OBi=7Yi*3br;sauPv4i-a*inoTJBgjeSTRoQ zB6bzKiQUB>Vo$M`7%%n~`-l&TwHx#m`-%OKp09^x^u(`n&Z_^iB26^!Ml^^v(4x^!Mr`^)2tpqC`Y!se`fmE}`X2h8`d<2YeQ$jq z{X_Z$eP4Y)eUY=+dER-!S>n9t{K@&V)8V}2yzIQ*$TcUea_nPi?-BR5$-EQX_x)r)Nb#Lk3)~(d7(yi9Lqg$g}t6Qgg zSC_9_uX|7TzHWo=1Kmd5Cf#P;hq^7gk91pgAM3X1w(AOXJ9ImByL5%RPjtI=dvtqs z`*iztpXv_iKGPl4?ScMFoXZ*Y-#3|}|JO{`e;s>J)t~zBMn?VjLwMmwY%BYiZDX%G zUvs|hTU`TpShqi>OKvF~}`kDc3`+noi@9ngOn^VEN}sz3E#+5TGnx2XDW$7gc1 z{kQ!16Dla)ll-ZT@MV3c^9J%ACz zjL~Nr#-Gs`V`%)L@#Y?(DMo=!tUX2q3r3&mLM_vnO2?ni*&#;b4~?Is|0uyV{+wdp zvdYGvpP7Tv_(S6->7OFF#-HEWO%^RIWrD%SpfiXDUxVII#o%YCYN%$YZtyqUVK5j1 z3`Ro@Lrue-hCo9tLv6!dh9E;7L$IN)A;eJ65NfDzFc}&c8X6iI!VKYt#)i8MO$<#9 z%?$S#A`Hz9Ee!V>A`LAKtqiRVQHJ{rZ4CDtq77{g?F=-2lKveHF@{ct&W2b+oS}=M ztD&2ryP=1nr=gc2-q737$MBFL!O+*x&(PnHXc%C4*f7vA$nc2aQNv*58U<;xe?61z zKcOb_|6}OC4-1O_?^gXM#3cKFDg1w+p!oj}XuTGg1N4}GKf%0PQyTv#3$@XrZP2C< zpe4%)zaMSh9&H_m z8Q==*Ey(^eUg(TI~1?dt;GLrZvH2mC+N z&Hu-QmNLcve`gaV|Cjsk8q=Ft`MizQ%_`=t|4tKR`%f1>WYmBA3H^mhLgoGU5UZ&F z%Kk5}A1dy@4pveBCI6TEuP@qkjVaWm=pW?s4x{zk6Vm!^J=SEM(bn}$G=5G;3)k^c z^jFqDw0_eIyIJ}1ht_ZM`iItUj|x_G{Szbv`zYfNt>3B$Kd|!S53S$i^$)Gz1`FfV z^-mq4u1^_Cynz+dX{DHE85y-5ch!It@3m;D%3{-eXI{m$EE2L#qEQ)PIg!{pYi1*t0B; z(fofE^J9#j>aVOe-e8rlH~tg#cdcnU=|5oQS2C7{+OdOA#3A2dS z|3%CVL6{j7|8If0!QKBeFfX|K|1`mu#tX~`_hKd(k8yvx;O_rNFo(xujQ9of`v)uz zv(EjPb=qUjsEK)}j%h8{KOv@VSi8NAbz3ObbL9UYVnr(Z|DWssO8vd{f2IDO{h!uZ z1+b4&|K(V5y4U{<_EGNjUxD?cn7j}B>UP+DUBmwTLCoB8 z`zK)s-bwfxyJcnk6VX!BsCCd{{2dQ$8nr_V^t0q4t;S|BcT$ zVUX~MK;vIO>>m4L|JYX)utyWIOY_A(O^=;g73|gguv@E&{aQ8b*s5dC<}W@b8n9~% zz}~I}_Ib^)KQv;8SOa^%#@HhUVwYG8d%-a581EF_>)!=C%xLUCmHM~EPSm~r?XWZT zZ2t$aSH-)gvD>VN{bne3oJ#xG$L=yK{9f!pP1u7rz%H~Q_MwfiORbF^YfbDxBe45i z%X(oqdp~x*-Lbdrja_XI>~Onbr~9@v{#We(Ej9h$HUC9w`u}5SW2OCR{tLyq#&)&; z|9kv@3uaY1582B;Dy`iAx0Zg*{l5e=wc`IDmn!}LR{sBgng4G`|6gOOy#D|9{{QFp zpR{B6|6~30SDz34)$@N$CFf59Mm7;6TNR9G28>?H`mc6_6;l6SW17KcvTQbsH8#y* zPvLp69QHKJW%HP_{tGhIF@>1wnHrkzGzFR#vzOS*>=m|zy~#Jj)?c87ZZvTG5eB6Jb{hxdNPx{F1-(PqYd-+Ld|G)P9@vlC=@T@=i|I@6ksp9dkVS|@h zJCketqjPQd^W$GjmG;-3f6MLvXU@N`m%8sk|9$7*zmVK>DC;xYEf7$<6plDbWPMvxKVgo3v3{=pUA=qzuhKVcut49=)L-y7-C^3IU&{RT zp7$TN=@tL?UjMp!<@~t5eurK;QL6krsg3??rrg1b;rFfVEKYx#Dfg~i=YMn;i|&6a zr$1NmrI-Z06Q^0fvVJ(py1}UaU+Crbcc1^{_FsvaZF9NtZ!uHa|6R;$wEnqKD%bz_ z(p#OMEB9aiUgziE_*CToH2zoA|H=Pp{Qvj$e>(rA`^T>HU#63HJ4T$pSJlz|o2A%! z(*0xQ{QX`0oJ4#6dk!bHuJ#vn^8N1`!X?&7NB3`*;S7uJA1mkY`NBIUd|C!)v;NXK zY!FUi!*CWGg_GDUoUhK6PFUsjyQ$IA@H!2H8+OM@YI4J+tU;rEoF8pMehE0u?HArx z?2mKX0XW|sh?Ck!aEdz^=et9t6J0Y-eg$zD&VA`5cZ77Nn}T!PF*x5{#rjBhn7c~% zm*a41(52iR=7-dK%x$o*kH@{``>~hrjeUGKoItdYRuGM)``ckSa|kbYhx=aj9(Qe= z3Pj*E;4Yj5G{-5x-8jGachx^pObn;{+phXAz`BS|wB`DXIQO9Y^RD{mVLx*F>rdz3 zp5q^_e{bdgwEq2f`Trr~VdEFZBgUh~FO6RrFB!i!9y5MpJZ?N;JZZdaJZ1dW_?^*i z{N8xlc*S_ec-DB%_=E9BW0A4gc;0xySYo_r{KTDMZD0T9e_q3K=*t?? zx8-W$2`s_mDJ&)2(}S-K-YRZF@^d|VW_7F;zwhN2O;7vuGZ%(uwi?~<;LEKJHtGHL z*`Xai8Tvr(YtKEJ+V5aO?xiLj?nu7NKXb;M%nAFt_a3pNbWp<9#39KCb}ulzwQgyh zGjDVaoxSP&&Bb-|J~}o3+h1S(?ZWicePi$QxnEe{Cbf0??(gOmXYK2@<@uGJN)vty zAG2rNnC?vyOwSU+y{M&5J?bj@+`aZI`v7 z>px%EaoqOzSLI9|wXH?`;O~1EZd>@m5Boay?$BZCmNxg?vGeyE2Q9N|Og!+;*^UEt ztX$D2=1$A5BljfNIX&pEO@}XatoHRA)(&p}N;`gb!1Mae-BzlhWP-lscks8evQP20 z6UA5Q+h(3TDUMs25czuKg+S?BiXbb#YB38%(s$UbHJN218_!y?$60IqZ^4pSD*mKP zBliI0l2{rfEzHVNZYh@niBZVI`Uhmkuw<5je3KzxS@~m;V}`b55B(??8!xl6ywV^k z*HlwukNnc1Q?jR49x_&M7V(hDfZoHQxs63>wa14nUF|^j9got6vrI^OXkSillw_}R z7W0tHgl=SAkKCkk$#Xx9}E0rf&WDdT*Dmt3*ai?^W0$RyU%2YrS}9#YvtqM(RZQgD&V}c;L&%W z>52@OeNsOE>EK5%HVBhy@G+Oa#mUyZ~4W*aA2N_zqA4xMN|k zg(^#?z@HJ@qzI?vO*bkuZ1ib@r2{e7ZBJPsMu0ZsW>0gXY20MmI(B{Fcn2?JFz zXgzq;PS-#az8m1XRMxpM=-Qw=0RISm8h|Fz z<4wR6&fg9?7c}XNEZH*9ZGcIS_dwG;GzG8&H0d)Ca1b<=dl+En^e3RNfu?+hLWe5L zWF5|-UNt~dn>GN1fF`|G0Pf-ZL!di=raY$u27sor&I5*negZffFqX^2fS$r-en9@Y zpbg-?gGw(1O=U%aUdQG4L#ZvGW5Fl=_JXFl)PxEj2Tk>^1vm@(DPU@wpFq>uS}VX! z(B!v80RQE(pC_P>fuPCGgFuIarnHpie$bBq>yU95PLD&lKWOr6iW?1@^!yAk2{h%i z8vmXGT^FplgBd3VtyljMHOKulqqqgLe<;9-ygAI(K{oH09kIFbZ@G@I#Qv1Wk1b z1Iz*40@wt24K$Uz9FWiHC7`!+`7b~p1WomwfPCzr>w^Z#eg+)`oCVOWkk@HzQAi+Y zvIF^aW6+_%bpTPIDIc<9TTY*avOT#x*#C7`7Bn`mlWbcs33wicn>=7tD{C!qJAoB! z2S!t7eF;1t@t1+00XDuHYX=KG3dZpBYVWQ{L^Ewun4fJOl7H=aDyhc!c73&4GV_JF&=iv{im z=mQu4fF0NnU^8GOAPvw2yiDN9fGogMfCk__1N=PTWxz5(L-1AtuLW!Xd;|ysZzu2` zz(K&5fJWe*1pXdS1o#=y9K375zX5!XV0;EpA2R~i0)zk>0j%IP1HKnK9U4Hm$#_@}Rq{A$;(c}rT;d%H{~6YJJH(OXnyJWMHc z2{e5Z?Z;lc=@6d!-tIHe?$B9pnnm;PR^J4>Ss(MAwMyhpbCvmZtW}LG%vIMebX0T9 zF;}9S>J88b}?t2_W^e!QPu30}W!WEm_K>yXE5qzD>F-%P&3e+@`Jsi@*d&WN?%oO3 zE^)Eut^tFr-NM4n-AZka9%2=9k7ExzdY&mZ_u3roi2uyj-g|MdqtBWj?GH`7;YgUb z&)(Nk$J#IT9ee+n->ix8^X&snr>qZ0q}vCw?bboH=9vfCmsubACC&V3LAG`9mkH(} zt6p~u{h*ckv78x>$6p9En^T56EYl$bnUc5CaC z&wOIf8eYpfW8!J^%+5}0_P|2(tcKrMXW##pc~13T98cXf*ZkCluN`xpqs=*=e&~4m z>v(hSJFhtA6^yda&zZu=(YWO^#RgzHeUgs*mHMHCuws zYiHkUUH8%r^SjA4tof6_HLvf}-0|Kc1?Kl#1UNRdU2gv1j!TY>4Y%1hUOeL1?6cIq z`LhokAD*6R-?H%w>qk42>{}OYuztL}t9{#qMb_;zo7f8;o@CuIri*!Jn@6p?dfja< ztli%F$vsugpOg)9?5TFayyv@ij=kqUGw<6T;@E$r*#7BjHysDw|J453bi3o=^K0#& zkNn+wX#BJG!`;5Ke$juN{m9)rtVdh-w|`mX4eM7SR`XXs&bEGiqo4WMo{`pXPDYuJ z=Vv=kY^`lRnV0N1^-8JvTWdGRce4ZS_JpR6?~|_CPe)dFoQXSTKO1n-aV~6&{oJqB ztUroN>^~kWu@;@3ZZF<^(0cx}SIid{=UYqGPBUMe^qlpl`H!1_wybkF#&$Aa>XhfW z+`EzaN`nl?)#kqDUxY-*wb~8r*S>G#a9-2dOLqi0e*N;C{rb}Dj^94mW54nAUDn@U zSY^MN@~gEhGuO`Wrh$L{Tox!R+fyLm&ise@OzaYu$h!3ZQ{yxZ(iLBVk52T}SMjS_ zt-Ajmh5%!Yns)})s(n{bo#475^+M~L8Z>Ma7T);oCQX~&6VbfIy^$?jwT`;4&Hd4B z+da^}!-E}TEW?H;C65?6DrNMT)Uj#l)^Qo*ZJ84$PMZA0;2}dFd)!=c{FJHFrazfA zV`lcO*>j$noAY$;y!p>Oo44S(=NG=P=*7h^z5L3OS6_R5>9XZ-ta$USw^y!O{mz=T z>)y>@|K9r>KG?Wv^M_kL+WPUf?FBn_?kfCb_ny7`_J4ZdvxA=>I{d|vqhEgY^|5b` zpE!By+wbh(pFVT;+z&q%6`#LQa`C619hWX&x%$gBXX&rkf4lMf%`*0{*1uEd*tjlT zyLIo;vsZlYJ`W}I?bknXz{3LvJ@Tkr|BB=P9`&!-GyYf%77!I&a{3A)!Tw|U|J71h zU}d3p1_2(w*nRefm^^WqNHRQ*;#hFI~SjW9<2t>RMn1b{+Im(6pHQ z4fKbgagM-lfIb9T^ionFHo;9^ljB;0ZV8&sUZOz9fTlg(eV`u#O?$gGpa+9a1${s0 zk)UaR7Y%wMXxi7c1)U9g4Cr>C7l0lM`T@{OLDN33J?QsAPX*lp^ls3PgMJY7QP5`4 z9YLQ3JsNZj=&PV<|Jw<)&+Bz9(?E9yeJ5zz+s1;f51RJAaiCj(rgO(GpdSED`{b^m zdx0JWx*O<6K&OE24mt@moq_cLoenw+bWhMzK&OH31$r*%8KC1qF9uEf=iZ>-1f34L z59kj-4*~rU=xv|}gH8Z_5H#(r`+`0Jn)cNFKwkj;DCqv6OF_>Bod{Z7TGx^ddH`qx z=vkm21|0-?Ht2z%8-nf(x-sbg$KIQOSyET$|F_u}Sw$QXr9p-P9AJ8x?imn~MYga> zgD6fIzg5-U(=)wIFS7|jM1PR#;DP_ARi-Kx4h2NCa1{9NLG;vI?e|BfV{i^~7M z?{&`(@q5OB`4^2p{avFxyUx@K)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ)C$xJ z)C$xJ)CxRR6zJ%%N?UO=(~39C*;c%{#`&9C`7JfhClvX7LJ@Bv@m3OVFY!(i?<#R; z9ycp#Y?;TM#QJ*g{B^Us#+F;c7yq@^y>p{8*0FPAiNr68%h|p8p^J&m_^ifejjcdF z9?{sT@z;%A8@qSx+PH@Cj~#nCGv-fGO8sB0K&?QnK&?QnK&?QnK&?QnK&?QnK&?Qn zK&?QnK&?QnK&?QnK&?QnK&?QnK&?QnK&?QnK&?QnK&?QnK&?QnK&?QnK&?QnK&?Qn zK&?QnK&?QnK&?QnK&?QnK&?Qnz@ME0f8@XaZBe%-dxreCIkz+BKLPqGWBya0e`Cyl z>vIQV{(GXIGj7fJ8^&!I|G>B%<96wuA^(lhZj4W3+?#O+#>I>~GWIj(zdJgfac9Pt zFz&*5He>!9q%p>)GtM&Z#`qe>XE0vIxI5#uj0+e)%D4yPZH&)m{08HmjCV3Vhw%Z% z=Q2LZnEzU6yKK+U$+&=VZ^ng;`!Mz~K9BJ@#(f#jVBC*!kZ}>?6yyGkuVp-t@hyzc zXZ%~n#f&#G9>jPX(nl_YD1v3mBI(9>91c z<1)r$8INT=j`07x##%{*%(&?`Irjyn%5Y;|CZo zVr+CY8t-V0*D>b51G|ZFGsasPH)p(^aSO(;Gv+^F`vK!tjQ22Z&G;L}Z5bQGY!{5% zGw#CpEXG|K_ho!KV>jb&jE6BkgYj6#{KsT3VSFazUo!5+IL_F~crN4KjF&KWGhWWv z!}xy2UdB%{E@k{GV;|%98T%RUWn9Mi2S$E^*4Sy)-1r>E{I_riGH%AWoN;r;V;Q$# zJd1Hl#v#V77^fMxW_&H&v+>G&7#?2W&&$tESR~fft{1)R@j6Y@En(?=c+c0jon$N}fY{u;v4`SS& z@kqv}F`mx21LGj$j*ROVcVfJhac9P>8Fyj)7~`&t|G@Za#&0nG4dWe*jaN4szsSdm z|GqW8XZSw&3Ah*h3Oo${2)3G_2Jj59C)gJ}AM}93z|r7Da5^{}Bw#g|0-M0A!6o1_ z@J?_o_z?IQ_%!$es3@(H>fOY$U$!HJ%+k8m6cJzbC@c zr=D`^nP=?FK0e+#G&`Qoj7*Go@-dGMBcp>^C!cw6D$i}V?ZWBp!c6Dr$oOFA!mM** zsB?&SbS|9E|JPU?Cm-6`h?6?^Svb8<=TLJ|ht9n}&nzyMl27FTe%8Q|12bW2W_GeM zH8{=E8|z;>I5nMDlE=r746l;c)0>VNoKB}kCYzeRm$5_V9EYqhOBPWLq z0~6_*!I|dL@|S03lgA9_iyNJM>EL)aF?GWD&_w=vc043}j+u$h(TR|CE<9^-=fW2^ zMkmIHN$`Io<1?M>r&-v_k@1n4{SSEDCNMpSCKJOGvooDDBV&V|LlaYZ1&6E)Q-_d0 zWc|$8WMknps_=j4wl0k3Ydy62rp6)J;JQP`XGcfpqRE-D4UK$-b4%Pmofw~<=}cFJ zsRJLs-lB~B-4m08`(6f|4J;MBUoL(++{ zv5^_H>r6Jzu$8a@PEUq(PH~pbXIeDfnXjX{gd;~sC(@8_B1eU3HdC^BaAcOTK(-2A zpFTJYJ%A9+m-*(CN82?H8Qd^)NHRMznjJDeI5RakddT!tddS>54(d9%|KQ~Zbsdsx zI6K+O=0m>fgVVI#=e*sIdEcOwzxBl z#c<&?FV{_sWGjcJ1_zOmw>96MZ$fzrt>+SpJ6n5BYb7kZbA2vh=c=%75OQXAYMi&9 za^^`VHPSH*nn)XsG8m1Q8TIJUJzux}xGCI@zBk$j=C~lFlzUBv*BNulbbJnS+AM?Me zpt<0D&tBR3FozzRZ?YJ|cFNwK?;q{-SQrn(xnW|Qv)d#S6Qfkg)-%X+jr>P%>7w)R$S3n!1D zS08)wsjaDeh>@9m-_Cm;>a~3Ydg%1vSeRTjF*Vr8w~8>jGE7a4tfMioZLSLAS$_1G z>>Qbh+xm@!nj~rj+@v- zH23CQA~iGL@XU@w51q60al1{v$u<9b{JWcnig7-|%DMHj3(W0%g};X$+S;V|pWDJ8 z&&~-DkCS|^nUQpEht#U3XJ(T>RZ~%0KIYq4ZrBt@2)3Qv7WSwyI!@jL*{~S4YaGqS zmiM5Qbh9-&z0q2KzIV@zPUpR?860}((8zeUl9aVMPF25!`9s3FhJ*>J8m?Ne)(}{op8#^lTR2p`N%VlK7Qq? z`S)!$`LQsJdgHTW$>3Dy*vRx)m|^$CQVt-fk#Bm3Xx-cySo1(TvuZH+jzeDOF(;jL@OA@(VTv+Z z`#tHdgR{}m&bg)JZ$1lgC)Q7Q4&Q9erEp_(lx zpE@?dDbLhknmgR8;o#2BGkm7=!0A=_QSQL)IQ)%dgEXzq4Tr9nt93;(!oIS8)gWgm zi#9CEKX<-@EN?=c^qKXmM)(jLCuW<+NKSy+R`L^<=DS)SHyfFrnHr%Tvfok0>4R+a z&7Q}?!szrw=k)CG@E~WO9P@_qWo;K&o1IhUTUlqI(^G{?m>b`c6FTcW^0d=B^O^a1 zWPWCocc6m~%GEAJF!vW`oiE5Y{>BOFS8IVyBbeFd<>cU0e%6uZXFmBk7PC9|KD@b% z|6LtNo_2y;#|!giWD_g%?oGqZ4p`iohb!~Fj=oEctm*K>J12*yCV9EIlif7y95~^) zR~>)mX^Z*pamIQ1nfLU}#N;FrrmHyTni?F>x98?OJZ+oCto;4)eeonRKLwuqf-%?0 zIs9;XQ=CKQr0|S+HgjFR+0~CY@D=+k+W&x8o!3~j zPa{kXuY1M9>@PbH@5~p|=-hU@9U3e4Y2=sg8fQ#Qu+xrj>>M3jH#pkdd*}@DFv)(; zbdE0hQBb}Qa27DtJb7*8J5s_o&3w!_5;mGI@_-&V*IZYQabTTZ8HQ-qE7=Lxteh*g z=qAm>e6zoF<{y~rLd~P?)ZDA$_&B&>Fzw7ww@Gn-v|H>rb30O|Qa7YG0X7%`92Dgw2iPdKewq)I0%c zBpe>s@Ig5#;Qf@Ip8?Ak0XCd;O>-M$%mhU8wdtd9kYOvGZJUknwvd&4)4~udRM&^9G_*4Hi z51(VRqcbCu`L}>(SI9-pJ9Yb6W&6pszG@w!Tl=9L(4r4rfAUb-I0c zH|F0t58N+52c4Pw|37gYY@R>RI=M=)GT+787O>yk`SbATL^3k8v5jh5Ht+jW|K;c3 z|BLUZ&5sd3?vi-=(P*{`zPb-h9GHL8EEHzD$*(swiQ*Kexoxh@w@sVg{9Zoy<$OBZ zG#Bv2pvc5vLy=iu1nY`mwg_g5fXf5<_x|Z@stDE=!Q@HCF1Zfc@MG#uS%<@(+)e45PA~UnBpjyFDR%B-S z3#t_iWkqJDub^7NP*!ASmKIbi7|M#wOm9K8f}yO)%=8pgD;Ua(%uIJdwSu9n$jo#V zR4W+DipnkF1vC<+UR|u6A5xJ<)hFJZE zSo4Nh>4sR}hFH~xSj&c3!G^fr4RLMj*JEw z#U-zcOI{b3ye=+zU0m|Ixa4(l$?M{h*Tp5z#wE|jCC|ns&&DOs#wE|jCC|ns&&DOs z#w8a!CTFp69mO6=F0QTE70Jc*7W*K%SV6J#k&CqydmXu0Rk6E~i}e-z8M#<#v4fFo z)lAgdO4f``$F4LTtDlZFPsd89V|~-Hs_9tEbgW=Hu6Me%w#kX9nYsOV)8JHWszn#0 z7ss_t#kEbvwN1sfO~tiM#kEbvwM|7o*2d4VHZFN>T=LqufCgVCL<2okeIwoWF6LHBCamf>L$rEwO6LHBCamf>L z$rEwO6LHDoamnLx$>VX!<8jI3amnLx$>VX!<8jI3amizG$zyTJV{yr2amizG$zyTJ zV{yr2amiza;`vqi<`J8d$<{iETI(Qct%Inw4x-jNh+69)YORB)wGN`zI_w_6P`n#3 zosGs%G#WqAX#7N@@e_^4Pc#}o(P;ccqwy1sMy=MwC9jD~UK5wRCN6nRT=JT@|sN39Yb*)LvbBLaUDZ(9Yb*)LvbBLaUDagb*zyy%)z*h z!MKjWxQ@ZNj={K&!MKjWxQ@ZNj=`uUC(c2p?`KWFiDIgL>k z&y&*_W$^?#jZqfQjMErp@sv1?Q5MgI(->v(Bsh&x7SDdu7-jLaHe zvCuh<4yMt;G&-0@2f5|d`rea92h-?a8XZidgK2ayjSi;K!8AI^HQ!>%(ZMu2m_`TF z=wKQhOrwKobdbAv#qy$qX>>4+`$8J`g*5I9Y1|jmxG$t}Ur6J=kj8x>jr&3p)lH(h zNmMt9>LyX$B&wT4b(5%W64gzjx=BZW7f^qPj^`H;L*dQQah} zn?!Y!sBRL~O`^I>sT7su{5q@X*$T^=#A^>jqB)*>*$T^ z=#A^>jqB)*>*$T^=!xs-iR*$H==!xs-iR*$H==!xs-iR*$W_=#J~? zj_c@->*$W_=#J~?j_c@->*$W_=!)y;itFf#>*$K>=qlDRRYY8gDsnSj#d@cT2)4-0 zbQQHs6%lNao9Qa*n<^sMA~(}j)I3#0utjdBtN0vKMFiW*@gxLy;ajaCwJTzYg~7tK zxQI2KB^Cw?GrMAxT9{ZEEX?d0P-t2(KLiG{(!%&ya<7A6)33p2akl3JKp z7%a@}>PBi|Vqvf_vuhKng^7j1!pyEVq!uO?1`9L0YLHr(SQsqK>^eYdVPavhFtcy= zsfCG!!NRQg9?f~Ag^7j1LirY)+85%)!eC)$-)mC~6AOcdnSE1DEley77H0O{Gqo_W zFj$z`x5?DP#KK@IegeJ!;xu`pO@-$*j~N|M;OlVD*c z=e`yu76uD5JCjQ-Oe_o*W_DhZT9{ZEijYgo1FcTV^~2(%gK(K;`z`Eig-ly&*&-y{ zYuO?s+hf@xB-?G-A|%_@%5q(^2=i;4mR(YWS!y>45(|TcX>m0_Z;r)bA`2E~b`d?b zFtIRLnAv6V)WXEVU}0t#x>E}i3xkE3UAj&!Oe_o*W_IB@wJ@OIWFeiG{&JyEH>{G%qX+7G`oez{14BU}0uoZc_^r z3xkDOh$~JlOe_pVNH-d2y*F=;7A~`}-@?9D$h4)FEkd%rmMucEJ(ev(vc;J*D=tE^ zU9I=#&C#Y6A=xFx8)%Nj*>ILv7%WVS+nRZEjPDH=W_DjOwJ@Ic~Zz;7fu`pPe+1;Yl!oIc~uOziFu`pPe z+1-!S!o{AO93xkE3-FZ(fOe_o* zW_B+6fpWZVc63xkE3-APU@Oe_o*W_E8lwJ@{*i@=g~7ti?uMimCKd(@vk+IDT9{ZEijZzJ(0Xs)CoNoNVZVia zt&nL;En9?Sdo5dpWP2=Igk-y0*}PBM8;X!OblDqE^x0xC-w zu&}uFO}4l~O;}t=CM>S^5*ACC<{`J@YHYT_!u1xevv9Tub0u5T2#fm@gvD(H!s2Q_ zVNn@jQ5j)T8DUY`bT%WaD8lJ%+QN7pc{*Eb*+~m0EF8CRtO#>a<0l@qaE*nlEgZ3M zm4(9=4p}&8VP=p2W%j&YW)Ik9_C#D}52R(&v9in_(aP3Z)*gMz>{+GE9xlp?Cv~Q? z%pRl3?75fB9#qNf$&$<-1@L+p2LM0|tVnQV*RANFUCRAcVB_>p2 zLM0|tVnQV*RANFUCRAcVB_>p2PkkgNRANFUCRAcV1rsWmP{D)>CR8w?f(aE&s9-_` z6DpWc!GsDXR4}1}2^CDJU_u2GDwt5ggbF59Frk786-=mLLIo2lm{1`K#c`R7O}-Mp#sqA6r^AkS)Ue*b*y?cOmm*OUzDMIAP(qg=0mS zA6w$IQ47~txZ1)I3s+eDqp?FR{I@$7$oY_T_(W~phGnr5kKmYQa%X_lI1scDv)W~phGnr5kKmYQa% zX_lI1scDv)W~phGnr8A)Txy!7rdev5r6yEjLM0|tVnQV*RANFUCRAcVB_>p2LM0|t zVnQV*RANFUCRAcVB_>p2LM0|tVnQV*RANFUCRAci4<;s5VnQV*RANE}6DpWc!GsDX zR4}1}2^CDJU_u2GDwt5ggbF59Frk786-=mLLIo2lm{7rl3MN!Ap@In&OsHT&1rsWm zP$3G%v8C9_IJQ{0qzE~-v>x8zATeNJ@dyyv;z=FC;(;2%;<*>X;_(#1Vqy7Vrg$iX z!%PgR7O}-Mp#rvSX7oDW?D6nEyDaT6Dy04 zv*d@Fn4Pq6!oqP2$BHmN%*1J<7Ot^ywS^-VuCj30!XXO>EzIoKN}2tdJy)OEgYcO>xt`gh=9xVa zp4o%j_Vh4^8C!)tZ<*P{f%e1^hne`^)PC)j7C$G;4>R@#(=0X3QqwFo%~I1WHO*4f zEH%wi(=0X3QqwFo%~I1WHO*4fEH%wi(=0X3QqxSHvrbL3)HF*?v($u2OsK?!N=&H4 zgi1`P#Dq#rsKkUyOsK?!N=&H4gi1`P#Dq#rsKkUyOsK?!N=&H4gi1`P#Dq%hf%L?L zN=&H4gi1`PU_u2GDwt5ggbF59Frk786-=mLLIo2lm{7rl3MN!Ap@In&OsHT&1rsWm zP{D)>CR8w?f(aE&s9-_`6DmZZILs6~8HX7QmlPp~nbuQ)93%!TES@hVTRa9zSUjys zSUgloSUmekSS&0*%oI--a+rzXdJETCI9r4q1B!=$35#cS35!Q+35&`Ii^>R#$_R_f z2#d<{!%V9NvPGC5W@2UWxybx56SI>RPFOf@;aCyohnYBS)WS6uuC{Q*!c`UyTR3Fl zpoN+J6gIQpu4eXQ)69Myn%U1Uv*}n_W_tn2AJ9J_A>jST~_>REkDfIH2V!$ zW>{nKq{VXc8-!WzObEC|D6=Xk1;V@&Xu!s3G{+?~?K~sBlmBUQTruI|nwD^T` zeweX0m}aSImYQa%X_lI1scDv)W~phGnr5kKmYQa%X_lI1scDv)W~phGnr5kKmYQbr z)1A~bOHH%XG)qmW#Dq#rsKkUyOsK?!N=&H4gi1`P#Dq#rsKkUyOsK?!N=&H4gi1`P z#Dq#rsKkUyOsK?!N=&H4e&dvwP>BhZm{5rc6-=mLLIo2lm{7rl3MN!Ap@In&OsHT& z1rsWmP{D)>CR8w?f(aE&s9-_`6DpWc!GsDXR4}1}2^CDJU_yl`6fL#b$vDhdxTFX< z%(NaS=O8g)Ve#Vyvc+!<2#cQr5Ef7D6BZBF6BY~04>QGM>KtZbxZc8b7S0wS$AID& zCWOTgK?sZAYY-Nd5f+sZ7L^eel@S(|<%gM84P=WjKg`6+;sf^iVJ2oLEu64$+`_RU z%nvhh+NgzVEL?5jh=r>x9JX-C!a)m>GIm<~!w8xEC4?gdL{pL0+ek98hir=yl%1=(?FB>_`*edLo zVp;rI6F-M6-oRm|2zds>!s3r!CR8w?f(aE&s9-_`6DpWc!GsDXR4}1}2^CDJU_u2GDwt5g zgbF59Frh*eio;B?A<|tfTvCJ_W?H{X;vg|#Ve!j2vc(VB2#epD5f(oOBP@QkMOZ8> zKg<-rfuc9YaJ_}=ESxPujseSC?%y}#iN)O26(F5{O^g!|ab90&USak6)baR>ZaNvMEUpOF76%G^+ z5a!D%;(TuL++cJ0t>xr#@epBi`K_m8nl(!-PvZ;}58gDFFYhTHvS}{Am2WOz-m|oI zhqSqTiF+h2?yWX!ZsnWnlDN3(+FX7s&(T~Sy~*U+8%|K{J@M%q-X9;6A(n?@GI=_N z-Nfd~^D&&KSYDox;Y`Ky@?cCRPsVVvV(*b>V>n&0ygVJl35(_R`51W`gmV^qkKEJe ztR?0-L9tk#SmG4L@}e6jDV7)AI8Cv<=*EePp`Ei_sG*8^hwK)N-R%#&?oIZ@|*{K((>}82Yu4=`mBdM*+8GP z_sIQe`ee-0CoPtzZ|IYj7v1QSmKWXVla?3V=#!Qg-RP5+7v1QSmKWXVla?3V=#!Qg z-RP5+7v1QSmKWXVla?3V=#!Qg-RP4sPoK0{bfZsNUUZ{RT3&RcPg-7dqfc61bfZsN zUUZ{RT3&RcPg-7dqfc61bfZsNUUZ{RT3&RcPg-7dqff>>ebQpljXr64(TzT7dC`qN zX?f9&K52Q;jXr64(TzT7dC`qNX?f9&K52Q;jXr64(TzT7dC`qNX?f9&K56-=Ti*Bj zTDPm3JyYUdiF+h2ZhAF)W-C9QpC?OP+zrd~b~}u7%hr47hw@MaJ=5~>v502Rw7fjE zK+m+iJhwp4w7fjIz(p|2%L5Bs2D7|8vOv$Yygal(&$PTewm{Fcygs-fx9RDb_8z&} zO3#dWdZxwlC<#5&@}e6()AFJlJ=5}{8$HwVq8mNa@}e6()AFJlJ=5}{8$HwVq8mNa z@}e6()AFJlJ=5}{8$HwVq8mLk=INOhi*EEx%ZqOGOv{UI^i0c(ZuCsci*EEx%ZqOG zOv{UI^i0c(ZuCsci*EEx%ZqOGOv{UI^i0c(ZuHEUr)OF$y3sQ&FS^k)Eiby!Gc7N= z(K9VCy3sQ&FS^k)Eiby!Gc7N=(K9VCy3sQ&FS^k)Eiby!Gc7N=(K9U{b!+y_*1eZz z&y=`V;vR{MJ2=gr*~&M2ro_dqoo3H$<(uc37Rw!edZy*$J^p6Tw7lGcr)OGTZo<>6w<7yYKW&%gg^6@^TNJo@sf#3orMa>6!K(xpPR*jCp#d#qwMP zJ=5}{8$HwVq8mNa@}e6()AFJlJ=5}{8$HwVq8mNa@}e6()AFJlJ=5}{8$HwVq8mNa z@}e6()AFJlJu~L%nHGy~^i0c(ZuCsci*EEx%ZqOGOv{UI^i0c(ZuCsci*EEx%ZqOG zOv{UI^i0c(ZuCsci*EEx%ZqOG%$TQVS}eNJGc7N=(K9VCy3sQ&FS^k)Eiby!Gc7N= z(K9VCy3sQ&FS^k)Eiby!Gc7N=(K9VCy3sQ&FS^k)EgyAj_RQ9egl5l_xL4vHiHqA2 z&7RrHH+!bU#eIrq&urzJJ=0>jT}{ule7s@Z?3tFA`^of7%gY^QdZy*&o-#et@^UMg zo@sfxnM}{LyxdNvXIfrvDAO}7ueX%t1}Z(%-Xpic=$SE3&$L)>^3yXdFS^k)Eiby! zGc7N=(K9VCy3sQ&FS^k)Eiby!Gc7N=(K9VCy3sQ&FS^k)Eiby!Gc7N=(K9VCy3sRZ zo}Ov3=tj@9yy!;Hw7lp>&$PVgM$fdo=tj@9yy!;Hw7lp>&$PVgM$fdo=tj@9yy!;H zw7lp>&$PVgM$e3SdZxvq8$HwVq8mNa@}e6()AFJlJ=5}{8$HwVq8mNa@}e6()AFJl zJ=5}{8$HwVq8mNa@}e6()AFJlJ=5}0w`R|5-FIvDOo@won0daqiJ8a6-Mc(4Zr?R~ zW@~O9YreRz*X)_C_YljyS9+%9lDm;0jhOv}ri zQF^B3<=!Yg)ADk6l%8pMy+0~@xd#+x^$CU6zbZV(q@yE~$prtR9RE1l?Q0uh z%U^ax+|BFlU)2a_eW?*Hy0{~}?*2LM7mRP*)CfC)H*ai&r-REkG{Q5%mFpYf+2HDR zjj$Kc<^8$EkIpv2_rWK?Tfrna85{_<20xo=gwKO_gI9t5z~_ zGPn+00L}r2fis!Y4R!+eGxsatdT=3lB{&@1z_Kp_2{;1m2_E77-vzgT%fRn1Y=nOY z9|vy%6W}Cp0N4uL&74!H_4!~M@N;VZ0(cKN7rY$wf!Fbwy1hWT7&w7#^uMpiCvYNo z=zWcF4fqT2+v^(Pz2GG9=hlm~o&%_FD{%MU;uE+UYyxM2Ua$*z;97hFH-L*k0*(NC zf=AxVwhnFqmw_>GB3J~r00({;Z^6$#gty?`;8oydU@6!YXgz;!@vlDE2ww*u0Ivfn zcoBFG_}vHSL*Vbgo548v3$Q=f68!WA`Z0JH*a%(4`ucK6Xn z_!77loDWujuC8$9+A_C0VbxExG@Q^8`eEx6}K`UtoN zoCnSZ{a`on8@8KofDeI7z#zE)z6$OTZ4`zK_v=z;)mPa1J;OEC3I&-Fyq&1l|Bfz_B3tB>O1X z6FkB(|GVH8a2Xf_CxS)b-*4r(1l|HBz)9c$uobwQxwnI>!6~2S_yo2AKmQcRC-5F{ zE_gZU15XG4@EQ6Z_$%-Vunar{{1@~71$-F%H8}KhoWp_t{%j-sEBFX_Jy-=^4E6zk zWZp+Pk9i|l4UPl*f)4Ow=6(je1I&W`Zs&Xn{N(Q&;d9`fU_Cekbb%egFPQhP&$BOr zmx3O!Gx#O*z6#zCUJC;F{y$JZxZ{hBuoB$$1@?XLBJdpWJLY{4T=;#qH}KJa=lx(S zaP#-@7_0%ugM~o1fhQ{7?Eko)v%ZTj|AwyMrQczH`!>f&aOSrf;e-E*58p&b@PU6} zfBpvBCb;3B8{rRMZ-mpq`@hEd!&fC0fvf3T0-!!{09|D1mR zGkO;oxtnvLpR!MYRd=yX{)A&47`~JJ{Kp(u!O$IS!#`ph1cN{1eB=j>@B(lf+tcEX zj_{F2M_2-W_(zUCpbP8>e(_i%{1bQ|c%rr?UG8iCkL&r~ANU;Lf=B5;zsFfbfO zzdgcv0XYAE=+_U^Z@^#umhUVNaqI-={Wm@BLHZLo_rK^5zhVCdulhCL0e;2)1U5au zHplk#SKz2;bc8E*>j=*R|M2vVFah=e5AWI$z5{LsZvy(6o~U@u|8YIH@6r*T0aowa z5&nLsj<6dT*|8(swnImFI#~6zj_|qdJHoDDc)O19*=;+*E?{Vzj_{eSJHpOjaI22+ z=`B0LP9WQ&BYbM}j<6$0H|q#LXL}k3y$3!yIy_e7?lh5i1Zv$(=Dd72F8}Rc59pRPF>|1-Og%-3G1#8^CL+;fea3PsVZs^}i528~o36I>Nt!kAc4dqu>OvAJ`oHWKXs~ z@J_HEoB_JPj^Gz~@K4}<;5A?+cmX&cpPr1*@kFg-1@$inyMqV!?g-xmH-bySFgOP6 z4Ib;HM}u3zVG|01zrsH z0e|f72tNX!0&fS?;52X$*be+h7w1vnz2L9FE5I`F4Derg@Gs!Q;IF~g@#)FvF;CPw zK0y7i11WeBcnJ_&e}sFb@6#><_jCKV8Z>8h97j2wn<$z|P>8Y_nel?+331 z0lW}g&Nlr-eTFAvxl`1CDp(A*1@|1vF%4V;&I4zIey|((&GL@$4e%jw2^a)NfxW<^ z%Q$xfp8#(Kli*}1I&Wc!6D#j;6IP+2>%HF7Q7n#B{&p36a4qF z9OuAC!0W*(@M5qJ_#+-1g-=gZ?N7#X_oDtsPonRDPk^_ANpLba5Nr*8_7@%D^Wfd! zRp4b{DcBYK>O_un-~-@wAO$Z1&jG(f_wRwf1KYDrKN+9riCV|Kr_p!7wcvcP0xSo+ zg9lHg?|>V@rC=Bw1NH`wox=AYa4WbROo3CuVz4c^2mQYYt^wzP?>xnO*Ui-bCa?w^ z4;F&Wz?}np{{dHmbzlH20Xu;EPN(;P>%axz9B>#|03Kqy`4+edya9}WW5L+!r}p-A z-4NSF!alT;e)9_Y4R|K_@3ZMQ;3MGmU=?^V`1Q*>!asu#f{Q^0js(vISDuBYU;r!u zJAjX#$+IEgD=*`_54aG#5*!Zp01xw??|_@Z=gxU*Yxz#i@)T$3wR%R z4Oj_Y0G-lo4^~u2sjoz4>Z6X8Rt{r3NQm+0uBb-gL_ks72sNMK3D;kgWbV{ zXn*2Uymu|4{w=^=BV1PiSAh-SOwbK>0{5??_kioch2WLoaIgn>c$nS;ZU%1xYryef zA=nJuiT4eT_ArlV*It_K%_{nl{(85{w>CwPSSd>7mTE(2rWM6d|-P{R|o-#i)1-I@A- zInDJ0@P6=G5Wow;v%&vNag82)4Ezlk1t)<0z~cH*aF-|FT4$01vY>)K{wd?;-~iZ^t0FT-59(ZoB;L%n}eTRM85&=1na>WpbPxy zwOm^UZwJ%hG;k2u4qWsaGzCY1J;5Uva1H3yTt@{Tzp#VnW4V71P67vjt-#&9?{;uC z==*DQz671YRbT@+6P$i2#}l|8fKP(Afwkb8*K_R_{1*P(;G^J;;DI-=4}fF9-rzCb z^F#3KH}V|>d=Oj=GVqNzbDjt;0fXQuuormrGR_mhC%{|5Bsduy2(|`4`x|rv?*^{| zF9S=#uHaX1;+g{Z0GPR)V<AJn1x^Kv!M0$JE9q_T;JgIf4BiCRfaAeJuo<}X3i<=M608FQUi!nE3EciJyaJoRS)do}0v@=EeGA+GE&>TS0_+JMc_;f8xCLAW z#=wbS5!eFUMeVnNtH1_uCiueD+y?^Zf|r9naLs!;*9T{Vey|((%{6!kJ_IfSgWxEz z7kKnNcnCfL-U=qc$>2b+HTc=P@esTlyb2uqKF*Ip1Ke>P=f~g*Faur!4hGwUd;b;> z!L{IgumUUxyMqU>#Y1o-xD*V7W5C|vG3xyxxc>&ugTVFRLhwp(IM@R`{C+$HH-k5U zHQ;!#5NrnSydDq1m0%qh0879Q;6Cd9GPn+00N(Op_BU`6H~?$~?*0%Sf~&zMa2DtV zyMPBih=HJ_DQf7oC2N?wgH#l%ytS+1&hJ9 z;GU0iEC$zr^T64lAM6Hxa}!>I4}nX-AUF!_1s?qfUV=}6w}MG<*vHvE!9#z?_6cqR zZvZ3USnxd10C(Jim*5I816~3S2HS&sKZcj!T5vvC0hWW^!GqNMO>oz(Y@gsNumPM2 zy1`E1{!ij1xE@>xUI`8ddw_>OftTQB@FuVZ91j+P&A^@1{#kG(SO+ftEIkPv37!jn z|Cx^P@8IL$Enoti1P%aOfxADAm*8r!37iFb!7ku|PvIrF0bB$Ua0J*BeE4(R-vdM7 zXwV7%!1^xzJliWc2J8(UyPfS7+zKuSQ{Ysv7;Fpf`Fp$s*MRfD*`Ocn27YrJUV;yS zOTZvl@+G!YaNj?$or3GY1>hWT7+3%v`XXL}o4^~u2sjoz4>Z6XU%*Rn1(*RZ0SANa z!M)V{CGg#UVmk$wfiZ9*SOm5JcYPTz!Bt=bI1_Y(oxuJ7h?n4ca3OdlI2`N&9;WW^ zfSbXaz#4Gw*Xd254?G?G`fD6tzz4y_AOlB&=YrpV6)(ZZ!CSxtI0+m8wgPv51uwzX zU=uhC^nzW$d;ghxC*T!e8F&WxFV=Vdzp}l8w&0#`;3c>QoCnSZ3;&Jn6x{h8wo`B=SO*5c60iff@7s6@t^*f z0eI+JcnNL-ZvZ3USnxd10C!OHr@`0$o$VA{1QKur*b_YRJ-h_BfXl!bI1wxYTY$U1 zixUJ2Izi2ekg54Hh6{~^a2@E&k3csb|;PY1vL0bYU+ zf{Q^0js(vIzyCg7f{%l@fC+FCH~?$~-hKz?M&LAX5ZDg<2kV=;i|rL047LaN{)Fun zTno+zE5LHFJ9zL;yaYFbOTjQW2J8(U`!QaETfyaE3Y-e|_&M9@&)81E&EQR74LBYw z1e<|7@5W1TC0GXrz!IOd)SrIHR0)8S|EIKZmKTlHR;?nukcttKQ zpFhRC;+Vm8BkACZV@D?@CpWUJw%07N?KR77d(G0@UbBw2*Q}}S_2bva=W65mcx|uw zlx?r`58Ix2e1-W(Z-2+*Ys`gce}`3hau^vM7@e3|!3N0hY*%E1>sG88n;woc&Ipr( zRzv>E3dmpC+VfYo>im_hH-BX-&0m=?`74tpe`TWNuS}Bsl?c*&*Tj>AzrCvd_Nw~ZtLksBihnLbt6J7x)w1@gmbF*4ti7sb?Nu#nuWDI)Rm<9| zTGn0_|DJ_bwY1Y+W1nNe_VZ!Z}j|4$M*S;tB=1Y-p)U+ zKK>1ecK&ho@$Xu+@sDfx`9HJL&Oc7S$MyXD-!g80|KsZ8-;!wOt-e!cM@J)hbawj0 zn0eWJX{9t@S|!bwCRFpK)zN%uWi($}70s7cMDwL-)O=|YHD8K_bFUv)msmK*Kdv%4 zTF>!T+wuIBk8EUm&5{+Tg{hg5nURTc)1V-`s>tptvZspdts<9Jk$qKUe-*i`idw8r9))@B@1nvTa-Y9tNGn_H=pG%Igz zStr?=%0&rTHcrTLNkW#56SA_PvT-uAY@Co~A~fq zge)5;WVs|E%f<;=Sy0(HnOQbY$g*)lmW>nAF;3Y^jU3~2Zly|&aXPoGlN=t)MG09p zPRMdeLY9pava+DEaWb=PoRDSXge)5;q+^`2l^Qw5>D)?{9OHCuStmJjDHkPV**GD~ zB?(zJPRPoF%ErmevT;I|jT5qLoRE%j%2sOR7^ib9RdS5exn-T?1iW07kY(e9ESDr? z**GC93o08YGt0&aSvF3{vT;H>#wlB=kz<_BtyIY|PUn_&lJ7?4qJ%6PCuF%KAE6^|VWgmrg3KQ1xQCO!eVI3cZb$k@o z@ljaEM`0Zwh4p+?+VN58YPmcgb#}F2o{#$7zU-s0PGQ12J__rUC9LD4u#S(yIz9^P z_$aL7qp+TjN;^I(T`iaAqt31t%=1yd>X&^K)+tO_$46nEvV?Vf6xQ)kSjR_U9Up~t zd=%F6QEA6VrK{!geAL<1f_XmbH~+Ga!a9Ws>-Z?FQ`%s*6~qT&qt*l zAC<0_%kxoZR}1F(sMiI`J__p;CamM5uufURIz9^P_$aL7qp*&T!a6<*>-ng(}tV0AN4Xp*+*fW!i05v6xJzASjR_U9Up~td=%F4QCP=EVLcy}c6?O2S}xB= zon0-MvmM3sGC^s7)Tgi-Z?FDz)mV)T*aatKLej zdMmZ+t<aEnOw^FO#O09Y;wOU%K)zV6>x}|1kFBR6=NriQKny}6; zDy-AfgmrqFuue}C*6C@&Iz3HTucs+pt(N!QO=nl@<(>2EY)3KKx}3^{b$k@osY_VL zM`5e0a(tAzj*r4RJ__sjD6HqB($#8tKI-ghy*wXvwxgKz0jDxy9Up~t>JrxRQP}FL z93N$_D$F|vyVsaMbR3@zBqp(h0!a6<*TV0joqs(=D6xQ)k zSjR_UJs*{>R?G8IXIJax`KYrU#pK-HsZ3bMM`4}1gmrurwz?|EN15yRD6He7u#S(y zdOj*$t(NDb&aT$W^HFCzipjSyr!rw3ABA=564voi*y^erA7!rNqp*&T!a6<*>-ng3 zwOXE!I=fmg&qtl@C??;RoyvrDd=%EHOIXK8VXLche3ZG4kHR`W3hVeNtmmWB)oOV@ z>g;O0JRfzoqnKRTa4Hkl@ljZ(E@2%Xg{`j2@lobFJ__sjD6He7u%3@fSF7dusI#l} z@_f|Uj$(S5pmdG8M_9*4VV$~!b$k@Ix+=#l7xe`%s*7H&6YPGz+s1w&W{ZVIE3+C*P zdS9trnX=`=lr8(HY`H9D%RVYw_EFigkII&PRJQD+vW|~!bhTQ}{@6CVS}$jRY@6*U zrk4py`=j0;bbOS#PF=z}J_=i1mE)t#b$k@o@ljaEM`1l5m3Dkox>_!0e^jkKA9dl5 zVtSdN?4z(wVZu5-3hVeNY;{$Rk22TsQCP=EVI3cZ^?X#?@lok&xjY|rcC}z$U)9S5 zWgmrg3KQ1xQCO!eVI3cZb$k@o@ljaEM`0Zwh4p+?+VN58YPmcgb#}F2o{xH&pzNct zPGQ12J__rUC9LD4u#S(yIz9^P_$aL7qp+TjN;^I(T`iaAqt31t%=1w%6O?@v)+tO_ z$46nEvV?Vf6xQ)kSjR_U9Up~td=%F6QEA6VrK{!geAL<1f_XmbWrDJg!a9Ws>-Z?F zQ`%s*6~qT&qt*lAC<0_%kxoZR}1F(sFw-KJ__p;CamM5uufURIz9^P z_$aL7qp*&T!a6<*>-ng(}tV0AN49i*+*fW!i05v6xJzASjR_U9Up~t zd=%F4QCP=EVLcy}c6?O2S}xB=on0-MvmM3sGC^s7)MuC-A7!pnm#~hH!d6%1_$YH7 zABA;%6xQ)kSkFhL9Uqmhmdn{6Rcp^jUAUu|Ttz7VnqaAXH+5L~#^bPZ9__GlcIL2h z%y(Ehk~pmNr!w1D`Rsk4h~>aWzQzf!CI zO0D`Uwd$|bs=rdJ{z|R-E45lGH9LE$u+B~@tkctkb$Xhx)qAMZ(`2sG(}Z<;ny^k! z6V~f#N>{7p9h-D^wO(FN)7g$TE|b=>tw>!a6<*>(nKzuH&Pyj*r4RJ__sksC2bjo{u`aS})H>o$V+l z=k`uz!a6<*>(nKzg=*&dTpUxnX+Xc zl`Yq$Y}rR;tE(#esB_CcDqHqZ*|LwyIzG11)oM9Dw#}~A%ki;owxgI_*>EZo*6~qT zr!HX~ABC;1%JEU=Iz9^P_$aL7qp+TjN>{7p`KYt2_40hw*^Xj*nV@uyx=&cgM`4}1 zgmrurwz?|EN15yRD6He7u#S(ydOj-c_^5QXT+TIW)!Oq>7w#ygmkG)~3hNXmtmC7w zj*r4tSLOI9a~&Urb$k@o@ljaMN2MJfm9Cb{^HFD43+CMW(`(>PWpWY0DNI<$M`4|^ zgmrur*6~qT$46luABA;%6xQ=m>1wsSzN)jU_44*do$V;5mkG-Iqp*&T!a8*c>-Z>a zbybd!GS~4@SjR_U9Uq1Dd{o-;QR!;Ay!}yUR}1Ftk9wJ)?4z(wVZu5-3hR_5tmC7w zj*r4RJ__sjD6He7u%3@fJ3cC1Etlt`&aM{B^HDDolzkM|DNI<$M`4|^gmrur*6~qT z$46luABA;%6xQ=mX~##UtL5^1)Y;X7c|Pi8g0hdoI)w@A_$aJXmavYG!a6<*>-Z?F z1w&0{ZX~{eAI#LKFVCjM`0Zwg>`%s z*7H$m$48~B-Z?F9afGc4lDi1VP&g#Skcm9E45lysnzmI zt(I46wY*ZR<&|13uheRJrB=%;wOU@O)$&TMmRD-kwWLz4t|gUfbuFost7}Q6Uj0(H zv!@E{?5M&zeN9+rHx<_DYr;BxO<1R|3G4JVVV%Avtk>6+u2##to}#m>_42-l>ug6c z*}|O4gmrur)~QQa$46nSt8#plxsH#*Iz9^P_$aLBqtexCc|PjwYP~!kb#_@XJ;szP zQ?~4*vgNvzE&Hf!byZ~_b#B>5Wy?M)TlP^|$Hz9hS}n)Nw%OHsIXQpAI_yIN1a`*m*=C-b`+CuVoqhkIz9^P)FrIrqp;OgIX=o< z$46luABA;%6xQ=m>1wq+A9Z%MUY?IS+fhuuGdq-Z?FQ*e{VvmM3sGC}D&^)g`{ABA=564voi*y^erA7!rNqp*&T!a6<* z>-ng(yn6hObl`WU0Y}rR;%RVYw_EFigkII&PRMzpa zjjmS9>8owCtMzjB$F|vyVtSdNv_IA>(nKzD5jSQ%03F~6eg_Wqp*&T!d6%1_$YH7ABA;%6xQ)kSkFhL z9Uqmhmdo=|XIBg6^;Nx0Q1($+r!Zk1ABAl7xe`%s*6~qT$46m3AC-1|RJvL&&qtkI zEtuz{UM48}D6CVMu#S(yI%Ns#_$aL7qp*&T!a6<*>-Z?F=cCe&k4jg|<@uMt5+_qjV_ng zMwhK@qsyhW(PcB+=(3w_blJ`}y6k5gT{g6hb{uWz=h4l%w$na;9_5^?0`2oX?ewxi zY5#0{1krL_G}f}wN-h~R^{gr&e>Pnba!pl<$K!c zMFz)Kp}p#a_G}f}vsLJMO7m=$*`BRJd$tPg*($VatMZ<$%FiR5Ypc$mM>@9&>oo_* zR-wJ>g!XI|+N(`y&sL#5TZQ&)722~^XwO!mU0ap+Y*l_9;appF{yfsTw#p@l^3M^v zmdH0-kCrb?9xdnL9xbPL9xZ1L4&7D#1b>&bDQ~vy4jwJCdUUmFUDc{}Rjbxjty)*L zYF*W;byus_U9DPowQAkfs&!YZ)?KYyceQHW)v7I#b$h#^(B57swAa3b_Vz)cz4j%v z*S>`I+LzE?`x4q~UqZX>OZj zY?axbtwMXY3hmh{v}>#K^XTT%4OwN>ZOqnvB2&iAyFGZL>np*>rL_KFkQvsLJMO7m=$*`BRJd$tPg z*($VatMc>c=GvrL_G}f} zwN?3fbaQRh`SU2}+N$#%?eu$-Q=Za}tx7w^Dec&*^gN|Gw(4xhR;3+Vm3C}Z+OxHd zpGP;(*0%ZcDCgPQHs8}uzPWkj3GLY`v{#(ao~=U9Q<`V1%=T;*+Ot(?&sL#bTa}+j zH`i93KaX;*tvcV+PQGz_p42 zoj;FquB|%X(@w6Gc;yN0*($VGoY0=FLeEp0XRFNiY!%wGRcOyvp

*pGP;>R-HeO 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

X4^E#!z_~7lcAADPS30d<> zF+qF8Z1dkQ%|0`8^O@&M&z#{$i=64QsZ(dNSV+wv0;KWV$l{X2lW5CGQozLRCjP(S zAoynJ#opuhezL;}QsOaC5Cxh&XJ`^|fSo~TZ4tZI?V5q7YYP;*7$D%9VH?vot25Mw zeV<4UJ!-Gv(rYP5q-aLDB5x}bDh2A>^A78IY>TcS{M%s-YH7F(fO?nVa*aWfayFnd&Sdp*wAxaDh-<$nHhBP43DM zEFI0cgQawxfqb+Bh^VIRXnP7kEG#ofzi{r#Nv zPZpbqf>)YWbay)$M4iDl{ucMQ`0eQ8=z)WSsNL^=_|m1b(XhE4HTsRYMuIAnIezD! zBH{4yKDT|GuttrxQr+Vx_b2{SAmXBdN`B*~V{MMq^RbTPZ7N3jKMemh{%Gdv&>Cdn z<IZ&7p|4pk)PeYSUc=p+5J$m=w^q@9t65vDs$%x`}T>J zq@(x=93kWXMeu$5k<39dmfm+^%vl3VIVuB_x5m=@5#*TU%&!?tsZzd%lWeRs)=RPE z5mSg>Og)NO*VL9iPk`Rk-}o$gyx!sLeU9Hhh{(?-v z1T9S(yPGHC_Za_GP!1Q4v0qv0W_dv7p#KB#FDq^ zLGvdE`0PW8&gcC|peLk|i3c(i;daAc%)yDkDEZ6)a9{Hu{Rc)3J76LQKW<*yow~?J zr;@C%*VZ+ML~`}#mShAS0AzoUO`)xsC^92wO=2Jv)b7y|8w8rA>RP-}W1U9FhruyI zp1Bkb5;c0R9f;>_3PO>kS+5;8H9VXh11HmJ0-i=IIud;dBI<)g< z94eT*f&C$VxCae*Y!|()* zqBE_wN4aN9pGR9%Kg9X&zGv}i>lAbAO5Z@8Yf^KI`v)&ENk4_iy3*uX4}qGV*;P%7UG_MlQfvX^enw z^CM5geyqvsxfoz}!x<_lciawhrsUS2pOXedu_wuWp&aryvvS+;{2#!68SujV(vO&~ ze#M%(3W-4lxWirPv#%~KVO~+j(X?Ah-ZoZBtk(VKO8K{(J#h{+dvyABB3rTn&Pw-Nv-w#D>R}uKDtj#raePj+cf3ae-aj$-8%BfxLnL+z7A$wbdQwRtWW(uMnx=||x&aI35`IryopCL#GkCzE&% zRQeNhivY}odoF+9|A_C3;FG7Bz^`&lCZCnI@I1+NlIv@@zLx7fTqn35<9aWbPEf3_ zZmiqG&D!Sj;uQ{_yzax-)@xVSu}rhq^71;TJKnNqHfhyEw8ct&L#IBjS3YjvI1f&S zw)RX08?}vFYwiu}Q@z*LHnNYawfg4TT5a70DbtN&P;E_x5yz!jDt;}Gz5_^gl?`MT zTVRp8e4|`lwt&^j#$xRzn|!G@&zq}MY2jLUrK%MN2M#Az%U6JkjcAIi_w4Ix4Go7w zO0}*}E`!=e`dq)ZnH5BhIfMSzdc~*NsIF8N@n@0CdC9iCsibAl_}PLaE$|!7nZ9lmJ9i=J4hElzFG4~-Y73S{H#}2NN5qA{hJC}DsL`tuno^9 z&!G!uQ(TCKzZ`vLpGN7kI35QowN8{vAG8oIb)aeE0G`e#b*G~Q0|#CaK50qv-E&eI z)5a#>aRo-pciJ5MF1T3tj8S-aMsH3(+f>?FviGt!_Vn!oc(4P;DVt%3>J^oZLY|g> zBq4s!`r6NcF|cJYT4w%TDDVp`UfmYk%xi3DDU_P!fXtO@&Ja_1^&AybX7x)h_S(t? zJclbXnYfm?n2$4LF}$ffw$rf{h|?p@JA|JnGYjTZ1ft|bMmy#4x}}JP@85?19NZ%x zIAuqcWl%>1@TqiP5&NSNeW=CDffUkvq>P-a^*SO zgo{rmO|{K$RK9gjMWrWCzDHxiq(7rCY-IbK_~WPA81i&lvzDKBMES2hxe zqdq{)H;h=F``~~`vm1MO^RK@Q-!ts?Xts5FCrb*?0e>8 z;T~y9Pe#>xZSKVvU-+>6?yy#q;Aet!`0U>;p7!~-h4%@3yy15P&s=z_h@v0)JMT_( z{iR>{_j84^e(B#+dDH5(Hlf}>__x1$c*y7dbJTxQ`Sl~pSNNoF%5!<4x_BAg_t}fs zwqQvy$NF5)e5@RD-?OJWZT*T|2X&(18*|Ysjl&)m^lgrb@5NEMzEG`3mCc2ZtwmR_ zoWF4Hyk4%aM^~y>U&!d{eDq5D(|96jZ$}Gj=gz-yF528!ntL&e@IrLGR()}9GYdI) zF?yvn>~-;ovWd?V&SXi6G?(#*vfvMAkGYI5WufOTWX~6(tCiaN)oOWlZmk}zZJc}I zB9OiKp^H&rCGwTVr23TI>fPwNhI|2cpE1%Lnh{vPs4-k2-DMxTF!)?Vh0xd>0?NR9xu`f~uX z1y$s~$qxbrv-fO z;B%lmCnQkf9Pc$kph=-(gen~bd@}^i2|*(dGxot)$(kq=i6i%;b9SbE~aPgI_W2>l?x;Qq=r{X*9KR<7!|x@x~4*YC$_ z`n`Trzspzb_m+NF%KELX==bCHTz9{V3aMM14a?_NCF0N~0lw9WuOK)Gre{uEIdO{` z1l%d?x1P9sVwL)aFpKVo7=7QM-;Jgz#hFu9SKs%B z-ASqRy?ANe{kj3u@@nF-%t7)Tl$@tI_l`DGB-}{i@}hoeHT!j0@JOEgRyU$XZ#UkA zaSKA_*n+dlU!C4nw_RjHy|-uyS%xw)FeV&E=N{3LOrsw!yk>DFRpu!+A$6A+9a1UY zR=l?Ca{U-m>L?8~4&$p=ET1;g=Ya3|yxNwBcS!ONRI-racRM$~*GzOoTvKDcnp;QFb@ z{;S9G&bQK>emC`d<))=~X~B3WW|R%>BF+`)k}m}u1TK<~ zqjYDj1#_vuF=?+|w|16!!>Y9rVbzMhRDDhLxT*j|0R6tE-?eM{ty{=uUC%H-{oagP z{kTkZkaTMLU0AkX_iW*d_FP#|IJ9WL4u?Em1$+JY8U^;_l~?t;MYQK5C_)eIOim);Cq2CTEoDBHS-Dh3z!n_)DH?RrW6k3Z8{DjYiOBg zo|t{&8rIVJ)Jl2!iKQpHIc~DuX2YnZ5|5b#rMQ704LMl~UuJtx4KO}}!B^;^c}O|o zoR*ax9-cXjH*&`CQVknFk-4B2orL~yE-g)8l+W2T#8UY3kygvff{tN%h=(eVQQQ#) z-eSLLN_q_eq1S8=8Jad+E=sLjM#tstL-jp=SC^w5(Cy$JMR$d^7hiLdOg3UT{+C+1?4QpdK??o^W^;sczpe8Q@dQh|nz?N!oWr(r(mKE2_mpOxF`W9eq3v zNi5B$`TZ3xjYRE!T&+j!`Jzkk3rX9rBc}FHnfu&T-(t?;t$j~4@Tnwbf-PLk`V_Z* z{lmZhiRinc?%Bn&-xd9xv!6eED*Y}jtp56G`@YEcYsC0GF}`4Nlme;H!qMm?@m1G% z&RGlJiLN6hy&C=Vrvd~HQ_55I|56%$=T3axjqKle;>9r;@BJq(6=b|SjAxFP17Aam zOzV7SKfW%_lFD*)rg}O_<8`BkPeiBi446^FC;0A0Gld=!w;#n@*uGc>^CUGwnB<^RBvn6%= zG_Rn&PddpCo)M!v!NvwX{mmkT)8 z`?(Wmng73^r+MysJMrdKG~eRs{K6;qy76)*FZ|$p^L74X_V&~7{lWMC{CofCd!y)& zz4sS*%HH<|F-t;wcjM(7_#`lPv%eFsT#fe0nwhdN=_u%tN1{i5G5Q&!mT?*qeTC3R z9#L<*6Fu^Xyanrd|4zK(WVgIDUL1jf9G;Cr7p>lxPrN{__xD0;J^r3&-?Q`{hdl@1 z~C8Eg1(A|YgHxaM6w!U)WnG<=;tA2m>#Gg6g(mD>gZ!;+MNlC?hdSjs8 z&=(~=Db%G>=spsRlLE!B)B?<)_=Pt>6$#iN&LCddi1rWTm5d{PYufJwiSqj`X~?%e zb>^w3o|@g-c564GHpxpC7^v8=7~97j3s!}UVD)T8f!tFJ^S9-E^# z>AACI%Bf~wBLWLOq9z8L|BtHba79JCQv>!rj@s3-E%F4)tTRe`KV%bzQ~F{6!AOa zdW&N3hss(_V~N5FHuI14I>r@;s<5!rs1J7H{w&(UlF z<6^DY>+&rwQ!>wlaK>%Ft^$@S#ZeeqDr4AX1}sa<#Zk8^s@Er1MMBtmEuAioI?7*l z=4L%OV^#;%39TztR>2|no1Aqxx`CZ$X=?oo=~ZW-z+tM*76%Wy(4X1tQgvS+-0XIp zQS>vL@8A5V2n>91^XE4I8gH)QsVT5QQt*&!!LLTYn=1QP>7QXQN^OVO3njez6vvdzKuzm;2qRwRtr0n_hH6Bt-A{& z!Ch5{gl(bUQ=-4^*R>f=#0Y9u(UzMZ+w|+3KC{WSv#YBg-}E7TKD6nNH@Pt$MJ`Sh z)kEMT8eyjL2=>y;L;2++xEI7emtKD3;JzNGDv z{3VV3L~~y+vmbi=IW!9CY)sAYTkI=$#l|ZRFu(U*v4wZ|s?CZj)-Mz*gp)o_7RL^` zGP)hUoAZSGJJEl)T!&JK8a!>Y*mr1m&0sa#i_~lbSYu0|`SBEwxC4B%6xOWXm#2&H zKHTcp}o-}p?r4S9E9`kDYi)K;rlC;3#?Yhz4(#Vl4g+Qdy3-b>bHKn5!ZKeJgW3pU200M&JvRy zFfei%jO(SR88V*g7ff;%QhqfeT;Fspc=wEQcxG1nV}+}HUxc!*x3B8(E0=yV_WRBE=)E$=fNQaCC^^m1c*OPtnd@25Sin@1ex-sod5zv$wRy*#=&t)yBQj7yoh9&oNsS2$NLTe)lxzYp2(!}j}#{XS~HkJ<0z_WOkWK54&C@%xa$K4h>D zT_)IvE)(oSmkIWv%LMz-WrBU^GQmD{nP4BfOt23d?8658u)#iTun!yT!v_1X!9HxT z4;$>m2K$J?K4P$s80;ek`-s6lVz7@G>>~#Ih`~N$u#Xz-qXzq^!9HrRj~eWw2K%VN zK5DR!8tkJ6`|+M|n87|~u#Xw+V+Q+}!9HfNj~ndc2K%_dK5np&8|>o- z`?$eAZm^FV?BfReguy;xuumB569)T)!9HQIPZ;bI2K$7;K4Gv=8tjt>`=r4>X|PWk z?2`ujq`^LEuumH7lLq^g!9HcMPZ{h}2K$u3K4q{^8SGOA`;@^x1+04U(Wv&l>hZ^I zER>_Km-XewiR+7Q1gQV3_Xn6ZsKjSYw=tu99b(<#N%|@Ffv9(?jS+O&Xd6`A=P?1& z+>iS_?5G>#zM7G@i)UwaEB|&d#$=Jt{dTbqTt`^-d#^mMahhjN)$bWfvxhK2Imlap ztwY|D^4$sk?c7RL+$5&l?EyP=&7=VuqUUAL2>Qr;Ea=<}2G zb@@qRTAiPrc$x|sJ#-mm4IE$C6q zY(a6e1;x%56hB)KM7AK9Y(Y@jg5a_RLB457u=;iBICy;vgWkfSx3K6fJbDY0-omA~ zux;S&euYh6F6R!LzJ*P1VbfdK^cFU~g-vf^d+>;`=~vkF7B;be- zTiEm#wx0p3`xQ2Q37g)+rnjqIhfUwYrnj)^Eo^!V+x+dqre9&xTiEm#Hob*SZ{No8H2v zx3K9gYNo8H2vx3K9gYH z(HXs;CyaOH-Q}yz(}DGJDX+hL#RuVfX$}0@D}EEcm*OYsMXfafN63Gt~gG{mB!{`|WqX{T{I20e-Uvn>E<%m4eM)DcJ0l zg3Vqj*zA>p&0ZX0J!R8G%Z?JiT?KjwdgY7rieuM2d*nWfUH`soI?KjwdgWYei`we!#!R|NM{RX?= zVD}sBeuLd_u=@@6fWaOx*aHT8z+ev;>;Z#4V6X=a_JF}2FxUZu9WdAdgB>u~0fQYd z*a3qbFxUZu9RSw#-%0lB>Wz}Ia=qR8C&ykG1Fd_hdb)Zt_8&LxiKcmGcxHJ{@SNnC z&wfT?c1BKFHv;u6+5rE z%GQz>U2!8kHucVAe_nqrxvIrl68y7~TZ20MdZ6*6RF2y39rk++4BrIw9Pu>E zoBWdHZz;eUq*JRlB6}b30lf8%>%nnmtsm(MddSjlch!#=n|2lQIhGGT7`&L@KwaZ7F4f5^sOW zX_5si_#%3d&=>+8VN4s-h$)>O{k5v>p9*Lp3vr(vPyS zY^-2b8b`HAB^0zRMpFx>>bb3;ax&E-ld4YBKNoU=*&Eq2M~qtV*j{&LOR((4O7pvbMC+FV|x$t}&+XyG|; zhJ#)dXHPfc;c79517xW(XL?@y3%RjD1f|A`qxq5SXdz!58RpJ>swGAtBNTb3 z*R7??rCV;Ro|&iYC-=!|mxnX^P;FGZdvNIBMd&heAiF$BLO`Ke^)>bs)2r!c4e3Ob4&u|Owp+$lQWujjT}yP26qnh9(nPxt z?D`9_7b;5_XVk51S}vuuSE`_GI!fwgPC?X_dXfwZ!T96uViIR#47(pYRC5+f;;tWg z@1TKKdJ#MFS$cj!NLPg(Uy>#2j>CQZ6w9K7I5xlr&}K=Yq@t^35~{}(P~1hWYbaDR zR4L;dPXoS`aW}UqWCYoX3P0BkI?Y&^s(|cZ)XLOslkfA;6{)38bS7=+)qJbt(!ZTX zYiDV_ZdYAa#F4UhcS%os6HOcOiZYo)g^oVyw5y$Af)QSFFSA)?*}0pmZe*wr7Y6Rg zlBIYXk|Lw8x;$6IpJ@_O`r2w{8a2qypd(h8%E}`{fVw^|Yltp~ z%6zp8@Jwc=R$J`azP&!rcxT7*bO#sGxhcyC>zt|0&%M%|9fFnW4_VYar#cB$u)20; ztFGdZPC=VzS8`Nz!IG>>Wm$>ww9paHUD2^)w47>zyXNG?X)R^#DWU_qYB%6%tDpO+ z4W${LvpoOyrVXW=c|Vu;-}8L?M>mvyjkg|!%luDjCpRq|jaM%^^p5Ir?!{ocjrLIc-Lj~Y8`{V4-1es;~ArjXH)Y#H9tZI%c&hekfUkz9c2GuK&%`=;@abzCW7#+3#C&1XXt?(^`P>*6XHX*Cdw48g zXr=?ei0$+e6D}bd7W+x+E3;LhUZYC*-0mO#`y1*|b(ayQ^%X8CO!tcy0ba|s={egL z6$6EH-F2v{Sm3^{F0(0GL%u=^VSnIe7-J=v9(u3mz-HQnFZJg3M}9BVY)ceS+gs)L zxZT=_ZG`&5>r-KtG?f5SnPe4S&ujwTfu(FKtPdZ`$CS=Ro3R72Z3e%YU9TLj{h2l9 zY(8^^H_ugBO_e)*g!CKhSISZ-(79KwD#A@GsU8oSr=j1_YE!dYax0(EUZIZS3)kX4 zYbaNEhw_DaHHp~Q(3&@Nl_NhxdL7?JT!dV>`mRFVVNFBYP3a+1Rdd07QIohDWImdl zD>tz~(*i%r-n~)~Z3Nt|xZdeP;dr-#M;VDGp&0U_=Rd=s?su@r-@3mfyk{S!`%tp) zH(_N7z8T5dw4SZ$(v@KIM_f-Z&}Pc9B`Dw0$=NFm?_`ZPt(Ro^>iKg+yv0cI-65U7 z6n_(>Qi7;W1M4pI=!Em5nhb?eJplyjAmUd@;vA$n(I_xus28+#TQ^Gzn+u@KXXyd&d z$ZcZ}O{!FDm4MS!Cg-ITXQFtzgxwNdH07RZ*;M!#TH8I%XlSL-GjA9Y3b2GNNmrO? zqEA*|4=Z5+s{bK-<_G+VU04Y#t-dCPG+UGd|s=#%Eo*r@8RLF8h?3a;&zGD840aUS}l}9qfY(3NvizHXFPVY1v z#RU{@zpwM^;?1rM22N~*U;;cO8{X62K@T8PsV^6oIw5VNHX-2gg99>7-ZWGeDyMnl zVSuO8z7hS5?4UuB8>s4P+J$N5ff!cD(`YI!!R&%iH4o{(b}j``ZO-1kI;Me>yzL*W zsUWr$UH*In-WeOYxr(nE$a~rzyFnZFwD$bjEd{3nw+~bXpKh4 z`Ha)rMP0MX zF`h%smtgYb+xNK4g0+U?OknFuEi!+mTArKg*cbQ80rg5v0GS2!l&Q;uE!2VUIOr6c z$8;dPJe#B#a!P0f%NvJ^xkG(}14GQ7<4h}MjbA#`J!QsOX=(aYa`e_C5YjNRRS9Xd z<9*aa9mL~=ENPCiAz&50(P2~tuEuB9ml88fJ;BD1RT%sG&_dW)=Bdg0j*SVc9&R=( zl37oL`LfMS1~vA!9MxeP0-EH6s#=YYB%7A3!N0#S?BmhTZ7;~Jl`{*nOtnBmde!Q# zM<|_#zqX-t?Kd}+{*vb{|G=L8A2*bC;8**`hLXZt{h4V)4IofeySmB?%k#Dd)9mG{ z?OoO+FVrWC@eabFF%o{(RPj2k(C4;2G+?t7Y=4mn2|x_gDUdbc0-&YyjT_sT z;FffF#Ho$Wb67*@+zU|8P`!5W6YnlKu(fTx#fyDia!hC1{#j7+WFHcI$IhE?zPWQ_ zzj6Ra)Zt#Rm|BPh39ZlMIe!wQnT~k}!A@wS&f5pP-CA~5IstMA8p#jH{0bW?=5N?6 z^T^ayw`23I8Ut2j%qg>@O}C!U=Pb`m-eOuqi_rXCGI(7^#DQJf@)G7wbWqwhH@PRn zu2D1jj;L+N&YSMQ(kz-gZ-KEO7_om=0my2f0oe3iotcl^Ia#pGTIM9}OvY{eB8xK* zRkK|7(KrmNmZr;@q#xxkEzWQNN3v`FZT_F=EhNSZdGF-m`gpWgZ=Ne~-_Cn21V&#P z)6LlGfv-s|nGpifTPc2^R^a4NywLF#7nJQT?xGF)REjnO7|o}&XoHEl3bWGuT@c=N z`Kn^QL0ypN<^|?%dR<_daB0+Lsr|+B1XHW9tJw1#aNTW(z2`zAS^0g(h!aloOkIVg zlW&rGt2XjwHeTbIbOP1c>9S^xX3Ij1&cidJb$XXZK(^&cWdv7hX)qif9?69yd_BH3 zgW%U{xHvbf9l~F)bt7GE9gSOPodq<&)0`Mr7UkOn-1UXkg(EwHXT-M3{u(QfD~l#5 z@p?1{Gnpf^OSR?FoJl=|?W-8CkcP+4=-jk~2m^*i81a66$Yg@Kn#F2)c~Y!B6F-5s zCmxKmy@i1qG5bJcf&gp59EZ2#sAR>>IY|WQ0CjZB5%$Wke0f{o`B1>+x$-`|;72lp zSLVCyP*?WV;6P4PmX?+mkx|%VOAw7Awb)<|acyD3TJrRa2Wy8scZJ=yCo?+@@7?0t zwC8}V;-1Oxvw2>@Bi%y!yO`&q#QS@?ZtHq2ss+0C=@muS9NAd<;luT3acpC$@%a(_ zzQVJExQ$`q`;Q2J70>@}d?QCUmOf3o;d$#F8%x*Xcki9<3I4C+JGjsHEu7~Idp>Xl z(!12B`IUxpo)5mK3v(}NF7r5z)-Z3Q!tjBpFm^|j*8>|ZKXiMP%^i$-^XOL=qa^A@ zM=FOO)kW;pM(9q1ijM~SW#d3(N_1olJrYYM^VXrD{{Be(?2f5&c{0jLF(rh=#HUqr%Z4veFynvb+yPg~Pp3zK}x~_6-r{NCpb% z!q#h7gsS9$0;;(Sk;_>5?uogQlaA_`FD;#n?pm%$r~$bZ`-CHfGSv=dd-MpRrnltX z5N8w2{w|<2&u5kK8o^oYwEdhK*2 z5_`BzeJ(FWQxI8Eb@pzEI+m-btV~1;Y5}wcBaq3mKkHm`%!?h8`*b;hm@UouTumFn zx|9et#!y^K$~6_jaZ*RA=1N`#e5u?4L*C4ZSXZzNFOd%nE_8&9yJ~5OJ~6vAu{=LD zSH2s=?7`U~`O<}2v@H2nlpaH$Vf3)Wy3_O$e4`M-s$MDkR)EBuI}>Lm?sf*~l6R4v zI~}_Q)4m+_(XIJ|hcKGoUz82|M+nHVDa10TQ%%fRtln%N!UZgL zu=qKGA@VZ)h%EvVX0Xj^1R=%x&fs7cJ2fGmv^vuh;i|I61NStew5Mx`) z(2uKC7lp2$MPn$Zgia_muKY~EU$5x{m52+3~tEC(9gUBG>5l+#xrf%42=%A49Y} zA9eP5+fv{-aPaUkKmzY_yum=b<3H;VlkKo8Tv3IKjoy#v4rE8oI$t`1+bz1#>oe}% zjKCH(u6iqy_pYwv%gkj$)PCS#{%ElXl}|S-WDoh>+G-3jsCRgAvH)fKLe*8Pzcl}b zv)v$aFIjAO7}&2Cp=-Qj7J1EeljW&SI|{9KIsuH&eRX3gJYUECy1(04x|!z-xQ*!x zuBBz$!#n;i{NC_q`wN2SX6MLIw#%k$AUKc^yCD<+;<0CeEX1>Cz&Rv2EQD)M&92_;&a*hh+h(@g(U=|cfRypSkq#Sn;H;~L z!yV1E!}T!gh4rUegJN6S<|4XC;x@vx#PB$kpbflF-x&TZwk?3goYav(SABo3+0`2p zH(F79aP|y{Z8(&!_2W#262|-cR`A+qTX~Wt)QGJAHO_DK5a-h1uRoSIQ*~DQ@hawG{hVF-e z#vEdc&>+4T=mu95Ze55d?BYhMbF@v$IW1J?>0HitzEnMFp0?_mi~Ez;Zz`SLv8mLv zb5lv~_U-O1x1LgG`aAfC_q`o!hlhBr-hb`W`7!d)@AJ^vkca7Y^6=gZ%){T12fH9M zFPv0Y!-oUf znySkRx_P-ec{4^HGckXvXPGljDKB` zdEmjyG)GLs3siuzNG%Pbc{+#Qo&E5E2H>s~DOVeANnVWGgJyqv2|Fj4b&f3q_a=e~ zhUpo#)GT)@q2W3@FnCxA%uLKJc5syz3FKrrJ5<-04Xx;o(xSm?Y19}cDDeFv}%KwB0RI!K60s3{y&Lcrz3P%}78jcgt)e%@ZFgv_SU!P* z&QG{`I^h#(k*8H~$&7_D?K0yUq&}t_JF)tyHIC!dh3U?TUS6jrQ+I+@pq4{HPqlh_ z(w0j*t=3k#sACnIPi)4~VKzLKS(7|-=$eWnIC$SBbZL){!^EyeFWRJ1z0${3T z14lWAcas_2n!>CCRjlSDoUcE3nKdyXx~}a9M&QXdku?$hb0PG*jSt9moe>omYDEMr z+>G3iflvvd+y<8-oV{gkcq7<%I@Wgqcu5mFg6njIb0-fo=` z>S3ELR?vbQqe92d4zWf%ly4)>JXNNCr-hKYkgHveznCdt@Of|45M)!G4;qNC6=vO4 z!6tRo4%(e$!Dz5%;qaND97=N*r&$CL>}nZUnuGz;GSm%z3vO&B%Tc`mtCw0uC^TDx z17o3K0;40QaFTr9=D*H zrKGq6;1~6*yjA(Vo$-YP1z*h|T;8x042-ibshpys1{jUYT2m;cgOyoy9Jj`)IH**# z`Vg(&ET+RF3tDAPZZ-PdsjG6b*c8I$SM^ciMsA;BmzA2Orm=-zcByn$tC~|DbPDWF zahv7H;ZMS7zcCMVv)IC)##tb?EX3%P*o92sQp>l3Z)`8wlB~w*sjb~!rxkp%AL`6m z^W|D4RG!l?sy+2Z)qblMclDyYsULD>re%3X!J_(h_Tif4I@IwDcxtqwoA;Z=R9^dd zWLtB(X^IY4mT*}`ZQff$di8#gr<__})EgG8b=NL;jWQjDy{GX}-c{;WX=pAGq{@1Pm~-TQ zt^O~GhehH_T0(f;jMxmjYlmdt!`2}%vfMe>GCyNrUbY@prhXjsBr~CM>1L|6$Cuh- zj@Ytv-8>bSuf}mWPR^ES3pbwC6Px!gg^UqPb#$lIKVwkLQnhR(P(t_Uh6I&yVnYfMJB7M<0*SlcQoPH18Dy8bVc>ZqhW@@i7s)%|cy3?Z=goWIM#YSoJIP?)KEv?}CHFL;DSZHBh|= zCtIdj?SwIbLR5rwr;%+fmlinJ_0o}5juBCErw}I%0+StaV0gCfvnXw>)wxP7e8adv zHaUFh0&K*E3|$kJ!Z_h^x)|(O+X)m(kj5m>6{>+PZw4a5hHUYf0!+#!=^0s$&xIc&g6&tE#m6TS+cA0<}yRBgjokEai)AZynf}xSwlaISr9OD z`0BYbbO_J+EB;iHYe;xP9v^+;jFq~1tf`rfeLCctlMM7^v9yH#02Mw*M_PF>z3uo$j%7Ghmn>Bb&GjYVRB;? zhU(>-1|8hrEuCzEHPnHGbEvlET6CHdPUNJ~ZX`7x3}IPP;LEXYl?swEFlS>;f6ATrsx~96@Lp}>o@o2R>RsA*lKagW*#k7wKI$5mfubD8RySUx=%NI zM&H={T}(~WtMG)WU5chzNR4_*&+N@B)7F2NH!jxN8n+(qxbEa=dVgQa3c9+iPZXKO ztamusja3Z1di~e}xhiePze^X##Wc=f(>hOPFvhRh@?5Z6ygKd}Ui|tBN+8awe_4Tr0B9cfU{)MH&}$+>u9HSutBX}x{ z4d^P1mM3O$x}|d?R+Gw*VAiW%H@^tKt5=djE}f~)okyOt{wmiERduSlSacR|a^M4{ z?FFabQJHJq>l+Xx37WB~B*=Nvq&1z%qbA!OX(hW{$}M#iDU~ubwFgZdkEehVA1eDf zjGqKV+G)yjCuX>2#SW`De>^e|b{32No9Is1`PeEc=wmr2AAPLgF8O5+l@>~v);NYf zP~uOQxt1cbu1pWEt~! zCGhNAr9<=Dw()C4jYEB`ifdXyB*G$^l`iNMCbAo8KaEBe5p#kw6^=;$J7VKl6u9q0 za16!Ko8(;Lcyt2S1pL1$_p#de)ziUm!E#^MyV4glE;@QoW(Z6O=a`)Ux$__KNQI{t zPVz8)P%=nd_%+OvP4Ev$If~t!6meXsa8=;8w()(sz9m;-ADZmAcRL?S=q?C~TC=N| z(2!`kg1}Gf4-x+ceEtf)+kzmLrp8$|q2Y%30i6!+8-kPo*H}<7a%8rAdU(pnatPX- zG;17SrzM3}d6B+$Au5SMn-aC5G#RinOa}P`#SHuZ|Ng&T139~nDuopr2BJ*Xd?4^poY zj`WR3IT>UMt;Z$OO4Ei`!^O!ec$8ANXU*H^N4T4I8P!H(|0@ijdSG;v8h}#+ z4_EY!=h?uU^f&h1O@6d}B;r!*YsHOmK)qmjN6N_Q5GZJN&IVkr_r@^kbYt%{s*=`Q zXanOfi9U+c$+UC(k~Lepx|u607L(Fg8QC^15Vn!P` z^wl4W>a3vwNWhhuL(33hN2|c(fKlQxq$MM8H~NrNoYpAPRWi5FjcX`T*Nx5=$EI-+ zgg@@`zV_lPo$zVlYk2*2F-XdxiIPKgbvMR^%a`}trmt<=+$#l?_$Z8_0|dFev4JD` z?o8%D<@B}a-Y)A%4MmAdW$Es6+cnq4ILBg#fT9vrg<}ib;R_QKTNkOH_cM)rBf-Q6 z7B;OcYpMcg_!#d$Gz>Rg3Yf}nLh_n)Q%RVj4yrct$1HPmX8_XKO`%-Ni_srA?yerN z>Bk(WTkEyV033Ix&481hWWH^_jrB!1iYuu5W!L3&)?0C{V3zUJa?=Rw(zX)}i_Ev_ zG)H(*q602%?!22;d-G&Q_7gFgT;Qs_8MIUn40ac!6Fmj5%Tr>~XWDl{G_(%gwXJ?% zr8MExhOUlILYg&gi9oxL4kaw>>e^T}Gy92dIdF$#)T^%y9hy-<&5m(BoR%gC4pFVy zr3}igl4|fJ>5Z_(g}SJUtH!e8m!JjJj~zfHTwcAAKp-AXIYUUCi|sTEnr{*lHQ9jI zCPe{AN+k27jx78fn_y4C{F0fWtKjdRW1}T zNs$frsl9m}o~f4eVBtIs?z&A5_vNhjSs}$5U9vi|!kL`~)5F2JkC{!?2oqj81(IdFCRK;MI$JEl!EhYgwJen@JSfkYt#VsF zWF*}V+wI7dQ0ol!$W}C>hO=j8U+RKpb`{nRQ`J@^E#XuYf1+O0jocgy%|jz(AO`7r z0AdJ$IOn&PtG2Y553@HKakUvwMfAw{hL7imNJm52b$-YD8ZqtRG)1up`GL`iLx+d* zNert|tPwesQ&eN<_kO-mZ{&2UD0u-o4`WF8%b^9wV>=JlBa|N|wM0e-uAR?JV?b&; zQ{t3P$AA9tQmM&1PQkjWA8tAU3H5D9gjkI5J;KuAs#<3v7x2>P)}hZR23VQII76+K z*^$LructvQ6$7(w2tgsHV8whlWepP@agn#m!EmECa^h z(y1vYmuGBI0yTAIpY@uz{)WEIYw2E%dOdEFDEi&sM+#z z3`Xk_#~>ZSoUSroE-zmZPLZSN1HW*2>B@IsUW)wtWAD1WG>&^e&x-e(tmqCZ3TL?Q z=xlPPu*Jd@oLW=6oG!;Tq0+7Xb0=#yOg(Es8d~Wrjs}!67aGkx zVMCwf>OH5Hfo}C%YMZu;b$qrDQC=+_Pl`C(5^HmLtbSNS9Sx#2v;j&;O#sn$mT>ZC zYj-8;%;5cMQRJvN&eEihN&|&@wzx(pU}2SBYV>QU=oW9MIc|5fi(5*Pc$WP567FCp z?6k@7x*JRtB&e6{6d{V*rTd9mX@~c}jJ)q$)})SPpy;Bk0-*9z4!9c`*;H0OMlt9 z-|OG!-1VM!|N7;n*Zs!jrH`FM z+<@yvq#xW5e!#h33Lg3WXY%-3?+$U+dcT9T@8el3&d(wP|Tb#uUSnPTsSj(cs~tOc?Y`m0 zn{K}4)@*MM-G`~Epc9>JQ705eniZ%{=`0Y4A8I0SX2jD|yE2>#}IlHcmKaUo%V%rue z44XiMo^)7Zfx-@mSQH?)Q2QW-n&aMJA_vN5l2ROgBf`XJz`})XjbS8MYf{73v|Dxk z)T^Cx8fb0jfbkS>)>4}=w0ZdrM4&B2NotBOl9*|h5^?8rC|I$^neN@%QQ#E0gr2={ z=IwG>(7BBASKk&y@ES(kMxu2b-RqeGpVpLGj1yG~tkWslos+G`xIPwi=(s*%y5g36XxkHR%F8#e@Q62>c?H%%l(5;PwV;xGEs@?JV6 zv)i2Jc>a`Kqh=cutlvUpIaZht&^qp*9sGsRM@rvHi_TKq4Jjp(byi8s%WpFI(xl zUr=N0L$raxNgsBOZPIo8H2xw6rf41;V;Zk2T9jQ}3_>1V8PFrbf|T>(tTvVsXVC$) z7ounxZrbn&1-=>$7ZUN~>63s1Fof9lNU@z_E=TR@@w_b>KU6f$N4#^Rc`5zI#TD_f z(cz?QI-jAFYrd>mSacz@B&qVGqY2`Jrqt>hbX=%4oiCG&}A;#`1Td zeCnEP$)7V9z}Dp6m=^+g`#j^czk?dsBhRZhl_vpxPAE}hlcy| zb&pVTZYBv=|L_p{)&u6TfkTO?x$ICbKPYg^M}7=*VTIvQeH3NL%SRPh61N3Hn=$$U}5cS(PxIZ^GsPMuFH}CVK&U~yq z)Djr>MIk0R$!80PNAuwmz4H07`0EI2na74h808$Te_6A;79xA92TLnIc3^l6Fn!=( z|FG60<^3Vs@W@88^_1M9ZpO8Z(TL zq1<5a;jyt{btr3{*yFHunE11=cQ7}2P`Mq-jW&XKj{p+F6Cj5gLA*x*3E?paZPGtL zCs2yGL-uew5Vfwt`tsSn;AZS3qPi~^TcgSY;7q~*Fqn18Fp|dl2C{?0)}-QzW)ovF z{?e$iqz|By0-FQM#gV#GSPtcf4$C{ZM}|jSJ`_-(&*rRL`U=^~4~=n$Q1&^1Vrvz7yWs?&yZ-#^|Q#=IEB_R(3bXk-dfU%uZ+hzl&C$ zv2yXsB`cS%T(!8(EUX7mDj;M3xSkwGh(VLZA6J%o2g z-^1?gwbA#Yf$(*y(oUO3mJ{d%m_rs>`jHl~|0q2R*o;Ac#c8P5GtoWK_eI~o^7`lp zqBl@I7g+vijq;PrX6^I;rt-JV%Ls1UnW*h(N85Y{RB+pYuC_z&x2w&>wO^RoT$;XW z_4C44H23?)%Qu(Sdz#@3et!h~f8zPd%QlzZOd3l(yL?(*A#&gclsy9QNHB<+SQv&AK^K{^Fp2<^!3wE zo)x~szk|R0?#1t!;JY99{zJ|tNib&Mjy2ebNS5jVOA;@U%^3IU3gQ9k~(vx}(2vr@oJj1@t4M!~ODMLc>H7j*)T3^1%MX zh0&eK*uvWY>VY!t&z+mFM*JGsd5 zDmNsSN{dle*OtqZSpOQ!BxCoZ4%BXFy14E(FTA7ZAaY5>??rai?v%nnnwBk|z*&+t zh+YmN{cQnVMUQ%yOp&h6Bcm)foaW(qap)3_#WE1l;iYLwRt#((7O!Ix!7tJ(=niuk z7ME*iMCP1_>Cnfz7x~DUc#ck%_@GvDRQlGW=hgs}kpXqexVQ{EBgQO01Sri@iF-~a z`gEvxQF&XFzFQ-j&E%J`upxULVcU-8I<6m>lx{f7kT$J zyszhZG5%-q--BB^INyl7fcqu5--3G%_e*iV6Za3{mX6N%;C?4=>FWFy-2c_PKg#<) z9_jD=5dMFT`xUr9j{EDlGq@kX{cqlV#S;19!8`RA%Ql%x4$019Kel2g3ouFZQA!{T z$o1?SI0mc4cy&rpSNvjfJ+Q6zdKN6gbEwr`LU}a&f6lwHvPGzqPTL(Z>IpS||x# zlv68i)3DJ&yjo-dnBsVpqb;}v;t44*> zvlwi20(}r0vlvyJ4mi&$*9+#FCe_ul9bH1N6wvFyAbtW6glyxWqeO%SZ`bkL9e{(d)88U+*+r@uwrFQZEm?^+N zRhh$>qvnADO#X34c=62j*e#I6n8dQ8nfZAH@)n&UG%sctRk3@-EY8CU!ik3qWw>c+ zfG8|a*y-);ly2(z16^KuU)^o z@0SP&TGq*ePJ)iHx0go133kpC?5jD=XU8thd+rvXtVYT@K#o1TEG`D$B!q71s*Y8S zE?w^V*6UZvSd7kS;>%~gJpE;zG%3AlRl%Bhx7`9%V(a|Z+qPB8;*?b38At=?A}OnE zvzBgM!c!NM(;3z+C9+zt)5^C89vWmlA1~-W~JwC)vrS zjH2O04C{E@$+PFME+AtL4_QK zZ@HPDAx1pC<>RqWkR3l2gvKx;tbSjJDq$vIb+jU$-n|xe8>7bBq76%280j+-(y3lB?}-_-(3vO0cN@!^ zZd)k-nz3A+Gpr#Xb%{eS7DM_#rpmare&DdP#LL5r2w>4_fnAx+9VIfmz{ZkG?`%xf z`%;1NyyEaUIN`Aij(b^v&8DPz(2kjfS@vt{=!oYx&RYIJVJ*77U@__fxlH(zr+oedP5ZZ1k83+m<(nKl7jTiCTr%RH zDkLpyu+@MpKTAuHi&TmFB}gTsL1S9{CSGb9AB$?XSd!wbRHwY43^nEbr{H^F4u>)8 zsDf(kr5c4)-f+D#1o%u3TDt zg<@O8j}$->4XTa!;)d}KpFajs)BNF& z0hyMibNzG5sjh8`0Q??WDJ|MW*se23FXLoRSfNbHX{o71IoB#fy??PHCFQsHbOLWq zn$F}*C)i(XU#>0%q0`u{0MlfoOft{AtvdJPx1TC4ZD)Glt|@?lJHL2c1_thOO(WcA z*nIsh1G%-zC(E){_Bq~q#xpMF?-KuaX~W-T>-;_Q0{@=%|L~u$@I^17>Y7ZW!PlC? z*@3MNPxPu&Vqqg)=`Jffg8Ez=z~h(lAT$nRywTq3^0CujzlJDph@&jV@Qh@Gx3`1$ z&KSNSO6*@=6;L0g!asjBzFij4OIsv4Xq5_n^K(5?$LmEY~GBtJ64K69giwPwn@=X;dBGikV zatW?s=}yD0gCz+MsZ#Y)up#9-bfQ1e->i0>QJ*kd36l@;y;Kz-U)_*Gey}L|{ccoU zb4>?x+Ori`MYhmrS7Y-6@l*4G;C)ze$>H@YlhY}Zikzw$_YpUa2yQyaRJsWolUs#B z>AQ_d8ZgnMtfA0R3q|}QX@&(q6yJUqBu7a;y>khxt zSO53g&lAZe8l+{Q>wjj&eO2cROY_<_sPx?$o-Tj9vab#9#y>+PEYI=2hr%atxN6eX zKfh4eRdPxG$2uRZ*$v>1V^%l^}T0XX)BYr0cTd2zNIi1mfrbT&*#?Y=(jAsPniI{KVn=NUB8X z4<)vmxWLyNg5)xZOyoJu(Wm?XG()trFn=am6LvnC0B>8)rw`7#pYDgoLg@3Qg;^|G z&!V#uf~b{I!9)>5`fjV`GGK#F`(u@?KEpMw>KI-HSO+{_U*Ls?<;D3iFUrrgwPQyl zJ4DlzT_Myy+@=)+gZU2^9FX)S1c%h^fzn8akb}sM9WM9{66WI)`u=^IaU5sl0ai*8 z#!%6?uHhVO;a%B)gLy045VZ=LkQWlkgemU&Ov*l(iUr4Mx2sX>Zv42Sh!Yk2 zuTeFYm-FQ1vk(|7Kk#M?rcg1#gq2lWr^unNQf?+?kFC)sW>n=0-ZA4-`_j1Kd$F1a6R(VtIv(&2;Lz% zfQ#OGb*a_6G5*v2*7^D~z~2bxrw1l9X5sT#pw$sBWdE)5Mz5#rdh?_AKOp>I-v~ZP zCSq~(6|P=f6bn=M2R2`9;nAimOm-r=y!rb|!VMokdVlx3-+hDL;oT-=K+A0hn=z~_>$5I?*_`r#e*I6Uziq{17X z5HF+`@Nl$dab#dsal?0LPsPLA{uCbIGPv#Aza!dR-yxlVFMKz?6*mbVf0KauC*DN0 zKlzJU)fnFD+d-|4AN(8N&G5)?E&o>GlAlpnD0is0R`Ks(&?MsrxbP0}7y1tPlJ9s@ zMQBZvikndzYp4FLMTd9`94vZ0i?_8+?u$-hs?~pQXaBeTF`$Ah%dD zTQXCNMLU>45mpuL#zk&{aXz|Z%a%-Z`nZG9MbF5ciRs+H*x`oO0^G$ja4Lq5Jv=5Z zr3DKlVSA3|86;zLSq)7>(Fh_fZOb^gW@bAiaE!8vW}CERN~a1YT9)-EQt`piQ9T9Q2WsQFDttKe(h3M7j=c5+f$_^Edv*`1)|mP z34N*ru17yu{(YsTQv`T@@>vbZF$2pxm8$~HPGL_A?mTJ~W7kCNnu}dWkQg-v`4L@a z5wJVin1EE2T`ekfwS<@P2zFzlun*4c}jIUoeb;Vw)L^ncAM@dDjBhMcS zjqZXicWx9VV^l}ULfBPO-hce=Ovn1FT4L+!EM2*Cz@F5 z&UI$mBZi^JxhxE^5 zmBnSIC_4?(u24h)#uUxQZoHmhY9t&aj?JN>0s%PI)@EhGR?mV={x( zC=9fl4H7AIx+jw`F1v>`Gg$lkLc39DEKJm(*J*=Twis-=#`Ig^S~{&3SQFVfjJ09hv@Lo0 zqSHQT!fUpAxf-+?g!uy*N!W4plrkpItcDUH@@JEvKCC^K_!AfN*g8H{s@95DQdpb_ z(!(%}dx*#&Kj(LKL18d!TII@0kXs6_bIe$NZ4+fbNhKcy3?fC(E9JX32}CmILSIpW z=6@~oZ>#+3%s1wyIXov`wIpmKR6Q@v;U&*7sYXm9frz!OODyaltS#V|&NM=|$U<}Y za|EuZpJ?P{KQJzM^VW8aZ95qM6HY{vt?xuq);NG_o_}{dk;qhw(zmKVPs$~0zXgWo z>D%B)B=1X@ESbmW4wk|YX)=d;rhJTyDAqb2Uj08AR_{5hI?Jl4zLOZH#z01}8vz8Y zwLwmlKP=Q=)whPdW z{Fm|m!f@D!XdH_lCqh!=mS0VH*^a2CQDU&24d}J%hlq%?!6*0}J*X z_&4R@YWNeQLNNeFO68G*nCcS%*jb1d0>}YbXdo zf#h)&)GYrt{+XqZbNcPds#FydqQRS0wc@!>zG@bqJbhqxdZte|lZa-Q-6l^DR!%2; zqFMz#!}UvsX?6%DIgc}5%cR&BHgNO>yAehzY75$4J*i8Wp5f{%qcSy#{x_m9u!zQ{ z?4)+&*JscrmOEG|j^syW!U`|)!>B>guoZ_G&KP3-+uB*IgE)pMTlQaTUEp2x*^LdT~|pZXbt>apQ@M@|PTgiAl!I-Sr&a z!yOO8DU26kp2 zw+|=9Txx_F=5joDx)bMPjuAUqHXWs0o}V(FR3n^EE7y>g-R<3{%b(|*mZaw5Wa@>( z<>;NjZO%Y;I949>SYDk6*~!l8TnXtR%w1rimFriqec(sTO^O|EN13SafW2-@k%6UX zsyM1!zcOv;*fi>tOXAJ~3(ARfIkiK~;0_Kr;Y);+ojQ+B+p#E?Oc?8IDO~(@hSCU7 z{Y%S$m`#CmZ0Bi7s?5~%Ba8{zqS??=)xiS^I{Pgfm4;BcTzCTq#E@D7MA!`?f|8@; zzBoQ6A>Qnxl$6?*31i)2wxh*X6|Qb5AI@~c%|lKtD-*Ms1){sP&eIz#p=0iq(?sX|b!L(*wUgEtOAkIo#a}YOHBZKB$#N zb96X9iA-r#{jPE9=B~EWW~x$sviY6p7V+bR7=3Pv0DcrsscsdwfI;u9R4>r)7Tf^^ z9w;NyCC+Gnxi;=}JjeI7+x?yQ^Ptz3XVK*#dJWBjqkY4NP*S(o+|pmS*ITHLV&h7S zr!|Wm7)G}pe|qa6CJanF_+dg@U~^qrkVYhB*zWCTEN;7L1>at-O>CF!!D*_5Ng^Ew z4}TLkvwa2=7~7Sz$T^9Lipt?3e2(NtQJn5*LYuvuZ6vZ#S~g`&%npf!n&}R3sslz= zE325+oqElPt#D2+RZuvEX1E1ze@k23X?`O$jcFrDh%)h#F=u8(7#`$NHXTt#}u5TC)!Z z2;q<~b6`=%YF6aCwYo(7mzb(DftF(aU>ijDC_2qpx?r9r@9K98TEk--ovXD{4%M#y zalA4)Tjn;Z>rgS#Wcg=`F=U3!4$13YiMrT*NT_&$rfhbOMACXN&> zK)B?JwD?LSD43kH8#64s9H}mfEVr}FWCY35Is<%CgHIXQxs1b{>8~smKsHx)y&%)> zE|pVV2xl0=c)q(nbGl<+_)4Xu(^^Xr{o3_g%%Lbw{#sPT4USv}xuZjYTb96A+*AQ1 z^(OiStzUkQ%-nk8_FHe+eu&dhF2Adnd(}o|D9)iV^cK>VN*IbmQ=yC}pVWu^Smy4nF5-HL{V=ZwS`4L;+Wi}HykCx{lgp4S{jUy zPqJZ{FP*3?b!B$$*m3i!pxFfl-P-7n*xtkpAgcnTDZ)sO3SxmbHiG$;oB66Mv+I^* zC^H64t$HSC=Pf&vVd#YqdEBwe-(_&u?o`&D*>0xZTB%7cO!jYfYL=-}6DjGYlAD+G zgzutDD5%(-Ow;Gnbzrmy>82Ovij1^6v z?$hOqvFf3WW&6b3EEJJwt@bUF-BE((z`D$~%=dqPrak!TEl=gycu;IZF)dRLMgz1d z_D$<>Q#Xb@j$qT8Td*W}qx9=xbIf`5hcv+D;uN`2Yzjp7?oAZ_@X)~_^iwN~>%<&B zcn*;c4`q)a1iXH_PYYX|GY;81N~aJJFatYw_fJy0s>?Xeg_g5k1fzXWObLUfUO919 z`~C#u!PXcp%`)I}8vUV~JUAr5V79dLNFP_6yRbxQ@4FCfX-9;b-XJ-z&||hmb-&y8 zW_*8%OqB@b^vPo9SMnI{3YqOa$SCS@WJ#0`;OAk^PmIfgPmpO7KL*R)%j$pu7i89% z3&FHhUL;wcBMFMM%n(OqWo8SEx+5;uG*jqH@%^2FA`v(pG`R$nO{zOC-GZY~X?r(7 zJV2fQ)Cg+21?%uynuS9ssSB0CYT^P*KzoFqjNkF%;t$sGar-l^Q;o@ z1%EH;5tFcf1Zx|t&9j{!xVvR>$KtY-9~bLxuZ@4;>WsT@HY>sa!Gvk}S`R}bZ2B8! zu_nWSOuXg#%&WVBBFrHd>-zzX-{fC7zjYLR12&xrw#P%iI9EEu!NKuTH9>PWX2A8# zB5a=ES~riaGe<_#_@xgNo|2eA@RC!xO#}rCjK1*pYUEplI&kfq#>6hC$V@K|2&qT` zT=-mlV{=P!Muu?Db1kdatrQxYcD^lKGcQVpZ4t&?kp?iW$&q=Be`YGe>i%PpBW(3G z#lZ}cQ&fZu3Y)>!@yO>dzqG{Q7Q56~k7%z_4EQ!~dV;s6OAihU}n?-rToL;{Xv^AS>-sF)r^y=Bcn@0sw%qXa8k)vdR} ze||Z7<85EN`3Jsz>;L%o-p+4y|LMa6cfELNXSd=s`y2j5>C)+6{qNl`?&ur)w=MtJ z{d151;O940zwN)D>i)a(_N{Mt^*y&e^Vsuuzv{g|c-tpGy>ibRpSkG2fBH5D_f&{~ zUq~NK$x5>)itguq_P*zQY3tv2{n}f)zqR?)H3z@%zjoig_jC77ZT?{QLT2y}K9m1w z_ji9ddh0a<4|H!ntiQkL-adEY`o536=e~D-=Wj+k{^r-Z=igcTjfX$*;qJR$_{x9( z!@GW``}e=~_IJGF9e>h&%f!Fz`_i)qy1)1B-`D-6Xa7m}?9IQrb7srd-5+`O^LNi| zdC%?#@#DEq^^nZdU(NpLZAZU!aPN&L-?(?7^W%Hl2A;d`SKj~reOuo1f=`}&XkqVv z`tf(|z2(h+zxOkLHn@)s&4TJ&f96(2`@c|rKF`Wa>A7^Q{BrN34&K0^w0~6 z{QqkAv;XPdEB@);$GdO%<6Uik^V8qBZ{fk;nt$-Op6dQ6zw;0NW%mc3+}J(x%-`&O z=*>6W_uy}Rrkil^MQ1}jyK*s4yKWJ^{>hL1$ItHmu^z6NTAK1#cK_!WKGYlh>UmL~ z&-U;Lr`~t+mO{t-c$8Q9g)ou2x4N)onUZcoUAsrW`oieBfB8>Oe(Gy8Q?LB#_nht? zzUr?Yy#2a&bwBT8SI@rwGhgVQdGPr^^znuJyECQt^yYs4bDz5MC0B3#lhHg>T zeS6y#|5x3IKK#~Si+<`$-M1`1@u}ZFI??^I7u+~L z_LFbyzWTr4e)55T`N{5A+&J;g*S+fg?qB}LcYpEN#D}_fSHAVumDhZ=`;~wHuP>h3 z_lfQ={PN59Z8~yC_pt}w`G?=W_m%fQ{Q0kqmq*8XKJ+Vp_N`;jo9>y~+WsRS9GvX= zsbBi^*Ea4L?s?TWKajoTu18@2vgn!{7e(``-4N z18@HJ{+IMz|LX_-^_SYer|0<>FOF~d+&w)r?f<;xs#pI=&s{J1iNDyq?fZJReDlQU zd%m&f zZ$Eq0!@tyX;+i+jeDu5T>v{3*?|SjKp7HjcjqiTx)?YtX>v_xVFMHKb9@$5lSE|0V zv(`>4a;qOi?)(03>gGOutGz#X>J{ zy7AT*{@{D}OkDS)dq4Y$PYb^L{--v7;={K;XYT`7|NY*ve}B)uXT9}P`!1dN!oENJ z%uDwC(w%*`J#V3S+cS4xwC|fQdE4F}9pBi!^N}y^4Q=rQ&wSbMzWQzN>HX$AZ^^x> zyfrs|_Dt{AmGw`wtKhS_Oov|{mJj|{(R3X@?Y%T^n-ty`;$Ai^i>XgF*otP z4Y|+W_^vGJ_bfl~(C=+}<=MXMKImj*h>$a^T1B zkD`pFOFWx3&ffLGcpU!bLx282fD7aK=p#=)@QQ{1auM41ZT>!W+nF1`ed|B%_3uxT zl|Hy%|JxHUx|!#rgj-sB z-v8U(_}}-5e;NPC*bn^JO`lnO?=2T?{#@68c;mD7Hpi#A&gQ##Jre#YB#6No>FuUa zn{NiEOYjcy5A##gZvax^iSL;+ixq8*L%4k>!j-1`TZ!{k|2Egz?-HWFGdrRa;2B<{kxv+kpB+xj!t41B)( zlK=6utk+-cew!iqI(W4v+TWk?tF=Wq)z7T|{mT2VvowD8jW60a{JE?5we9ZOx9!an z``QNHy6-c8_Ghfs*BOpL=QtYY?0wPee(3kN=fVWE_W0?`G!S1 zo?=Pn-m#fEr6fN7``N=&WcI|ieX_PY(9R0)Uh`ef?>reelb(vmoTs!>5 zeMGQwCDxxFL4|Q2#(Nm&VSI=AAj|_{`~#}-u0O{7*~EB%zt$s-eXTn^8uuFW8t)qG zngcZcHTDIZ?q3`35B}U{?B9Ntts9+TA zEh}OLM8)1>_pGSrsdsutJ-eRRJH+14*t=ryC+FE4|L;q7WsO0>EC2ibfB)!*H}mGr zyxG~=+1cGm7F8dWTD9xXm8+Ie2fQisN{Rg3;PZ~$n=-|?f!#_YT$bDR&K2>>oNwJ~ z(AD7Dgt?+Y70uGKkz*eSV&Lpj(6a&fXC*avYF7X%|u z2)D9UDDs7JhxgS*-Z1V#i+ac(&W(JvfQ3XRu(y?6*zx8S+2vZ#Sci)`<~Mr=3rr4X zF^%7|ZC6&XP5fTwn^2yehzMfgHt8(i{pzgbwBzhSsrRh%nv(2pz!LV%a|8?7R-Mhc zH;S#VfEQK`ZO_h3^X%<{LIz~W2C zvtvVRvwVjuvbv2nv7b6AncMyLY-`0n?AC+*%zx1D?1fKWHm%8c_NM!NR(ef)X4`fW zQ&=@)gWlF<87sOo`SxS1_R}BOjb)`+JANv&EpeNTo*m1y&h6PGt_#zg%VZUMM=%>3 zcXp_m3p=>9Hydf?(otTXb!!FWaco3zh` z{cf;NL)?(QGhFWa!^lCne$q66PV%8+kFitU<5KUvUbsXG4ltyTd;-mhtX zqtyO@)BH~4ucBQ1k|uz|mEnf`dxiXPOyeHLJ9hYc4q=W(y+OEeAbV6J5c)vo-XV}h z4GLtw;{#z6$l5GK+Uh_ybUV@y1~Tnw*jx`}yMBY+n?Ux&Dv0^!4`L%_K`1APIhP7z zZOR3)MU{h4W)Q1gJBSVS3u60&f>3_Y0#xA@7zt=z6bV8Ay_<>dh`a?AL33~%JOj1B zWuOBW0i8c*fZ2df1i>H~1cLXVF`#=>E5H@74eSLxpuvVtjO5!F1c3-}0;B^Q5Duz? z`yd~ndQ1Z)0hM10JP_h*AgSI<0Co<$3q}A>Ky{~b$Ukl4C~yzV0dy5n0jvk@!B9Z; zM~7ik!5JY;?Gz=1pF&bzDu?n+06PG+XC+Vvlm;)sOppm^`>nw&K=0Ig3~B%eK>2C1 zLBC5B4=685S`b3@IRFfgJn* zsNHCrXumB3HvqLU^@n!gHYfq8{8&K!YBZoaI0G%{0ysc*$pq(s21J0~fVSBk*a)~l zQe6)LN?!^N0yVe}sLnbt5m4PVI4*-jJiQpOT{yb>s8?l`P%EKNV~E#upHv=J!9W># zHf+`NBzyP4Po~$xb(t4$x6v2pOln%>F^&-@4_2>HtH#-yB_4a%wkW9b!L^$o&4-LO z_$!QCS?4!Wr5k)2&u_;0fiO=j-VZp@f2BSyZ0z(U?e4|3TJ#hv{?XnzR8+8m-q? zmg{2f78_*gkf?imDB@^Bw}m?Yjz?05hcnG5#*fUn8MdbAvK{;0{BWE6r*$vzDsiDqH?qi( zRy7`|bTLPQIcCy-g?EbX1$}_drwQlllMb5RT!X+ktI2Zr4Xu#}_%GW>kxR=e*O@|M`hW zDo^oW@82+`*KzWH(tpO5l;%aad*jCDpLRpd4c~KM?yCaH+~OPiqV5%$_lf^tmv(Q~ zt%>G-)s?xRt)u1QziBz>MCTJ+uX5=#Z)|wLX`=_0E;{uZmv7(2)aLg;?Y|=qU+HFb zv}Qn%?W97#!T+;4&iq?le(v%wZr{&p6v~x;*Y5homa$xVnb*SypY8aG|HZ*K(#rDn zxOI`yV@A4-;bPuK+-#7slB?8h|JgXdEu3ymqw~v`F68W=mXtqO(m`js{TI8xh_2&4 zDxg-txPZN>Yn5~QRlGCvWv230k5|jn-c{r3UwTt{@^U4&zQORGYdFOx{vQq0z4*Ru z0LL{resk*SM6PVwy0W32#&gcQ+RPa|a{?FZ#0o{t=*GEMUiY$FfD8N^#;Jh#AA?k9 z3tm@djhBY|Y3x_!ncjC!d!!cgQ5878CN<#RzTz7f-L9lG3=f%8lvCO!J>72W9I)*4 zs9&S&%nx{avH9f_i@#C+yz9V-yKkpptkMW$GTpntyhxZ=mewDhedgv`<$-m|uKqXo z?l`p~vQBf>G+4FMTUGjb?<|LV zK@WcH5qfdPH(`TqZ-#BP^9>unx8ADE%qcs@l^CrX)N<^uALlOGJ-}<#ZreP)gPgjI z4B2ybYv_U4!gYUB7Y;39TVu^;*v@b(u4}S&^-jmeU3SIJc(e1nIQyVOJJ$#I_LvcJ zJ9A>l=I`8sH_b|2=lEvIjw5Tfq|IyoR9Cx*$IgOJBXw@O*92zNvJI~3H#WFXi zMt2J|*7tk=>Gk~ri*>gPITV+_uJ(Ib*z$elf_FK-3!PrmuHLC{Lc&{mM1*&Ju;jpi zhx6SsGiUgZ*|C*NE}1v@XlG4GgS3|++DVIo@?N$G{Vrg7-BPRDhV2|zAS|`XlD#Fm zeD9tJ`x|+iaeD_>3A*}gmEfD(Dg+nK7aUYF&ON04h|Zy%ZyXG59$G52rP5{h#c#{h zs`7k>f7+f*<-13n1A9il3!G>@B5?D=CxKH|jtQ<@Gb-fPwl*QNmPZG-_+yz)>_6KQ zWQJ#Rh^P9k{%Os)$t{@l^#3Kd-QY_@@0K~eM{%39m-#a z4fC8kunL#FsCw)v-2m=L%|#1`g#N-^9#L`k!279ORt{rmWnAp!&`E8$MinEzzchL! zH*DM9nPcp(bK8ncSzGPY3(n1MU{?p1E1%>O%NcU$+J(+GtNer6&grw>Y)t!p}6(7k1Ndn+gowwt2MXlXCoHRxiE3FoLt_Y*V84o5|dpjW*3g?ycus zwk_J6@^dQJxLpq`g=Xd_`9%Mhe_FMq%-hNVgN~PJ{S5xcuWEO9dtZC5^6|xU>rDyd zyoy$f7`?k0cPn7&A!jCV zQIDz*j(^hflYFB8ry)(BpSm|VU}V9*sX_3s`(?_jO;0Sjj>~!u^BP=bq@-S=6)DFIV7^na&B>Ssl{7YY~UJPJymev_PJbX_xzO;Z>vAaf1<*^ zkP5$#O_in8n>smQYubg#ZCyv@vC$1n?y~dxG7sJI`m!qvD~IZuBpmap-QM$){Fxnp z=|6s)Kex5yh>Kn3_26D;!+*72IhL!eJ5|rM#8~dsxd6X*Lu0t^cT3zEbH)kz>HMTK zbADomvHrZ>p}Mb^cMIt9ec`S9_GSd|)xu`YE7%-q8oFL!=Z0=McC5+@|7w{-4vt&t z88B;<(&J^?x`2+)k8Ww!zLGL(XpE!X-05VWM)tz_DQ&a$)MjjD|J2Ew7f-QT@iM^v zSxCKGP1`GvSF7B2|H);_@!S2JI~6^stkUn$1s~N~|1m!-Ze1$PH(>F^$ZuQeHU@O; z=Nk9z#45^+Wf97PvEM1h^B(!YRh<9*Q&E8nZGH`YRJB*=nWz_`)wdbnsAn5l zSf}}^VH1{S)Kz+P!C3#;zg)_B?$F$GL7Tc*gzR(66VkMFe9)Tn{X)vsUlKaT^;xLK zVtYuzYmMAj!1m6DL0ss-0zp+uZVVdi7Zemx#V%+Tzcl#9#StNo*0l?Xn|>^4Y2+P` z!ml6u>t+<;wqFYl44gD6Frw80?%|LXfwRAR9kjo0m*BIl9|R?zwieD$Cw5G#He%<< z+x~leEBfpkS=)cVS8SQ!A`_m5p4o0$Z_e5p;oqf}4X<~2%7L2SD%baUdVEK@@(Nwy zMss(Tj;OqA?W^TGqeC7BhP@daTwU!SQsumN$de}}g1y%Nq!agV*7<`ePc(1pQM>vW zuXk~qaSKD^KeSm(x4Ioyx$nxH>$&lDkWb6IbNq1bNV8J!U01TjUau;vU;Fy~6zT82 zyI#Pt;nUn6ygcoG%5tM;gO1TY-6}04+YkF!oabOCkPa}8zAGzU-woOQo$IRbwb7>O z^qljRrHd-*TN$4S;y@Qr0t8N!@y-GTAc@Npj0iqH+}{<-<)Ckger@m%9eew-)g*qx zWu-E;Sb&eps!v zdrSGp1+F$!o^`&rF0*=q^5LueGw*borp&i@-=vB+cPUHH9RKs7{i^Lj<9Bc0QY=jw zdauakhiOdd^Q24fjTPD{`PtKlmaO-q^2L)|sdKjNQnsAu)M(22Q_B9f*K1E0by#^I zWyp=rd)6tr;p-N?*m@H1ZDYr7SDf)JgQWUx*yUv{IRmfj$+5# zguPH^wq+B(;chDVWBTUXT6I&78yt0}=`UNAt5vF-Z|2@rJ}X-FXV<(I+#G(#uCt4* zxF)YB1|=oF4v4rVd-U*0HDz064~Or@M=9?+|v1FC*Sw|de-sxn(pUUrbs}OlDFND z9)0QGIn&yEz31<~H@ORbw=cN_3_P+ppjG)c0m^be`R_RUtoE7T8u&)1&GJjIR|M?U zdn@a>t^H^p-raM0>k0qXzHMwu`o1fm@-^O*SngkH*crMWNLw)Sq*v#eoqgs<&+#2< z`J|3T#<%``s`+_`j=Jt$YooRAz6Ad|F0+^Vbt=9npq*c9zy5u?1*~l_P$m!h`7NBSHHQT05PQ^-kW?W(^!{PDh}f1z6yTm~J! zh`MGyx6#Od2)I}=+VgztD^xdp6u1v%kh}30?Q6J2XwVq{7}k#<_>#&od~Ec`f*-uY z4@qZzIIGRqk!~1cKCBy{dp2Yea<%PCyI-PVZ@kVjbYrX&Ly{p~xUZCkINiczk0V3t zR~mXq8GG^I^!j6tDlGy_EmJ2QS4LEr(wNqlWv=K!3#^n@9`w0^GB~c0cVFc*i`LHR zH3CxKS@~YdxBoX`oyAN)@p-DamQH*==o7cJ0N+NQ`gQlMXj^rL`d>PB+>`3fbS{W% zjMoO(_QXXGajR03N^8@QsziIFA>JV9_o#rTHRA%T7fuMkTCsp1W*0*~j0M;R?e4j? zXUD;^97jq%NN3r5!iaS!ogb1$?%sMpS;swVIhrSS&d{3!iS)7u_&r(sE)95(YTmVSY}{ceL(A4u;_)B zt6(h)twO;P6~o$-PDX(SJ+nr}k4u&Do*-k3j2{h{PR8rEflV?#7U&S4u^svy7=t&% zHciHBx5{{Kql`bd0d~;G0y*;DLV642wI+~v5p2}(;fefO<>B~g|#KaXgvwW2Y_(~A4^~b@&I~PV&;SA z(60=(ZXroD25M&2eM$E=)QykyuS4;XB{Fc|gmH4$f!-7^JK_e$Og!KDqbtT#jR!c4 zDCMQ=QPgRw%U3kQ!FU#1T(v0oHQn7&^b`*OE@>0FP&2t=EU7Msk$*`aXpr(g=O%@i~s7Y9OU?fvTA=zEw&Q#Ivp0y0&nk*XS)~=~Q%-gFL z!?$@oSvQ__@4*J*f!LF)I1T{=$rmv1zhaa!K{{SG#y4IvO0p42lIUt8oPJTpcLHL1 zPUPR=e<$itD;;AKcmYm<9@j92fg1EQ7dtMvQNxCT(V>Q5bW4>X5YZ?yG&-5x2UC!K#)xD@XjD{SSZEYG@Tw#~{7p%IBA5Z@gOy-CpdO=ng|>Jq<9kAO08tKU z=8;KU)PIeCKB>zKwanwKL=f8Qs{{OcB zv&VSZ|e72dqa=cJlNscKbK> zHdE%vYDBO_Yjo`X(`T=-!nSz%N_5@rj2rm(3(actcN z6sS)}VUNXVQt$RD>QO68$X#PPh&G?vmfUC#O5tzKQCp=e_>nnViCw+ zh+)&m}!o6i<5TC$w2ScS%9>rmL9eR_5t zEz0DqGRMNgS=>0ovRiXS3p#wyDO|;xwqkAh*iH#7u@4(QIhoDYvb}ot`YnFFus(}W zv1Tn`poV8QDVdyY*vwLOyV%|X)RoXb&_pgpSt|{jqGeAlNE6qC4I9pW(6al#(JEOq zgM*y8bF8tN#lek+tvh=uo!yhMVtA3I1|1@W7BH8r%i_@!HEhLBwqMUKFjiR3qBZPW zRB4Gd^9W@P&7_NvODwiW`2R} z`?<8+(6E`-%*~xm*0N0*)La`34>cz0**mnAj8)}W`wlE&7@MhOkBhL6)|{j&`m5NK zX>5N6dqZOddy8FHhWTPt>BP{M`wy{WC)n8w>=I*k1sNL7*Uw)`t=?9{UURfh=V+Op zv2PTtzJ|@!vfT&RvE%GCqwq2;8@J8RJiWaAl&mR64>^`>%ditzkz&jP+l3|W9BZm( zz0e~^vekwa^&JfB-J_c^I(8QQ-@)5Lh9CM zswR}SXemSgy>Q8}E3odmFsoIY4zYwp>f|`AckN+^e`T36R?XdC8C17<`vHRn4;yb- zDPPODwwroez-!#Q0f|5Zl7SYa03FbSbdUkq8yT-6Df!6RP%TvlBk#~r;=qfzVZ3GS zG2(v9#!sa~0pspd+{?6KCB7+LhPofD3fi;!5e!2v##`*e07=0gg6O;0tfnm(4Zp(~ z#=MV5;O%VB{sV{EuV)Pd@r~Pt zpB+5Rj_T7HihhiP^y81AeA6M?kA)b^ZpNA$M(dbPtmg=-dN#v#D%-V>9XJFxXK&x3 z#`y3tmjBTZP92&CwWb)q{`6^lKY=`wN+i=LDA_uT(#(~{1sP|+OlIaAn zJ(V5#mA)H*vHGo8B@>ye@w+`6tf8?VRl~uWVHmcZ<*YWow__Z(d$Hacb{XTgVE`#4 zj^4|SgSVVjRj@i-h&YC)u!9)GuTWPl@eTFa!NUwAxt6WMb6gcUqq8kzUUg_7AEsw$ z;oI-X{=+A`@f&-G2JXx3v0>nTkMBfOVI8}%o=FVnukW;Mvz|5pCk~W$7vFy2Xwri4 z(PQk|jk|&m3zo-*RX>*#S8k;*=u}`oF&ta*7rF z()gcF_U>raAK4#_oyO>iM+7(z%ofi8$!wF3-7uU4zLC=xem3YR%VB(3BbniRjNV&~w@VAuoG@pUE{ zt8O?&)Mt_6Sz;n)Niv%4)cbJ4u#i*TFhfN9;J@&xUPIwt)1#JWZ7*-1z@Xre(7Ivu z!s|C^7!lb>)woGibkkj-Gngt`EMlVU%35k zBy~~=;Sfk~iGCWw-+~dqKFYZ7tRY`DLEix4zU-wkhE3%y*qjH)z+S;#w4uDxuvnI< z+<<&5guJF{{~yoV2mhwF5cey|^G&lKN5ncGGh?$?qT7P-YDt{(Ekb-Ym?F`SMtA_A z^d6A0k~Gm*OXwO2HldPq(=pCVl6EjUtDQx=H0Z?e285SL;-Y@8L?`+e)5N%`oFU1R zU05vRYo)2rKO2|UQ>@czY{vvp6YWS;6DSLr8-FEXFU2vJ`9=Tvk&noYZ?YBhTO%*= z2HTXIGM>YpxF>KGvP4U4Q?vgZ3JdiWrC4{E&?_!Vzg|LMnpSAn6 z9`_`=%aX9T&yGX4SI}=UNna(z=R?krq zG^redv11aB>EU1pSOXS;*`O5iH~?$#3h_ta8aNFO0%DcsgWrWQ^p+rVvOVVJ z80T}5U-WSld3Jt9J~96Wk!8$bZ0RMNxkA&$F7~bCNaFFBe4sfKv9mwUigh>Jl0CUYm|E@@-eZ@SVDiJDQ=wT z`Z(~3;3<&xb>NdBiJFqIsEany^_9do2;s95-9nV}xqCCTIJpNHiG{*rz&P+Nm}-sR z+5u?-J0W+0Jzy``FF=c$@l1fpfD32<+JQuYGmtmI9dH-i2akX~79|r70t(3bU@=Gm z55OP5A|LMD0Y8C2$a)|`pfO}L=m28CaDnZR#7?jW92K|@c>`GFN4daHAP_PLgn@dX z0f+#JpeGm(Mu6=CJ0bUi{onvNDsUb02C%R*;s;461p*<1L4-gvNMeM54w5)35KsUM zzd>D457Y+{pebkuwhN>|68i*>Kpq9x!3_|IUwsJ%5dw!Gi4))yI3wU*2sevCE#M2n zKqOcrupV*?*ao(P1K=nqYL9!gz*E2rlJF7e2{{yKz$h>Vj0MSHCYTMjgM9*SGJNX_ z)D)-<=>>cQT0pi0Y6r$LL3<}7jz#b+4b%j+KobxJdV$_xJ=g#?fgNCS zQ9RuO%LL@b7%K}Zf=ZyKfDdFHP^3880MHLBS%F#twIO|hpFj{K(H-;#x>DE=;62C$ zc5)mSpbDrC)F1|Q13iEqJO))1_+2Y78~gxlmKw2xBwRrS@XZ?|bYI^d$U!-fDewxn zk>3D|{CH9Ytbq+E0PKM`@C8bN&c`iSSI`@b0HeVKupF!cK_@I&2(Vy<49Fpe0cKH% zJqD(q`A`r)3oL;|wb^okUm%GTupVp#Tfuga2KEW)A&Il#9Jm6mf!hLiA@75S;1S3W zpeJg7fEVC3pr=>_n#X{J1*#4l1e_p=5&{(jPT&G0aY>*tzIa0L0(&5d{Q?Ie4}+rudPw3NxCkx_ zT!kd2;v6v_ECkEI8n6@W1_yx!&KZOZGy;tUWOC?$6DSOdf?}W~CBSpc{w-@t}u*e?_z}=nIAc zmX5LXC7!5Z3?<+d5+^Y{etU<-8@*U)qqXZSP#Ks$y~V1?PFN^bmnHBCED~RH%Q7%N#ATHd`o!U7&mH=7mg8k;eLEShPdfR^ zJK$Yk=t{9nLA`invI8GK*2n@$m~>kuakr@s{LJr+cI9W{-r)Dfa6W`bBkfCwKFrA@ z$WQu8vmE%_6LC)xaS>DddhjRej!ei3lTIz94Uy>U&G^_x%qx{r|Bp=kPeYwZw*`{& zY!k}64tWxO0?-b}g*5WtY7*{eO8l=B+KluHlaJiwgWVB;ku(re8PkJa=NQ}G@ZKX| zIm3TkZ3GM7sjR_jNWQPvi@8@<i@iePWx(c8u=Qr*5yVQGAl%4D~ns9;-Ruq@y?L`N=Ew!E4QvDmQEt8P+}` zum$uvdWUvGY`?g!9cqA>8vQ%=BJe7+nCdZ%-aJO{16p{``V0^F7eh~SWAlitsAZ)~NF-e$o0VZ+M9T3WPs1-m`LZJuWk}P`p}c)S)a@`yC;c!pI?{JHqi<$LCzeg}pYShh?8rx@Y>SmnUTsPOhJ zJgV1nbN9hl9*jSDfxm9}-3#N7UQopN3mCzX;*VI+k5k~MD%|L&DvZB$K|g!p)`S^< z?!pjh%IL=}#Gkux!_Qr~;~Pxkk6rk9)HGBfo&<0 z3mj|=$XO4>_|`jj3n8U6z!>>QJnf2Nx2}YpHZCp8A;XCyg6 zQa__O^)r&x&qz`~BT4;?WD7yI5u{p>9R=A%ka3V2D`WjhQvFF%{Yg^&Ny;Hzd*i=r z^(rU>QbB>Lc(ICW&5n$2G#LKWppfAY!|SA3OE=eeH(c*juY#9FSNAa57;Z}#tg~)V zFc`U3Rd~d8L;<*r*_Q6eM_>Bq2!=oXRm`)mz~?oi-z(5{Tj z9?q2rlV0?H;l45c2c!qmDQzue5>P_7AKQi9nC%C5BMn!q47Vd)Upw-*Uw)nx*qHLA zJULCLa&u~{6>JkBV{DxGNniko07Zp3>9>D-Zsyt(bNoD(EInQBdAN`NlBXf>>=)IX zJ9FYO+pVo#gL|y(Sjna+J^17R&HK^-K05qh`PIM~p4#sqm7cd&d*We&(ilJXVSeb^ zy9SPn{?%Rk<9SqsDkQuKtC19sFF>J$ejTbB;7U00r@&@F;RQe=gnuaM#1AUv#2*EA z-#GEMkawWF1rEc#ynTe25@i+Xcq zkT24UKB+7*EVZZbcfj!J6XYGpA@DN?_8CGRga3+7e07Qc zVB|NH1-;2_euc?xemRW_rk`FaC*Gnlj#o$u9|Nm|@Kor>G;!kVfpXvp;-|m~U?1hg zUx98ZqyqAvg6c%R)SvMyO%v@+>qq+2D8mY69S|hNMM$4h9HT$AeIS(ixiUom8(~ZK zqHj@et_<=;dZ|w_EVZXF?W=EK9|kC#1o;CXodR!H!|#o-T6nWwZRW-Bt0OFs1>s3g z2);pD7u}>QzFyi1GMq&k;t6=aTLR*du!}TwBXeb7wIYjQ9a*d)ZzbgD!{YF-GIDf4 zxHFR*N|v*}ut>!7Yx0Ai;>Fto<*?w9*C>0V46N4x``S41JDM4}D+!ZsY^$s^*4BxS z0i+)YxmF05Z|B4-bAaf>oScaKq>oV>CB;Qd?biu5rh1AWHj}oI&)Noac}OSq-#RAC zH|dWfPP$isY~5mwazaOp>A(T>2BQDdXtSn*4e7K(nDmAnEBT|q9{AipIri4){-LN3 z&lV-ceh9`gSM&~=;bSe%JdA~N{yjLNKFMb46PHar)zIgJ&uycnQ1(f|FU3Vn^X)fN zH_@is+)vxFzog!?e)=?>@{0a1AiP-OoAeKnXA#O3{f-dIC;|Bb`hyamJrOQ~GKNcZ zqJPpy{_Mn8nvZkI0w=z^)`>rh@_%09#LE^Ll1I#Y$c%o28J%cP@=N~1%+w{f{tGR4;&-DRMM>e)%bfTvpJ6o82(rzNB&3@o zJNw+|D}KQ@m1WL1>2l*IJ6rPqXYc>h=+zrzmn;6d;&&ME6CH-J%otaE&=_ty;EYSD zWcP8X#s^(ii0tAF?|*GcH!ScbS^7))$x9!h9FLDm^!-pymX|DDR)|uKHK~fx-NP^f z8*3$w#l4Q=dhftL$I~M?XM+ico%j;J8vV{h9qJvz+zNyo{J1WqPG`mYpE8C$AfKPa zJQZoJ!MhWfAAtH`<#8vzG{|n7l-O3S9`juA@|Y2_4MUjp6fSWV*SNqNbt!xXV?Dy8 z7yUnhj^YPUhY^6n>!90!x+o#LV7svLqCI|%oF8Cjfd{2w2~F38&Zdc!(qTYSY;V&9 zLtmrRUa_5Gd&MTi#G17*n3??}fA7Snyu-Et8AyMP>kXiOgE*x2E#`{AY-T9su+fmc zNq&WpKM_(7vdgbw&U|7f?khklNaB984Cqj=4CwUG=@HH@Kh_5^ED&N?A;hpm2yy_! zA|VjRuuOMg3`>P*Jy9PX>uHdummz?RFs1TA#z@j%vSS1)k zuU^Xm?1)(FIVK?WLT!^@hUWVu>5gk4WM{}I zR@wfw??ZphF)6X)M2wp;Riz=%*KQlONI;J;pG)pKJ8m)!@PCk!Jly zpJZ$F+6SX6-H|f-PJ*X+)IHWvZ(}`re25$CBegKrOsa_zwk-m6r)`WzocuP&Um6#q zQ8yZ4>l&_4$S*JWr#9(`m~lHOw-_^)(fdQ(SXKf`%+eXl#cxb~urhiO%P{)s1FxdS z6~C}U<93AMZxrf8X97A)bTs^>dbpxKa{TRJ_#12Z`*AKxZ3)Xjl!LX?hQB$@*UC^H z<#xrjptLSjD)ofVeRR!B@q54la0KYVDR2&40_or;xC6iKyLkCLY}MOff*h` z_XNBKmMu&1`GF%S4$6WmpeFDIL7+Zp0y=;spaEn*5quA{;1{q9oB%h$bMPM6v?|3H z0)@dhpaQ54{6Kxs3M2pxm<+UFE!YEo15d$QP_1<-KEw>!?PKGZV(v}=UAemhS_j|( zY60AWHoQ6B3zD7|`GC)VxVEMEagz%3bs_74`k*0*1S-%3M1y9a1!x7@fexS(=mru% zFVGhZ1Ve%7wO#80E!(notrH^KvH`KZSwauv7PVuoag4WQZDB}ZEOs`82N;fL`suA6 z#v`{lF3 zq`NK8iqAya2qC>4po}je`uLn2j&jOK>hn2UN}DaIAH}OxFxDwdqE8g+ z`K7Wbo%~yw*l#Fn)Xjw?n@fT`UB;Q$!jB)~-f4=7VQF^p9pVSm%H=uA3 zq+AI5Hgo1nGYTr9HtG<0;D@~suq!p0pm7PDfk=l!4ssGa^{u%ORO8=7(tiJ!qC=znZDjQRvOpa|84_!CYQZ*Kmcg>{}=+1YwGch&G};j{PWx3oXkE zlg`2<`I|{} zqJPrsm!iHnW<*Kh8PN6p3@wmGkZpDZBi$U?+2=-ohuZryzA4R|Z_<4!Ury4=KaD?s z_W2E!fz{H&dbskOA<9}BB{#(=$L%)CZZ8c|Gpc$Z!$^wfY9L1CgEM zcdiI#{!`UATU-m~CT{3oYPCy<>hbk6H;Xq2nRYtD=2(U%l z`yudS{v(uMB*A*ahRxIKK6|CSXVu6%qGl<@t9t!LwDL>qJ?wHL7rNPL_LH;qhX?Z0 zWV09;Vkkv!Xb%dCUn6AnEkfK9+J3>ACvM+#<~IWSTh6=jM zdP1e~`;>167~iLk6}?EOa??4iat4OAjx6JWGyfF41ni+Rp9jc55zrJmVda|e-Sn)h zQsg&$n!Ix6uYtXQ!mGg~A>8w|GvDbA);$9&a02o5U@drzcq$n87XBdrDX325i~EdU zX_{znT0hcnKp8h6mkN^NBBakLPlWtZ`@?2*(sT-o{=bJU*^9nKy}2^T7wM%w#jw<# z!nCj6Lsooe3`au_1f(-}$MWC0{%LT27d|}G*+550m~?q0@rC(Z_=$k@(U5m-jp3t^ zV{(A#!<;YK{Y_oFV7XnHn|1T_E_!dH(bhbj6^y0W6O2ubaKPi~}3;$5gXXnt;^-o(u zTzIE{5knif@VA0Lt+`ag&81K5bZNiIQr9kyNcdqZf4SCIZl-ytc}3;u_pj8>Ai68)3@R6Q4d zXP67GtBW>9?_okO7yfX!PwO)hdUN$$)z5{`3Fh*e>NX{z|Dilny)?cx zJ}bSyiLFmpo-X_$Ao@+|Z7ib|qyjJ@PUYQ48#zMi zByA=7C;hqv7rrU#FG>mzgHHV!{Ebx;e75&yD`bXZ(ugnDb3KG5ya-@-NOM z%*j7{{NcK2m=R;?DI*H;y5WUB_)PXJ#A}pUaar3!e0qnhxL7Bhx)7fX2ECgK$z0BmEK5&LDmoeosR88u>u_eb~N&Pt--W-;!4>%ggJQ=H*o&eF?&sQ7+Q; zFHtVYc!B&t2DHy%4`kRT1#K7V%0bFOB7EwB8rzWw^ta*T7W^Zup*TnZD%fat*ztNG zPlY^d$7`Y2k{&Q@Bg;hIXUK~-R6(Xcwd4~418UeL!(MFX?4)V?t5Z;Ckb?aB3@bzX ztI^)cX4+r#3hBRF8QNd*1mVA-{pBeCuWEmlnfBMdw8H+gGTZ)&y=eD6cK98KuWSF5 z-Pjjj_?WhT3ff*Hw7=N@#r9WZvFlo!ZvrvE3u%$KA7pNKYBgY5c$BFa$_=&PpvU$xH;zXf84-`lX`)faQ$ z|G%dF*&6hFllG_aN8x4j$@rt_orh2Hw&7Fy=i#+TPxrUs6M-J#oQ^-b02^LKn2bLh zhjKB#WT1R=?f-8Xf6{$zctzhlJcn&o0X0Y@DU3hrfoP*Td9pnYWNixZvesGW4oyFM zJ{ib{*ngCVTZeN45D%yH802f0l`k1-YDv0iXL@`o)}stS+_5Jk33&IzEV(E+P@n3HMf7Y_u)6MH7|#My^S@W@*HK_TJw77(~(zCoc!|n zMU|NcYp{{m%<+}79mf~o=sc6l^NSAtzvld+s%XupSHSk5{bfb0`3!|MuPcS^a)u6J z`F7*^JssPYQWv%jt$7*JH6;-)Va=<6wz%~t$Cn&B@%*0QY0a~uuz?Tp{GQwjzM4TN zoZn^eL+vjsjq=TmZ-3_a;!t)@&hKiR*HZwOX2&zy?p&PT6|n!B_Sfw|K43V%7dM{Y zGff8(8s)MXhq(|1+xKd@9bblva436XGW0o8k=iH`+g4X8!!nL7$9rr1L8U z;#>vP`4sxXe(cZB^nV?;ClT#wI=@nJqU+VLvDfY|>P2hi7$_NDoihT4(J zfmET)M4$oUxFbr_@kgDCV-`^Ri{p->mqI^PjfA z2L7o16}!y0|DWmqdTd)x`v3pN{5GWm##10||Lm?Ww3TpP!}UdCxjbKeeW9y{yvT3b z|GA2&1C2jOqwzkBqMFE1Mj#{S>EzTghx`~{@#FWZ|3zn%8!`B!tu*#7DRxodwd z%K9+=eChgbzxng;|JDAl#n_W*GX7*Yzt#ST{e=0ae*S;&{5EAC=3zf&KfhIJF`mrM zetv5@{-;yh=d}Ho8QVX7<$rJc)AfaZMfUBlS&Fe?QO?_6LFZ^79e=Xx|0&xrR;|i| z`O??7zx)^U50vrA`2QbreV3Smwq1>Wh;7gTy1vt4o5broE!s%CCg<(1N84-7wEsVS ze@~o$e$D;8oXkJ7oBv4XpXTO2Ih}us?VpUcRDnd0lliCC$A;%{Oy#8iC(^wQV7R}8 z{r=y2e?x`)tJ&S((4bwCfjHkcm8RprN{9QvfZAUlh&H8b2uO4NUlwe`XJEhP_WpKa z2=2uQ*Iy|pLlgAr{Ut_q!2I)T`hQOEZ>OW~rq^G3Y_E9zrNecvTxZ8?fO!3-MZ4tW z`b&oT)Ag5Wdz;2(weg%n@|?po-E{vXqg=JHf5hvv?5+>g8*pva4%bf|zzAHcjls3) z8pw@SyrwhKIw2g3@Dg0NPQroj z2kg{e`}`p#3D=bUQCDo6{yWqc?U0UkV5qwsh~txKdz;2h+h32i*XFSO|F1v)(QUKi zWw<}52Dv>xzPA14yIlB;oyPG=H3;`vaE$37&0U|R|AKpWtE_o$Fz&_V;`y5*75DMP z`$O4WpRo9sPd@)tqYMo&ou8_plb#=vH{-eIMBJmm{fXpp|99_CXwmkGIc$H0+<1RNUOJce zCrW;Ne`W*7=agXBK-`D^3hyUI8N9q1h#-%)bBI>CDiX-4;R{z)DM*L{@ z_b1d|SlcAIK1e~^CxZ|3)IFFJAa43RS_QovnCi9AC7RKHD9Mb!Jv%od|7uKKYY8bE28Tqoo`VO~G=U>THjPtMLV&>O>XbYm>r=wny z^=FE+h@;+r+5IV8f28cjGg2U4f8_N36x(mSJ{Rv#sq$cZtUtX^l8ozfPICO293IT{ z_(y&;zruQ#=U7vd%k{AuPviKMjQNPl8P8vy;riHQ{f0O`$ts&4pXm9i z$_aTT;}eH5RF5%=#wUF?>o?@rktVr5H@$x--apr%UNWr9{Ilbe_5s#=xL|v;8J|qY z9}eT14AA%^wtsg0pYBg-aqh@%`%C+OcJpJg{l)u(xmln5SDhdJiuV7~`N6dPlhO8S zllJHSzyIg@{H#J7(*5%<_W!bs*GotrVb5m(@jR_ZIa**k4;ItY$J+C{G4{N6v^~#_ zwCC015C>wq>Hbw5z}y>1&+l}6>1;k-AC*`L_nY%t{kh`{`4bD8Ssw*Go!?XP|9$88 z478i+`1Zej|1lA5&zZEpxc=O9{!8PVxc)ph_kVLTzKPfW4A(b*_4>@uonQXS_Rq=s zb1m9h0~EuvjtM$8^t2B^cE^=?{K&fE`!}8O-JHqzE{+CrD89!NjPO9Lj|Ms)JpUR1 z8(im#d8AU?9D2SGKg|{IS`!j1n8je*0(tV#`|RkQY4rZIj4>{JJmP_cY)4xL6|@c? zY2A3N)tEe=%cCBL?^#RoG#Zm(9cz>$D?!DVm<{0`m# zYo7wl9ux!RfE(}vfuI3s3OHA61JG1-VC@m_3VMSfKqbq|k^u)aKmihg9H_xq*h~dK zg5+4V6WTWv`=JqN2{c9Qn99kH#ULCH`hnqK0+<2jfn{JF*a7x~!wh@Y z-LC-a37bJci+;c!pk09$=z#vAjAg)%``(_7hE4iU$g2elQJ0_X*(&IkqK|BX+zAeY z)8Hz&2OLm-37}eH&om%~h3wnYURb0 zbk&|cgDw+P3@O0sfKbo~v;;9A9_X>1=_OEi!rzkVAX9)AB!hmi84f0Z8DJS$2lj*G zz~3K!tJ*WGQ1lDn36!8M$f#0~$xyxm{i-M8gTNFp8>|AGz)o-&Tm>5VO9X!){0`Kp zi~bFUfp3ALlr2+%^mL4O*HFjn=xZ3?1@}?@L$uFt$n!fS()>}T-qwLNhHMRD zfhwN^(<7aG0vm)=Ak+WAzIg`Sb9*)bHk$J?HXm{YV6Tz(2HWu#^?8S~aYD(kME!7v z<#1+p!WhiucVNH6_6@MFhrR&3fFdvIh%{XxoQUilSTaz_99RYjaX=Vjd~yi~)*H5q zz-n+7JOIytQ#i^-89G~x83-%#!6&$gum&ySqfAHs>%*bjYyxyM01JgJVD(TJoMZJND62m50WIJz z;@E{;2V41%g_(M8VRjthi{KVeRKQ=y#iLz7+XLQPzF>5o**1VfwrJC zSO|1D|80WY2@V5ULkA`YdT<)?tKbiy!?`zaQ=Dgk9Ai`oNLNq;1cThyfMa07(8-v!s9q|>A2Z1IAZ4`@RG7)W? z3+f4IPL~47t;YEcs8X<e!F+iT`iT(Cn|CLV6S&(z=FtB&f0nuPN|3qp z29UY4!yLHd{JG=Yxtx1(NW<#su38W0pihRZt6ZgEI{Ni+JKP74!7_LS-UXR^e*>MR z?ych6w=xIcmbvn-urJ7bJPh6VrmfA(WevaC+}xj+%bZ;1<1!b&31lw*B*NYs6rlK8X8Wm}B>V-Vn^&k48U{dnX|~&f#lukM5$>Y21rJ z0y@s?Cvjiq_P0XEd3_twZZxwI;r1o=&okqHwWgy{V<<*Ek-^E3-{UPUu%fh@P8lHz;}>YQ~b!h z8q|!gsxv6o1rHI|5=r|3+hFh5M!kr>5N<7Kp?bQ0goigi?Zp_fprv1+R5wia1%=!TdNtgzsUFKZSnKeol{NJo&29dtigzdPV z*>Wwjz996k^-O~2WKDA+{7F7sj_mH|-z@Zw>;2@f^aZ~&=5<*AJVcnSt$`M@26`RV zcUTK8A?%B=5JLL;1e8OT zzn)sZ9r?CB^WYtr&$71a2f-REPPl)qv$}X|EwQNu>#cJLHyNhG^&so7$6y(}0E zEBZYkvN(>i=0`7dknQ=keOpyRrHJ?qVW1>32f%=h|0uui{* zaI#jv3xf6fa`ZPKk8u5A2=v2Vvt@aAT-WbN8ncdO-n%=hLd*en8jh1ej&xz})ut>S(0$6ld2?X*>!g@GMnJwNPyA94Se{o*n1i49{JGOKXAj4dOEpV%_m zKs>>o4G$99)czCBCLd0i2Ebtm#_iWkD{%g!Z)Bh*g87FUeFUpV>g)webDou zKMa8pP!4fO!#N-}mT6*Rf%X4kYk8M<-%i;77n{q%qU|=byNJyt4E+va`~|VUtUtWn z2D3W)KigqW;o1KiTTBDtvarK!X_Gl0|1Iq@Vw(|LOh@~SxVs;+W5zzSrH$q$p1BLe zR`Vn*hrnjjZ$p>=Pj;I!>@O3CV6Q`p?Pf0e>)3my^~F|)yK~Qw8iza!Cc%|38^peI z4~TtdOWV%Uq2#kLg1OG&j2DE-%Id7vA;sRa2|DjcpTdUSf7yKsu<3~HXDBGbiVdg& z#zJ5Vx)eRI2hBsj9~MJk8+r}>eOLoqvlH!(y{8-eZ}y@XVG_^=7sBN*3vLFnB|QX7 zKx|4Y;Uk#Hw=IP371Xy%${SnL2_QD72b>p$E^y^a)HSNCT8Tk#u@ zY-0?8X)qTS!fKd!9(Hch7TCo)VH?{EdO{z_gZ?lCMnE~lAr0riWS9=u!|iY%JO<0) z6?hjug>T>&_y@M7uh|v$g@YjsMKBPKhf|;m8lV-EX;XJqm zX2NZ7A3O%n!fWszde91o{L6*NKu#KR5t-Lm2X*3`W4|PzCkS1n0sem7jOpeV`X)K>?J(U^pH|LIpIy*)RpB z!L=|KZifZ%5G;k|@EW`etKnizu zg3DnR%!T>z04#=QVFkPiAHZ7p1~$N7ux%aR3wuHj=mptO0R7;27y;GL0O!GEm=34KKml@DY3o8(i8(<#X4~yYBcmqCx zui+Q?6Sf`0H$Yc75c)zCieLZ?h2d}-RKge-2W>D3rov3P8SaCJVF|ndZ@>re8GHjj z!zQrD(oewdun!yneIOUgU@#1Wli@Tdhia&U255n^;R3h>ronY^E8Gnaz@xAfUV@eI zF|394@F#3jPg{lEU?1oSy&(+wPzrwjI2~e;gz<0zOodr+8!UiF;2Br}@4{+W2S33k*fvR9 zfo^apM4%rGhGB3z#9$00p#{!?$#4Z+3v=NvcmSS&XWizufvaH-+yVE(!>|lqhPUBk_!2h2A7G}aH?Rxr4LzYZ zPoLm~8o zL2x3R3NdJa7B~+sfvey~m)?_ncs0;h@k3VXxB5P>Fb!tIZE!a%g2k{5UV*paLs$#z;0O2#{s6O?dIUSd977Tvz~)z%p0~pTM{98<;J88|()MK^Ejd5%h<_FbqzE8W;=XU_6`) z7r|w470iM;a0|?Xd*ESM3{S)JuoBk5H?RSIg}=aTr7wg|um|i12SPFQhe0qDhQn!4 z1#w71E1U-x!4$X>u7T^}7MKV3zyt6oJPWVG2k-^_2*1JKV2|&iwuhZzPdE_zLKOPL z@o+j+KrJ*t3!Dd&VJch&*TJoD58MwA!(wLr(uoixU?I!RYFbGm`G296&;cIZtB7QgwhQJuO2yTS? zVHvE1HSi1UbT)YcBcTN@f!Qz*mcx2*&S7kY-JvV=goEL5$b(WC1=TPPCc_nQHQWGq zzyt6&JOj(&6?g;QfmN^uzJm3z5&nVg&Sflx?$8UO&>xP0;cy1j!8kY@E`b?vJ=_Gh z!QF5lEP_X28N3Lu!@KYitc7pjC-@Ei0`olDEbIik!Cue}4uakgh9c+(gWxzA31>nr zG{She2&TZ5Fbn3uJXin^z+s5sdTci(zNz0{g-Ka4;MO5h#Lwa1;!I6X6snhp~`^ z@o)i5f$1;{=D=+*AMS^TVHvyzAHrJr8aBXhU|c|2U?sDW0v7-qmNa3|ackH8XG0UyF=@GWcv`x3?}*ar@REGUElFcd~X zCBz{CtuPU$!qspC+y?Vu5iEvfumawI_h2=A0pGzdunC+?nGe7o&oCP41-gl62?Fp&V@_hYPb$=gxg>~+z*e!ldue4fLCE9ybo*OYxoiV0P`}+ z19pdfpeGy(5h#Rya15LPqhK_|AqnTerEmk>1`FT;cnqF~7vU}V7`}w>;aB(v+^Kv& z>;_$-C-jC0Cg49CMLI1_3h0c~(TOo8ceE!+sV!kut0JP1$1^Y8|&f;I3xYy{(S z`XJa34uLGlgHjj>$HFi;6)GSGW1tDng-c-u+z7YAo$w$$0nfk-@H)H=YvE`36Ra!f z|6o_x8+yPYa5&^ce;5SE!3a1NMneq7LK|EPv)~R`1W&{3@G*P~>tQ2o0`p4xDd+?T z!$24cr^7h79PWna;8XY&cAiFgKpC74tuO=bf@Sa~tb@Oy^K{n!Py|Dv1}=bW;X!x~ z-hwr-0se;FucEBs2sjz4pam|4nXmv}gb(2d*kJ~JAmqV`kb-G&4=jg|;UC!dYU(Tu zhYA=EQ{fg^3~#~Lpsu0LK>?fy2{;>Oz+JEu-hr>-57=%daYJv&hI}{*j)QWjfw9mG z6JZiu23N!Na5Kz<1+WMnhb6EaUWT{eWB3w&gx^5TqW_0opbK<|Lm(T9;7B+YhQpZ< zha{X07s3>{3TDGCumB!{r{QII2iCy%@DFT%E#(5;;BY8}0dNeQ2&X{>)IkHJp$*Q1 zNiY>=!mThL7Q(~uBs>SN!rSl>d=B5hPq5u=+5lw105}Ee;4GL7SHMh|1M^@JEQJ^0 zO;`o%;1^KWk!R2uy1>4$KO72S$cH1~1Q-S7Pz#OF3g^RAmPIv&GgyrxWd;p)p z*RT=H>zO-27w8VXAqr)1Gz^E+pav3fHe3kPU^d(e^Wi~Q49j2zyalV^Gx!>Qg1;bi z1N|oK275yfI258#3WH%dltV3ygL7dDOouseH!Omu;3ZfIAHo{=9yWqGhdvs1gxz6p z=mrNuUx-2p90|w6$#5prKmuCeT(}sngjsL{+yZyPLUQg9wjh3nu>xECIQCGb4F3h%(j@D*%;KS13~ z8-mWTCv=BHAp-eO3IkyX41-Zn4zo)2e>;e110ni(=p%9LMV_+DZ3RN%`(r`9h1XEx-Tno3re0T_+f*0XU_z*sa zAK+K8Zl{ewS2zd`hf+8ihQnxRgz<18TmiG;cDN6ogca~Ud;uH4yo0_Gy22rl1N~tL zoDAjA2xr3-m;-mhWN3C{N zyQp2&ZfbY6hw8%LitnZNR$ckK@qN{Ps+;Pr7!y=ab$~ih9i$Fchp1laP}N%Tv!q+F=z@*($1XRIbWX`Kmw_sv=daO86gSm#KcLzdAwL@ix4OU01W7H6J ztQxA0Q^%_l)QM`CI!O&zBh<-iq#C78QKzcY)amLBb*3s;qg92fR8^{4#Z--|RdxJ9 z!WcDH)vE^8s1hov#;KG_t0vW~T2!kVuiDfEb(T6?oukfG=c$S6e071kP+g=Zsf*QQ zb&0xEO;MMrsp@idg}PErQ`6N|YKFR6U882IS?XFfTV1EFS2w6R>PB^wnyYSBx2Rjy zZR&P)hnlDERClSn)qJ%;-J|YR_o;>Ie)WJ_q#jfcsfX1g>QVKWdR#45PpBu=Q)-D? zs-9NQsAcL|^_+TMEmtq77u8E@g?d@NqFz<6sn^vT>P@v$y`|n(@2Gdxd+L4lfm)?L zR3E92)hBAT`c!?U)~L1WbM=M#QhlY?sjt;H>Ra`l`dUZ^r`cwU-HmSeWKNP=Vn1*H8hGV!!$k@i%*4WP2-q^v|(b&o8WOO!mHg+*~HFh(0 zH}){P7<(Ff8G9RDjeU%Ljs1*nMt7r!vA@yNIKVj2ILJ8IIK=2>9BTA74m0`~eT~D7 zEF)}0jBF!nWvv$GFkB z$(U>0Y}{hpYTRbrZrowaGww9*GVV6!8w-qkjC+myjD^Pi#skJ8<3Zyg<6+|w<5A-= z<8foL@r3cD@szQ|SZX|NJYy^~o;98`o;Q{oFBmTxFBvP0myK79SB=+<*Nr!fH;t9X zTgKbQJI1@ld&c|52gWMnL*pakW8)KJwehL(nX$%LYkY2eVSH(PWvny4Hoh^wHNG>x zH-0eI8yk!tjh~F4jbDt7#;?Y2#_z@-#-GMt#wO!$;~yHoVVb68+NNW=X2{&e+}7OA z+}_;5+|k_0>|}N}cQ$u1cQto2cQ^MiyO?{LdzpKiUCn*Wea-#MZf1A0hq=Gm(>%aD z&^*XI*gVASWgcqwHV-rVn0?K|%`7u)M$Bw8YUY@^W}caE7MO)*ky&h(n5AZ!+0X26 z9$^kJk2D9GN121n!RFECG3F5SSaYa(oO!%?f_b7j%sj~)ZjLZdHb)Vso;2iFv6x#k|a%YF=($VP0uYGpCzZnKR6* z&1=k=<}CACbGCV%dA)gqImf)wyvdwv-fZ4t-fG@v-frGu&NJ^c?=tT;=bH=6d(3;y z`^<&r{pJJaBJ)A>A@gDL5%W>=G4pYAvH67gr1_M V4VZ9ZczGoLk|GoLq?n=hCz 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

Pizi5gLG^a5a*piAm$EP8)HC1 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 diff --git a/.svn/pristine/4f/4fa06cf2a3b0cd79753f8e768a865d45fec7100b.svn-base b/.svn/pristine/4f/4fa06cf2a3b0cd79753f8e768a865d45fec7100b.svn-base deleted file mode 100644 index 10320f6..0000000 --- a/.svn/pristine/4f/4fa06cf2a3b0cd79753f8e768a865d45fec7100b.svn-base +++ /dev/null @@ -1,17 +0,0 @@ -TARGET = gsportx -OBJECTS = $(OBJECTS1) $(TFEOBJ) $(ATOBJ) $(PCAPOBJ) xdriver.o -CC = gcc -CCOPTS = -O2 -Wall -fomit-frame-pointer -std=gnu99 -march=i686 -DHAVE_TFE -DHAVE_ATBRIDGE -DTOGGLE_STATUS -OPTS = -DGSPORT_LITTLE_ENDIAN -SUFFIX = -NAME = gsportx -LDFLAGS = -LDOPTS = -LD = g++ -EXTRA_LIBS = -lXext -EXTRA_SPECIALS = - -AS = cc -PERL = perl - -XOPTS = -I/usr/X11R6/include diff --git a/.svn/pristine/52/520e6aa611e950d7dd6d1f03e66515574e7b9cb3.svn-base b/.svn/pristine/52/520e6aa611e950d7dd6d1f03e66515574e7b9cb3.svn-base deleted file mode 100644 index eef041f..0000000 --- a/.svn/pristine/52/520e6aa611e950d7dd6d1f03e66515574e7b9cb3.svn-base +++ /dev/null @@ -1,104 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/*tfe.c*/ -#ifndef _PROTOS_TFE_H -#define _PROTOS_TFE_H - -#ifndef FALSE -#define FALSE 0 -#define TRUE !FALSE -#endif -extern int tfe_enabled; - -void tfe_init(void); -int tfe_resources_init(void); -int tfe_cmdline_options_init(void); -int set_tfe_interface(const char* name); -void get_disabled_state(int * param); - -void tfe_reset(void); -void tfe_shutdown(void); -byte tfe_read(word16 addr); -void tfe_store(word16 addr, byte var); -/* Unused in this version of TFE, and generates complaints -int tfe_read_snapshot_module(struct snapshot_s *s); -int tfe_write_snapshot_module(struct snapshot_s *s); -*/ -int tfe_enumadapter_open(void); -int tfe_enumadapter(char **ppname, char **ppdescription); -int tfe_enumadapter_close(void); - -/*tfearch.c*/ -int tfe_arch_init(void); -void tfe_arch_pre_reset(void); -void tfe_arch_post_reset(void); -int tfe_arch_activate(const char *interface_name); -void tfe_arch_deactivate(void); -void tfe_arch_set_mac(const byte mac[6]); -void tfe_arch_set_hashfilter(const int hash_mask[2]); - -void tfe_arch_recv_ctl( int bBroadcast, /* broadcast */ - int bIA, /* individual address (IA) */ - int bMulticast, /* multicast if address passes the hash filter */ - int bCorrect, /* accept correct frames */ - int bPromiscuous, /* promiscuous mode */ - int bIAHash /* accept if IA passes the hash filter */ - ); - -void tfe_arch_line_ctl(int bEnableTransmitter, int bEnableReceiver); - -void tfe_arch_transmit(int force, /* FORCE: Delete waiting frames in transmit buffer */ - int onecoll, /* ONECOLL: Terminate after just one collision */ - int inhibit_crc, /* INHIBITCRC: Do not append CRC to the transmission */ - int tx_pad_dis, /* TXPADDIS: Disable padding to 60 Bytes */ - int txlength, /* Frame length */ - byte *txframe /* Pointer to the frame to be transmitted */ - ); - -int tfe_arch_receive(byte *pbuffer , /* where to store a frame */ - int *plen, /* IN: maximum length of frame to copy; - OUT: length of received frame - OUT can be bigger than IN if received frame was - longer than supplied buffer */ - int *phashed, /* set if the dest. address is accepted by the hash filter */ - int *phash_index, /* hash table index if hashed == TRUE */ - int *prx_ok, /* set if good CRC and valid length */ - int *pcorrect_mac, /* set if dest. address is exactly our IA */ - int *pbroadcast, /* set if dest. address is a broadcast address */ - int *pcrc_error /* set if received frame had a CRC error */ - ); - -/* - This is a helper for tfe_receive() to determine if the received frame should be accepted - according to the settings. - - This function is even allowed to be called in tfearch.c from tfe_arch_receive() if - necessary, which is the reason why its prototype is included here in tfearch.h. -*/ -int tfe_should_accept(unsigned char *buffer, int length, int *phashed, int *phash_index, - int *pcorrect_mac, int *pbroadcast, int *pmulticast); - -int tfe_arch_enumadapter_open(void); -int tfe_arch_enumadapter(char **ppname, char **ppdescription); -int tfe_arch_enumadapter_close(void); - -#endif \ No newline at end of file diff --git a/.svn/pristine/52/5246e514bb9fba17ef44a3bb19a66e6988e15a7d.svn-base b/.svn/pristine/52/5246e514bb9fba17ef44a3bb19a66e6988e15a7d.svn-base deleted file mode 100644 index b1c3c71..0000000 --- a/.svn/pristine/52/5246e514bb9fba17ef44a3bb19a66e6988e15a7d.svn-base +++ /dev/null @@ -1,44 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#define CONF_BUF_LEN 1024 -#define COPY_BUF_SIZE 4096 -#define CFG_PRINTF_BUFSIZE 2048 - -#define CFG_PATH_MAX 1024 - -#define CFG_NUM_SHOWENTS 16 - -#define CFGTYPE_MENU 1 -#define CFGTYPE_INT 2 -#define CFGTYPE_DISK 3 -#define CFGTYPE_FUNC 4 -#define CFGTYPE_FILE 5 -#define CFGTYPE_STR 6 -/* CFGTYPE limited to just 4 bits: 0-15 */ - -/* Cfg_menu, Cfg_dirent and Cfg_listhdr are defined in defc.h */ - -STRUCT(Cfg_defval) { - Cfg_menu *menuptr; - int intval; - char *strval; -}; diff --git a/.svn/pristine/53/53c6955e5f8d5cc664c4cd7b09585878dfdaef50.svn-base b/.svn/pristine/53/53c6955e5f8d5cc664c4cd7b09585878dfdaef50.svn-base deleted file mode 100644 index 3156827..0000000 --- a/.svn/pristine/53/53c6955e5f8d5cc664c4cd7b09585878dfdaef50.svn-base +++ /dev/null @@ -1,76 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* -parallel.c - -This file handles the Apple II Parallel Card emulation in slot 1. Its very -basic, but allows for future support of redirecting the output to a real -parallel port, files, and additional types of emulated printers. -*/ - -#include "defc.h" -#include "printer.h" -extern int g_parallel_out_masking; -extern word32 g_vbl_count; -extern int g_printer_timeout; -word32 printer_vbl_count = 0; -int port_block = 0; - -byte parallel_read(word16 io_address) -{ - //printf("parallel card status called at %x\n", io_address); - //since we only have a virtual printer, always return state as "Ready" - return 0xff; -} -void parallel_write(word16 io_address, byte val) -{ - //Mask MSB if user has it set. - if(g_parallel_out_masking) { - val = val & 0x7f; - } - //printf("parallel card called at %x\n", io_address); - //send a byte to the virtual printer - //By default all output to $C090 gets sent to the printer - if (io_address == 0x00) - { - port_block = 1; - printer_loop(val); - printer_vbl_count = g_vbl_count+(g_printer_timeout*60); - port_block = 0; - } - return; -} - -//This function handles the automatic timeout of the virtual printer if an -//application doesn't send a form feed at the end of the page. It also -//allows multipage mode Postscript and native printer documents to -//print somewhat how a regular application would. -void printer_update() -{ - if (port_block != 1 && printer_vbl_count != 0 && g_vbl_count >= printer_vbl_count) - { - printf("Calling printer_update and flushing!\n"); - printer_feed(); - printer_vbl_count = 0; - } - return; -} diff --git a/.svn/pristine/55/558432a3c95785570bac94650f394cff0efa3063.svn-base b/.svn/pristine/55/558432a3c95785570bac94650f394cff0efa3063.svn-base deleted file mode 100644 index 244ff40..0000000 --- a/.svn/pristine/55/558432a3c95785570bac94650f394cff0efa3063.svn-base +++ /dev/null @@ -1,108 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - - - - - - - - - - - - - - - - - - - - {2C88133A-7CB8-4C03-AF4D-4ECFC6F8500B} - Win32Proj - atbridge - - - - StaticLibrary - true - v120 - MultiByte - - - StaticLibrary - false - v120 - true - MultiByte - - - - - - - - - - - - - - - - - Level3 - Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - true - Default - false - - - Windows - true - - - %(AdditionalDependencies) - - - - - Level3 - - - MaxSpeed - true - true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - true - Speed - StreamingSIMDExtensions2 - Default - - - Windows - true - true - true - - - %(AdditionalDependencies) - - - - - - \ No newline at end of file diff --git a/.svn/pristine/56/56586f48021e4dc59cf8a6b580a53587dea2650c.svn-base b/.svn/pristine/56/56586f48021e4dc59cf8a6b580a53587dea2650c.svn-base deleted file mode 100644 index 5f84ad9..0000000 --- a/.svn/pristine/56/56586f48021e4dc59cf8a6b580a53587dea2650c.svn-base +++ /dev/null @@ -1,274 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* This file contains the Win32 COM1/COM2 calls */ - -#include "defc.h" -#include "scc.h" - -#ifdef __CYGWIN__ -#include -#include -#endif - -#ifdef UNDER_CE -#define vsnprintf _vsnprintf -#endif - -extern Scc scc_stat[2]; -extern word32 g_c025_val; - -#ifdef _WIN32 -int -scc_serial_win_init(int port) -{ - COMMTIMEOUTS commtimeouts; - TCHAR str_buf[8]; - Scc *scc_ptr; - HANDLE host_handle; - int state; - int ret; - - scc_ptr = &(scc_stat[port]); - - scc_ptr->state = 0; /* mark as failed */ - -#ifdef UNICODE - wsprintf(&str_buf[0], _T("COM%d"), port+1); -#else - sprintf(&str_buf[0], "COM%d", port+1); -#endif - host_handle = CreateFile(&str_buf[0], GENERIC_READ | GENERIC_WRITE, - 0, NULL, OPEN_EXISTING, 0, NULL); - - scc_ptr->host_handle = host_handle; - scc_ptr->host_handle2 = malloc(sizeof(DCB)); - - printf("scc_socket_init %d called, host_handle: %p\n", port, - host_handle); - - if(host_handle == INVALID_HANDLE_VALUE) { - scc_ptr->host_handle = 0; - return 0; - } - - scc_serial_win_change_params(port); - - - commtimeouts.ReadIntervalTimeout = MAXDWORD; - commtimeouts.ReadTotalTimeoutMultiplier = 0; - commtimeouts.ReadTotalTimeoutConstant = 0; - commtimeouts.WriteTotalTimeoutMultiplier = 0; - commtimeouts.WriteTotalTimeoutConstant = 10; - ret = SetCommTimeouts(host_handle, &commtimeouts); - if(ret == 0) { - printf("setcommtimeout ret: %d\n", ret); - } - - state = 2; /* raw serial */ - scc_ptr->state = state; - - return state; -} - -void -scc_serial_win_change_params(int port) -{ - DCB *dcbptr; - HANDLE host_handle; - Scc *scc_ptr; - int ret; - - scc_ptr = &(scc_stat[port]); - - host_handle = scc_ptr->host_handle; - dcbptr = (DCB*)scc_ptr->host_handle2; // OG Added cast - if(host_handle == 0) { - return; - } - - ret = GetCommState(host_handle, dcbptr); - if(ret == 0) { - printf("getcomm port%d ret: %d\n", port, ret); - } - -#if 1 - printf("dcb.baudrate: %d, bytesize:%d, stops:%d, parity:%d\n", - (int)dcbptr->BaudRate, (int)dcbptr->ByteSize, - (int)dcbptr->StopBits, (int)dcbptr->Parity); - printf("dcb.binary: %d, ctsflow: %d, dsrflow: %d, dtr: %d, dsr: %d\n", - (int)dcbptr->fBinary, - (int)dcbptr->fOutxCtsFlow, - (int)dcbptr->fOutxDsrFlow, - (int)dcbptr->fDtrControl, - (int)dcbptr->fDsrSensitivity); - printf("dcb.txonxoff:%d, outx:%d, inx: %d, null: %d, rts: %d\n", - (int)dcbptr->fTXContinueOnXoff, - (int)dcbptr->fOutX, - (int)dcbptr->fInX, - (int)dcbptr->fNull, - (int)dcbptr->fRtsControl); - printf("dcb.fAbortOnErr:%d, fParity:%d\n", (int)dcbptr->fAbortOnError, - (int)dcbptr->fParity); -#endif - - dcbptr->fAbortOnError = 0; - - dcbptr->BaudRate = scc_ptr->baud_rate; - dcbptr->ByteSize = scc_ptr->char_size; - dcbptr->StopBits = ONESTOPBIT; - switch((scc_ptr->reg[4] >> 2) & 0x3) { - case 2: // 1.5 stop bits - dcbptr->StopBits = ONE5STOPBITS; - break; - case 3: // 2 stop bits - dcbptr->StopBits = TWOSTOPBITS; - break; - } - - dcbptr->Parity = NOPARITY; - switch((scc_ptr->reg[4]) & 0x3) { - case 1: // Odd parity - dcbptr->Parity = ODDPARITY; - break; - case 3: // Even parity - dcbptr->Parity = EVENPARITY; - break; - } - - dcbptr->fNull = 0; - dcbptr->fDtrControl = DTR_CONTROL_ENABLE; - dcbptr->fDsrSensitivity = 0; - dcbptr->fOutxCtsFlow = 0; - dcbptr->fOutxDsrFlow = 0; - dcbptr->fParity = 0; - dcbptr->fInX = 0; - dcbptr->fOutX = 0; - dcbptr->fRtsControl = RTS_CONTROL_ENABLE; - - ret = SetCommState(host_handle, dcbptr); - if(ret == 0) { - printf("SetCommState ret: %d, new baud: %d\n", ret, - (int)dcbptr->BaudRate); - } -} - -void -scc_serial_win_fill_readbuf(int port, int space_left, double dcycs) -{ - byte tmp_buf[256]; - Scc *scc_ptr; - HANDLE host_handle; - DWORD bytes_read; - DWORD i; - int ret; - - scc_ptr = &(scc_stat[port]); - - host_handle = scc_ptr->host_handle; - if(host_handle == 0) { - return; - } - - /* Try reading some bytes */ - space_left = MIN(256, space_left); - ret = ReadFile(host_handle, tmp_buf, space_left, &bytes_read, NULL); - - if(ret == 0) { - printf("ReadFile ret 0\n"); - } - - if(ret && (bytes_read > 0)) { - for(i = 0; i < bytes_read; i++) { - scc_add_to_readbuf(port, tmp_buf[i], dcycs); - } - } - -} - -void -scc_serial_win_empty_writebuf(int port) -{ - Scc *scc_ptr; - HANDLE host_handle; - int rdptr; - int wrptr; - int done; - word32 err_code; - DWORD bytes_written; - int ret; - int len; - - scc_ptr = &(scc_stat[port]); - - //printf("win_empty_writebuf, host_handle: %d\n", scc_ptr->host_handle); - host_handle = scc_ptr->host_handle; - if(host_handle == 0) { - return; - } - - /* Try writing some bytes */ - done = 0; - while(!done) { - rdptr = scc_ptr->out_rdptr; - wrptr = scc_ptr->out_wrptr; - if(rdptr == wrptr) { - //printf("...rdptr == wrptr\n"); - done = 1; - break; - } - len = wrptr - rdptr; - if(len < 0) { - len = SCC_OUTBUF_SIZE - rdptr; - } - if(len > 32) { - len = 32; - } - if(len <= 0) { - done = 1; - break; - } - bytes_written = 1; - ret = WriteFile(host_handle, &(scc_ptr->out_buf[rdptr]), len, - &bytes_written, NULL); - printf("WriteFile ret: %d, bytes_written:%d, len:%d\n", ret, - (int)bytes_written, len); - - err_code = (word32)-1; - if(ret == 0) { - err_code = (word32)GetLastError(); - printf("WriteFile ret:0, err_code: %08x\n", err_code); - } - - if(ret == 0 || (bytes_written == 0)) { - done = 1; - break; - } else { - rdptr = rdptr + bytes_written; - if(rdptr >= SCC_OUTBUF_SIZE) { - rdptr = rdptr - SCC_OUTBUF_SIZE; - } - scc_ptr->out_rdptr = rdptr; - } - } -} - -#endif diff --git a/.svn/pristine/58/58a40f6cea112020f2fb8114011a5e9be1068d3d.svn-base b/.svn/pristine/58/58a40f6cea112020f2fb8114011a5e9be1068d3d.svn-base deleted file mode 100644 index 2a5f753..0000000 --- a/.svn/pristine/58/58a40f6cea112020f2fb8114011a5e9be1068d3d.svn-base +++ /dev/null @@ -1,7 +0,0 @@ -@REM -@REM Sorry, this is hopelessly tied to my environment... -@REM I hope folks don't really want to build the doc themselves. -@REM -call c:\dev\env -rmdir /q /s target -call mvn site diff --git a/.svn/pristine/59/59353cd607118c566c5f7446b19e44211cbcdb37.svn-base b/.svn/pristine/59/59353cd607118c566c5f7446b19e44211cbcdb37.svn-base deleted file mode 100644 index 9787e03..0000000 --- a/.svn/pristine/59/59353cd607118c566c5f7446b19e44211cbcdb37.svn-base +++ /dev/null @@ -1,48 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -// $KmKId: protos_windriver.h,v 1.4 2004-03-23 17:27:26-05 kentd Exp $ - -/* END_HDR */ - -/* windriver.c */ -int win_update_mouse(int x, int y, int button_states, int buttons_valid); -void win_event_mouse(int umsg,WPARAM wParam, LPARAM lParam); -void win_event_key(HWND hwnd, UINT raw_vk, BOOL down, int repeat, UINT flags); -void win_event_quit(HWND hwnd); -void win_event_redraw(void); -LRESULT CALLBACK win_event_handler(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam); -void inspect_file(LPTSTR lpstrFile); -int main(int argc, char **argv); -void check_input_events(void); -void x_update_color(int col_num, int red, int green, int blue, word32 rgb); -void x_update_physical_colormap(void); -void show_xcolor_array(void); -void xdriver_end(void); -void x_get_kimage(Kimage *kimage_ptr); -void dev_video_init(void); -void x_redraw_status_lines(void); -void x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy, int width, int height); -void x_push_done(void); -void x_auto_repeat_on(int must); -void x_auto_repeat_off(int must); -void x_hide_pointer(int do_hide); - diff --git a/.svn/pristine/5a/5a3f50efd50f994df8537bce6cffc22e9b769e4e.svn-base b/.svn/pristine/5a/5a3f50efd50f994df8537bce6cffc22e9b769e4e.svn-base deleted file mode 100644 index b6419c3..0000000 --- a/.svn/pristine/5a/5a3f50efd50f994df8537bce6cffc22e9b769e4e.svn-base +++ /dev/null @@ -1,188 +0,0 @@ -/* - * This file is a consolidation of functions required for tfe - * emulation taken from the following files - * - * lib.c - Library functions. - * util.c - Miscellaneous utility functions. - * crc32.c - * - * Written by - * Andreas Boose - * Ettore Perazzoli - * Andreas Matthies - * Tibor Biczo - * Spiro Trikaliotis * - * - * This file is part of VICE, the Versatile Commodore Emulator. - * See README for copyright notice. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - * 02111-1307 USA. - * - */ - - -#include -#include -#include -#include -#include -#ifdef WIN32 -#include -#include -#include -#include -#endif -#include "tfesupp.h" - - -// Lib Stuff -/* #define LIB_DEBUG*/ - - -#ifdef LIB_DEBUG -#define LIB_DEBUG_SIZE 0x10000 -#define LIB_DEBUG_GUARD 0x1000 -#endif - -#define CRC32_POLY 0xedb88320 -static unsigned long crc32_table[256]; -static int crc32_is_initialized = 0; - -void lib_free(void *ptr) -{ -#ifdef LIB_DEBUG - lib_debug_free(ptr, 1, 1); -#endif - -#ifdef LIB_DEBUG - lib_debug_libc_free(ptr); -#else - free(ptr); -#endif -} - -void *lib_malloc(size_t size) -{ -#ifdef LIB_DEBUG - void *ptr = lib_debug_libc_malloc(size); -#else - void *ptr = malloc(size); -#endif - -#ifndef __OS2__ - if (ptr == NULL && size > 0) - exit(-1); -#endif -#ifdef LIB_DEBUG - lib_debug_alloc(ptr, size, 3); -#endif - - return ptr; -} - -/*-----------------------------------------------------------------------*/ - -/* Malloc enough space for `str', copy `str' into it and return its - address. */ -char *lib_stralloc(const char *str) -{ - size_t size; - char *ptr; - - if (str == NULL) - exit(-1); - - size = strlen(str) + 1; - ptr = (char *)lib_malloc(size); - - memcpy(ptr, str, size); - return ptr; -} - - - -/* Like realloc, but abort if not enough memory is available. */ -void *lib_realloc(void *ptr, size_t size) -{ -#ifdef LIB_DEBUG - void *new_ptr = lib_debug_libc_realloc(ptr, size); -#else - void *new_ptr = realloc(ptr, size); -#endif - -#ifndef __OS2__ - if (new_ptr == NULL) - exit(-1); -#endif -#ifdef LIB_DEBUG - lib_debug_free(ptr, 1, 0); - lib_debug_alloc(new_ptr, size, 1); -#endif - - return new_ptr; -} - -// Util Stuff - -/* Set a new value to the dynamically allocated string *str. - Returns `-1' if nothing has to be done. */ -int util_string_set(char **str, const char *new_value) -{ - if (*str == NULL) { - if (new_value != NULL) - *str = lib_stralloc(new_value); - } else { - if (new_value == NULL) { - lib_free(*str); - *str = NULL; - } else { - /* Skip copy if src and dest are already the same. */ - if (strcmp(*str, new_value) == 0) - return -1; - - *str = (char *)lib_realloc(*str, strlen(new_value) + 1); - strcpy(*str, new_value); - } - } - return 0; -} - - -// crc32 Stuff - -unsigned long crc32_buf(const char *buffer, unsigned int len) -{ - int i, j; - unsigned long crc, c; - const char *p; - - if (!crc32_is_initialized) { - for (i = 0; i < 256; i++) { - c = (unsigned long) i; - for (j = 0; j < 8; j++) - c = c & 1 ? CRC32_POLY ^ (c >> 1) : c >> 1; - crc32_table[i] = c; - } - crc32_is_initialized = 1; - } - - crc = 0xffffffff; - for (p = buffer; len > 0; ++p, --len) - crc = (crc >> 8) ^ crc32_table[(crc ^ *p) & 0xff]; - - return ~crc; -} - diff --git a/.svn/pristine/5a/5a6a946b6caa2b8c995370e796eddcb8741e7388.svn-base b/.svn/pristine/5a/5a6a946b6caa2b8c995370e796eddcb8741e7388.svn-base deleted file mode 100644 index 0012b78..0000000 --- a/.svn/pristine/5a/5a6a946b6caa2b8c995370e796eddcb8741e7388.svn-base +++ /dev/null @@ -1,69 +0,0 @@ - ----- - GSport History - ----- - David Schmidt (david__schmidt at users dot souceforge dot net) - ----- - -GSport Release History - -* Version 0.31 - 6/22/2014 - - New functionality: - - * Added {{{./appletalk.html}AppleTalk}} networking emulation with bridging to EtherTalk - - * Added clipboard text paste capability (OSX, Windows) - - * Emulated serial ports are individually configurable as either - IP or passthrough to real hardware ports - - * Added Imagewriter LQ printer emulation - - [] - - Bug fixes: - - * IN#1 and IN#2 now trigger the incoming IP port to listen when - using IP simulated serial ports; previously, only PR#1 or PR#2 - did - - * Fixed crash when parallel.rom is missing - - * Fix for real joysticks: unless the joystick is moving, gsport - sets the values to zero - - [] - - -* Version 0.2a - 2/29/2012 - - New functionality: - - * Added text-based virtual printer output for all platforms - - * Added OSX drag/drop "installer" disk image (.dmg) - - * Disk images will automatically mount and boot when specified as - the last argument on the command line, or when invoked from the - Windows shell (file->open as GSport.exe) - - [] - - Bug fixes: - - * Win32: Added sound and native printer libraries, mistakenly omitted - - * OSX: Fixed some "endianness" troubles with the fat binaries - - [] - - -* Version 0.1 - 1/6/2011 released as interim build - - New functionality: - - * Added Uthernet support in slot 3. Code comes from the VICE emulator. - - * Added virtual printer support in slot 1. Code comes from DOSBox emulator. - - [] \ No newline at end of file diff --git a/.svn/pristine/5a/5a854ac521f2ef1838194f0af9434e56f0328121.svn-base b/.svn/pristine/5a/5a854ac521f2ef1838194f0af9434e56f0328121.svn-base deleted file mode 100644 index d11233d..0000000 --- a/.svn/pristine/5a/5a854ac521f2ef1838194f0af9434e56f0328121.svn-base +++ /dev/null @@ -1,332 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2013-2014 by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/** This module implements the LLAP port of the bridge. **/ - -#include -#include "../defc.h" -#include "atbridge.h" -#include "port.h" -#include "llap.h" - -typedef enum { - LLAP_DDP_SHORT = 0x01, - LLAP_DDP_LONG = 0x02, - LLAP_ENQ = 0x81, - LLAP_ACK = 0x82, - LLAP_RTS = 0x84, - LLAP_CTS = 0x85 -} LLAP_TYPES; - -const unsigned int LLAP_PACKET_MAX = 603 /* bytes */; -const unsigned int LLAP_PACKET_MIN = 3 /* bytes */; -const double LLAP_IDG = 400 /* microseconds */; -const double LLAP_IFG = 200 /* microseconds */; -const double GAP_TOLERANCE = 4.0; - -static struct packet_port_t llap_port; - -typedef enum { - DIALOG_READY, - DIALOG_GOT_CTS, - DIALOG_WAIT_IDG -} DIALOG_STATE; -static DIALOG_STATE dialog_state; -static double dialog_end_dcycs; -static double last_frame_dcycs; - -void llap_init() -{ - dialog_state = DIALOG_READY; - last_frame_dcycs = 0; - port_init(&llap_port); -} - -void llap_shutdown() -{ - port_shutdown(&llap_port); -} - - -/** Queue one data packet out from the bridge's LLAP port and into the guest. **/ -void llap_enqueue_out(struct packet_t* packet) -{ - // Generate the RTS. - struct packet_t* rts = (struct packet_t*)malloc(sizeof(struct packet_t)); - rts->source.network = packet->source.network; - rts->source.node = packet->source.node; - rts->dest.network = packet->dest.network; - rts->dest.node = packet->dest.node; - rts->size = 0; - rts->data = 0; - rts->type = LLAP_RTS; - enqueue_packet(&llap_port.out, rts); - - // Enqueue the data. - enqueue_packet(&llap_port.out, packet); -} - -struct packet_t* llap_dequeue_in() -{ - return dequeue(&llap_port.in); -} - -static void llap_dump_packet(size_t size, byte data[]) -{ - if (size < LLAP_PACKET_MIN) - atbridge_printf("LLAP short packet.\n"); - else if (size > LLAP_PACKET_MAX) - atbridge_printf("LLAP long packet.\n"); - else - { - at_node_t dest = data[0]; - at_node_t source = data[1]; - LLAP_TYPES type = (LLAP_TYPES)(data[2]); - - const char* typeName = 0; - switch (type) - { - case LLAP_DDP_SHORT: - typeName = "DDP (short)"; - break; - case LLAP_DDP_LONG: - typeName = "DDP (long)"; - break; - case LLAP_ENQ: - typeName = "lapENQ"; - break; - case LLAP_ACK: - typeName = "lapACK"; - break; - case LLAP_RTS: - typeName = "lapRTS"; - break; - case LLAP_CTS: - typeName = "lapCTS"; - break; - } - - if (typeName) - atbridge_printf("LLAP[%d->%d] %s: %d bytes.\n", source, dest, typeName, size); - else - atbridge_printf("LLAP[%d->%d] %x: %d bytes.\n", source, dest, type, size); - - /*for (size_t i = 0; i < size; i++) - atbridge_printf("%02x ", data[i]); - atbridge_printf("\n");*/ - } -} - -/** Reply to a control packet from the GS **/ -static void llap_reply_control(at_node_t dest, at_node_t source, LLAP_TYPES type) -{ - struct at_addr_t dest_addr = { 0, dest }; - struct at_addr_t source_addr = { 0, source }; - - // Insert control packets at the head of the queue contrary to normal FIFO queue operation - // to ensure that control frames arrive in the intended order. - insert(&llap_port.out, dest_addr, source_addr, type, 0, 0); -} - -/** Accept a data packet from the GS. **/ -static void llap_handle_data(size_t size, byte data[]) -{ - at_node_t dest = data[0]; - at_node_t source = data[1]; - LLAP_TYPES type = (LLAP_TYPES)(data[2]); - - const size_t data_size = size - 3; - byte* data_copy = (byte*)malloc(data_size); - memcpy(data_copy, data + 3, data_size); - - struct at_addr_t dest_addr = { 0, dest }; - struct at_addr_t source_addr = { 0, source }; - enqueue(&llap_port.in, dest_addr, source_addr, type, data_size, data_copy); -} - -/** Accept a control packet from the GS. **/ -static void llap_handle_control(size_t size, byte data[]) -{ - at_node_t dest = data[0]; - at_node_t source = data[1]; - LLAP_TYPES type = (LLAP_TYPES)(data[2]); - - struct at_addr_t addr = { atbridge_get_net(), dest }; - - switch (type) - { - case LLAP_ENQ: - // Require the GS to take a valid "client" address not known to be in use. - if (dest > 127 || dest == 0 || atbridge_address_used(&addr)) - llap_reply_control(source, dest, LLAP_ACK); - break; - case LLAP_ACK: - break; - case LLAP_RTS: - if (dest != at_broadcast_node) - // The GS is trying to make a directed transmission. Provide the required RTS/CTS handshake. - // Note that broadcast packets do not require a CTS. - llap_reply_control(source, dest, LLAP_CTS); - break; - case LLAP_CTS: - // The GS sent a CTS. If the bridge has pending data, prepare to deliver the packet. - dialog_state = DIALOG_GOT_CTS; - break; - default: - break; - } -} - -/** Occassionally, we receive an invalid packet from the GS. I'm unsure if this is due to a bug in GS/OS - or, more likely, a bug in the SCC emulation. Regardless, when such a thing does occur, discard the - current, corrupted dialog. Link errors are routine in real LocalTalk networks, and LocalTalk will recover. - **/ -static void llap_reset_dialog() -{ - dialog_state = DIALOG_READY; - last_frame_dcycs = 0; - - // Discard packets until the queue is either empty or the next dialog starts (and dialogs begin with an RTS). - while (true) - { - struct packet_t* packet = queue_peek(&llap_port.out); - - if (packet && (packet->type != LLAP_RTS)) - { - packet = dequeue(&llap_port.out); - if (packet->data) - free(packet->data); - free(packet); - } - else - break; - } -} - -/** Transfer (send) one LLAP packet from the GS. **/ -void llap_enqueue_in(double dcycs, size_t size, byte data[]) -{ - atbridge_printf("<%0.0f> TX: ", dcycs); - llap_dump_packet(size, data); - - if (size < LLAP_PACKET_MIN) - atbridge_printf("ATBridge: Dropping LLAP short packet.\n"); - else if (size > LLAP_PACKET_MAX) - atbridge_printf("ATBridge: Dropping LLAP long packet.\n"); - else - { - last_frame_dcycs = dcycs; - LLAP_TYPES type = (LLAP_TYPES)(data[2]); - - switch (type) - { - case LLAP_DDP_SHORT: - case LLAP_DDP_LONG: - llap_handle_data(size, data); - break; - case LLAP_ENQ: - case LLAP_ACK: - case LLAP_RTS: - case LLAP_CTS: - llap_handle_control(size, data); - break; - default: - // Intentionally check for valid types and ingore packets with invalid types. - // Sometimes, the bridge gets invalid packets from the GS, which tends to break the bridge. - atbridge_printf("ATBridge: Dropping LLAP packet with invalid type.\n"); - llap_reset_dialog(); - } - } -} - -/** Transfer (receive) one LLAP packet to the GS. **/ -void llap_dequeue_out(double dcycs, size_t* size, byte* data[]) -{ - *size = 0; - - // The LocalTalk protocol requires a minimum 400us gap between dialogs (called the IDG). - // If necessary, wait for the IDG. - if (dialog_state == DIALOG_WAIT_IDG) - { - if ((dcycs - dialog_end_dcycs) >= LLAP_IDG) - // The IDG is done. - dialog_state = DIALOG_READY; - else - // Continue waiting for the IDG. - return; - } - // The LocalTalk protocols requires a maximum 200us gap between frames within a dialog (called the IFG). - // If we exceed the IFG, the bridge must be stuck in an incomplete or corrupt dialog. In this case, - // discard the current dialog and try again. - if ((dialog_state != DIALOG_READY) && (last_frame_dcycs != 0) && ((dcycs - last_frame_dcycs) >= (GAP_TOLERANCE*LLAP_IFG))) - { - llap_reset_dialog(); - atbridge_printf("ATBridge: Dialog reset due to IFG violation.\n"); - } - - struct packet_t* packet = queue_peek(&llap_port.out); - - if ((dialog_state == DIALOG_READY) && (packet) && !(packet->type & 0x80) && (last_frame_dcycs != 0) && ((dcycs - last_frame_dcycs) >= (GAP_TOLERANCE*LLAP_IDG))) - { - llap_reset_dialog(); - packet = queue_peek(&llap_port.out); - atbridge_printf("ATBridge: Dialog reset due to IDG violation.\n"); - } - - if (packet && - ((packet->type & 0x80) || /* Pass along control frames without waiting for a CTS. */ - (!(packet->type & 0x80) && (packet->dest.node == at_broadcast_node) && (dialog_state == DIALOG_READY)) || /* Pass along broadcast frames, which don't wait for CTS frames. */ - (!(packet->type & 0x80) && (packet->dest.node != at_broadcast_node) && (dialog_state == DIALOG_GOT_CTS)))) /* Pass along directed frames only after receiving a CTS handshake. */ - { - dequeue(&llap_port.out); - - // Prepend the LLAP header. - *size = packet->size + 3 + 2; - *data = (byte*)malloc(*size); - (*data)[0] = packet->dest.node; - (*data)[1] = packet->source.node; - (*data)[2] = packet->type; - - // Insert the data into the new LLAP packet. - if (*size) - memcpy((*data) + 3, packet->data, packet->size); - - // Fake a frame check sequence (FCS). Since our SCC emulation doesn't actually - // check the FCS, the value of the FCS doesn't matter. - (*data)[packet->size + 3 + 0] = 0xff; - (*data)[packet->size + 3 + 1] = 0xff; - - atbridge_printf("<%0.0f> RX: ", dcycs); - llap_dump_packet(*size, *data); - - if (packet->type & 0x80) - dialog_state = DIALOG_READY; - else - { - // This was the last packet in the dialog. - dialog_state = DIALOG_WAIT_IDG; - dialog_end_dcycs = dcycs; - } - - last_frame_dcycs = dcycs; - - free(packet->data); - free(packet); - } -} diff --git a/.svn/pristine/5c/5c0ba5c2884d38da9b5263947325a1c5bdadb8ac.svn-base b/.svn/pristine/5c/5c0ba5c2884d38da9b5263947325a1c5bdadb8ac.svn-base deleted file mode 100644 index 1c12228..0000000 --- a/.svn/pristine/5c/5c0ba5c2884d38da9b5263947325a1c5bdadb8ac.svn-base +++ /dev/null @@ -1,66 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/.svn/pristine/5c/5ca7bc756e0e7a7b4ee973b954cded5572ef98df.svn-base b/.svn/pristine/5c/5ca7bc756e0e7a7b4ee973b954cded5572ef98df.svn-base deleted file mode 100644 index f40907f..0000000 --- a/.svn/pristine/5c/5ca7bc756e0e7a7b4ee973b954cded5572ef98df.svn-base +++ /dev/null @@ -1,58 +0,0 @@ -//{{NO_DEPENDENCIES}} -// $Id: $ -// Microsoft Developer Studio generated include file. -// Used by win32.rc -// -#define CREATEPROCESS_MANIFEST 1 -#define IDD_ABOUT_DIALOG 101 -#define IDC_GSPORT32 102 -#define IDR_TOOLBAR 103 -#define IDD_DLG_DISKCONF 104 -#define IDR_ACCEL 105 -#define IDD_GSPORT32_KEY 106 -#define ID_TOOLBAR 5000 -#define ID_STATUSBAR 5001 -#define IDC_EDIT_S5D1 10051 -#define IDC_EDIT_S5D2 10052 -#define IDC_EDIT_S6D1 10061 -#define IDC_EDIT_S6D2 10062 -#define IDC_EDIT_S7D1 10071 -#define IDC_EDIT_S7D2 10072 -#define IDC_BTN_S5D1 11051 -#define IDC_BTN_S5D2 11052 -#define IDC_BTN_S6D1 11061 -#define IDC_BTN_S6D2 11062 -#define IDC_BTN_S7D1 11071 -#define IDC_BTN_S7D2 11072 -#define ID_HELP_ABOUT 40001 -#define ID_FILE_EXIT 40002 -#define ID_FILE_DISK 40003 -#define ID_FILE_SENDRESET 40004 -#define ID_FILE_JOYSTICK 40005 -#define ID_FILE_DEBUGSTAT 40006 -#define ID_FILE_FULLSCREEN 40012 -#define ID_FILE_SPEED 40013 -#define ID_HELP_KEY 40014 -#define ID_FILE_SENDREBOOT 40007 -#define ID_FILE_FLUSHPRINTER 40017 -#define ID_SPEED_1MHZ 50001 -#define ID_SPEED_2MHZ 50002 -#define ID_SPEED_8MHZ 50003 -#define ID_SPEED_FMHZ 50004 -#define IDD_SPEEDDIALOG 117 -#define IDC_SLOW 1007 -#define IDC_CUSTOM 1008 -#define IDC_EDITCUSTOM 1009 -#define IDC_NORMAL 1010 -#define IDC_FASTEST 1011 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 111 -#define _APS_NEXT_COMMAND_VALUE 40013 -#define _APS_NEXT_CONTROL_VALUE 1003 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/.svn/pristine/5d/5d39d4d908174b5efe3da54f2722ce4facde33e0.svn-base b/.svn/pristine/5d/5d39d4d908174b5efe3da54f2722ce4facde33e0.svn-base deleted file mode 100644 index 74dc5cf..0000000 --- a/.svn/pristine/5d/5d39d4d908174b5efe3da54f2722ce4facde33e0.svn-base +++ /dev/null @@ -1,48 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include -#include "gsportos2.h" - -ICON ID_WINDOW gsportos2.ico - -BITMAP ID_BITMAP gsportos2.bmp - -MENU ID_WINDOW PRELOAD -BEGIN - SUBMENU "~Options", ID_OPTIONS - BEGIN - MENUITEM "Option ~1\tCtrl+A", ID_OPTION1, MIS_TEXT - MENUITEM "Option ~2\tCtrl+B", ID_OPTION2, MIS_TEXT - MENUITEM "Option ~3\tCtrl+C", ID_OPTION3, MIS_TEXT - END -END - -ACCELTABLE ID_WINDOW PRELOAD -BEGIN - VK_F3, ID_EXITPROG, VIRTUALKEY -END - -STRINGTABLE PRELOAD -BEGIN - IDS_HELLO, "Hello" -END - \ No newline at end of file diff --git a/.svn/pristine/5e/5eb04f0bf59c91aeb61aea1ed1075aca0200c185.svn-base b/.svn/pristine/5e/5eb04f0bf59c91aeb61aea1ed1075aca0200c185.svn-base deleted file mode 100644 index 6b4a7f8..0000000 --- a/.svn/pristine/5e/5eb04f0bf59c91aeb61aea1ed1075aca0200c185.svn-base +++ /dev/null @@ -1,123 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#define MAX_TRACKS (2*80) -#define MAX_C7_DISKS 32 - -#define NIB_LEN_525 0x1900 /* 51072 bits per track */ -#define NIBS_FROM_ADDR_TO_DATA 20 - -#define DSK_TYPE_PRODOS 0 -#define DSK_TYPE_DOS33 1 -#define DSK_TYPE_NIB 2 - -typedef struct _Disk Disk; - -STRUCT(Trk) { - Disk *dsk; - byte *nib_area; - int track_dirty; - int overflow_size; - int track_len; - int unix_pos; - int unix_len; -}; - -struct _Disk { - double dcycs_last_read; - char *name_ptr; - char *partition_name; - int partition_num; - FILE *file; - int force_size; - int image_start; - int image_size; - int smartport; - int disk_525; - int drive; - int cur_qtr_track; - int image_type; - int vol_num; - int write_prot; - int write_through_to_unix; - int disk_dirty; - int just_ejected; - int last_phase; - int nib_pos; - int num_tracks; - Trk *trks; -}; - - -STRUCT(Iwm) { - Disk drive525[2]; - Disk drive35[2]; - Disk smartport[MAX_C7_DISKS]; - int motor_on; - int motor_off; - int motor_off_vbl_count; - int motor_on35; - int head35; - int step_direction35; - int iwm_phase[4]; - int iwm_mode; - int drive_select; - int q6; - int q7; - int enable2; - int reset; - - word32 previous_write_val; - int previous_write_bits; -}; - - -STRUCT(Driver_desc) { - word16 sig; - word16 blk_size; - word32 blk_count; - word16 dev_type; - word16 dev_id; - word32 data; - word16 drvr_count; -}; - -STRUCT(Part_map) { - word16 sig; - word16 sigpad; - word32 map_blk_cnt; - word32 phys_part_start; - word32 part_blk_cnt; - char part_name[32]; - char part_type[32]; - word32 data_start; - word32 data_cnt; - word32 part_status; - word32 log_boot_start; - word32 boot_size; - word32 boot_load; - word32 boot_load2; - word32 boot_entry; - word32 boot_entry2; - word32 boot_cksum; - char processor[16]; - char junk[128]; -}; diff --git a/.svn/pristine/60/6076211cc01560645bc07f69bcf8ebcd67a3e7ea.svn-base b/.svn/pristine/60/6076211cc01560645bc07f69bcf8ebcd67a3e7ea.svn-base deleted file mode 100644 index a731291793c23d34ae368eb5e3ee58810d138b59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10401 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 diff --git a/.svn/pristine/61/61a1064ff9a25e013319f42828119d3338b7db18.svn-base b/.svn/pristine/61/61a1064ff9a25e013319f42828119d3338b7db18.svn-base deleted file mode 100644 index 6591edb..0000000 --- a/.svn/pristine/61/61a1064ff9a25e013319f42828119d3338b7db18.svn-base +++ /dev/null @@ -1,6 +0,0 @@ -s@\@Get GSport at SourceForge.net. Fast, secure and Free Open Source software downloads@ig;s@\Built by Maven\@

@ig; -s@href="http://sourceforge.net/projects/gsport/files/"@href="http://sourceforge.net/projects/gsport/files/" target\="_new"@ig; -s@\@\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 diff --git a/.svn/pristine/97/97d0a5c9d3643c8e08971f45b3763b2b65846145.svn-base b/.svn/pristine/97/97d0a5c9d3643c8e08971f45b3763b2b65846145.svn-base deleted file mode 100644 index 3df9eb4..0000000 --- a/.svn/pristine/97/97d0a5c9d3643c8e08971f45b3763b2b65846145.svn-base +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh - -# mkdmg.sh - makes an OSX disk image from directory contents -# From Philip Weaver: http://www.informagen.com/JarBundler/DiskImage.html - -BASE="$1" -SRC="$2" -DEST="$3" -VOLUME="$4" -MEGABYTES="$5" - -echo Base Directory $1 -echo Source $2 -echo Destination $3 -echo Volume $4 -echo Megabytes $5 - -TEMP="TEMPORARY" - -cd $BASE - -hdiutil create -megabytes $MEGABYTES $DEST$TEMP.dmg -layout NONE -MY_DISK=`hdid -nomount $DEST$TEMP.dmg` -newfs_hfs -v $VOLUME $MY_DISK -rm -rf /Volumes/$VOLUME/.Trashes -rm -rf /Volumes/$VOLUME/.fseventsd -hdiutil eject $MY_DISK -hdid $DEST$TEMP.dmg -chflags -R nouchg,noschg "$SRC" -ditto -rsrcFork -v "$SRC" "/Volumes/$VOLUME" - -mypwd=`pwd` -mkdir "/Volumes/$VOLUME/.background" -cp ./src/arch/mac/GSportMacInstallBackground.png "/Volumes/$VOLUME/.background/background.png" -cp ./src/arch/mac/GSportDMG.icns "/Volumes/$VOLUME/.VolumeIcon.icns" -SetFile -c icns "/Volumes/$VOLUME/.VolumeIcon.icns" -SetFile -a C /Volumes/$VOLUME -./lib/arch/mac/setfileicon ./src/arch/mac/GSportFolder.icns /Volumes/$VOLUME/$VOLUME - -echo ' - tell application "Finder" - tell disk "'${VOLUME}'" - open - set current view of container window to icon view - set toolbar visible of container window to false - set statusbar visible of container window to false - set the bounds of container window to {400, 100, 723, 305} - set theViewOptions to the icon view options of container window - set arrangement of theViewOptions to not arranged - set icon size of theViewOptions to 72 - set background picture of theViewOptions to file ".background:background.png" - make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"} - set position of item "'${VOLUME}'" of container window to {83, 101} - set position of item "Applications" of container window to {242, 101} - update without registering applications - close - open - delay 5 - end tell - end tell -' | osascript - - -hdiutil eject $MY_DISK -hdiutil convert -format UDCO $DEST$TEMP.dmg -o $DEST$VOLUME.dmg -hdiutil internet-enable -yes $DEST$VOLUME.dmg -mv $DEST$VOLUME.dmg $DEST.dmg -rm $DEST$TEMP.dmg diff --git a/.svn/pristine/97/97d8fa3d4bfb38e01463049e501ba0eebc65396f.svn-base b/.svn/pristine/97/97d8fa3d4bfb38e01463049e501ba0eebc65396f.svn-base deleted file mode 100644 index 0b68c5e..0000000 --- a/.svn/pristine/97/97d8fa3d4bfb38e01463049e501ba0eebc65396f.svn-base +++ /dev/null @@ -1,159 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2013 - 2014 by GSport contributors - Originally authored by Christopher Mason - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* This is an interface between the SCC emulation and the Virtual Imagewriter. */ - -#include "defc.h" -#include "scc.h" -#include "imagewriter.h" -extern Scc scc_stat[2]; -extern word32 g_vbl_count; - -extern int g_imagewriter; -extern int g_imagewriter_dpi; -extern char* g_imagewriter_output; -extern int g_imagewriter_multipage; -extern int g_imagewriter_timeout; -extern int g_imagewriter_paper; -extern int g_imagewriter_banner; - -word32 imagewriter_vbl_count = 0; -int imagewriter_port_block = 0; -int iw_scc_write = 0; - -int scc_imagewriter_init(int port) -{ - Scc *scc_ptr; - scc_ptr = &(scc_stat[port]); - imagewriter_init(g_imagewriter_dpi,g_imagewriter_paper,g_imagewriter_banner,g_imagewriter_output,g_imagewriter_multipage); - scc_ptr->state = 4; - return 4; -} - -/** Transfer data from Imagewriter to the SCC **/ -void scc_imagewriter_fill_readbuf(int port, int space_left, double dcycs) -{ - if (iw_scc_write) - { - size_t bytes_read; - size_t i; - byte data[9]; - if (g_imagewriter == 1) - { - //Imagewriter LQ self ID string. Tell machine we have a color ribbon and sheet feeder installed. - data[0] = 0; //Start bit - data[1] ='L'; //Printer type is Imagewriter LQ - data[2] ='Q'; //(cont) - data[3] ='1'; //15 inch carriage width - data[4] ='C'; //Color ribbon installed - data[5] ='F'; //Sheet feeder installed, no envelope attachment - data[6] ='1'; //Number of sheet feeder bins - data[7] = 0x0D; //CR terminates string - data[8] = 0; //Stop bit - bytes_read = 9; - } - else - { - //Imagewriter II self ID string. Tell machine we have a color ribbon and sheet feeder installed. - data[0] = 0; //Start bit - data[1] ='I'; //Printer type is Imagewriter II - data[2] ='W'; //(cont) - data[3] ='1'; //10 inch carriage width - data[4] ='0'; //(cont) - data[5] ='C'; //Color ribbon installed - data[6] ='F'; //Sheet feeder installed - data[7] = 0; //Stop bit - bytes_read = 8; - } - for(i = 0; i < bytes_read; i++) { - scc_add_to_readbuf(port, data[i], dcycs); - } - iw_scc_write = 0; - } -} - -/** Transfer data from the SCC to the Imagewriter. **/ -void scc_imagewriter_empty_writebuf(int port, double dcycs) -{ - Scc* scc_ptr; - - int rdptr; - int wrptr; - int len; - int done; - //int ret; - unsigned long bytes_written; - - scc_ptr = &(scc_stat[port]); - done = 0; - while(!done) { - rdptr = scc_ptr->out_rdptr; - wrptr = scc_ptr->out_wrptr; - if(rdptr == wrptr) { - //printf("...rdptr == wrptr\n"); - done = 1; - break; - } - len = wrptr - rdptr; - if(len < 0) { - len = SCC_OUTBUF_SIZE - rdptr; - } - if(len > 32) { - len = 32; - } - if(len <= 0) { - done = 1; - break; - } - bytes_written = 1; - imagewriter_port_block = 1; - imagewriter_loop(scc_ptr->out_buf[rdptr]); - imagewriter_vbl_count = g_vbl_count+(g_imagewriter_timeout*60); - imagewriter_port_block = 0; - //printf("Write Imagewriter ret: %d, bytes_written:%d, len:%d\n", ret, - //(int)bytes_written, len); - - if((bytes_written == 0)) { - done = 1; - break; - } else { - rdptr = rdptr + bytes_written; - if(rdptr >= SCC_OUTBUF_SIZE) { - rdptr = rdptr - SCC_OUTBUF_SIZE; - } - scc_ptr->out_rdptr = rdptr; - } - } -} - -//This function handles the automatic timeout of the virtual printer if an -//application doesn't send a form feed at the end of the page. It also -//allows multipage mode Postscript and native printer documents to -//print somewhat how a regular application would. -void imagewriter_update() -{ - if (imagewriter_port_block != 1 && imagewriter_vbl_count != 0 && g_vbl_count >= imagewriter_vbl_count) - { - printf("Calling imagewriter_update and flushing!\n"); - imagewriter_feed(); - imagewriter_vbl_count = 0; - } - return; -} \ No newline at end of file diff --git a/.svn/pristine/98/9828bf465d17d5375352e7fbba2f215950960286.svn-base b/.svn/pristine/98/9828bf465d17d5375352e7fbba2f215950960286.svn-base deleted file mode 100644 index 77acb1e..0000000 --- a/.svn/pristine/98/9828bf465d17d5375352e7fbba2f215950960286.svn-base +++ /dev/null @@ -1,165 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2013 - 2014 by GSport contributors - Originally authored by Peter Neubauer - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* This is an interface between the SCC emulation and the LAP bridge. */ - -#include -#include "defc.h" -#include "scc.h" - -int g_appletalk_bridging; -int g_appletalk_turbo = 0; -int g_appletalk_diagnostics = 0; -int g_appletalk_network_hint = 0; - -#ifdef HAVE_ATBRIDGE -#include "atbridge/atbridge.h" -#include "atbridge/llap.h" - -extern Scc scc_stat[2]; - -extern int g_config_gsport_update_needed; -static bool bridge_initialized = false; - -void scc_llap_init() -{ - atbridge_set_diagnostics(g_appletalk_diagnostics); - bridge_initialized = atbridge_init(); - atbridge_set_net(g_appletalk_network_hint); -} - -void scc_llap_set_node(byte val) -{ - atbridge_set_node(val); -} - -void scc_llap_update() -{ - if (bridge_initialized) - { - atbridge_process(); - - // Save the AppleTalk network number. Since the network number does not - // change very often, this will slightly improve startup time. - if (g_appletalk_network_hint != atbridge_get_net()) - { - g_appletalk_network_hint = atbridge_get_net(); - g_config_gsport_update_needed = 1; - } - } -} - -/** Transfer one packet from the bridge to the SCC **/ -void scc_llap_fill_readbuf(int port, int space_left, double dcycs) -{ - atbridge_set_diagnostics(g_appletalk_diagnostics); - - byte* data; - - if (!bridge_initialized) - return; - - data = NULL; - size_t bytes_read; - size_t i; - - llap_dequeue_out(dcycs, &bytes_read, &data); - - for(i = 0; i < bytes_read; i++) { - scc_add_to_readbuf(port, data[i], dcycs); - } - - free(data); - - // Normally, the bridge updates from the 60 Hz loop, but that alone bottlenecks network throughput. - scc_llap_update(); -} - -/** Transfer one packet from the SCC to the AppleTalk bridge. **/ -void scc_llap_empty_writebuf(int port, double dcycs) -{ - atbridge_set_diagnostics(g_appletalk_diagnostics); - - Scc* scc_ptr; - - if (!bridge_initialized) - return; - - int rdptr; - int wrptr; - int len; - - scc_ptr = &(scc_stat[port]); - - // If there's data in the output buffer, send it. - rdptr = scc_ptr->out_rdptr; - wrptr = scc_ptr->out_wrptr; - if(rdptr == wrptr) - return; - - len = wrptr - rdptr; - if (len < 0) - { - // The data is not contiguous since it wraps around the end of the buffer. - // But, this should never happen since this function always empties the entire - // buffer, and the buffer is large enough to hold the maximum packet size. - halt_printf("SCC LLAP: Unexpected non-contiguous data. Dropping packet.\n"); - } - else - { - // The data is contiguous, so read the data directly from the buffer. - llap_enqueue_in(dcycs, len, &scc_ptr->out_buf[rdptr]); - } - - // Remove the sent data from the output buffer. Since the buffer contains - // one complete packet, always send all of the data. - scc_ptr->out_rdptr = 0; - scc_ptr->out_wrptr = 0; - - // Latch EOM to indicate that the SCC has sent the message. - // The timing will be a bit off from the real hardware since we're not - // emulating the sending hardware timing and CRC generation. - scc_ptr->eom = 1; - - // Normally, the bridge updates from the 60 Hz loop, but that alone bottlenecks network throughput. - scc_llap_update(); -} - -#else -void scc_llap_init() -{ -} - -void scc_llap_set_node(byte val) -{ -} - -void scc_llap_update() -{ -} - -void scc_llap_fill_readbuf(int port, int space_left, double dcycs) -{ -} - -void scc_llap_empty_writebuf(int port, double dcycs) -{ -} -#endif \ No newline at end of file diff --git a/.svn/pristine/98/986c7da626079598ab212c8d36259367a213d2c9.svn-base b/.svn/pristine/98/986c7da626079598ab212c8d36259367a213d2c9.svn-base deleted file mode 100644 index 5d727be..0000000 --- a/.svn/pristine/98/986c7da626079598ab212c8d36259367a213d2c9.svn-base +++ /dev/null @@ -1,109 +0,0 @@ - ----- - GSport AppleTalk - ----- - Peter Neubauer - ----- - -AppleTalk Emulation and Bridging for GSport - - GSport now emulates the AppleTalk networking hardware found in the real Apple IIgs and bridges the networking packets to EtherTalk v2. GSport supports file -sharing, printer sharing, and network booting features using Apple's original AppleTalk software, such as that shipped with GS/OS 6.0.1. Note that the -original AppleTalk software is not directly compatible with modern software, and you will need a compatible file server, such as netatalk or A2SERVER. - -* Introduction - - The Apple IIgs shipped with a fantastic but often overlooked feature -- AppleTalk networking. AppleTalk is a low-cost, easy-to-maintain network technology that -enables network booting, file sharing, and printer sharing between your Apple IIgs, Workstation Card equipped Apple IIe, and classic Macintosh machines. As of -March 2014, GSport is the first modern emulator with support for AppleTalk. Now, you can just "drag and drop" files between your machines without thinking about -disk images, FTP, or serial cables. You can develop new software with an emulator and quickly test on real hardware. You don't need to think much about version -control. Rather, you can update the file once on your file server, and all of your emulated and real machines have the new file. You can download the latest -Apple II software and immediately run it. - - Beware that Apple changed the meaning of the word "AppleTalk." Originally, AppleTalk implied a physical layer using 3-pin MiniDIN shielded cables connected in a -bus topology. As other physical layers such as Ethernet and TokenTalk became more affordable, Apple defined new terms. The term AppleTalk no longer implied -MiniDIN cabling. Rather, AppleTalk became the overall term for Apple's approach to networking. LocalTalk refers to AppleTalk using the original MiniDIN physical -and link layers. EtherTalk refers to AppleTalk using the Ethernet link and physical layers. TokenTalk refers to AppleTalk using the TokenRing link and physical -layers. As the Internet became popular, Apple revised their approach to networking to use TCP/IP for the network and transport layers. The "Internet modernized" -AppleTalk (AppleTalk IP) replaces many key services of the older AppleTalk and is incompatible with the previous incarnation of AppleTalk. The IIgs only supports -AppleTalk using LocalTalk. The GSport emulation converts LocalTalk to EtherTalk but does <> support AppleTalk over IP. - -* Using It - - First, you need an AppleShare-compatible server. A classic Mac or "netatalk" server could provide this function. For simplicity, I recommend Ivan Drucker's -A2SERVER ({{{http://appleii.ivanx.com/a2server/}http://appleii.ivanx.com/a2server/}}), which is a pre-configured and easy-to-use package with "netatalk" and other useful tools. You may run A2SERVER in -a VirtualBox virtual machine, on an existing Linux server, or on a Raspberry Pi. File and print sharing functions built-in to modern computers are not directly -compatible. - - Second, you need GSport 0.3 or later with ROM03 running on a Windows or Linux (x86 or Raspberry Pi) machine. Start GSport and press F4 to access the configuration -menu. If necessary, select a ROM03 image. Select the "Ethernet Card Configuration" menu option. Change "AppleTalk Bridging" to "On". Change "Use Interface -Number" to select the network where you have attached your AppleShare server or A2SERVER. Exit the GSport configuration menu. - - You may run GSport and netatalk (or A2SERVER) on the same machine: - - On Windows: - - [[]] Configure A2SERVER in a VirtualBox virtual machine. The A2SERVER project provides a pre-configured virtual machine as well as manual installation directions. - - [[]] Install the "Microsoft Loopback Adapter" following directions from Microsoft. - See {{{http://blogs.msdn.com/b/ukvsts/archive/2009/02/27/adding-the-ms-loopback-adapter-on-windows-7.aspx}http://blogs.msdn.com/b/ukvsts/archive/2009/02/27/adding-the-ms-loopback-adapter-on-windows-7.aspx}} and - {{{http://technet.microsoft.com/en-us/library/cc708322%28v=ws.10%29.aspx}http://technet.microsoft.com/en-us/library/cc708322%28v=ws.10%29.aspx}}. - - [[]] In the VirtualBox Manager, open "Settings" for the A2SERVER virtual machine. Select the "Network" section. Change the "Attached to" option to "Bridged Adapter" - and "Name" to "Microsoft Loopback Adapter". Under the "Advanced" sub-section, make sure "Promiscuous Mode" is "Allow All". - - [[]] Restart A2SERVER. - - [[]] Restart GSport. Under the "Ethernet Card Configuration" menu, change "Use Interface Number" to select the "MS LoopBack Driver". - - On Linux: - - (Directions are forthcoming.) - - Finally, party like it is 1989. Your GS is now connected to the AppleTalk network. Refer to Apple's documentation included with GS/OS System 5 and 6 for further -directions. - -* Internal Overview - - GSport with AppleTalk networking is functionally equivalent to a real Apple IIgs with a LocalTalk/EtherTalk bridge. Originally, AppleTalk employed the "LocalTalk" -physical layer, which requires special hardware not found on modern computers. GSport converts LocalTalk to EtherTalk, a somewhat more modern physical layer using -familiar Ethernet cabling. Internally, GSport emulates the Zilog SCC chip in the IIgs, communicates with unmodified Apple-provided networking software built-in to -the IIgs and GS/OS, and converts the network traffic to EtherTalk. - -* Limitations - - * The IIgs hardware and GSport only support AppleTalk using LocalTalk. Neither are compatible with file or print sharing functions in modern computers. Instead, -run a compatible network server, such as A2SERVER, Netatalk 2.x, or AppleShare. - - * A wireless network may not work because many wireless adapters drop EtherTalk packets. Instead, use a wired Ethernet connection. - - * AppleTalk bridging has been tested with System 6.0.1 and System 5.0.2 on ROM03. Booting from a local disk or from the network works. Other ROM revisions and -system software may not work. - - * The SCC baud rate is incorrect because the GSport does not emulate line coding. Still, emulated network speed should be close to the 230.4kbps speed of a real -LocalTalk network. - - * The bridge supports Windows using Visual Studio, Cygwin, and Linux (x86 and Raspberry Pi). Other platforms should be straightforward, but I do not have a suitable -build environment. - - * The bridge requires an AppleTalk router on the network. The bridge should work in both a routerless and router-filled network, and future revisions will remove -this limitation. - - * The bridge works with simple networks consisting of a single network on a single segment with a single zone. The bridge should function with all valid network -configurations and hardware routers, and future revisions will remove this limitation. Other configurations might not work, and I welcome reports. - - * The bridge implements the non-extended method for acquiring the network number. Interoperability would likely be better using the extended method, but this method -is much more complex. - -* Credits - - Thanks to Gursharan Sidhu, Richard Andrews, and Alan Oppenheimer for creating and documenting AppleTalk. - - Thanks to Kent Dickey and the GSport contributors for GSport and the original SCC emulation. - - Thanks to David Schmenk for testing, encouragement, and Raspberry Pi support. - - Thanks to Ivan Drucker for A2SERVER. - - Thanks to the Gus emulator engineers for showing that AppleTalk emulation is possible. - - Thanks to James Littlejohn for discussions about extending the capabilities of the Apple IIgs. \ No newline at end of file diff --git a/.svn/pristine/99/992c6f9541880b4f17f5e8c44beaf7a9173e83a1.svn-base b/.svn/pristine/99/992c6f9541880b4f17f5e8c44beaf7a9173e83a1.svn-base deleted file mode 100644 index d9a98f9..0000000 --- a/.svn/pristine/99/992c6f9541880b4f17f5e8c44beaf7a9173e83a1.svn-base +++ /dev/null @@ -1,3426 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2014 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" -#include -#include "config.h" -#include "imagewriter.h" -#if defined(__OS2__) -#include "arch\os2\src\dirport.h" -#elif defined(_MSC_VER) -#include "arch\win32\dirent-win32.h" -#else -#include -#endif - -#ifdef HAVE_TFE -#include "tfe/tfesupp.h" -#include "tfe/protos_tfe.h" -#endif - -#if defined _MSC_VER -#include -#define snprintf _snprintf -typedef unsigned int mode_t; -#endif - -extern int Verbose; -extern word32 g_vbl_count; -extern Iwm iwm; - -extern int g_track_bytes_35[]; -extern int g_track_nibs_35[]; -extern int g_c031_disk35; - -extern int g_cur_a2_stat; -extern byte *g_slow_memory_ptr; -extern byte *g_rom_fc_ff_ptr; -extern byte *g_rom_cards_ptr; -extern double g_cur_dcycs; -extern int g_rom_version; -extern int g_fatal_log; - -extern word32 g_adb_repeat_vbl; - -extern int halt_sim; -extern int g_limit_speed; -extern int g_force_depth; -extern int g_serial_type[]; -extern int g_serial_out_masking; -extern int g_serial_modem[]; -extern word32 g_mem_size_base; -extern word32 g_mem_size_exp; -extern int g_video_line_update_interval; -extern int g_video_extra_check_inputs; -extern int g_user_halt_bad; -extern int g_joystick_type; -extern int g_joystick_scale_factor_x; -extern int g_joystick_scale_factor_y; -extern int g_joystick_trim_amount_x; -extern int g_joystick_trim_amount_y; -extern int g_swap_paddles; -extern int g_invert_paddles; -extern int g_ethernet; -extern int g_ethernet_interface; -extern int g_appletalk_bridging; -extern int g_appletalk_turbo; -extern int g_appletalk_diagnostics; -extern int g_appletalk_network_hint; -extern int g_parallel; -extern int g_parallel_out_masking; -extern int g_printer; -extern int g_printer_dpi; -extern char* g_printer_output; -extern int g_printer_multipage; -extern char* g_printer_font_roman; -extern char* g_printer_font_sans; -extern char* g_printer_font_prestige; -extern char* g_printer_font_courier; -extern char* g_printer_font_script; -extern char* g_printer_font_ocra; -extern int g_printer_timeout; - -extern int g_imagewriter; -extern int g_imagewriter_dpi; -extern char* g_imagewriter_output; -extern int g_imagewriter_multipage; -extern int g_imagewriter_timeout; -extern char* g_imagewriter_fixed_font; -extern char* g_imagewriter_prop_font; -extern int g_imagewriter_paper; -extern int g_imagewriter_banner; - -#if defined(_WIN32) || defined(__CYGWIN__) -extern int g_win_show_console_request; -extern int g_win_status_debug_request; -#endif - -extern int g_screen_index[]; -extern word32 g_full_refresh_needed; -extern word32 g_a2_screen_buffer_changed; -extern int g_a2_new_all_stat[]; -extern int g_new_a2_stat_cur_line; -extern byte g_bram[2][256]; -extern byte* g_bram_ptr; -extern byte g_temp_boot_slot; -extern byte g_orig_boot_slot; - -extern int g_key_down; -extern const char g_gsport_version_str[]; -int g_config_control_panel = 0; -char g_config_gsport_name[1024]; -char g_cfg_cwd_str[CFG_PATH_MAX] = { 0 }; - -int g_config_gsport_auto_update = 1; -int g_config_gsport_update_needed = 0; - -const char *g_config_gsport_name_list[] = { - "config.txt", "config.gsport", "gsport_conf", ".config.gsport", 0 -}; - -int g_highest_smartport_unit = -1; -int g_reparse_delay = 0; -int g_user_page2_shadow = 1; - -byte g_save_text_screen_bytes[0x800]; -int g_save_cur_a2_stat = 0; -char g_cfg_printf_buf[CFG_PRINTF_BUFSIZE]; -char g_config_gsport_buf[CONF_BUF_LEN]; - -word32 g_cfg_vbl_count = 0; - -int g_cfg_curs_x = 0; -int g_cfg_curs_y = 0; -int g_cfg_curs_inv = 0; -int g_cfg_curs_mousetext = 0; -int g_cfg_triggeriwreset = 0; - -#define CFG_MAX_OPTS 16 -#define CFG_OPT_MAXSTR 100 - -int g_cfg_opts_vals[CFG_MAX_OPTS]; -char g_cfg_opts_strs[CFG_MAX_OPTS][CFG_OPT_MAXSTR]; -char g_cfg_opts_strvals[CFG_MAX_OPTS][CFG_OPT_MAXSTR]; -char g_cfg_opt_buf[CFG_OPT_MAXSTR]; - -char *g_cfg_rom_path = "ROM"; -char *g_cfg_file_def_name = "Undefined"; -char **g_cfg_file_strptr = 0; -int g_cfg_file_min_size = 1024; -int g_cfg_file_max_size = 2047*1024*1024; - -#define MAX_PARTITION_BLK_SIZE 65536 - -extern Cfg_menu g_cfg_main_menu[]; - -#define KNMP(a) &a, #a, 0 - -Cfg_menu g_cfg_disk_menu[] = { -{ "Disk Configuration", g_cfg_disk_menu, 0, 0, CFGTYPE_MENU }, -{ "s5d1 = ", 0, 0, 0, CFGTYPE_DISK + 0x5000 }, -{ "s5d2 = ", 0, 0, 0, CFGTYPE_DISK + 0x5010 }, -{ "", 0, 0, 0, 0 }, -{ "s6d1 = ", 0, 0, 0, CFGTYPE_DISK + 0x6000 }, -{ "s6d2 = ", 0, 0, 0, CFGTYPE_DISK + 0x6010 }, -{ "", 0, 0, 0, 0 }, -{ "s7d1 = ", 0, 0, 0, CFGTYPE_DISK + 0x7000 }, -{ "s7d2 = ", 0, 0, 0, CFGTYPE_DISK + 0x7010 }, -{ "s7d3 = ", 0, 0, 0, CFGTYPE_DISK + 0x7020 }, -{ "s7d4 = ", 0, 0, 0, CFGTYPE_DISK + 0x7030 }, -{ "s7d5 = ", 0, 0, 0, CFGTYPE_DISK + 0x7040 }, -{ "s7d6 = ", 0, 0, 0, CFGTYPE_DISK + 0x7050 }, -{ "s7d7 = ", 0, 0, 0, CFGTYPE_DISK + 0x7060 }, -{ "s7d8 = ", 0, 0, 0, CFGTYPE_DISK + 0x7070 }, -{ "s7d9 = ", 0, 0, 0, CFGTYPE_DISK + 0x7080 }, -{ "s7d10 = ", 0, 0, 0, CFGTYPE_DISK + 0x7090 }, -{ "s7d11 = ", 0, 0, 0, CFGTYPE_DISK + 0x70a0 }, -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; - -// OG Use define instead of const for joystick_types -#define STRINGIFY(x) #x -#define TOSTRING(x) STRINGIFY(x) - -Cfg_menu g_cfg_joystick_menu[] = { -{ "Joystick Configuration", g_cfg_joystick_menu, 0, 0, CFGTYPE_MENU }, -{ "Joystick Emulation,"TOSTRING(JOYSTICK_TYPE_KEYPAD)",Keypad Joystick,"TOSTRING(JOYSTICK_TYPE_MOUSE)",Mouse Joystick,"TOSTRING(JOYSTICK_TYPE_NATIVE_1)",Native Joystick 1," - TOSTRING(JOYSTICK_TYPE_NATIVE_2)",Native Joystick 2,"TOSTRING(JOYSTICK_TYPE_NONE)",No Joystick", KNMP(g_joystick_type), CFGTYPE_INT }, -{ "Joystick Scale X,0x100,Standard,0x119,+10%,0x133,+20%," - "0x150,+30%,0xb0,-30%,0xcd,-20%,0xe7,-10%", - KNMP(g_joystick_scale_factor_x), CFGTYPE_INT }, -{ "Joystick Scale Y,0x100,Standard,0x119,+10%,0x133,+20%," - "0x150,+30%,0xb0,-30%,0xcd,-20%,0xe7,-10%", - KNMP(g_joystick_scale_factor_y), CFGTYPE_INT }, -{ "Joystick Trim X", KNMP(g_joystick_trim_amount_x), CFGTYPE_INT }, -{ "Joystick Trim Y", KNMP(g_joystick_trim_amount_y), CFGTYPE_INT }, -{ "Swap Joystick X and Y,0,Normal operation,1,Paddle 1 and Paddle 0 swapped", - KNMP(g_swap_paddles), CFGTYPE_INT }, -{ "Invert Joystick,0,Normal operation,1,Left becomes right and up becomes down", - KNMP(g_invert_paddles), CFGTYPE_INT }, -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; - -Cfg_menu g_cfg_rom_menu[] = { -{ "ROM File Selection", g_cfg_rom_menu, 0, 0, CFGTYPE_MENU }, -{ "ROM File", KNMP(g_cfg_rom_path), CFGTYPE_FILE }, -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; - -Cfg_menu g_cfg_serial_menu[] = { -{ "Serial Port Configuration", g_cfg_serial_menu, 0, 0, CFGTYPE_MENU }, -#ifdef HAVE_SDL -{ "Port 0 (slot 1),0,Only use socket 6501,1,Use real port if avail,2,Virtual ImageWriter", - KNMP(g_serial_type[0]), CFGTYPE_INT }, -{ "Port 1 (slot 2),0,Only use socket 6502,1,Use real port if avail,2,Virtual ImageWriter", - KNMP(g_serial_type[1]), CFGTYPE_INT }, -#else -{ "Port 0 (slot 1),0,Only use socket 6501,1,Use real port if avail", - KNMP(g_serial_type[0]), CFGTYPE_INT }, -{ "Port 1 (slot 2),0,Only use socket 6502,1,Use real port if avail", - KNMP(g_serial_type[1]), CFGTYPE_INT }, -#endif -{ "Serial Output,0,Send full 8-bit data,1,Mask off high bit", - KNMP(g_serial_out_masking), CFGTYPE_INT }, -{ "Modem on port 0 (slot 1),0,Simple socket emulation mode,1,Modem with " - "incoming and outgoing emulation", KNMP(g_serial_modem[0]), - CFGTYPE_INT }, -{ "Modem on port 1 (slot 2),0,Simple socket emulation mode,1,Modem with " - "incoming and outgoing emulation", KNMP(g_serial_modem[1]), - CFGTYPE_INT }, -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; - -Cfg_menu g_cfg_parallel_menu[] = { -{ "Parallel Card Configuration", g_cfg_parallel_menu, 0, 0, CFGTYPE_MENU }, -{ "Parallel Card in Slot 1,0,Off,1,On", - KNMP(g_parallel), CFGTYPE_INT }, -{ "Parallel Output,0,Send full 8-bit data,1,Mask off high bit", - KNMP(g_parallel_out_masking), CFGTYPE_INT }, -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; - -Cfg_menu g_cfg_ethernet_menu[] = { -{ "Ethernet Card Configuration", g_cfg_ethernet_menu, 0, 0, CFGTYPE_MENU }, -{ "Use Interface Number,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10", - KNMP(g_ethernet_interface), CFGTYPE_INT }, -{ "", 0, 0, 0, 0 }, -{ "Uthernet Card in Slot 3,0,Off,1,On", - KNMP(g_ethernet), CFGTYPE_INT }, -#ifdef HAVE_ATBRIDGE -{ "", 0, 0, 0, 0 }, -{ "AppleTalk Bridging,0,Off,1,On", - KNMP(g_appletalk_bridging), CFGTYPE_INT }, -{ "AppleTalk Speed,0,Normal (230.4 kbps),1,Turbo", - KNMP(g_appletalk_turbo), CFGTYPE_INT }, -#endif -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; -#ifdef HAVE_SDL -Cfg_menu g_cfg_printer_menu[] = { -{ "Virtual Epson Configuration", g_cfg_printer_menu, 0, 0, CFGTYPE_MENU }, -{ "Virtual Printer Type,0,Epson LQ", - KNMP(g_printer), CFGTYPE_INT }, -{ "Printer DPI,60,60x60 dpi,180,180x180 dpi,360,360x360 dpi", - KNMP(g_printer_dpi), CFGTYPE_INT }, -{ "Printer Output Type,bmp,Windows Bitmap,ps,Postscript (B&W),printer,Direct to host printer,text,Text file", - KNMP(g_printer_output), CFGTYPE_STR }, -{ "Multipage Files? (PS and Direct to Host Only),0,No,1,Yes", - KNMP(g_printer_multipage), CFGTYPE_INT }, -{ "Printer Timeout,0,Never,2,2 sec.,15,15 sec.,30,30 sec.,60, 1 min.", - KNMP(g_printer_timeout), CFGTYPE_INT }, -{ "", 0, 0, 0, 0 }, -{ "Epson LQ Fonts", 0, 0, 0, 0 }, -{ "--------------", 0, 0, 0, 0 }, -{ "", 0, 0, 0, 0 }, -{ "Roman", KNMP(g_printer_font_roman), CFGTYPE_FILE }, -{ "Sans Serif", KNMP(g_printer_font_sans), CFGTYPE_FILE }, -{ "Courier", KNMP(g_printer_font_courier), CFGTYPE_FILE }, -{ "Prestige", KNMP(g_printer_font_prestige), CFGTYPE_FILE }, -{ "Script", KNMP(g_printer_font_script), CFGTYPE_FILE }, -{ "OCR A/B", KNMP(g_printer_font_ocra), CFGTYPE_FILE }, -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; - -Cfg_menu g_cfg_imagewriter_menu[] = { -{ "Virtual ImageWriter Configuration", g_cfg_imagewriter_menu, 0, 0, CFGTYPE_MENU }, -{ "Virtual Printer Type,0,ImageWriter II,1,ImageWriter LQ", - KNMP(g_imagewriter), CFGTYPE_INT }, -{ "Paper Size,0,US Letter (8.5x11in),1,US Legal (8.5x14in),2,ISO A4 (210 x 297mm),3,ISO B5 (176 x 250mm),4,Wide Fanfold (14 x 11in),5,Ledger (11 x 17in),6,ISO A3 (297 x 420mm)", - KNMP(g_imagewriter_paper), CFGTYPE_INT }, -{ "Printer DPI,360,360x360 dpi (Best for 8-bit software),720,720x720 dpi (Best for GS/OS & IW LQ Modes),1440,1440x1440 dpi", - KNMP(g_imagewriter_dpi), CFGTYPE_INT }, -{ "Banner Printing (Limited To 144x144 dpi Output),0,Banner Printing Off,3,3 Pages Long,4,4 Pages Long,5,5 Pages Long,6,6 Pages Long,7,7 Pages Long,8,8 Pages Long,9,9 Pages Long,10,10 Pages Long", - KNMP(g_imagewriter_banner), CFGTYPE_INT }, -{ "Printer Output Type,bmp,Windows Bitmap,ps,Postscript (B&W),colorps,Postscript (Color),printer,Direct to host printer,text,Text file", - KNMP(g_imagewriter_output), CFGTYPE_STR }, -{ "Multipage Files? (PS and Direct to Host Only),0,No,1,Yes", - KNMP(g_imagewriter_multipage), CFGTYPE_INT }, -{ "Printer Timeout,0,Never,2,2 sec.,15,15 sec.,30,30 sec.,60, 1 min.", - KNMP(g_imagewriter_timeout), CFGTYPE_INT }, -{ "", 0, 0, 0, 0 }, -{ "ImageWriter Fonts", 0, 0, 0, 0 }, -{ "-----------------", 0, 0, 0, 0 }, -{ "", 0, 0, 0, 0 }, -{ "Fixed Width Font", KNMP(g_imagewriter_fixed_font), CFGTYPE_FILE }, -{ "", 0, 0, 0, 0 }, -{ "Proportional Font", KNMP(g_imagewriter_prop_font), CFGTYPE_FILE }, -{ "", 0, 0, 0, 0 }, -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; -#endif - -Cfg_menu g_cfg_devel_menu[] = { -{ "Developer Options", g_cfg_devel_menu, 0, 0, CFGTYPE_MENU }, -#if defined(_WIN32) || defined(__CYGWIN__) -{ "Status lines,0,Hide,1,Show", KNMP(g_win_status_debug_request), CFGTYPE_INT }, -{ "Console,0,Hide,1,Show", KNMP(g_win_show_console_request), CFGTYPE_INT }, -#endif -#ifdef HAVE_ATBRIDGE -{ "", 0, 0, 0, 0 }, -{ "Show AppleTalk Diagnostics,0,No,1,Yes", KNMP(g_appletalk_diagnostics), CFGTYPE_INT }, -{ "AppleTalk Network Hint", KNMP(g_appletalk_network_hint), CFGTYPE_INT }, -#endif -{ "", 0, 0, 0, 0 }, -#ifndef _WIN32 -{ "Force X-windows display depth", KNMP(g_force_depth), CFGTYPE_INT }, -#endif -{ "Code Red Halts,0,Do not stop on bad accesses,1,Enter debugger on bad accesses", KNMP(g_user_halt_bad), CFGTYPE_INT }, -{ "3200 Color Enable,0,Auto (Full if fast enough),1,Full (Update every line),8,Off (Update video every 8 lines)", KNMP(g_video_line_update_interval), CFGTYPE_INT }, -{ "Keyboard and mouse poll rate,0,60 times per second,1,240 times per second", KNMP(g_video_extra_check_inputs), CFGTYPE_INT }, -{ "Enable Text Page 2 Shadow,0,Disabled on ROM 01 (matches real hardware),1,Enabled on ROM 01 and 03", KNMP(g_user_page2_shadow), CFGTYPE_INT }, -{ "", 0, 0, 0, 0 }, -{ "Back to Main Config", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ 0, 0, 0, 0, 0 }, -}; - -Cfg_menu g_cfg_main_menu[] = { -{ "GSport Configuration", g_cfg_main_menu, 0, 0, CFGTYPE_MENU }, -{ "Disk Configuration", g_cfg_disk_menu, 0, 0, CFGTYPE_MENU }, -{ "Joystick Configuration", g_cfg_joystick_menu, 0, 0, CFGTYPE_MENU }, -{ "ROM File Selection", g_cfg_rom_menu, 0, 0, CFGTYPE_MENU }, -{ "Serial Port Configuration", g_cfg_serial_menu, 0, 0, CFGTYPE_MENU }, -{ "Ethernet Card Configuration", g_cfg_ethernet_menu, 0, 0, CFGTYPE_MENU }, -{ "Parallel Card Configuration", g_cfg_parallel_menu, 0, 0, CFGTYPE_MENU }, -#ifdef HAVE_SDL -{ "Virtual Epson Configuration", g_cfg_printer_menu, 0, 0, CFGTYPE_MENU }, -{ "Virtual ImageWriter Configuration", g_cfg_imagewriter_menu, 0, 0, CFGTYPE_MENU }, -#endif -{ "Developer Options", g_cfg_devel_menu, 0, 0, CFGTYPE_MENU }, -{ "Auto-update configuration file,0,Manual,1,Immediately", - KNMP(g_config_gsport_auto_update), CFGTYPE_INT }, -{ "Speed,0,Unlimited,1,1.0MHz,2,2.8MHz,3,8.0MHz (Zip)", - KNMP(g_limit_speed), CFGTYPE_INT }, -{ "Expansion Mem Size,0,0MB,0x100000,1MB,0x200000,2MB,0x300000,3MB," - "0x400000,4MB,0x600000,6MB,0x800000,8MB,0xa00000,10MB,0xc00000,12MB," - "0xe00000,14MB", KNMP(g_mem_size_exp), CFGTYPE_INT }, -{ "Dump text screen to file", (void *)cfg_text_screen_dump, 0, 0, CFGTYPE_FUNC}, -#ifdef HAVE_SDL -{ "Reset Virtual ImageWriter", (void *)cfg_iwreset, 0, 0, CFGTYPE_FUNC }, -#endif -{ "", 0, 0, 0, 0 }, -{ "Save changes to configuration file", (void *)config_write_config_gsport_file, 0, 0, - CFGTYPE_FUNC }, -{ "", 0, 0, 0, 0 }, -{ "Exit Config (or press F4)", (void *)cfg_exit, 0, 0, CFGTYPE_FUNC }, -{ 0, 0, 0, 0, 0 }, -}; - - -#define CFG_MAX_DEFVALS 128 -Cfg_defval g_cfg_defvals[CFG_MAX_DEFVALS]; -int g_cfg_defval_index = 0; - -int g_cfg_slotdrive = -1; -int g_cfg_select_partition = -1; -char g_cfg_tmp_path[CFG_PATH_MAX]; -char g_cfg_file_path[CFG_PATH_MAX]; -char g_cfg_file_cachedpath[CFG_PATH_MAX]; -char g_cfg_file_cachedreal[CFG_PATH_MAX]; -char g_cfg_file_curpath[CFG_PATH_MAX]; -char g_cfg_file_shortened[CFG_PATH_MAX]; -char g_cfg_file_match[CFG_PATH_MAX]; - -Cfg_listhdr g_cfg_dirlist = { 0 }; -Cfg_listhdr g_cfg_partitionlist = { 0 }; - -int g_cfg_file_pathfield = 0; - -const char *g_gsport_rom_names[] = { "ROM", "ROM", "ROM.01", "ROM.03", 0 }; - /* First entry is special--it will be overwritten by g_cfg_rom_path */ - -const char *g_gsport_c1rom_names[] = { "parallel.rom", 0 }; -const char *g_gsport_c2rom_names[] = { 0 }; -const char *g_gsport_c3rom_names[] = { 0 }; -const char *g_gsport_c4rom_names[] = { 0 }; -const char *g_gsport_c5rom_names[] = { 0 }; -const char *g_gsport_c6rom_names[] = { "c600.rom", "controller.rom", "disk.rom", - "DISK.ROM", "diskII.prom", 0 }; -const char *g_gsport_c7rom_names[] = { 0 }; - -const char **g_gsport_rom_card_list[8] = { - 0, g_gsport_c1rom_names, - g_gsport_c2rom_names, g_gsport_c3rom_names, - g_gsport_c4rom_names, g_gsport_c5rom_names, - g_gsport_c6rom_names, g_gsport_c7rom_names }; - -byte g_rom_c600_rom01_diffs[256] = { - 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0xe2, 0x00, - 0xd0, 0x50, 0x0f, 0x77, 0x5b, 0xb9, 0xc3, 0xb1, - 0xb1, 0xf8, 0xcb, 0x4e, 0xb8, 0x60, 0xc7, 0x2e, - 0xfc, 0xe0, 0xbf, 0x1f, 0x66, 0x37, 0x4a, 0x70, - 0x55, 0x2c, 0x3c, 0xfc, 0xc2, 0xa5, 0x08, 0x29, - 0xac, 0x21, 0xcc, 0x09, 0x55, 0x03, 0x17, 0x35, - 0x4e, 0xe2, 0x0c, 0xe9, 0x3f, 0x9d, 0xc2, 0x06, - 0x18, 0x88, 0x0d, 0x58, 0x57, 0x6d, 0x83, 0x8c, - 0x22, 0xd3, 0x4f, 0x0a, 0xe5, 0xb7, 0x9f, 0x7d, - 0x2c, 0x3e, 0xae, 0x7f, 0x24, 0x78, 0xfd, 0xd0, - 0xb5, 0xd6, 0xe5, 0x26, 0x85, 0x3d, 0x8d, 0xc9, - 0x79, 0x0c, 0x75, 0xec, 0x98, 0xcc, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x39, 0x00, 0x35, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, - 0x6c, 0x44, 0xce, 0x4c, 0x01, 0x08, 0x00, 0x00 -}; - - -void -config_init_menus(Cfg_menu *menuptr) -{ - void *voidptr; - const char *name_str; - Cfg_defval *defptr; - char **str_ptr; - char *str; - int type; - int pos; - int val; - - if(menuptr[0].defptr != 0) { - return; - } - menuptr[0].defptr = (void *)1; - pos = 0; - while(pos < 100) { - type = menuptr->cfgtype; - voidptr = menuptr->ptr; - name_str = menuptr->name_str; - if(menuptr->str == 0) { - break; - } - if(name_str != 0) { - defptr = &(g_cfg_defvals[g_cfg_defval_index++]); - if(g_cfg_defval_index >= CFG_MAX_DEFVALS) { - fatal_printf("CFG_MAX_DEFVAL overflow\n"); - my_exit(5); - } - defptr->menuptr = menuptr; - defptr->intval = 0; - defptr->strval = 0; - switch(type) { - case CFGTYPE_INT: - val = *((int *)voidptr); - defptr->intval = val; - menuptr->defptr = &(defptr->intval); - break; - case CFGTYPE_STR: - str_ptr = (char **)menuptr->ptr; - str = *str_ptr; - // We need to malloc this string since all - // string values must be dynamically alloced - defptr->strval = str; // this can have a copy - *str_ptr = gsport_malloc_str(str); - menuptr->defptr = &(defptr->strval); - break; - case CFGTYPE_FILE: - str_ptr = (char **)menuptr->ptr; - str = *str_ptr; - // We need to malloc this string since all - // string values must be dynamically alloced - defptr->strval = str; // this can have a copy - *str_ptr = gsport_malloc_str(str); - menuptr->defptr = &(defptr->strval); - break; - default: - fatal_printf("name_str is %p = %s, but type: " - "%d\n", name_str, name_str, type); - my_exit(5); - } - } - if(type == CFGTYPE_MENU) { - config_init_menus((Cfg_menu *)voidptr); - } - pos++; - menuptr++; - } -} - -void -config_init() -{ - int can_create; - - config_init_menus(g_cfg_main_menu); - - // Find the configuration file - g_config_gsport_name[0] = 0; - can_create = 1; - setup_gsport_file(&g_config_gsport_name[0], sizeof(g_config_gsport_name), 0, - can_create, &g_config_gsport_name_list[0]); - - config_parse_config_gsport_file(); -} - -void -cfg_exit() -{ - /* printf("In cfg exit\n"); */ - if(g_rom_version >= 1) { - g_config_control_panel = 0; - } -} - -void -cfg_toggle_config_panel() -{ - g_config_control_panel = !g_config_control_panel; - if(g_rom_version < 0) { - g_config_control_panel = 1; /* Stay in config mode */ - } -} - -void -cfg_text_screen_dump() -{ - char buf[85]; - char *filename; - FILE *ofile; - int offset; - int c; - int pos; - int i, j; - - filename = "gsport.screen.dump"; - printf("Writing text screen to the file %s\n", filename); - ofile = fopen(filename, "w"); - if(ofile == 0) { - fatal_printf("Could not write to file %s, (%d)\n", filename, - errno); - return; - } - - for(i = 0; i < 24; i++) { - pos = 0; - for(j = 0; j < 40; j++) { - offset = g_screen_index[i] + j; - if(g_save_cur_a2_stat & ALL_STAT_VID80) { - c = g_save_text_screen_bytes[0x400+offset]; - c = c & 0x7f; - if(c < 0x20) { - c += 0x40; - } - buf[pos++] = c; - } - c = g_save_text_screen_bytes[offset] & 0x7f; - if(c < 0x20) { - c += 0x40; - } - buf[pos++] = c; - } - while((pos > 0) && (buf[pos-1] == ' ')) { - /* try to strip out trailing spaces */ - pos--; - } - buf[pos++] = '\n'; - buf[pos++] = 0; - fputs(buf, ofile); - } - fclose(ofile); -} -void -cfg_iwreset() -{ - imagewriter_feed(); - imagewriter_close(); - imagewriter_init(g_imagewriter_dpi,g_imagewriter_paper,g_imagewriter_banner, g_imagewriter_output,g_imagewriter_multipage); - return; -} -#ifdef HAVE_TFE -void -cfg_get_tfe_name() -{ - int i = 0; - char *ppname = NULL; - char *ppdes = NULL; - cfg_htab_vtab(0,11); - if (tfe_enumadapter_open()) - { - cfg_printf("Interface List:\n---------------"); - while(tfe_enumadapter(&ppname,&ppdes)) - { - cfg_htab_vtab(0, 13+i); - cfg_printf("%2d: %s",i,ppdes); - i++; - lib_free(ppname); - lib_free(ppdes); - } - tfe_enumadapter_close(); - } - else - { - #if defined(_WIN32) || defined(__CYGWIN__) - cfg_printf("ERROR: Install/Enable WinPcap for Ethernet Support!!"); - #else - cfg_printf("ERROR: Install/Enable LibPcap for Ethernet Support!!"); - #endif - } - return; -} -#endif - -void -config_vbl_update(int doit_3_persec) -{ - if(doit_3_persec) { - if(g_config_gsport_auto_update && g_config_gsport_update_needed) { - config_write_config_gsport_file(); - } - } - return; -} - -void -config_parse_option(char *buf, int pos, int len, int line) -{ - Cfg_menu *menuptr; - Cfg_defval *defptr; - char *nameptr; - char **strptr; - int *iptr; - int num_equals; - int type; - int val; - int c; - int i; - -// warning: modifies buf (turns spaces to nulls) -// parse buf from pos into option, "=" and then "rest" - if(pos >= len) { - /* blank line */ - return; - } - - if(strncmp(&buf[pos], "bram", 4) == 0) { - config_parse_bram(buf, pos+4, len); - return; - } - - // find "name" as first contiguous string - printf("...parse_option: line %d, %p,%p = %s (%s) len:%d\n", line, - &buf[pos], buf, &buf[pos], buf, len); - - nameptr = &buf[pos]; - while(pos < len) { - c = buf[pos]; - if(c == 0 || c == ' ' || c == '\t' || c == '\n') { - break; - } - pos++; - } - buf[pos] = 0; - pos++; - - // Eat up all whitespace and '=' - num_equals = 0; - while(pos < len) { - c = buf[pos]; - if((c == '=') && num_equals == 0) { - pos++; - num_equals++; - } else if(c == ' ' || c == '\t') { - pos++; - } else { - break; - } - } - - /* Look up nameptr to find type */ - type = -1; - defptr = 0; - menuptr = 0; - for(i = 0; i < g_cfg_defval_index; i++) { - defptr = &(g_cfg_defvals[i]); - menuptr = defptr->menuptr; - if(strcmp(menuptr->name_str, nameptr) == 0) { - type = menuptr->cfgtype; - break; - } - } - - switch(type) { - case CFGTYPE_INT: - /* use strtol */ - val = (int)strtol(&buf[pos], 0, 0); - iptr = (int *)menuptr->ptr; - *iptr = val; - break; - case CFGTYPE_STR: - strptr = (char **)menuptr->ptr; - if(strptr && *strptr) { - free(*strptr); - } - *strptr = gsport_malloc_str(&buf[pos]); - break; - case CFGTYPE_FILE: - strptr = (char **)menuptr->ptr; - if(strptr && *strptr) { - free(*strptr); - } - *strptr = gsport_malloc_str(&buf[pos]); - break; - default: - printf("Config file variable %s is unknown type: %d\n", - nameptr, type); - } - -} - -void -config_parse_bram(char *buf, int pos, int len) -{ - int bram_num; - int offset; - int val; - - if((len < (pos+5)) || (buf[pos+1] != '[') || (buf[pos+4] != ']')) { - fatal_printf("While reading configuration file, found malformed bram " - "statement: %s\n", buf); - return; - } - bram_num = buf[pos] - '0'; - if(bram_num != 1 && bram_num != 3) { - fatal_printf("While reading configuration file, found bad bram " - "num: %s\n", buf); - return; - } - - bram_num = bram_num >> 1; // turn 3->1 and 1->0 - - offset = strtoul(&(buf[pos+2]), 0, 16); - pos += 5; - while(pos < len) { - while(buf[pos] == ' ' || buf[pos] == '\t' || buf[pos] == 0x0a || - buf[pos] == 0x0d || buf[pos] == '=') { - pos++; - } - val = strtoul(&buf[pos], 0, 16); - clk_bram_set(bram_num, offset, val); - offset++; - pos += 2; - } -} - -void -config_load_roms() -{ - struct stat stat_buf; - const char **names_ptr; - int more_than_8mb; - int changed_rom; - int len; - FILE *file; - int ret; - int i; - - g_rom_version = -1; - - /* set first entry of g_gsport_rom_names[] to g_cfg_rom_path so that */ - /* it becomes the first place searched. */ - g_gsport_rom_names[0] = g_cfg_rom_path; - setup_gsport_file(&g_cfg_tmp_path[0], CFG_PATH_MAX, -1, 0, - &g_gsport_rom_names[0]); - - if(g_cfg_tmp_path[0] == 0) { - // Just get out, let config interface select ROM - g_config_control_panel = 1; - return; - } - file = fopen(&g_cfg_tmp_path[0], "rb"); - if(!file) { - fatal_printf("Open ROM file %s failed; errno:%d\n", - &g_cfg_tmp_path[0], errno); - g_config_control_panel = 1; - return; - } - - ret = stat(&g_cfg_tmp_path[0], &stat_buf); - if(ret != 0) { - fatal_printf("stat returned %d; errno: %d\n", - ret, errno); - g_config_control_panel = 1; - return; - } - - len = stat_buf.st_size; - if(len == 128*1024) { - g_rom_version = 1; - g_mem_size_base = 256*1024; - memset(&g_rom_fc_ff_ptr[0], 0, 2*65536); - /* Clear banks fc and fd to 0 */ - ret = fread(&g_rom_fc_ff_ptr[2*65536], 1, len, file); - } else if(len == 256*1024) { - g_rom_version = 3; - g_mem_size_base = 1024*1024; - ret = fread(&g_rom_fc_ff_ptr[0], 1, len, file); - } else { - fatal_printf("The ROM size should be 128K or 256K, this file " - "is %d bytes\n", len); - g_config_control_panel = 1; - return; - } - - printf("Read: %d bytes of ROM\n", ret); - if(ret != len) { - fatal_printf("errno: %d\n", errno); - g_config_control_panel = 1; - return; - } - fclose(file); - - memset(&g_rom_cards_ptr[0], 0, 256*16); - - /* initialize c600 rom to be diffs from the real ROM, to build-in */ - /* Apple II compatibility without distributing ROMs */ - for(i = 0; i < 256; i++) { - g_rom_cards_ptr[0x600 + i] = g_rom_fc_ff_ptr[0x3c600 + i] ^ - g_rom_c600_rom01_diffs[i]; - } - if(g_rom_version >= 3) { - /* some patches */ - g_rom_cards_ptr[0x61b] ^= 0x40; - g_rom_cards_ptr[0x61c] ^= 0x33; - g_rom_cards_ptr[0x632] ^= 0xc0; - g_rom_cards_ptr[0x633] ^= 0x33; - } - - for(i = 1; i < 8; i++) { - names_ptr = g_gsport_rom_card_list[i]; - if(names_ptr == 0) { - continue; - } - if(*names_ptr == 0) { - continue; - } - setup_gsport_file(&g_cfg_tmp_path[0], CFG_PATH_MAX, 1, 0, - names_ptr); - if(g_cfg_tmp_path[0] != 0) { - file = fopen(&(g_cfg_tmp_path[0]), "rb"); - if(!file) { - fatal_printf("Open card ROM file %s failed; errno:%d\n", - &g_cfg_tmp_path[0], errno); - continue; - } - - len = 256; - ret = fread(&g_rom_cards_ptr[i*0x100], 1, len, file); - - if(ret != len) { - fatal_printf("While reading card ROM %s, file " - "is too short. (%d) Expected %d bytes, " - "read %d bytes\n", &g_cfg_tmp_path[0], errno, len, ret); - continue; - } - printf("Read: %d bytes of ROM in slot %d from file %s.\n", ret, i, &g_cfg_tmp_path[0]); - fclose(file); - } - } - more_than_8mb = (g_mem_size_exp > 0x800000); - /* Only do the patch if users wants more than 8MB of expansion mem */ - - changed_rom = 0; - if(g_rom_version == 1) { - /* make some patches to ROM 01 */ -#if 0 - /* 1: Patch ROM selftest to not do speed test */ - printf("Patching out speed test failures from ROM 01\n"); - g_rom_fc_ff_ptr[0x3785a] = 0x18; - changed_rom = 1; -#endif - -#if 0 - /* 2: Patch ROM selftests not to do tests 2,4 */ - /* 0 = skip, 1 = do it, test 1 is bit 0 of LSByte */ - g_rom_fc_ff_ptr[0x371e9] = 0xf5; - g_rom_fc_ff_ptr[0x371ea] = 0xff; - changed_rom = 1; -#endif - - if(more_than_8mb) { - /* Geoff Weiss patch to use up to 14MB of RAM */ - g_rom_fc_ff_ptr[0x30302] = 0xdf; - g_rom_fc_ff_ptr[0x30314] = 0xdf; - g_rom_fc_ff_ptr[0x3031c] = 0x00; - changed_rom = 1; - } - - /* Patch ROM selftest to not do ROM cksum if any changes*/ - if(changed_rom) { - g_rom_fc_ff_ptr[0x37a06] = 0x18; - g_rom_fc_ff_ptr[0x37a07] = 0x18; - } - } else if(g_rom_version == 3) { - /* patch ROM 03 */ - printf("Patching ROM 03 smartport bug\n"); - /* 1: Patch Smartport code to fix a stupid bug */ - /* that causes it to write the IWM status reg into c036, */ - /* which is the system speed reg...it's "safe" since */ - /* IWM status reg bit 4 must be 0 (7MHz)..., otherwise */ - /* it might have turned on shadowing in all banks! */ - g_rom_fc_ff_ptr[0x357c9] = 0x00; - changed_rom = 1; - -#if 0 - /* patch ROM 03 to not to speed test */ - /* skip fast speed test */ - g_rom_fc_ff_ptr[0x36ad7] = 0x18; - g_rom_fc_ff_ptr[0x36ad8] = 0x18; - changed_rom = 1; -#endif - -#if 0 - /* skip slow speed test */ - g_rom_fc_ff_ptr[0x36ae7] = 0x18; - g_rom_fc_ff_ptr[0x36ae8] = 0x6b; - changed_rom = 1; -#endif - -#if 0 - /* 4: Patch ROM 03 selftests not to do tests 1-4 */ - g_rom_fc_ff_ptr[0x364a9] = 0xf0; - g_rom_fc_ff_ptr[0x364aa] = 0xff; - changed_rom = 1; -#endif - - /* ROM tests are in ff/6403-642x, where 6403 = addr of */ - /* test 1, etc. */ - - if(more_than_8mb) { - /* Geoff Weiss patch to use up to 14MB of RAM */ - g_rom_fc_ff_ptr[0x30b] = 0xdf; - g_rom_fc_ff_ptr[0x31d] = 0xdf; - g_rom_fc_ff_ptr[0x325] = 0x00; - changed_rom = 1; - } - - if(changed_rom) { - /* patch ROM 03 selftest to not do ROM cksum */ - g_rom_fc_ff_ptr[0x36cb0] = 0x18; - g_rom_fc_ff_ptr[0x36cb1] = 0x18; - } - - } -} - -void -config_parse_config_gsport_file() -{ - FILE *fconf; - char *buf; - char *ptr; - char *name_ptr; - char *partition_name; - int part_num; - int ejected; - int line; - int pos; - int slot; - int drive; - int size; - int len; - int ret; - int i; - - printf("Parsing configuration file\n"); - - clk_bram_zero(); - - g_highest_smartport_unit = -1; - - cfg_get_base_path(&g_cfg_cwd_str[0], g_config_gsport_name, 0); -#ifndef __OS2__ - if(g_cfg_cwd_str[0] != 0) { - ret = chdir(&g_cfg_cwd_str[0]); - if(ret != 0) { - printf("chdir to %s, errno:%d\n", g_cfg_cwd_str, errno); - } - } - /* In any case, copy the directory path to g_cfg_cwd_str */ - (void)getcwd(&g_cfg_cwd_str[0], CFG_PATH_MAX); -#endif - - fconf = fopen(g_config_gsport_name, "r"); - if(fconf == 0) { - fatal_printf("cannot open configuration file at %s! Stopping!\n", - g_config_gsport_name); - my_exit(3); - } - - line = 0; - while(1) { - buf = &g_config_gsport_buf[0]; - ptr = fgets(buf, CONF_BUF_LEN, fconf); - if(ptr == 0) { - iwm_printf("Done reading disk_conf\n"); - break; - } - - line++; - /* strip off newline(s) */ - len = strlen(buf); - for(i = len - 1; i >= 0; i--) { - if((buf[i] != 0x0d) && (buf[i] != 0x0a)) { - break; - } - len = i; - buf[i] = 0; - } - - iwm_printf("disk_conf[%d]: %s\n", line, buf); - if(len > 0 && buf[0] == '#') { - iwm_printf("Skipping comment\n"); - continue; - } - - /* determine what this is */ - pos = 0; - - while(pos < len && (buf[pos] == ' ' || buf[pos] == '\t') ) { - pos++; - } - if((pos + 4) > len || buf[pos] != 's' || buf[pos+2] != 'd' || - buf[pos+1] > '9' || buf[pos+1] < '0') { - config_parse_option(buf, pos, len, line); - continue; - } - - slot = buf[pos+1] - '0'; - drive = buf[pos+3] - '0'; - - /* skip over slot, drive */ - pos += 4; - if(buf[pos] >= '0' && buf[pos] <= '9') { - drive = drive * 10 + buf[pos] - '0'; - pos++; - } - - /* make s6d1 mean index 0 */ - drive--; - - while(pos < len && (buf[pos] == ' ' || buf[pos] == '\t' || - buf[pos] == '=') ) { - pos++; - } - - ejected = 0; - if(buf[pos] == '#') { - /* disk is ejected, but read all the info anyway */ - ejected = 1; - pos++; - } - - size = 0; - if(buf[pos] == ',') { - /* read optional size parameter */ - pos++; - while(pos < len && buf[pos] >= '0' && buf[pos] <= '9'){ - size = size * 10 + buf[pos] - '0'; - pos++; - } - size = size * 1024; - if(buf[pos] == ',') { - pos++; /* eat trailing ',' */ - } - } - - /* see if it has a partition name */ - partition_name = 0; - part_num = -1; - if(buf[pos] == ':') { - pos++; - /* yup, it's got a partition name! */ - partition_name = &buf[pos]; - while((pos < len) && (buf[pos] != ':')) { - pos++; - } - buf[pos] = 0; /* null terminate partition name */ - pos++; - } - if(buf[pos] == ';') { - pos++; - /* it's got a partition number */ - part_num = 0; - while((pos < len) && (buf[pos] != ':')) { - part_num = (10*part_num) + buf[pos] - '0'; - pos++; - } - pos++; - } - - /* Get filename */ - name_ptr = &(buf[pos]); - if(name_ptr[0] == 0) { - continue; - } - - insert_disk(slot, drive, name_ptr, ejected, size, - partition_name, part_num); - - } - - ret = fclose(fconf); - if(ret != 0) { - fatal_printf("Closing configuration file ret: %d, errno: %d\n", ret, - errno); - my_exit(4); - } - - iwm_printf("Done parsing disk_conf file\n"); -} - - -Disk * -cfg_get_dsk_from_slot_drive(int slot, int drive) -{ - Disk *dsk; - int max_drive; - - /* Get dsk */ - max_drive = 2; - switch(slot) { - case 5: - dsk = &(iwm.drive35[drive]); - break; - case 6: - dsk = &(iwm.drive525[drive]); - break; - default: - max_drive = MAX_C7_DISKS; - dsk = &(iwm.smartport[drive]); - } - - if(drive >= max_drive) { - dsk -= drive; /* move back to drive 0 effectively */ - } - - return dsk; -} - -void -config_generate_config_gsport_name(char *outstr, int maxlen, Disk *dsk, - int with_extras) -{ - char *str; - - str = outstr; - - if(with_extras && (!dsk->file)) { - snprintf(str, maxlen - (str - outstr), "#"); - str = &outstr[strlen(outstr)]; - } - if(with_extras && dsk->force_size > 0) { - snprintf(str, maxlen - (str - outstr), ",%d,", dsk->force_size); - str = &outstr[strlen(outstr)]; - } - if(with_extras && dsk->partition_name != 0) { - snprintf(str, maxlen - (str - outstr), ":%s:", - dsk->partition_name); - str = &outstr[strlen(outstr)]; - } else if(with_extras && dsk->partition_num >= 0) { - snprintf(str, maxlen - (str - outstr), ";%d:", - dsk->partition_num); - str = &outstr[strlen(outstr)]; - } - snprintf(str, maxlen - (str - outstr), "%s", dsk->name_ptr); -} - -void -config_write_config_gsport_file() -{ - FILE *fconf; - Disk *dsk; - Cfg_defval *defptr; - Cfg_menu *menuptr; - char *curstr, *defstr; - int defval, curval; - int type; - int slot, drive; - int i; - - printf("Writing configuration file to %s\n", g_config_gsport_name); - - fconf = fopen(g_config_gsport_name, "w+"); - if(fconf == 0) { - halt_printf("cannot open %s! Stopping!\n",g_config_gsport_name); - return; - } - - fprintf(fconf, "# GSport configuration file version %s\n", - g_gsport_version_str); - - for(i = 0; i < MAX_C7_DISKS + 4; i++) { - slot = 7; - drive = i - 4; - if(i < 4) { - slot = (i >> 1) + 5; - drive = i & 1; - } - if(drive == 0) { - fprintf(fconf, "\n"); /* an extra blank line */ - } - - dsk = cfg_get_dsk_from_slot_drive(slot, drive); - if(dsk->name_ptr == 0 && (i > 4)) { - /* No disk, not even ejected--just skip */ - continue; - } - fprintf(fconf, "s%dd%d = ", slot, drive + 1); - if(dsk->name_ptr == 0) { - fprintf(fconf, "\n"); - continue; - } - config_generate_config_gsport_name(&g_cfg_tmp_path[0], - CFG_PATH_MAX, dsk, 1); - fprintf(fconf, "%s\n", &g_cfg_tmp_path[0]); - } - - fprintf(fconf, "\n"); - - /* See if any variables are different than their default */ - for(i = 0; i < g_cfg_defval_index; i++) { - defptr = &(g_cfg_defvals[i]); - menuptr = defptr->menuptr; - defval = defptr->intval; - type = menuptr->cfgtype; - if(type == CFGTYPE_INT) { - curval = *((int *)menuptr->ptr); - if(curval != defval) { - fprintf(fconf, "%s = %d\n", menuptr->name_str, - curval); - } - } - if(type == CFGTYPE_STR) { - curstr = *((char **)menuptr->ptr); - defstr = *((char **)menuptr->defptr); - if(strcmp(curstr, defstr) != 0) { - fprintf(fconf, "%s = %s\n", menuptr->name_str, - curstr); - } - } - if(type == CFGTYPE_FILE) { - curstr = *((char **)menuptr->ptr); - defstr = *((char **)menuptr->defptr); - if(strcmp(curstr, defstr) != 0) { - fprintf(fconf, "%s = %s\n", menuptr->name_str, - curstr); - } - } - } - - fprintf(fconf, "\n"); - - /* write bram state */ - clk_write_bram(fconf); - - fclose(fconf); - - g_config_gsport_update_needed = 0; -} - -void -insert_disk(int slot, int drive, const char *name, int ejected, int force_size, - const char *partition_name, int part_num) -{ - byte buf_2img[512]; - Disk *dsk; - char *name_ptr, *uncomp_ptr, *system_str; - char *part_ptr; - int size; - int system_len; - int part_len; - int cmp_o, cmp_p, cmp_dot; - int cmp_b, cmp_i, cmp_n; - int can_write; - int len; - int nibs; - int unix_pos; - int name_len; - int image_identified; - int exp_size; - int save_track; - int ret; - int tmp; - int i; - - g_config_gsport_update_needed = 1; - - if((slot < 5) || (slot > 7)) { - fatal_printf("Invalid slot for inserting disk: %d\n", slot); - return; - } - if(drive < 0 || ((slot == 7) && (drive >= MAX_C7_DISKS)) || - ((slot < 7) && (drive > 1))) { - fatal_printf("Invalid drive for inserting disk: %d\n", drive); - return; - } - - dsk = cfg_get_dsk_from_slot_drive(slot, drive); - -#if 0 - printf("Inserting disk %s (%s or %d) in slot %d, drive: %d\n", name, - partition_name, part_num, slot, drive); -#endif - - dsk->just_ejected = 0; - dsk->force_size = force_size; - - if(!dsk->file) { - eject_disk(dsk); - } - - /* Before opening, make sure no other mounted disk has this name */ - /* If so, unmount it */ - if(!ejected) { - for(i = 0; i < 2; i++) { - eject_named_disk(&iwm.drive525[i], name,partition_name); - eject_named_disk(&iwm.drive35[i], name, partition_name); - } - for(i = 0; i < MAX_C7_DISKS; i++) { - eject_named_disk(&iwm.smartport[i],name,partition_name); - } - } - - if(dsk->name_ptr != 0) { - /* free old name_ptr */ - free(dsk->name_ptr); - } - - name_len = strlen(name); - name_ptr = (char *)malloc(name_len + 1); -#if defined(_WIN32) || defined(__CYGWIN__) - // On Windows, we need to change backslashes to forward slashes. - for (i = 0; i < name_len; i++) { - if (name[i] == '\\') { - name_ptr[i] = '/'; - } else { - name_ptr[i] = name[i]; - } - } - name_ptr[name_len] = 0; -#else - strncpy(name_ptr, name, name_len + 1); -#endif - dsk->name_ptr = name_ptr; - - dsk->partition_name = 0; - if(partition_name != 0) { - part_len = strlen(partition_name) + 1; - part_ptr = (char *)malloc(part_len); - strncpy(part_ptr, partition_name, part_len); - dsk->partition_name = part_ptr; - } - dsk->partition_num = part_num; - - iwm_printf("Opening up disk image named: %s\n", name_ptr); - - if(ejected) { - /* just get out of here */ - dsk->file = 0; - return; - } - - dsk->file = 0; - can_write = 1; - - if((name_len > 3) && (strcmp(&name_ptr[name_len - 3], ".gz") == 0)) { - - /* it's gzip'ed, try to gunzip it, then unlink the */ - /* uncompressed file */ - - can_write = 0; - - uncomp_ptr = (char *)malloc(name_len + 1); - strncpy(uncomp_ptr, name_ptr, name_len + 1); - uncomp_ptr[name_len - 3] = 0; - - system_len = 2*name_len + 100; - system_str = (char *)malloc(system_len + 1); - snprintf(system_str, system_len, - "set -o noclobber;gunzip -c %c%s%c > %c%s%c", - 0x22, name_ptr, 0x22, - 0x22, uncomp_ptr, 0x22); - /* 0x22 are " to allow spaces in filenames */ - printf("I am uncompressing %s into %s for mounting\n", - name_ptr, uncomp_ptr); - ret = system(system_str); - if(ret == 0) { - /* successfully ran */ - dsk->file = fopen(uncomp_ptr, "rb"); - iwm_printf("Opening .gz file %s\n", uncomp_ptr); - - /* and, unlink the temporary file */ - (void)unlink(uncomp_ptr); - } - free(system_str); - free(uncomp_ptr); - /* Reduce name_len by 3 so that subsequent compares for .po */ - /* look at the correct chars */ - name_len -= 3; - } - - if((!dsk->file) && can_write) { - dsk->file = fopen(name_ptr, "rb+"); - } - - if((!dsk->file) && can_write) { - printf("Trying to open %s read-only, errno: %d\n", name_ptr, - errno); - dsk->file = fopen(name_ptr, "rb"); - can_write = 0; - } - - if(!dsk->file) { - fatal_printf("Disk image %s does not exist!\n", name_ptr); - return; - } - - if(can_write != 0) { - dsk->write_prot = 0; - dsk->write_through_to_unix = 1; - } else { - dsk->write_prot = 1; - dsk->write_through_to_unix = 0; - } - - save_track = dsk->cur_qtr_track; /* save arm position */ - dsk->image_type = DSK_TYPE_PRODOS; - dsk->image_start = 0; - - /* See if it is in 2IMG format */ - ret = fread((char *)&buf_2img[0], 1, 512, dsk->file); - size = force_size; - if(size <= 0) { - size = cfg_get_fd_size(name_ptr); - } - - /* Try to guess that there is a Mac Binary header of 128 bytes */ - /* See if image size & 0xfff = 0x080 which indicates extra 128 bytes */ - if((size & 0xfff) == 0x080) { - printf("Assuming Mac Binary header on %s\n", dsk->name_ptr); - dsk->image_start += 0x80; - } - image_identified = 0; - if(buf_2img[0] == '2' && buf_2img[1] == 'I' && buf_2img[2] == 'M' && - buf_2img[3] == 'G') { - /* It's a 2IMG disk */ - printf("Image named %s is in 2IMG format\n", dsk->name_ptr); - image_identified = 1; - - if(buf_2img[12] == 0) { - printf("2IMG is in DOS 3.3 sector order\n"); - dsk->image_type = DSK_TYPE_DOS33; - } - if(buf_2img[19] & 0x80) { - /* disk is locked */ - printf("2IMG is write protected\n"); - dsk->write_prot = 1; - dsk->write_through_to_unix = 0; - } - if((buf_2img[17] & 1) && (dsk->image_type == DSK_TYPE_DOS33)) { - dsk->vol_num = buf_2img[16]; - printf("Setting DOS 3.3 vol num to %d\n", dsk->vol_num); - } - // Some 2IMG archives have the size byte reversed - size = (buf_2img[31] << 24) + (buf_2img[30] << 16) + - (buf_2img[29] << 8) + buf_2img[28]; - unix_pos = (buf_2img[27] << 24) + (buf_2img[26] << 16) + - (buf_2img[25] << 8) + buf_2img[24]; - if(size == 0x800c00) { - // Byte reversed 0x0c8000 - size = 0x0c8000; - } - dsk->image_start = unix_pos; - dsk->image_size = size; - } - exp_size = 800*1024; - if(dsk->disk_525) { - exp_size = 140*1024; - } - if(!image_identified) { - /* See if it might be the Mac diskcopy format */ - tmp = (buf_2img[0x40] << 24) + (buf_2img[0x41] << 16) + - (buf_2img[0x42] << 8) + buf_2img[0x43]; - if((size >= (exp_size + 0x54)) && (tmp == exp_size)) { - /* It's diskcopy since data size field matches */ - printf("Image named %s is in Mac diskcopy format\n", - dsk->name_ptr); - image_identified = 1; - dsk->image_start += 0x54; - dsk->image_size = exp_size; - dsk->image_type = DSK_TYPE_PRODOS; /* ProDOS */ - } - } - if(!image_identified) { - /* Assume raw image */ - dsk->image_size = size; - dsk->image_type = DSK_TYPE_PRODOS; - if(dsk->disk_525) { - dsk->image_type = DSK_TYPE_DOS33; - if(name_len >= 4) { - cmp_o = dsk->name_ptr[name_len-1]; - cmp_p = dsk->name_ptr[name_len-2]; - cmp_dot = dsk->name_ptr[name_len-3]; - if(cmp_dot == '.' && - (cmp_p == 'p' || cmp_p == 'P') && - (cmp_o == 'o' || cmp_o == 'O')) { - dsk->image_type = DSK_TYPE_PRODOS; - } - - cmp_b = dsk->name_ptr[name_len-1]; - cmp_i = dsk->name_ptr[name_len-2]; - cmp_n = dsk->name_ptr[name_len-3]; - cmp_dot = dsk->name_ptr[name_len-4]; - if(cmp_dot == '.' && - (cmp_n == 'n' || cmp_n == 'N') && - (cmp_i == 'i' || cmp_i == 'I') && - (cmp_b == 'b' || cmp_b == 'B')) { - dsk->image_type = DSK_TYPE_NIB; - dsk->write_prot = 1; - dsk->write_through_to_unix = 0; - } - } - } - } - - dsk->disk_dirty = 0; - dsk->nib_pos = 0; - dsk->trks = 0; - - if(dsk->smartport) { - g_highest_smartport_unit = MAX(dsk->drive, - g_highest_smartport_unit); - - if(partition_name != 0 || part_num >= 0) { - ret = cfg_partition_find_by_name_or_num(dsk->file, - partition_name, part_num, dsk); - printf("partition %s (num %d) mounted, wr_prot: %d\n", - partition_name, part_num, dsk->write_prot); - - if(ret < 0) { - fclose(dsk->file); - dsk->file = 0; - return; - } - } - iwm_printf("adding smartport device[%d], size:%08x, " - "img_sz:%08x\n", dsk->drive, dsk->trks[0].unix_len, - dsk->image_size); - } else if(dsk->disk_525) { - unix_pos = dsk->image_start; - size = dsk->image_size; - disk_set_num_tracks(dsk, 4*35); - len = 0x1000; - nibs = NIB_LEN_525; - if(dsk->image_type == DSK_TYPE_NIB) { - len = dsk->image_size / 35;; - nibs = len; - } - if(size != 35*len) { - fatal_printf("Disk 5.25 error: size is %d, not 140K. " - "Will try to mount anyway\n", size, 35*len); - } - for(i = 0; i < 35; i++) { - iwm_move_to_track(dsk, 4*i); - disk_unix_to_nib(dsk, 4*i, unix_pos, len, nibs); - unix_pos += len; - } - } else { - /* disk_35 */ - unix_pos = dsk->image_start; - size = dsk->image_size; - if(size != 800*1024) { - fatal_printf("Disk 3.5 error: size is %d, not 800K. " - "Will try to mount anyway\n", size); - } - disk_set_num_tracks(dsk, 2*80); - for(i = 0; i < 2*80; i++) { - iwm_move_to_track(dsk, i); - len = g_track_bytes_35[i >> 5]; - nibs = g_track_nibs_35[i >> 5]; - iwm_printf("Trk: %d.%d = unix: %08x, %04x, %04x\n", - i>>1, i & 1, unix_pos, len, nibs); - disk_unix_to_nib(dsk, i, unix_pos, len, nibs); - unix_pos += len; - - iwm_printf(" trk_len:%05x\n", dsk->trks[i].track_len); - } - } - - iwm_move_to_track(dsk, save_track); - -} - -void -eject_named_disk(Disk *dsk, const char *name, const char *partition_name) -{ - - if(!dsk->file) { - return; - } - - /* If name matches, eject the disk! */ - if(!strcmp(dsk->name_ptr, name)) { - /* It matches, eject it */ - if((partition_name != 0) && (dsk->partition_name != 0)) { - /* If both have partitions, and they differ, then */ - /* don't eject. Otherwise, eject */ - if(strcmp(dsk->partition_name, partition_name) != 0) { - /* Don't eject */ - return; - } - } - eject_disk(dsk); - } -} - -void -eject_disk_by_num(int slot, int drive) -{ - Disk *dsk; - - dsk = cfg_get_dsk_from_slot_drive(slot, drive); - - eject_disk(dsk); -} - -void -eject_disk(Disk *dsk) -{ - int motor_on; - int i; - - if(!dsk->file) { - return; - } - - g_config_gsport_update_needed = 1; - - motor_on = iwm.motor_on; - if(g_c031_disk35 & 0x40) { - motor_on = iwm.motor_on35; - } - if(motor_on) { - halt_printf("Try eject dsk:%s, but motor_on!\n", dsk->name_ptr); - } - - iwm_flush_disk_to_unix(dsk); - - printf("Ejecting disk: %s\n", dsk->name_ptr); - - /* Free all memory, close file */ - - /* free the tracks first */ - if(dsk->trks != 0) { - for(i = 0; i < dsk->num_tracks; i++) { - if(dsk->trks[i].nib_area) { - free(dsk->trks[i].nib_area); - } - dsk->trks[i].nib_area = 0; - dsk->trks[i].track_len = 0; - } - free(dsk->trks); - } - dsk->num_tracks = 0; - dsk->trks = 0; - - /* close file, clean up dsk struct */ - fclose(dsk->file); - - dsk->image_start = 0; - dsk->image_size = 0; - dsk->nib_pos = 0; - dsk->disk_dirty = 0; - dsk->write_through_to_unix = 0; - dsk->write_prot = 1; - dsk->file = 0; - dsk->just_ejected = 1; - - /* Leave name_ptr valid */ -} - -int -cfg_get_fd_size(char *filename) -{ - struct stat stat_buf; - int ret; - - ret = stat(filename, &stat_buf); - if(ret != 0) { - fprintf(stderr,"stat %s returned errno: %d\n", - filename, errno); - stat_buf.st_size = 0; - } - - return stat_buf.st_size; -} - -int -cfg_partition_read_block(FILE *file, void *buf, int blk, int blk_size) -{ - int ret; - - ret = fseek(file, blk * blk_size, SEEK_SET); - if(ret != 0) { - printf("fseek: wanted: %08x, errno: %d\n", - blk * blk_size, errno); - return 0; - } - - ret = fread((char *)buf, 1, blk_size, file); - if(ret != blk_size) { - printf("ret: %08x, wanted %08x, errno: %d\n", ret, blk_size, - errno); - return 0; - } - return ret; -} - -int -cfg_partition_find_by_name_or_num(FILE *file, const char *partnamestr, int part_num, - Disk *dsk) -{ - Cfg_dirent *direntptr; - int match; - int num_parts; - int i; - - num_parts = cfg_partition_make_list(dsk->name_ptr, file); - - if(num_parts <= 0) { - return -1; - } - - for(i = 0; i < g_cfg_partitionlist.last; i++) { - direntptr = &(g_cfg_partitionlist.direntptr[i]); - match = 0; - if((strncmp(partnamestr, direntptr->name, 32) == 0) && - (part_num < 0)) { - //printf("partition, match1, name:%s %s, part_num:%d\n", - // partnamestr, direntptr->name, part_num); - - match = 1; - } - if((partnamestr == 0) && (direntptr->part_num == part_num)) { - //printf("partition, match2, n:%s, part_num:%d == %d\n", - // direntptr->name, direntptr->part_num, part_num); - match = 1; - } - if(match) { - dsk->image_start = direntptr->image_start; - dsk->image_size = direntptr->size; - //printf("match with image_start: %08x, image_size: " - // "%08x\n", dsk->image_start, dsk->image_size); - - return i; - } - } - - return -1; -} - -int -cfg_partition_make_list(char *filename, FILE *file) -{ - Driver_desc *driver_desc_ptr; - Part_map *part_map_ptr; - word32 *blk_bufptr; - word32 start; - word32 len; - word32 data_off; - word32 data_len; - word32 sig; - int size; - int image_start, image_size; - int is_dir; - int block_size; - int map_blks; - int cur_blk; - - block_size = 512; - - cfg_free_alldirents(&g_cfg_partitionlist); - - blk_bufptr = (word32 *)malloc(MAX_PARTITION_BLK_SIZE); - - cfg_partition_read_block(file, blk_bufptr, 0, block_size); - - driver_desc_ptr = (Driver_desc *)blk_bufptr; - sig = GET_BE_WORD16(driver_desc_ptr->sig); - block_size = GET_BE_WORD16(driver_desc_ptr->blk_size); - if(block_size == 0) { - block_size = 512; - } - if(sig != 0x4552 || block_size < 0x200 || - (block_size > MAX_PARTITION_BLK_SIZE)) { - cfg_printf("Partition error: No driver descriptor map found\n"); - free(blk_bufptr); - return 0; - } - - map_blks = 1; - cur_blk = 0; - size = cfg_get_fd_size(filename); - cfg_file_add_dirent(&g_cfg_partitionlist, "None - Whole image", - is_dir=0, size, 0, -1); - - while(cur_blk < map_blks) { - cur_blk++; - cfg_partition_read_block(file, blk_bufptr, cur_blk, block_size); - part_map_ptr = (Part_map *)blk_bufptr; - sig = GET_BE_WORD16(part_map_ptr->sig); - if(cur_blk <= 1) { - map_blks = MIN(20, - GET_BE_WORD32(part_map_ptr->map_blk_cnt)); - } - if(sig != 0x504d) { - printf("Partition entry %d bad signature:%04x\n", - cur_blk, sig); - free(blk_bufptr); - return g_cfg_partitionlist.last; - } - - /* found it, check for consistency */ - start = GET_BE_WORD32(part_map_ptr->phys_part_start); - len = GET_BE_WORD32(part_map_ptr->part_blk_cnt); - data_off = GET_BE_WORD32(part_map_ptr->data_start); - data_len = GET_BE_WORD32(part_map_ptr->data_cnt); - if(data_off + data_len > len) { - printf("Poorly formed entry\n"); - continue; - } - - if(data_len < 10 || start < 1) { - printf("Poorly formed entry %d, datalen:%d, " - "start:%08x\n", cur_blk, data_len, start); - continue; - } - - image_size = data_len * block_size; - image_start = (start + data_off) * block_size; - is_dir = 2*(image_size < 800*1024); -#if 0 - printf(" partition add entry %d = %s %d %08x %08x\n", - cur_blk, part_map_ptr->part_name, is_dir, - image_size, image_start); -#endif - - cfg_file_add_dirent(&g_cfg_partitionlist, - part_map_ptr->part_name, is_dir, image_size, - image_start, cur_blk); - } - - free(blk_bufptr); - return g_cfg_partitionlist.last; -} - -int -cfg_maybe_insert_disk(int slot, int drive, const char *namestr) -{ - int num_parts; - FILE *file; - - file = fopen(namestr, "rb"); - if(!file) { - fatal_printf("Cannot open disk image: %s\n", namestr); - return 0; - } - - num_parts = cfg_partition_make_list((char*)namestr, file); - fclose(file); - - if(num_parts > 0) { - printf("Choose a partition\n"); - g_cfg_select_partition = 1; - } else { - insert_disk(slot, drive, namestr, 0, 0, 0, -1); - return 1; - } - return 0; -} - -int -cfg_stat(char *path, struct stat *sb) -{ - int removed_slash; - int len; - int ret; - - removed_slash = 0; - len = 0; - -#ifdef _WIN32 - /* Windows doesn't like to stat paths ending in a /, so remove it */ - len = strlen(path); - if((len > 1) && (path[len - 1] == '/') ) { - path[len - 1] = 0; /* remove the slash */ - removed_slash = 1; - } -#endif - - ret = stat(path, sb); - -#ifdef _WIN32 - /* put the slash back */ - if(removed_slash) { - path[len - 1] = '/'; - } -#endif - - return ret; -} - -void -cfg_htab_vtab(int x, int y) -{ - if(x > 79) { - x = 0; - } - if(y > 23) { - y = 0; - } - g_cfg_curs_x = x; - g_cfg_curs_y = y; - g_cfg_curs_inv = 0; - g_cfg_curs_mousetext = 0; -} - -void -cfg_home() -{ - int i; - - cfg_htab_vtab(0, 0); - for(i = 0; i < 24; i++) { - cfg_cleol(); - } -} - -void -cfg_cleol() -{ - g_cfg_curs_inv = 0; - g_cfg_curs_mousetext = 0; - cfg_putchar(' '); - while(g_cfg_curs_x != 0) { - cfg_putchar(' '); - } -} - -void -cfg_putchar(int c) -{ - int offset; - int x, y; - - if(c == '\n') { - cfg_cleol(); - return; - } - if(c == '\b') { - g_cfg_curs_inv = !g_cfg_curs_inv; - return; - } - if(c == '\t') { - g_cfg_curs_mousetext = !g_cfg_curs_mousetext; - return; - } - y = g_cfg_curs_y; - x = g_cfg_curs_x; - - offset = g_screen_index[g_cfg_curs_y]; - if((x & 1) == 0) { - offset += 0x10000; - } - if(g_cfg_curs_inv) { - if(c >= 0x40 && c < 0x60) { - c = c & 0x1f; - } - } else { - c = c | 0x80; - } - if(g_cfg_curs_mousetext) { - c = (c & 0x1f) | 0x40; - } - set_memory_c(0xe00400 + offset + (x >> 1), c, 0); - x++; - if(x >= 80) { - x = 0; - y++; - if(y >= 24) { - y = 0; - } - } - g_cfg_curs_y = y; - g_cfg_curs_x = x; -} - -void -cfg_printf(const char *fmt, ...) -{ - va_list ap; - int c; - int i; - - va_start(ap, fmt); - (void)vsnprintf(g_cfg_printf_buf, CFG_PRINTF_BUFSIZE, fmt, ap); - va_end(ap); - - for(i = 0; i < CFG_PRINTF_BUFSIZE; i++) { - c = g_cfg_printf_buf[i]; - if(c == 0) { - return; - } - cfg_putchar(c); - } -} - -void -cfg_print_num(int num, int max_len) -{ - char buf[64]; - char buf2[64]; - int len; - int cnt; - int c; - int i, j; - - /* Prints right-adjusted "num" in field "max_len" wide */ - snprintf(&buf[0], 64, "%d", num); - len = strlen(buf); - for(i = 0; i < 64; i++) { - buf2[i] = ' '; - } - j = max_len + 1; - buf2[j] = 0; - j--; - cnt = 0; - for(i = len - 1; (i >= 0) && (j >= 1); i--) { - c = buf[i]; - if(c >= '0' && c <= '9') { - if(cnt >= 3) { - buf2[j--] = ','; - cnt = 0; - } - cnt++; - } - buf2[j--] = c; - } - cfg_printf(&buf2[1]); -} - -void -cfg_get_disk_name(char *outstr, int maxlen, int type_ext, int with_extras) -{ - Disk *dsk; - int slot, drive; - - slot = type_ext >> 8; - drive = type_ext & 0xff; - dsk = cfg_get_dsk_from_slot_drive(slot, drive); - - outstr[0] = 0; - if(dsk->name_ptr == 0) { - return; - } - - config_generate_config_gsport_name(outstr, maxlen, dsk, with_extras); -} - -void -cfg_parse_menu(Cfg_menu *menuptr, int menu_pos, int highlight_pos, int change) -{ - char valbuf[CFG_OPT_MAXSTR]; - char **str_ptr; - const char *menustr; - char *curstr, *defstr; - char *str; - char *outstr; - int *iptr; - int val; - int num_opts; - int opt_num; - int bufpos, outpos; - int curval, defval; - int type; - int type_ext; - int opt_get_str; - int separator; - int len; - int c; - int i; - - g_cfg_opt_buf[0] = 0; - - num_opts = 0; - opt_get_str = 0; - separator = ','; - - menuptr += menu_pos; /* move forward to entry menu_pos */ - - menustr = menuptr->str; - type = menuptr->cfgtype; - type_ext = (type >> 4); - type = type & 0xf; - len = strlen(menustr) + 1; - - bufpos = 0; - outstr = &(g_cfg_opt_buf[0]); - - outstr[bufpos++] = ' '; - outstr[bufpos++] = ' '; - outstr[bufpos++] = '\t'; - outstr[bufpos++] = '\t'; - outstr[bufpos++] = ' '; - outstr[bufpos++] = ' '; - - if(menu_pos == highlight_pos) { - outstr[bufpos++] = '\b'; - } - - opt_get_str = 2; - i = -1; - outpos = bufpos; -#if 0 - printf("cfg menu_pos: %d str len: %d\n", menu_pos, len); -#endif - while(++i < len) { - c = menustr[i]; - if(c == separator) { - if(i == 0) { - continue; - } - c = 0; - } - outstr[outpos++] = c; - outstr[outpos] = 0; - if(outpos >= CFG_OPT_MAXSTR) { - fprintf(stderr, "CFG_OPT_MAXSTR exceeded\n"); - my_exit(1); - } - if(c == 0) { - if(opt_get_str == 2) { - outstr = &(valbuf[0]); - bufpos = outpos - 1; - opt_get_str = 0; - } else if(opt_get_str) { -#if 0 - if(menu_pos == highlight_pos) { - printf("menu_pos %d opt %d = %s=%d\n", - menu_pos, num_opts, - g_cfg_opts_strs[num_opts], - g_cfg_opts_vals[num_opts]); - } -#endif - num_opts++; - outstr = &(valbuf[0]); - opt_get_str = 0; - if(num_opts >= CFG_MAX_OPTS) { - fprintf(stderr, "CFG_MAX_OPTS oflow\n"); - my_exit(1); - } - } else { - if (type == CFGTYPE_INT) - { - val = strtoul(valbuf, 0, 0); - g_cfg_opts_vals[num_opts] = val; - } - - if (type == CFGTYPE_STR) - { - strncpy(&(g_cfg_opts_strvals[num_opts][0]),&(valbuf[0]),CFG_OPT_MAXSTR); - } - outstr = &(g_cfg_opts_strs[num_opts][0]); - opt_get_str = 1; - } - outpos = 0; - outstr[0] = 0; - } - } - - if(menu_pos == highlight_pos) { - g_cfg_opt_buf[bufpos++] = '\b'; - } - - g_cfg_opt_buf[bufpos] = 0; - - // Figure out if we should get a checkmark - curval = -1; - defval = -1; - curstr = 0; - if(type == CFGTYPE_INT) { - iptr = (int*)menuptr->ptr; // OG Added cast - curval = *iptr; - iptr = (int*)menuptr->defptr; // OG Added cast - defval = *iptr; - if(curval == defval) { - g_cfg_opt_buf[3] = 'D'; /* checkmark */ - g_cfg_opt_buf[4] = '\t'; - } - } - if(type == CFGTYPE_STR) { - str_ptr = (char **)menuptr->ptr; - curstr = *str_ptr; - str_ptr = (char **)menuptr->defptr; - defstr = *str_ptr; - if(strcmp(curstr,defstr) == 0) { - g_cfg_opt_buf[3] = 'D'; /* checkmark */ - g_cfg_opt_buf[4] = '\t'; - } - } - if(type == CFGTYPE_FILE) { - str_ptr = (char **)menuptr->ptr; - curstr = *str_ptr; - str_ptr = (char **)menuptr->defptr; - defstr = *str_ptr; - if(strcmp(curstr,defstr) == 0) { - g_cfg_opt_buf[3] = 'D'; /* checkmark */ - g_cfg_opt_buf[4] = '\t'; - } - } - - // If it's a menu, give it a special menu indicator - if(type == CFGTYPE_MENU) { - g_cfg_opt_buf[1] = '\t'; - g_cfg_opt_buf[2] = 'M'; /* return-like symbol */ - g_cfg_opt_buf[3] = '\t'; - g_cfg_opt_buf[4] = ' '; - } - - // Decide what to display on the "right" side - str = 0; - opt_num = -1; - if(type == CFGTYPE_INT || type == CFGTYPE_FILE) { - g_cfg_opt_buf[bufpos++] = ' '; - g_cfg_opt_buf[bufpos++] = '='; - g_cfg_opt_buf[bufpos++] = ' '; - g_cfg_opt_buf[bufpos] = 0; - for(i = 0; i < num_opts; i++) { - if(curval == g_cfg_opts_vals[i]) { - opt_num = i; - break; - } - } - } - if(type == CFGTYPE_STR) { - g_cfg_opt_buf[bufpos++] = ' '; - g_cfg_opt_buf[bufpos++] = '='; - g_cfg_opt_buf[bufpos++] = ' '; - g_cfg_opt_buf[bufpos] = 0; - for(i = 0; i < num_opts; i++) { - if(!strcmp(curstr,g_cfg_opts_strvals[i])) { - opt_num = i; - break; - } - } - } - - if(change != 0) { - if(type == CFGTYPE_INT) { - if(num_opts > 0) { - opt_num += change; - if(opt_num >= num_opts) { - opt_num = 0; - } - if(opt_num < 0) { - opt_num = num_opts - 1; - } - curval = g_cfg_opts_vals[opt_num]; - } else { - curval += change; - /* HACK: min_val, max_val testing here */ - } - iptr = (int *)menuptr->ptr; - *iptr = curval; - } - if(type == CFGTYPE_STR) { - if(num_opts > 0) { - opt_num += change; - if(opt_num >= num_opts) { - opt_num = 0; - } - if(opt_num < 0) { - opt_num = num_opts - 1; - } - curstr = g_cfg_opts_strvals[opt_num]; - } else { - //curstr += change; - /* HACK: min_val, max_val testing here */ - } - str_ptr = (char **)menuptr->ptr; - *str_ptr = curstr; - } - g_config_gsport_update_needed = 1; - } - -#if 0 - if(menu_pos == highlight_pos) { - printf("menu_pos %d opt_num %d\n", menu_pos, opt_num); - } -#endif - - if(opt_num >= 0) { - str = &(g_cfg_opts_strs[opt_num][0]); - } else { - if(type == CFGTYPE_INT) { - str = &(g_cfg_opts_strs[0][0]); - snprintf(str, CFG_OPT_MAXSTR, "%d", curval); - } else if (type == CFGTYPE_STR) { - str = &(g_cfg_opts_strs[0][0]); - printf("curstr is: %s str is: %s\n", curstr,str); - snprintf(str, CFG_OPT_MAXSTR, "%s", curstr); - } else if (type == CFGTYPE_DISK) { - str = &(g_cfg_opts_strs[0][0]), - cfg_get_disk_name(str, CFG_OPT_MAXSTR, type_ext, 1); - str = cfg_shorten_filename(str, 68); - } else if (type == CFGTYPE_FILE) { - str = &(g_cfg_opts_strs[0][0]); - snprintf(str, CFG_OPT_MAXSTR, "%s", curstr); - str = cfg_shorten_filename(str, 68); - } else { - str = ""; - } - } - -#if 0 - if(menu_pos == highlight_pos) { - printf("menu_pos %d buf_pos %d, str is %s, %02x, %02x, " - "%02x %02x\n", - menu_pos, bufpos, str, g_cfg_opt_buf[bufpos-1], - g_cfg_opt_buf[bufpos-2], - g_cfg_opt_buf[bufpos-3], - g_cfg_opt_buf[bufpos-4]); - } -#endif - - g_cfg_opt_buf[bufpos] = 0; - strncpy(&(g_cfg_opt_buf[bufpos]), str, CFG_OPT_MAXSTR - bufpos - 1); - g_cfg_opt_buf[CFG_OPT_MAXSTR-1] = 0; -} - -void -cfg_get_base_path(char *pathptr, const char *inptr, int go_up) -{ - const char *tmpptr; - char *slashptr; - char *outptr; - int add_dotdot, is_dotdot; - int len; - int c; - - /* Take full filename, copy it to pathptr, and truncate at last slash */ - /* inptr and pathptr can be the same */ - /* if go_up is set, then replace a blank dir with ".." */ - /* but first, see if path is currently just ../ over and over */ - /* if so, just tack .. onto the end and return */ - //printf("cfg_get_base start with %s\n", inptr); - - g_cfg_file_match[0] = 0; - tmpptr = inptr; - is_dotdot = 1; - while(1) { - if(tmpptr[0] == 0) { - break; - } - if(tmpptr[0] == '.' && tmpptr[1] == '.' && tmpptr[2] == '/') { - tmpptr += 3; - } else { - is_dotdot = 0; - break; - } - } - slashptr = 0; - outptr = pathptr; - c = -1; - while(c != 0) { - c = *inptr++; - if(c == '/') { - if(*inptr != 0) { /* if not a trailing slash... */ - slashptr = outptr; - } - } - *outptr++ = c; - } - if(!go_up) { - /* if not go_up, copy chopped part to g_cfg_file_match*/ - /* copy from slashptr+1 to end */ - tmpptr = slashptr+1; - if(slashptr == 0) { - tmpptr = pathptr; - } - strncpy(&g_cfg_file_match[0], tmpptr, CFG_PATH_MAX); - /* remove trailing / from g_cfg_file_match */ - len = strlen(&g_cfg_file_match[0]); - if((len > 1) && (len < (CFG_PATH_MAX - 1)) && - g_cfg_file_match[len - 1] == '/') { - g_cfg_file_match[len - 1] = 0; - } - //printf("set g_cfg_file_match to %s\n", &g_cfg_file_match[0]); - } - if(!is_dotdot && (slashptr != 0)) { - slashptr[0] = '/'; - slashptr[1] = 0; - outptr = slashptr + 2; - } - add_dotdot = 0; - if(pathptr[0] == 0 || is_dotdot) { - /* path was blank, or consisted of just ../ pattern */ - if(go_up) { - add_dotdot = 1; - } - } else if(slashptr == 0) { - /* no slashes found, but path was not blank--make it blank */ - if(pathptr[0] == '/') { - pathptr[1] = 0; - } else { - pathptr[0] = 0; - } - } - - if(add_dotdot) { - --outptr; - outptr[0] = '.'; - outptr[1] = '.'; - outptr[2] = '/'; - outptr[3] = 0; - } - - //printf("cfg_get_base end with %s, is_dotdot:%d, add_dotdot:%d\n", - // pathptr, is_dotdot, add_dotdot); -} - -void -cfg_file_init() -{ - int slot, drive; - int i; - - if(g_cfg_slotdrive < 0xfff) { - cfg_get_disk_name(&g_cfg_tmp_path[0], CFG_PATH_MAX, - g_cfg_slotdrive, 0); - - slot = g_cfg_slotdrive >> 8; - drive = g_cfg_slotdrive & 1; - for(i = 0; i < 6; i++) { - if(g_cfg_tmp_path[0] != 0) { - break; - } - /* try to get a starting path from some mounted drive */ - drive = !drive; - if(i & 1) { - slot++; - if(slot >= 8) { - slot = 5; - } - } - cfg_get_disk_name(&g_cfg_tmp_path[0], CFG_PATH_MAX, - (slot << 8) + drive, 0); - } - } else { - // Just use g_cfg_file_def_name - strncpy(&g_cfg_tmp_path[0], g_cfg_file_def_name, CFG_PATH_MAX); - } - - cfg_get_base_path(&g_cfg_file_curpath[0], &g_cfg_tmp_path[0], 0); - g_cfg_dirlist.invalid = 1; -} - -void -cfg_free_alldirents(Cfg_listhdr *listhdrptr) -{ - int i; - - if(listhdrptr->max > 0) { - // Free the old directory listing - for(i = 0; i < listhdrptr->last; i++) { - free(listhdrptr->direntptr[i].name); - } - free(listhdrptr->direntptr); - } - - listhdrptr->direntptr = 0; - listhdrptr->last = 0; - listhdrptr->max = 0; - listhdrptr->invalid = 0; - - listhdrptr->topent = 0; - listhdrptr->curent = 0; -} - - -void -cfg_file_add_dirent(Cfg_listhdr *listhdrptr, const char *nameptr, int is_dir, - int size, int image_start, int part_num) -{ - Cfg_dirent *direntptr; - char *ptr; - int inc_amt; - int namelen; - - namelen = strlen(nameptr); - if(listhdrptr->last >= listhdrptr->max) { - // realloc - inc_amt = MAX(64, listhdrptr->max); - inc_amt = MIN(inc_amt, 1024); - listhdrptr->max += inc_amt; - listhdrptr->direntptr = (Cfg_dirent*)realloc(listhdrptr->direntptr, - listhdrptr->max * sizeof(Cfg_dirent)); - } - ptr = (char*)malloc(namelen+1+is_dir); // OG Added cast - strncpy(ptr, nameptr, namelen+1); - if(is_dir) { - strcat(ptr, "/"); - } -#if 0 - printf("...file entry %d is %s\n", g_cfg_dirlist.last, ptr); -#endif - direntptr = &(listhdrptr->direntptr[listhdrptr->last]); - direntptr->name = ptr; - direntptr->is_dir = is_dir; - direntptr->size = size; - direntptr->image_start = image_start; - direntptr->part_num = part_num; - listhdrptr->last++; -} - -int -cfg_dirent_sortfn(const void *obj1, const void *obj2) -{ - const Cfg_dirent *direntptr1, *direntptr2; - int ret; - - /* Called by qsort to sort directory listings */ - direntptr1 = (const Cfg_dirent *)obj1; - direntptr2 = (const Cfg_dirent *)obj2; -#if defined(MAC) || defined(_WIN32) - // OG - ret = 0; -// ret = strcasecmp(direntptr1->name, direntptr2->name); -#else - ret = strcmp(direntptr1->name, direntptr2->name); -#endif - return ret; -} - -int -cfg_str_match(const char *str1, const char *str2, int len) -{ - const byte *bptr1, *bptr2; - int c, c2; - int i; - - /* basically, work like strcmp, except if str1 ends first, return 0 */ - - bptr1 = (const byte *)str1; - bptr2 = (const byte *)str2; - for(i = 0; i < len; i++) { - c = *bptr1++; - c2 = *bptr2++; - if(c == 0) { - if(i > 0) { - return 0; - } else { - return c - c2; - } - } - if(c != c2) { - return c - c2; - } - } - - return 0; -} - -void -cfg_file_readdir(const char *pathptr) -{ -#ifndef __OS2__ - struct dirent *direntptr; - struct stat stat_buf; - DIR *dirptr; - mode_t fmt; - char *str; - const char *tmppathptr; - int size; - int ret; - int is_dir, is_gz; - int len; - int i; - - if(!strncmp(pathptr, &g_cfg_file_cachedpath[0], CFG_PATH_MAX) && - (g_cfg_dirlist.last > 0) && (g_cfg_dirlist.invalid==0)){ - return; - } - // No match, must read new directory - - // Free all dirents that were cached previously - cfg_free_alldirents(&g_cfg_dirlist); - - strncpy(&g_cfg_file_cachedpath[0], pathptr, CFG_PATH_MAX); - strncpy(&g_cfg_file_cachedreal[0], pathptr, CFG_PATH_MAX); - - str = &g_cfg_file_cachedreal[0]; - - for(i = 0; i < 200; i++) { - len = strlen(str); - if(len <= 0) { - break; - } else if(len < CFG_PATH_MAX-2) { - if(str[len-1] != '/') { - // append / to make various routines work - str[len] = '/'; - str[len+1] = 0; - } - } - ret = cfg_stat(str, &stat_buf); - is_dir = 0; - if(ret == 0) { - fmt = stat_buf.st_mode & S_IFMT; - if(fmt == S_IFDIR) { - /* it's a directory */ - is_dir = 1; - } - } - if(is_dir) { - break; - } else { - // user is entering more path, use base for display - cfg_get_base_path(str, str, 0); - } - } - tmppathptr = str; - if(str[0] == 0) { - tmppathptr = "."; - } - cfg_file_add_dirent(&g_cfg_dirlist, "..", 1, 0, -1, -1); - dirptr = opendir(tmppathptr); - if(dirptr == 0) { - printf("Could not open %s as a directory\n", tmppathptr); - return; - } - while(1) { - direntptr = readdir(dirptr); - if(direntptr == 0) { - break; - } - if(!strcmp(".", direntptr->d_name)) { - continue; - } - if(!strcmp("..", direntptr->d_name)) { - continue; - } - /* Else, see if it is a directory or a file */ - snprintf(&g_cfg_tmp_path[0], CFG_PATH_MAX, "%s%s", - &g_cfg_file_cachedreal[0], direntptr->d_name); - ret = cfg_stat(&g_cfg_tmp_path[0], &stat_buf); - len = strlen(g_cfg_tmp_path); - is_dir = 0; - is_gz = 0; - if((len > 3) && (strcmp(&g_cfg_tmp_path[len - 3], ".gz") == 0)){ - is_gz = 1; - } - if(ret != 0) { - printf("stat %s ret %d, errno:%d\n", &g_cfg_tmp_path[0], - ret, errno); - stat_buf.st_size = 0; - continue; /* skip it */ - } else { - fmt = stat_buf.st_mode & S_IFMT; - size = stat_buf.st_size; - if(fmt == S_IFDIR) { - /* it's a directory */ - is_dir = 1; - } else if((fmt == S_IFREG) && (is_gz == 0)) { - if(g_cfg_slotdrive < 0xfff) { - if(size < 140*1024) { - continue; /* skip it */ - } - } else { - /* see if there are size limits */ - if((size < g_cfg_file_min_size) || - (size > g_cfg_file_max_size)) { - continue; /* skip it */ - } - } - } - } - cfg_file_add_dirent(&g_cfg_dirlist, direntptr->d_name, is_dir, - stat_buf.st_size, -1, -1); - } - /* then sort the results (Mac's HFS+ is sorted, but other FS won't be)*/ - qsort(&(g_cfg_dirlist.direntptr[0]), g_cfg_dirlist.last, - sizeof(Cfg_dirent), cfg_dirent_sortfn); - g_cfg_dirlist.curent = g_cfg_dirlist.last - 1; - for(i = g_cfg_dirlist.last - 1; i >= 0; i--) { - ret = cfg_str_match(&g_cfg_file_match[0], - g_cfg_dirlist.direntptr[i].name, CFG_PATH_MAX); - if(ret <= 0) { - /* set cur ent to closest filename to the match name */ - g_cfg_dirlist.curent = i; - } - } -#endif -} - -void -cfg_inspect_maybe_insert_file(char *filename, int should_boot) -{ -/* -Take a look at a file. Based on its size, guess a slot/drive to insert it into. -Used for blind operations like dragging/dropping files. -Optionally boot from that slot. -*/ - int rc = 0; - int slot = 0; - rc = cfg_guess_image_size(filename); - switch (rc) - { - case 0: slot = 7; break; - case 1: slot = 6; break; - case 2: slot = 5; break; - case 3: slot = 7; break; - default: break; - } - if (slot > 0) - { - insert_disk(slot,0,filename,0,0,0,-1); - printf("Inserted disk in slot %d, drive 1. Filename: %s\n", slot, filename); - if (should_boot) { - g_temp_boot_slot = slot; - printf("That slot has been set to boot.\n"); - } - } - else - printf("Unable to determine appropriate place to insert file %s.\n",filename); -} - -int -cfg_guess_image_size(char *filename) -{ -/* -Guess the image size. Return values: - -1 : invalid/unknown. Can't guess. - 0 : Less than 140k; might be ram disk image. - 1 : 140k, 5.25" image. - 2 : 800k, 3.5" image. - 3 : Something bigger. -*/ - struct stat stat_buf; - int rc = -1; - int len; - rc = stat(filename, &stat_buf); - if(rc < 0) - { - printf("Can't get statistics on file %s; errno: %d\n", - filename, errno); - rc = -1; - } else { - len = stat_buf.st_size; - printf("Found file %s, size %d; guessing ", - filename, len); - if (len < 140 * 1024) { - /* Not enough for a 140k image */ - printf("small ProDOS image.\n"); - rc = 0; - } else if (len < 140 * 1024 + 256 + 1) { - /* Reasonable size for 140k image, maybe in 2mg format */ - printf("a 5-1/4\" image.\n"); - rc = 1; - } else if (len < 800 * 1024 + 256 + 1) { - /* Reasonable size for 800k image, maybe in 2mg format */ - printf("a 3-1/2\" image.\n"); - rc = 2; - } else { - /* Let's pretend it's an HDV image */ - printf("a hard drive image.\n"); - rc = 3; - } - } - return rc; -} - -char * -cfg_shorten_filename(const char *in_ptr, int maxlen) -{ - char *out_ptr; - int len; - int c; - int i; - /* Warning: uses a static string, not reentrant! */ - out_ptr = &(g_cfg_file_shortened[0]); - len = strlen(in_ptr); - maxlen = MIN(len, maxlen); - for(i = 0; i < maxlen; i++) { - c = in_ptr[i] & 0x7f; - if(c < 0x20) { - c = '*'; - } - out_ptr[i] = c; - } - out_ptr[maxlen] = 0; - if(len > maxlen) { - for(i = 0; i < (maxlen/2); i++) { - c = in_ptr[len-i-1] & 0x7f; - if(c < 0x20) { - c = '*'; - } - out_ptr[maxlen-i-1] = c; - } - out_ptr[(maxlen/2) - 1] = '.'; - out_ptr[maxlen/2] = '.'; - out_ptr[(maxlen/2) + 1] = '.'; - } - return out_ptr; -} -void -cfg_fix_topent(Cfg_listhdr *listhdrptr) -{ - int num_to_show; - num_to_show = listhdrptr->num_to_show; - /* Force curent and topent to make sense */ - if(listhdrptr->curent >= listhdrptr->last) { - listhdrptr->curent = listhdrptr->last - 1; - } - if(listhdrptr->curent < 0) { - listhdrptr->curent = 0; - } - if(abs(listhdrptr->curent - listhdrptr->topent) >= num_to_show) { - listhdrptr->topent = listhdrptr->curent - (num_to_show/2); - } - if(listhdrptr->topent > listhdrptr->curent) { - listhdrptr->topent = listhdrptr->curent - (num_to_show/2); - } - if(listhdrptr->topent < 0) { - listhdrptr->topent = 0; - } -} -void -cfg_file_draw() -{ - Cfg_listhdr *listhdrptr; - Cfg_dirent *direntptr; - char *str, *fmt; - int num_to_show; - int yoffset; - int x, y; - int i; - cfg_file_readdir(&g_cfg_file_curpath[0]); - for(y = 0; y < 21; y++) { - cfg_htab_vtab(0, y); - cfg_printf("\tZ\t"); - for(x = 1; x < 79; x++) { - cfg_htab_vtab(x, y); - cfg_putchar(' '); - } - cfg_htab_vtab(79, y); - cfg_printf("\t_\t"); - } - cfg_htab_vtab(1, 0); - cfg_putchar('\b'); - for(x = 1; x < 79; x++) { - cfg_putchar(' '); - } - if(g_cfg_slotdrive < 0xfff) { - cfg_htab_vtab(30, 0); - cfg_printf("\bSelect image for s%dd%d\b", - (g_cfg_slotdrive >> 8), (g_cfg_slotdrive & 0xff) + 1); - } else { - cfg_htab_vtab(5, 0); - cfg_printf("\bSelect file to use as %-40s\b", - cfg_shorten_filename(g_cfg_file_def_name, 40)); - } - cfg_htab_vtab(2, 1); - cfg_printf("Configuration file path: %-56s", - cfg_shorten_filename(&g_config_gsport_name[0], 56)); - cfg_htab_vtab(2, 2); - cfg_printf("Current directory: %-50s", - cfg_shorten_filename(&g_cfg_cwd_str[0], 50)); - cfg_htab_vtab(2, 3); - str = ""; - if(g_cfg_file_pathfield) { - str = "\b \b"; - } - cfg_printf("Path: %s%s", - cfg_shorten_filename(&g_cfg_file_curpath[0], 68), str); - cfg_htab_vtab(0, 4); - cfg_printf(" \t"); - for(x = 1; x < 79; x++) { - cfg_putchar('\\'); - } - cfg_printf("\t "); - - /* Force curent and topent to make sense */ - listhdrptr = &g_cfg_dirlist; - num_to_show = CFG_NUM_SHOWENTS; - yoffset = 5; - if(g_cfg_select_partition > 0) { - listhdrptr = &g_cfg_partitionlist; - num_to_show -= 2; - cfg_htab_vtab(2, yoffset); - cfg_printf("Select partition of %-50s\n", - cfg_shorten_filename(&g_cfg_file_path[0], 50), str); - yoffset += 2; - } - listhdrptr->num_to_show = num_to_show; - cfg_fix_topent(listhdrptr); - for(i = 0; i < num_to_show; i++) { - y = i + yoffset; - if(listhdrptr->last > (i + listhdrptr->topent)) { - direntptr = &(listhdrptr-> - direntptr[i + listhdrptr->topent]); - cfg_htab_vtab(2, y); - if(direntptr->is_dir) { - cfg_printf("\tXY\t "); - } else { - cfg_printf(" "); - } - if(direntptr->part_num >= 0) { - cfg_printf("%3d: ", direntptr->part_num); - } - str = cfg_shorten_filename(direntptr->name, 45); - fmt = "%-45s"; - if(i + listhdrptr->topent == listhdrptr->curent) { - if(g_cfg_file_pathfield == 0) { - fmt = "\b%-45s\b"; - } else { - fmt = "%-44s\b \b"; - } - } - cfg_printf(fmt, str); - if(!direntptr->is_dir) { - cfg_print_num(direntptr->size, 13); - } - } - } - cfg_htab_vtab(1, 5 + CFG_NUM_SHOWENTS); - cfg_putchar('\t'); - for(x = 1; x < 79; x++) { - cfg_putchar('L'); - } - cfg_putchar('\t'); -} -void -cfg_partition_selected() -{ - char *str; - const char *part_str; - char *part_str2; - int pos; - int part_num; - pos = g_cfg_partitionlist.curent; - str = g_cfg_partitionlist.direntptr[pos].name; - part_num = -2; - part_str = 0; - if(str[0] == 0 || (str[0] >= '0' && str[0] <= '9')) { - part_num = g_cfg_partitionlist.direntptr[pos].part_num; - } else { - part_str = str; - } - part_str2 = 0; - if(part_str != 0) { - part_str2 = (char *)malloc(strlen(part_str)+1); - strcpy(part_str2, part_str); - } - insert_disk(g_cfg_slotdrive >> 8, g_cfg_slotdrive & 0xff, - &(g_cfg_file_path[0]), 0, 0, part_str2, part_num); - if(part_str2 != 0) { - free(part_str2); - } - g_cfg_slotdrive = -1; - g_cfg_select_partition = -1; -} -void -cfg_file_update_ptr(char *str) -{ - char *newstr; - int len; - len = strlen(str) + 1; - newstr = (char*)malloc(len); - memcpy(newstr, str, len); - if(g_cfg_file_strptr) { - if(*g_cfg_file_strptr) { - free(*g_cfg_file_strptr); - } - } - *g_cfg_file_strptr = newstr; - if(g_cfg_file_strptr == &(g_cfg_rom_path)) { - printf("Updated ROM file\n"); - load_roms_init_memory(); - } - g_config_gsport_update_needed = 1; -} -void -cfg_file_selected() -{ -#ifndef __OS2__ - struct stat stat_buf; - char *str; - int fmt; - int ret; - if(g_cfg_select_partition > 0) { - cfg_partition_selected(); - return; - } - if(g_cfg_file_pathfield == 0) { - // in file section area of window - str = g_cfg_dirlist.direntptr[g_cfg_dirlist.curent].name; - if(!strcmp(str, "../")) { - /* go up one directory */ - cfg_get_base_path(&g_cfg_file_curpath[0], - &g_cfg_file_curpath[0], 1); - return; - } - snprintf(&g_cfg_file_path[0], CFG_PATH_MAX, "%s%s", - &g_cfg_file_cachedreal[0], str); - } else { - // just use cfg_file_curpath directly - strncpy(&g_cfg_file_path[0], &g_cfg_file_curpath[0], - CFG_PATH_MAX); - } - ret = cfg_stat(&g_cfg_file_path[0], &stat_buf); - fmt = stat_buf.st_mode & S_IFMT; - cfg_printf("Stat'ing %s, st_mode is: %08x\n", &g_cfg_file_path[0], - (int)stat_buf.st_mode); - if(ret != 0) { - printf("stat %s returned %d, errno: %d\n", &g_cfg_file_path[0], - ret, errno); - } else { - if(fmt == S_IFDIR) { - /* it's a directory */ - strncpy(&g_cfg_file_curpath[0], &g_cfg_file_path[0], - CFG_PATH_MAX); - } else { - /* select it */ - if(g_cfg_slotdrive < 0xfff) { - ret = cfg_maybe_insert_disk(g_cfg_slotdrive>>8, - g_cfg_slotdrive & 0xff, - &g_cfg_file_path[0]); - if(ret > 0) { - g_cfg_slotdrive = -1; - } - } else { - cfg_file_update_ptr(&g_cfg_file_path[0]); - g_cfg_slotdrive = -1; - } - } - } -#endif -} - -void -cfg_file_handle_key(int key) -{ - Cfg_listhdr *listhdrptr; - int len; - if(g_cfg_file_pathfield) { - if(key >= 0x20 && key < 0x7f) { - len = strlen(&g_cfg_file_curpath[0]); - if(len < CFG_PATH_MAX-4) { - g_cfg_file_curpath[len] = key; - g_cfg_file_curpath[len+1] = 0; - } - return; - } - } - listhdrptr = &g_cfg_dirlist; - if(g_cfg_select_partition > 0) { - listhdrptr = &g_cfg_partitionlist; - } - if( (g_cfg_file_pathfield == 0) && - ((key >= 'a' && key <= 'z') || (key >= 'A' && key <= 'Z')) ) { - /* jump to file starting with this letter */ - g_cfg_file_match[0] = key; - g_cfg_file_match[1] = 0; - g_cfg_dirlist.invalid = 1; /* re-read directory */ - } - switch(key) { - case 0x1b: - if(g_cfg_slotdrive < 0xfff) { - eject_disk_by_num(g_cfg_slotdrive >> 8, - g_cfg_slotdrive & 0xff); - } - g_cfg_slotdrive = -1; - g_cfg_select_partition = -1; - g_cfg_dirlist.invalid = 1; - break; - case 0x0a: /* down arrow */ - if(g_cfg_file_pathfield == 0) { - listhdrptr->curent++; - cfg_fix_topent(listhdrptr); - } - break; - case 0x0b: /* up arrow */ - if(g_cfg_file_pathfield == 0) { - listhdrptr->curent--; - cfg_fix_topent(listhdrptr); - } - break; - case 0x0d: /* return */ - printf("handling return press\n"); - cfg_file_selected(); - break; - case 0x09: /* tab */ - g_cfg_file_pathfield = !g_cfg_file_pathfield; - break; - case 0x08: /* left arrow */ - case 0x7f: /* delete key */ - if(g_cfg_file_pathfield) { - // printf("left arrow/delete\n"); - len = strlen(&g_cfg_file_curpath[0]) - 1; - if(len >= 0) { - g_cfg_file_curpath[len] = 0; - } - } - break; - default: - printf("key: %02x\n", key); - } -#if 0 - printf("curent: %d, topent: %d, last: %d\n", - g_cfg_dirlist.curent, g_cfg_dirlist.topent, g_cfg_dirlist.last); -#endif -} -void -config_control_panel() -{ - void (*fn_ptr)(); - const char *str; - Cfg_menu *menuptr; - void *ptr; - int print_eject_help; - int line; - int type; - int match_found; - int menu_line; - int menu_inc; - int max_line; - int key; - int i, j; - // First, save important text screen state - g_save_cur_a2_stat = g_cur_a2_stat; - for(i = 0; i < 0x400; i++) { - g_save_text_screen_bytes[i] = g_slow_memory_ptr[0x400+i]; - g_save_text_screen_bytes[0x400+i] =g_slow_memory_ptr[0x10400+i]; - } - g_cur_a2_stat = ALL_STAT_TEXT | ALL_STAT_VID80 | ALL_STAT_ANNUNC3 | - (0xf << BIT_ALL_STAT_TEXT_COLOR) | ALL_STAT_ALTCHARSET; - g_a2_new_all_stat[0] = g_cur_a2_stat; - g_new_a2_stat_cur_line = 0; - cfg_printf("In config_control_panel\n"); - for(i = 0; i < 20; i++) { - // Toss any queued-up keypresses - if(adb_read_c000() & 0x80) { - (void)adb_access_c010(); - } - } - g_adb_repeat_vbl = 0; - g_cfg_vbl_count = 0; - // HACK: Force adb keyboard (and probably mouse) to "normal"... - g_full_refresh_needed = -1; - g_a2_screen_buffer_changed = -1; - cfg_home(); - j = 0; - menuptr = g_cfg_main_menu; - if(g_rom_version < 0) { - /* Must select ROM file */ - menuptr = g_cfg_rom_menu; - } - menu_line = 1; - menu_inc = 1; - g_cfg_slotdrive = -1; - g_cfg_select_partition = -1; - while(g_config_control_panel & !(halt_sim&HALT_WANTTOQUIT)) { - if(g_fatal_log > 0) { - x_show_alert(0, 0); - } - cfg_home(); - line = 1; - max_line = 1; - match_found = 0; - print_eject_help = 0; - cfg_printf("%s\n\n", menuptr[0].str); - while(line < 24) { - str = menuptr[line].str; - type = menuptr[line].cfgtype; - ptr = menuptr[line].ptr; - if(str == 0) { - break; - } - if((type & 0xf) == CFGTYPE_DISK) { - print_eject_help = 1; - } - cfg_parse_menu(menuptr, line, menu_line, 0); - if(line == menu_line) { - if(type != 0) { - match_found = 1; - } else if(menu_inc) { - menu_line++; - } else { - menu_line--; - } - } - if(line > max_line) { - max_line = line; - } - cfg_printf("%s\n", g_cfg_opt_buf); - line++; - } - if((menu_line < 1) && !match_found) { - menu_line = 1; - } - if((menu_line >= max_line) && !match_found) { - menu_line = max_line; - } - if(g_rom_version < 0) { - cfg_htab_vtab(0, 21); - cfg_printf("\bYOU MUST SELECT A VALID ROM FILE\b\n"); - } - cfg_htab_vtab(0, 23); - cfg_printf("Move: \tJ\t \tK\t Change: \tH\t \tU\t \tM\t"); - if(print_eject_help) { - cfg_printf(" Eject: "); - if(g_cfg_slotdrive >= 0) { - cfg_printf("\bESC\b"); - } else { - cfg_printf("E"); - } - } -#if 0 - cfg_htab_vtab(0, 22); - cfg_printf("menu_line: %d line: %d, vbl:%d, adb:%d key_dn:%d\n", - menu_line, line, g_cfg_vbl_count, g_adb_repeat_vbl, - g_key_down); -#endif - if(g_cfg_slotdrive >= 0) { - cfg_file_draw(); - } -#ifdef HAVE_TFE - /*HACK eh, at least I think it is. Display the available ethernet interfaces - when in the ethernet control panel. This is the only way one can customize a menu pane. - Kent did it with the directory browser, so why not.*/ - if(menuptr == g_cfg_ethernet_menu) - { - cfg_get_tfe_name(); - } -#endif -#ifdef HAVE_SDL - /*If user enters the Virtual Imagewriter control panel, flag it so we can - automatically apply changes on exit.*/ - if(menuptr == g_cfg_imagewriter_menu) - { - g_cfg_triggeriwreset = 1; - } -#endif - key = -1; - while(g_config_control_panel & !(halt_sim&HALT_WANTTOQUIT)) { - video_update(); - key = adb_read_c000(); - if(key & 0x80) { - key = key & 0x7f; - (void)adb_access_c010(); - break; - } else { - key = -1; - } - micro_sleep(1.0/60.0); - g_cfg_vbl_count++; - if(!match_found) { - break; - } - } - if((key >= 0) && (g_cfg_slotdrive < 0)) { - // Normal menu system - switch(key) { - case 0x0a: /* down arrow */ - menu_line++; - menu_inc = 1; - break; - case 0x0b: /* up arrow */ - menu_line--; - menu_inc = 0; - if(menu_line < 1) { - menu_line = 1; - } - break; - case 0x15: /* right arrow */ - cfg_parse_menu(menuptr, menu_line,menu_line,1); - break; - case 0x08: /* left arrow */ - cfg_parse_menu(menuptr,menu_line,menu_line,-1); - break; - case 0x0d: - type = menuptr[menu_line].cfgtype; - ptr = menuptr[menu_line].ptr; - switch(type & 0xf) { - case CFGTYPE_MENU: - menuptr = (Cfg_menu *)ptr; - menu_line = 1; - break; - case CFGTYPE_DISK: - g_cfg_slotdrive = type >> 4; - cfg_file_init(); - break; - case CFGTYPE_FUNC: - fn_ptr = (void (*)())ptr; - (*fn_ptr)(); - adb_all_keys_up(); //Needed otherwise menu function will continue to repeat until we move selection up or down - break; - case CFGTYPE_FILE: - g_cfg_slotdrive = 0xfff; - g_cfg_file_def_name = *((char **)ptr); - g_cfg_file_strptr = (char **)ptr; - cfg_file_init(); - } - break; - case 0x1b: - // Jump to last menu entry - menu_line = max_line; - break; - case 'e': - case 'E': - type = menuptr[menu_line].cfgtype; - if((type & 0xf) == CFGTYPE_DISK) { - eject_disk_by_num(type >> 12, - (type >> 4) & 0xff); - } - break; - default: - printf("key: %02x\n", key); - } - } else if(key >= 0) { - cfg_file_handle_key(key); - } - } - for(i = 0; i < 0x400; i++) { - set_memory_c(0xe00400+i, g_save_text_screen_bytes[i], 0); - set_memory_c(0xe10400+i, g_save_text_screen_bytes[0x400+i], 0); - } - // And quit - if (g_cfg_triggeriwreset) - { - g_cfg_triggeriwreset = 0; - cfg_iwreset(); //Reset the virtual Imagewriter if the user was in the control panel. - } - g_config_control_panel = 0; - g_adb_repeat_vbl = g_vbl_count + 60; - g_cur_a2_stat = g_save_cur_a2_stat; - change_display_mode(g_cur_dcycs); - g_full_refresh_needed = -1; - g_a2_screen_buffer_changed = -1; -} - -void x_clk_setup_bram_version() -{ - if(g_rom_version < 3) { - g_bram_ptr = (&g_bram[0][0]); // ROM 01 - } else { - g_bram_ptr = (&g_bram[1][0]); // ROM 03 - } -} diff --git a/.svn/pristine/99/9930d5721919a7467b74f1c22f187cc19b9145df.svn-base b/.svn/pristine/99/9930d5721919a7467b74f1c22f187cc19b9145df.svn-base deleted file mode 100644 index 0ef6122c6675af2846ac2187f2ce194255a62aad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16990 zcmc({cT`kM(>@9a9zaPVNR}{wf`H^4Bo9$C3{mosqktq)f@ByZCzT;HATUG;DkvFr z$U{10$vLOr9z5@N-_LXZx_8}mbqO=O_wL*lYI`%AI-A;VzxRoWo2rb$WI0{DlADq{ z-V>449T|Mp51qCk6Gk&`S!H}CY-V}x5BEG+Z&|!5>xw0Ib1x?V#l7b57K+-7@1FB5 zEGeB?UEN&We34t1y85E^qIlq<=}1z~RBr|nbReO3aX7c0K8TAigM~x-^7AACov4TP z`&GBNTfkQ=T*k+CIH@KcU?!;NJ-coaY|L$$YVSCpxjr*;v{F}`B+^%$_bb{i7_RWd zBxY~5tP+@~MciuHF6B8kU<>FYzp5cHFZ~*J^*!{=+&A}38XQqEI2+xv*=4?eAQn(b zta&o$`eSycWIL8a;$WtDTb<2he@jn9GlEBSYmP@$n#BC{rMcj&bkX)_bN*TBplU+R z!CB*+!(6XpZ;F<6V|CxtRLNf}SL30s{@;TuXTJ;_@BSsN6X6=XWbkXdtm2rMzE=0R z->!7qT>ZFw=IJxzur2*r*jb5Nd+5x$3Pp=j#982g=jKs@M8I%=K3hNy;mnx{d5i66 zXrB3Api-+4$-t+pX}*A~z1IHF2&t>J`=_rYB-Zg}wm~5p}x*Fm;-=~;y`8r^-Loe-V!w_`Xy>&jGy0Y!bbH+{1;FnA| zuh8hI761KjLh`8MK_7kb!eD+tX)mM`9D8h=Lv)h8wMQx73+dCB(OyoIk&4kiU zU-4ScSlA@A!bUHO2=A?KTiwg~F$)%xI0sh*A18SqyHn(R__|fRP0k^q7bYwr8y2m0 ze39EELL%+GbN_s(VrjN8c*B|@=lQN(&Y>cC(BY__ZxXR)@Zi9TTibx-e7Mrm><~+? z->Mdy#M;n+^csn`Z!K|r&|#+cajdYkVg&7d&q(6dcVAtn;a{!Pef#@3Bs9WQ_3CZR z!PC-2ZdXmH9}k!6*2{&N>&z~4Wa-aB4Km%92hH4B{sawVq19k2GO z*_w7Wb5FXj3ffA&d{cj-1HL{Q=Rx|GHJQ9ipn{8%t;xq!Tu}x}7x|v@JTi zJd0YpT1U+c&o*#0ZMJ5*?S~TD>G|dmRv63<==ol5akbHIzWBmta(L#mJWH~9iI6@{ zAZC~LQi~v2+x||{`ZU7d?6|-`F4L{8nWL#QR3~_6g6;f0;nn;%jwYjs)TR?2a}O&9 z?$#Y1p4OG%l5K4Y7yVfl4iooif?)4_LRa3|;O2Ei&vxxq;4oj)dHkgqN!{haaNT7r zaot59r`K^2vFp_@L9u}K4C%|U8n!06u=rL~s87(j-qv|2@fK=!cE^EdtBLeek&PwPlBEHy8Sp9Z6VC%rsAfPbS-r5?gCK4qu#RTojtR{` z{*DRS-mCjqKMd4NC7)VK;{Jn!Lb-Tup^WukK;iTgN( zQ|kHV0@#nnOLp|4Sspge#V>LSOsqMQ5MF+QHB9~0;7<%$XBpmww=Z9%E zDyHY>@JBYuH67Gui@{2IqXewraG1gC>Q?K93i<4f_@Au|uad))zgI+TuQ8qeCI1oi z5haE|MwQg8mq*gYt8#9Xr!v&&qo)k$`hrPIUGgPG&z_VOQmt)R@f?$Z`p(%XjK5ny7S;HR;dDR6l~?HpHY2waH*7@%cY1q9=8mtP0Qt4vWq?$pEC=tt>=cm-pm(m zZIAzthA=_pRM0=z8Ael)>{nln`IEK~qrWBWk-mPxCz1Ny6DpA^)a41?JVS-*XS^^% zdkfzUQX}5kYY~`Ez1B2H9{k`8n7G2bCY-khFLw!_nqhZy%J|{^!mq$`7TXy+**g!3 zI8GFpcIY!k_>~H})+`}LSel1v!1JlcC#*q1k-6q`%hw;LQxE^P3p%O0?*022%GaD` zOEvmeAhbK|!6#q52Qb@xHN5|;pPWm?h)T*xgII8F8b)RRM|Ty`s{9#9+mEgB`R28@ z&zFauDA9`SbpBS@MDqA7U%J`$`3%bu`+V=5G!PChBNpI`88vX0)PkSoe=|~1!Mpa& zq`yEf;VV9UWWU?7ag=FZ+`MjyB$Ywkfp+4i80cbSJbeakf&hr<+R5KxdI@JmB{*_B zD-&aS#XJT3fA@Q^r46uaV2gNL;p$sJJbTe7-oP=Dw6jeQwuu zOB;Vz#ZsiC!JFK1s7_ZZSi|wYZMnlHLa36-Zh5!hGv?73>>tbF#rx{1R?^Aw5qD{! z<>Hl2`HRc)tL7<^2~vIhC$)EDq@Q2_lgt8cf3`R~X%hoT-DbVnB-Nr#>-#XPx})JD z-*o4yt+7t=F~jdUu)li?RRKE=qf(OSOI0E2jX0s?(xB^w?2Y`qq?|FW%Bc}Xr&Fk0 zlIe_NoD9021u03$0xOsFV!cmUz#Q)=fBZaePVM{OZ6EK1q_H|{jBKj>h`fEh$a26U zlWJUJIpt6+ScbF{u;V46xi9{=s@8*YLFdi;8hzR`pTK@9* zjL=Ad1=2P8O#+}x3$uTz$sPo(1;M-m^Rfhi|K~4b1d*PcJsx~8oyel}^&1J8{Q06= zdwVDrt~M*9e~3qkKzLCq>;cGGgCn0N27se)LSD+`;)27|j>ucsVM6SZI`lsUsO|yd z=fW1G!aD^i!#8~ z75Tt`Bo$;3_=!l~WLsoY0ut zb?QgBje3hevPtYsC6PX)HSMO(t=?XhPlwhvoPXzJGW=MI)!mVPvH!l?6e>Mrn#vVi zB4553v>6!R>*>m4C^_4Zbgy36wZW4$qnH>Qr<5$MHCaEqTZ7(-tM*7U_PvAFz=vX0 zv}L7FuiilsEsOj_8Qex6q8G&AcA_*;Qw(_n57Q*#YB;-mTMGU3E@RRFky_U~i>5QP zv1F5FB;Z6iF=bEAFm%~Qy`WS#M%5CNJg2-h$`Ieks}DowC+iF8FuWKv4J#h93_0MN z8g=>L>59aunVb$l7*smg>i1-~6%LuLQsvO|F3U4Ya&DBR2=I@t7`eFmIEo%*i%gn{ zJ-Ef+|D8A3gB{EsG`m=}Q&+q9>ERRaLLJwVLA&^3YLV9Nk#A2oyN6ge7FOmzm7o2D z-k7=(D?k@dR9Oeq0!Q zKC5Y5@uP-e3E0a(OhVt-mMB z?J8KfLZ!5Jirb_Q@%HRKY5g=AGv99I?Oo2^Xi~YK6P;Z#N$}$&Yoq58MZY(sL_`R2 zDP*w-# zTlozoKOR884Y`G&UPpx_JKJ+jrAejQ>iIJGRmW~oaMe*QN`5v8r~OtHV8;R}ce7Ox z6y6~yRB2K3FchMU-WttiZD@6O-Nen>=mJnNwx+Z|FgI_XZy@~mph(_Zu& zXx5bUP~{Gj3HN+ zBFeS7>}14P5f_F^e`hx<5EVOBKkNc0^)ddaO4Zk@IR(+i!UeO1%8oxYiStmfxSq^Z zZE?sw^MGdGrqxLgJy{fKyeWVsB!}v^-c)Lig1TK&PFuV7h;pGvd~ek1R441tsFrTo z)(q^X>y&>?0F%Q2pU1#kMRELSVi@ zb^9i`w4JA4v)nS@Pt!Ec`-P1TsP7SFEy-ajiFW;TXF&?_N7Q!_K4b0f!)Aes2}G5o zzG(Xv)$`=Ra0;Vc2$WM94e5{@Nko2UrxdH(zmq#+x4^#MT$IhukX#}t`o)$Nn%{<- z+>As8O`u$j!~*_4ay>ahMX?t+aU6VUlVLIPsjGg19+)#2{`&Cs0%OJm>gegc z>5TV{-69Oaricjy@{m5;4~!n?k7Z{_wYwMX$!zp3`}kW3aeT1jmSNIhshhX0j^jyt z-f-<{gw&%@br_Ogu`z|%e%Wi~a5K*Ta=5M~BVNnA~{z}6{7FJX7 zVW>Cv?HA=fJd#_fbn!lm%Qu1UiB`4KnT>_o6qAtWZ>T4A?Ng{hT)DHu zF&zGquhOGx{2^IE`Jr6u({rrx*6)8d$eKW)uQdpj(eHd4PTt~vL@}THeK#vGFGDIL zDi0AWi>?yHVh5K7(+98Fu*GJ4B18gwxPZajqiIkGmA;L^VSj^~sO zf`g*&K8k4{J&(Jedj$JedN%zf$F&rt*_l-a$X0-$R~1!ev?Qcx+q}ZL_YullB*H$0 zzj=2nK!3Hq$s^d-^#f|$RgASSrPZm?&%t5WV}6UOBTwjz(9ZVT^u{BmYed`o`g05j z@yLL+HA@d~BlgkZ81gB#aYwAhQA&z=akA)R;t_9Y5AQHHovSrgQ`y%Q8+kV6O**08yC z57Wn&>r}1;D2?x6`lOtwY$49+Er{0Kb-RtxrzFy}c=+(->&4i7bllH$r{ylI{6!&^ z!_h~{oGJ6!gq5(r$+%2w7ol3KGBiD5ALk6*N}i5z4LtaQ*wN(0vZW3?#M5t ztg!NW?FReyC|#BjjI#$5V9Ptee?W_@n_)Go07*)CC}Csdqf5XDr5$3QT*ii(ywiFJ zsBIhO3Nv&(4=2suFam(gC}5)yB?^>a@Fim)07Xxon`YziOMva{MEs}vFD#XPEqaL2 zPPRXFTv^}w8X~_0g2U?%3HaC`uEcO_@87Y@A3=<=zTKaP_&z;$EBg#IA;3;8{dNMgw`xc2sLS1BHSn= zQvKENYW>#LzIredjBY z!k+6dZ~7_JlNropwr66!SgR?~i-oICOFsmlx;!HuSf>Kp(<~F#d;`+D4H*dc|8(d* zJd#_G(c!0w3>17Gk#KvoNXn6oC;6|cuhYK>34XR+4c6vsDlFD)FFL&Wj#M&c?3i5g8I_GXr{)- z$gY~W=A5yqb*!hAWJ7ApUV#v98Vouwp7MUI%H$DV4&d%9*%n#5Q4zMl@zl?1kefIP zQ4cdr*>aNSyf>A9no;uxD$k;&KurTtH*oVSEruin01`072Ue56=oX!o$gfzQbxZ#i_yo11d(x9J0I7u2$~C zKsOFJ#mX5wPwA_POJM^gOMhqRw{g&auo`#>Kt9`(DxLmu^?gN`F;Pz!ZQ~igAxp$O z)0#5GN;DB!w0tk-CVq?>BQ%;Oiop*_Ri z)AF$PN7LpP%hKY2xB~D3jpPRn>Q&D0({?noP^mH0uIlgriDA9~-+>q61>(vaM~w33 zde$M5D)-N;JfHWkj$3CsaQSN}miH2T4m={wlk6*!T7b9&7WWM12x;61B?WVe+pFFd zuYunK_ZV|{vYkN?ecjesa#%RDN)~ajksrz`N&1HQ3oH+0^MZV z+FcqfK-#Qn#yaugt^z^76Jdw|h-+_3FPMhx2CH?4qmI~Vr~i=kU)cC+vW!GvE3Y3m>Dz&x_zzcnJ$`ZS}yao8(R-TS1tm9cjFk( z#MP>D&2sXOn+5)*-I*4mlzX~>~dr?=b8KWvcKO{ku=V%XR>oG&LJC&UY<;3yT0``Hda5idwqa^X<6?aI#u=aeTB+A` zWZBG_6GT~QdSVK4`Z&=2X7Gf!UfnL5D>}6~3r*x`1VukHE^j$|wa%RP#ZfYotcuCe zxP%}?0KZomrNN`l%O#QCqoux?KBb=#%%2NSugTt;x)+)vm^b#p@eTj}g7~>v#+rtg zFr%tJly$jKzh(7oIeh8!1x9{lsumis+P5F_VcA9wnS7%XDM~J(eq{-=s}4)qf|1|( zbxQOzSlFAz7$jTTm*$y%8QI)`T>);$lkqV-xCa4Hx<#5{MH>R6jUF01qOc{=T?5hk z&(s>b_4rI~R(Cr#E{e8jiMH4u-hHhpv6QH)q==Xq-tx_oo1rgL7%^qnehi3|1E(4$ z;GD98sF)LIO{vRnb~f;D3O5)`PqgK9ZW5j1geoG-qKDJ159SFuRUv-2`lb#0#mT#dUSR+_T$OuSuC_YSgrTrEAi^ zw=^8uQ&_0FIk@pUZ&d&waDRM66;ONYoLG0>!|5VV%Y?@+lUP^%=1$Uq9bh|R(Zy3$ z#E97}yni|~xUZI+EJg{t{zaXzRd;@1#%zf8e-SQo3Pc2$MFYwGxgXMdnWLkC?np_= z|J-{~_XI%zmBN^C`_DmG^F=@6zyU0(jGBcDY^lY+abF|-ghQvJ$HqaOc2_a2z#wPj z;jjl!vtQx4cE-kq&bLg`Rf4IbvEmrW<~k)yQ_&aovKg5n?cH;!Q-tI+_X5agy4Rq4 zDzo;~#{K?Yw?4&W-M!*FaeL@}3zw!P9GpG&$DH6nPkG*30!_t!U$Gx$W|tQ4_Zr>- zkeV!ri%wQ`vqhTXT%7ZhLvxeOW-sfzg45yUa;jw>*zkwtL;*y518mr=ztFm?DYOzZf_SeR=^oY)itn$+_xfHnSPve4ioHR^hqa-&gwF^U+2ONWH?Xr*uhb>66ql zv5}ucv6z{dSQ$K}FUImV zTjAS>mXwd%51r{5bU637(|hdt7N{G7OE`@#W4CHX^E&}g-aK}oU4viZD$4_Tuj3@P znU$=PTxh~mS7`!ASGi}@Pm=Z+pU8h`m^fxdSfhpww460mkHQx-C(eqx!+mZGxZcE# zfj>m7Hqn68{qed}>ms~}g+)sPaK@)0rxZ7PZ-G70UCVe?FHP9td!lRHwx|4=Zr|(% zUBy`Jm6A;7Q=RW_P3hOj2KZ}Gfcr0WV`2LHu&=ypie`p&nFIMo8!Z`TW>~HR+%x0! z(R%D=XW3lCyF`*iZ&{q7_!VTf9|h9wS2eR!^i_8^k#X}s_nXTS8mlH6SyoG-c`l*P zG${kge#xO!k`zZ<S z6?PE6|C5o!6qeGL*;79L^irE%o!TKOvtmvTbfez8QBpRd#43<=L%w{$bcdKgyXE0ku4cjq;|8 z&mV+sltw^oUekOK`-~ZG2Eu;*fX3&$io!dv;nh!DLp0Z;o0h;-PVrwk_oRTvv(XIxKl!`&#H zFC}06ry}4pti>d%Wyt%bvER96IVx{-Ro8fWCZU(d3JJjbTFT-fohQHJ-2W`krM>|S`E^ro=*K9vEN8)n zTMNQhxCroRtT>gbkVW}1F@3b!k{O6=gDDE0Kh-kiVu|xp71CwJGp4%d{7J31DUc}+ zt}rFxXso3SL2syTu(6Rwz#A_8Zot1-ZJp#dALbdFxn8yR0#K3G!ujWi=YX5C#vMsP zcB$m7_P$P5Onn7dWJXXz4t$*a8UL^ZNPR5X4n2LB7Kij#;!D7KZG9i0jHtfTA^#7t zE{l`hs&5j>m{Sa{D5)>YR$GQhe@&s^kyQbT@sPKl{OKV@+h0Wd-@Gh_5vp`Vne4cH zoGvCs;S6vf%!bP~zp_c35?QM9U|`PCe(<#xkMUr|5kGHAbl20inCz>)T+}R-O-ud88ul z_041AOV8PF-h0hSkD~+5*pXbVME*`^q1}@MMV{UQ2Rh%+67g3g`MT~A_CwuYEU9Y_ z5;t~=Q0p0|ExBDw7wFw$H`RSA490l@_m#Xlc>m1w;q$U|CflS>kg>$bsnp18xL|YEP$IG*yPAQuZ^!>`3)##?X~2!Z&e<2O;ql;+*BP8Am*OZg zLPkdO&?i2q42cgyJjSiwsGK|Q+BK?!&CF~jtq|R?<3Wr`w;f0yWHAi<%7BBanCRb@ zoR9|hm}S&dcKgqs)N@J_SaiglTKG_l#pS;c9<4Iitvy(^;g*_x$MK z?_=jz(Bp`gq9NgOe_cG@_tSJwiq11HDg4_SGD2`U9YHCF4ThWC*}jvtN>La7vzL`g z2p-WL5ntDI>tR9rg7=aQ1r99AkjcKTIWosbDmYb4T&lx@!Zqvk?UIdoPUGBY#$nuc zNxvJc>OAa$W_MrQ!DVJeE{uIn(^?#C;l$~UB*(* zR0wWU-1vhD8k1N_@Wy}FRs}uQHz;WHlmQ@jI>V8VC@#oxD#=KXtU<9|cX4>{BoIN3 zO2!KKyKi8-Ybv5Fv-*GiAjMqdu$N;L!kNp7!32MA5??wg_h^3;%GP4Qf8);wqn!6r zj0nHJ_=NVK4uLGBOboC-kQ9#Em6%-_naQL?Bvm25n85W#LNw`{*q8O}EEw}<3A&z5 zrMlhQzph{MO(gs0d#3A)Kf-04fXP#1GM=O?*y9N)`BBbdc@m_UQFDD?i6JJszW7QA z*OG;CvkOBNg-~73PS0tOdNJhsCA=DTUiSFcQ$~_AzRQr>U7Kw1oXz_7zd9z&wSPm+ zh0UL=LAvpuY~#5&^@6O>jmTR~9wK`#i`dJd#22*&F|n&VihpjB9B9)U}@?8nys^@#pBqRz+LZ3*eEn#%S)AaU?9IAC z6#pZ1UoZ;J#lKgIR#b+3ik)mu^z{ff_O?IRvRwB4S(u1y2^T&}&-uJM_txK3UyLKW zIJJd_j)9N(b@yv-w+3XDY(a_xgcG4qJ(w!6<|=TQuIGF3CBO=Vu(4*CF?G5&lH(3b zuUE2_Ar5(7p*7A(qnHO!{2+}x>T-Im3v z?@#pBX?}^X1%|@PO8VF3`=??W)YF%ZcYiGSc;Bvnu^TX(xoE?^w&ZRzX52Ygn-QjE z?0r{V6iX>dz$&TCi#6y?uqk-2he{v)whj6Y8kpoNUInKnS6HLb9rIRTN{7>c_pzEQ!_XF)!qL=1Ly+7mH!Z5P zkmF2ZH@#5@Rkk)j@2Ktq3*WkxxJ^8^o9di63O3_0R&8OJiY*k5V}VwkTIMfKK&1j| zHjT^D+$5OmR!9v^v)Vi4q7V<8&4wt4AH!_b8d1YdH;JUr7Y{DO*eZsRl?keA)eDxf zMXj+wW<`qP^G-tTJX1M&n<#~)zNRun{)Sp@21_#Q<48Dl?(E^07W8C^s07-({M+7) z=;Kk|>Wn775Jj`p%%lIVlzQs6bl2q{LQHW|t~MX7h|8K^Xxnq){EM+78*Xhp6?IY@J$^8N^-tJ0)uB zYy67tn@=}O&YgDB;vug4OhNubr~tRHzMyIp$4g+J#ecSj*%G@vA~6yvq@GZ(D}hs7 zenav9?0+VE1(h=xrip(vLcDX2R}L`X#(&vs)rOPD_wy#4lWmn*`f>9@ji*$Mhvlg5 z%s9G^)gBVJ#ePJY@OnN(O2-vgj%bA6HHQlqYvrl4Jx+o5eRtX@<_GydcajD3^Ly&t za87{hsUbBa*NQb=(NqO3)j&-TUYySsU!5oyjM6ej@H=#x!hy~vlNB1$oMKNpCV-=i ze#{jIm|2AMZ4O%BHm?yQ?(a{qLkj5MPy{2ip1;Y}O2QBMNf*y~;qoRj>(~>j_6%U+ z*|EnhwNgr|AIrbV{VW0l3c^5DI8m)~I$zuIJKMo29K2qcM)bq`i3S0z6|d{rX`!PL zdivc1RpfSbqJdF=g+K{96;mD!BL!KH%<#)<6omBWwlkst;~q{=@E?16EH9^qA0zjV zDX(@HBWh?@1ALrKvE`D?xKPp`_B>M*s=by5IG$?{LFs9b=QMxqO-kGyPe2juY5flI7t2cmQx$6ZgT(x zOk3_SCm!)Q5#tOQ?3i8fLd>q+TuKJ~0F`^%+_eB3arJ)DV9ZXAaYw89ij%lFl6No; zi3m)aC9}LgHLqMW*}cCtyUEky`TMRrqpw0qsoq?R=(Xmr8-fi!_iYLWkKEoQAZN!s z?C@_ZS(L-{XPWQFY3=&tZ0$>$4ECl*VjL||N3OV>j3O}5LL@3Cr@?=HDf2mQkp+1! zYCmwWhpWiZHDm0~hF4XWSfFyr3E%a=Nn!0FpVKg~fe&15xn#+=J5ugYP_j8({K~3U zzL0^$fXeQ)WfrZ<-Ic87IMFlXVXLASEr+uGE{|Ez@U^5#Y8*bm8%xB(y&GRc*q*rR z*}ZotNNDTZ!W;H6zxp8ieMtB6t8kMz9+(`t8<39iuE|a)CJNkej3Wk6tNWXp`__*Y z(^3tR;OWOB6Z+|w>ql&H&7R8VEg9;Q${~0Uia2`Kj}PjWQ^palA}z=ss|I#Y8E z!Gh!Itr=Sz!W6vacY8Hv>RK0oI+LKaYz|DX*YTd+Ex;`aVe9&73qCk&O)^&Pi zMpMO{pKZfW;a>A2=rE;21wB4QAD_HAjXGQIxfcG5mFa&pY5~ZP4`wk~dJpG+8&>vT zjuQ5`7}%{(6YEAHR}HwU;!#6)M3)xlM5$)GBD`hQEnfmxM!e4!kes zT4iH}G=TsX2Ln0+q6p)E){!VO;6{9~dq&^af<<<0ddK-Bg51oyd z)b!PPzW-tLHH6tq$lkZ*Krrg$yBLVGE`#TKn-MN+{$qUDlLShsx!+L+=cVO2*6BHk z>_~niFbzZ)G-(GK5H#g-YV*#l__O952&#}jsP-WAv$W2~*}v1Evt$Fn(UMe}^vnRp zzfYUVD*^|^XHM<5T1``2Wr*(^@<+RKFqdA2!|xm|JY+>!G7-JED>xa>Hs!6h9Z$<{ zt7*I0?b9;ogHK8gDCqBPb{XRScDmjr{&czZv{OlACg@BI#xF~$hzc)PW<>SHumL+k z6`h6{Ua+7;+?G>a2`Jq9%tnfp_0Oyp?%zS^5a_Z@`_9LzjJ1~t$x<@GYJ(JHeO;XB z+%=~e!Ky8uy*{T5<r zTPKGTWXs}#M?GJfCw^~Dz4-ICWSKGt7VAnFJdzW|a=7op3gBgkHjL74U{ivS*Q8SK zieYmJK*mYei-^!kR6)x$YaPZmYnWV>3~n`ZHQi>hCgX;#>4KWNX{mHDnBEJ72o&~5 zw`vHo6(YR-H#dH(&qr_BIGUDC?~1bpcIlJxfuO@HZ`0hi*Y_oY)_+aR z9NOxHlT}f1rOK4Z?_HZvE_$$)6I}k83x=kz=-q;~zZQ7fazUvf0LEU|_VZtYTm zbc(ilS3L$eT<#FvNT3*4mQ*?S8c^fd4QsG|jKE4>2$&C z*}4zw88|yT7e5-RsjkjD&pmjg4-;_Z9`K*uQ=?qf&TXb3kXHe+cHhS%f(SyU39dc% z$L$c<5(7@t#o^KA)Xc@kvec0g#apbb;L8&g4?ghVOd4YXvf$CCXYQGa_i)dUvgMXtIc@zN&Ud|k6?6P)5ZL>(+8H-Y^1^$Xne^Q~l+6lbNwCGgo=lBo(RPvWxV1l3~T{$o-x4Psr=^jy)>(a1D znWSZk8tGD)8gYU@oGIw;9La~NGU|O`g05)V?R)%2I|? z@t&>4V05EVz%Mx;&iR!O(cD!H#~|k^lc7F6N|mwA`uXQcWH8FHMA;9(9%5%8Q^s#s zzSct70;+1f#T;EPY2j?!rlkynfaA9Nr~8FhT{l^w@&1$Zm_d%bRTzYRSE2No2~0&* zr#wP)qP#LH&B%1Z_6DQ}mcrn8&*2I7mpb-BE1U@ofl*AIz!2(U_a5!5;B)zNN10K{BRL8e0(pIN<)1Dkss~hrg{g;Gxj^@hfNP5dnJyB5 z*65m@)($l5e$$%q^(26+U=Cnpz5JC*`YZMK3ajRT0kB(j~v)Fx>!!t}e>8H4(gJWm?IABE_d!< zy=T>>i{CIB(&R7CP*7F?MvjNkWe79O_FHdY&ugtZeLZo2-7{QgFx7tgqIyh9Fy^RxQ#>uROzP@nKoEll7);%*CGkKlQ+i>HEweC??S*b#SW?kcfWrJNqTUuydd zglJ|y7>s#^*>_xcVEz{)``yfXZA(6vBX5_+`YrvhbZeuW@G%5}EQ;|5$@TE@`b)A^ zo~8=q+g11-46l0Ib3IuZKidp2CWy`FtiwiXd$Nz z%HRd17Cib2$R+7kA+_AESaPMwBz6%7l*wj%^se_OWl39fuKd)A0{FOO*JRRXaESs+R)ar$0rghl z82a7YL+fi7^gHQGmUgnE1!|QHirb4GkEj)G44%E`W^m`|i68AS)ExE;Ho$*ffFOHu z)2R3DHL--pyoyAjHGz)!WGTPzjJdd!nFUSxz`|dnIzuP#IJs;MC+QZ$lTv?-(8#KuexqVfO*p;7P6oauxKF@9lEwYln=7K0hDoZ>gRc@o>dGs$=b8K&S*@QmQ z<^A5p3U6r#KLHG^EC|t1nQax3pA@?ZRyg>}UoCI8({hDQ$$en4dg4UbzvHWh#8SKm z3-m(m*KKc%%KyW;EfCPfhi7+>1-QlUPPkgmtNJlM=DX&`Xc`=>{|eE-0K#;*5wGW( zt>(6{Uj1%0d^1>_nhYC<|2Lh;|5a8?I24el=0hk2IYMVZ2+mc^h8shhcOvXX)BLGQ z7c1hLjq|evN5`@(hR6U67lz@3ap>H}Hw5~RfxBm6|3f5l*lOdqW1Gce4t zng2gn&m%_YDy0b!wr}BDZ>g>|Q%#ZrWr3vo!K}S&Dj9yR?3kkvxFLF@{c>+Z{AGdi ziqgX?;9N=qE9S5QCdDI1YB;Jw`$27z{C7r%k?|$mUE+6o=AT1AuNH4#-wjgyGnJA) zrX9U{U2O2L;swGKeh{XxHG%5SjE=RXDpv`ndR0c|&;A}7_9tLoEo1qwTu&rdO%X9B zwT1m>e{c&?xjUGtME;WnvM|NDRj!YtUd20HDrlFu1)L?p^@xTe#MAJ8fN?_F@rzCZ zD61Ea!*utmUJWusBM(AbO03?3-GqN1c^P4~0I5I5&d&zrnk6FnIemZvVjF8{JgdWB zA-q5y%?z!aQBTf{A)FZ>Q)7lhUTSbl?2Dwkgoe;9d`L8i^i2|`()VD3zY_J74Jd2j z!xSop!_|e(PZb8HfLQ9jd5CGsqM7D!7e zFj;L%l-dj^(mMBQus}PW)8QA!Z^gZHP=?&+lY+E@faKo0?9aL|{oIOd*L4a1xu+}B zRNqy+yZFN3E8Uy)o~o$U=^-(>D9D)}UQYtmS0va|HoNJrhxWR3pLLNZf^EdUI9AeK6IkhmyhcFOOQOqDFy4fimDs5F-=LpmIje zyX+~xw(4W;folIx-4voBJwJ=kxG?<(F9MUz&9L7hgQ4Fjqkg5;65G{CJ!tUroVW*8 zwSU~v`lbWAmLh z>6?Vl@<8oU|FSrP<{X!pP9Jt<&889AWj7S##&p4g1DqvfWvK&=%+!>Kq2mc;tPa;U>>EJ z%2i~?oIR^P8mpN-wm1Yh%oK+UXpV1cbrKkT&Td$S^!;=|XZN7{c1SXi3N|xQMyoV; z#$M-IFllGtbf0>e8P_k|qlG|dQXkH%5oQA1IepPBC^p)lix0~#q%U743e;3Bm5_>fEWCL&I3#yhK#ZhA z?gvoO#K?`~Frx1%oSG{030{eB&-~7Ua6gAU-d&yO6&r{EmyO*bIO!FM8IC$pJM+8j zm+!2uQ#cs2^iT2{uZJ3jF)qs2L;CNEdcMkh%3+Lk!C0&RT}62Jk)1N8l8KS`&)VS5 z_7sTjUx0Oa`SQ;)eC>}}Oaz!ja{IqB=;X!@TJ#v}g7as8%3nOfuMgeb`R`Qtb-A&c zQ?Y_KW+wRm-QT+ef$4jg)0CJ*w>b7e!8+d7t?MI>*!b`#e_!3Of1pDyP<@{O_&*`A NzzQ1j<+2v9{ts=%QD*=E diff --git a/.svn/pristine/9c/9c9ee8bfae1866f1989fb5bc24fd4d1eba8bcb04.svn-base b/.svn/pristine/9c/9c9ee8bfae1866f1989fb5bc24fd4d1eba8bcb04.svn-base deleted file mode 100644 index 0571f5c..0000000 --- a/.svn/pristine/9c/9c9ee8bfae1866f1989fb5bc24fd4d1eba8bcb04.svn-base +++ /dev/null @@ -1,2257 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2011 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* - * Copyright (C) 2002-2004 The DOSBox Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -/* - Modified for the GSport emulator by Christopher G. Mason 03/2014 - Extensively rewritten to provide full emulation of the Apple ImageWriter II - and LQ printers. - - Information used to write this emulator was provided by - Apple's "ImageWriter II Technical Reference Manual" - ISBN# 0-201-17766-8 - and - Apple's "ImageWriter LQ Reference Manual" - ISBN# 0-201-17751-X - */ - -#include "imagewriter.h" -#include -#include "support.h" - -//#include "png.h" -//#pragma comment( lib, "libpng.lib" ) -//#pragma comment (lib, "zdll.lib" ) - -static Imagewriter* defaultImagewriter = NULL; - -static FILE *textPrinterFile = NULL; -#ifdef WIN32 -const char* const textPrinterFileName = ".\\printer.txt"; -#else -const char* const textPrinterFileName = "./printer.txt"; -#endif - -#define PARAM16(I) (params[I+1]*256+params[I]) -#define PIXX ((Bitu)floor(curX*dpi+0.5)) -#define PIXY ((Bitu)floor(curY*dpi+0.5)) -//These ugly defines are so we can convert multibyte parameters from strings into some nice ints. -#define paramc(I) (params[I]-'0') -#define PARAM2(I) (paramc(I)*10+paramc(I+1)) -#define PARAM3(I) (paramc(I)*100+paramc(I+1)*10+paramc(I+2)) -#define PARAM4(I) (paramc(I)*1000+paramc(I+1)*100+paramc(I+2)*10+paramc(I+3)) - -static Bitu printer_timout; -static bool timeout_dirty; -static const char* document_path; -extern "C" char* g_imagewriter_fixed_font; -extern "C" char* g_imagewriter_prop_font; -extern "C" int iw_scc_write; -#include "iw_charmaps.h" - -#ifdef HAVE_SDL -void Imagewriter::FillPalette(Bit8u redmax, Bit8u greenmax, Bit8u bluemax, Bit8u colorID, SDL_Palette* pal) -{ - float red=redmax/30.9; - float green=greenmax/30.9; - float blue=bluemax/30.9; - - Bit8u colormask=colorID<<=5; - - for(int i = 0; i < 32;i++) { - pal->colors[i+colormask].r=255-(red*(float)i); - pal->colors[i+colormask].g=255-(green*(float)i); - pal->colors[i+colormask].b=255-(blue*(float)i); - } -} -#endif // HAVE_SDL - -Imagewriter::Imagewriter(Bit16u dpi, Bit16u paperSize, Bit16u bannerSize, char* output, bool multipageOutput) -{ -#ifdef HAVE_SDL - if (FT_Init_FreeType(&FTlib)) - { - page = NULL; - } - else - { - SDL_Init(SDL_INIT_EVERYTHING); - this->output = output; - this->multipageOutput = multipageOutput; - this->port = port; - - if (bannerSize) - { - defaultPageWidth = ((Real64)paperSizes[0][0]/(Real64)72); - defaultPageHeight = (((Real64)paperSizes[0][1]*bannerSize)/(Real64)72); - dpi = 144; - } - else - { - defaultPageWidth = ((Real64)paperSizes[paperSize][0]/(Real64)72); - defaultPageHeight = ((Real64)paperSizes[paperSize][1]/(Real64)72); - } - this->dpi = dpi; - // Create page - page = SDL_CreateRGBSurface( - SDL_SWSURFACE, - (Bitu)(defaultPageWidth*dpi), - (Bitu)(defaultPageHeight*dpi), - 8, - 0, - 0, - 0, - 0); - - // Set a grey palette - SDL_Palette* palette = page->format->palette; - - for (Bitu i=0; i<32; i++) - { - palette->colors[i].r =255; - palette->colors[i].g =255; - palette->colors[i].b =255; - } - - // 0 = all white needed for logic 000 - FillPalette( 0, 0, 0, 1, palette); - // 1 = magenta* 001 - FillPalette( 0, 255, 0, 1, palette); - // 2 = cyan* 010 - FillPalette(255, 0, 0, 2, palette); - // 3 = "violet" 011 - FillPalette(255, 255, 0, 3, palette); - // 4 = yellow* 100 - FillPalette( 0, 0, 255, 4, palette); - // 5 = red 101 - FillPalette( 0, 255, 255, 5, palette); - // 6 = green 110 - FillPalette(255, 0, 255, 6, palette); - // 7 = black 111 - FillPalette(255, 255, 255, 7, palette); - - // 0 = all white needed for logic 000 - /*FillPalette( 0, 0, 0, 1, palette); - // 1 = yellow* 100 IW - FillPalette( 0, 0, 255, 1, palette); - // 2 = magenta* 001 IW - FillPalette( 0, 255, 0, 2, palette); - // 3 = cyan* 010 IW - FillPalette(255, 0, 0, 3, palette); - // 4 = red 101 IW - FillPalette( 0, 255, 255, 4, palette); - // 5 = green 110 IW - FillPalette(255, 0, 255, 5, palette); - // 6 = "violet" 011 IW - FillPalette(255, 255, 0, 6, palette); - // 7 = black 111 - FillPalette(255, 255, 255, 7, palette);*/ - - // yyyxxxxx bit pattern: yyy=color xxxxx = intensity: 31=max - // Printing colors on top of each other ORs them and gets the - // correct resulting color. - // i.e. magenta on blank page yyy=001 - // then yellow on magenta 001 | 100 = 101 = red - - color=COLOR_BLACK; - - curFont = NULL; - charRead = false; - autoFeed = false; - outputHandle = NULL; - - resetPrinter(); - //Only initialize native printer here if multipage output is off. That way the user doesn't get prompted every page. - if (strcasecmp(output, "printer") == 0 && !multipageOutput) - { -#if defined (WIN32) - // Show Print dialog to obtain a printer device context - - ShowCursor(1); - PRINTDLG pd; - pd.lStructSize = sizeof(PRINTDLG); - pd.hDevMode = (HANDLE) NULL; - pd.hDevNames = (HANDLE) NULL; - pd.Flags = PD_RETURNDC | PD_USEDEVMODECOPIESANDCOLLATE; - pd.hwndOwner = NULL; - pd.hDC = (HDC) NULL; - pd.nFromPage = 0xFFFF; - pd.nToPage = 0xFFFF; - pd.nMinPage = 1; - pd.nMaxPage = 0xFFFF; - pd.nCopies = 1; - pd.hInstance = NULL; - pd.lCustData = 0L; - pd.lpfnPrintHook = (LPPRINTHOOKPROC) NULL; - pd.lpfnSetupHook = (LPSETUPHOOKPROC) NULL; - pd.lpPrintTemplateName = (LPCSTR) NULL; - pd.lpSetupTemplateName = (LPCSTR) NULL; - pd.hPrintTemplate = (HANDLE) NULL; - pd.hSetupTemplate = (HANDLE) NULL; - if(!PrintDlg(&pd)) - { - //If user presses cancel, warn them with a dialog and switch output to bitmap files - this->output = "bmp"; - MessageBox(NULL,"You did not select a printer.\nAll printer output will be saved as bitmap files.\nTo select a printer, press F4 and select 'Reset Virtual ImageWriter'",NULL,MB_ICONEXCLAMATION); - } - printerDC = pd.hDC; - ShowCursor(0); -#endif // WIN32 - } - } -#endif // HAVE_SDL -#ifndef HAVE_SDL - this->output = output; - this->multipageOutput = multipageOutput; -#endif // !HAVE_SDL -}; - -void Imagewriter::resetPrinterHard() -{ -#ifdef HAVE_SDL - charRead = false; - resetPrinter(); -#endif // HAVE_SDL -} - -void Imagewriter::resetPrinter() -{ -#ifdef HAVE_SDL - printRes = 0; - color=COLOR_BLACK; - curX = curY = 0.0; - ESCSeen = false; - FSSeen = false; - ESCCmd = 0; - numParam = neededParam = 0; - topMargin = 0.0; - leftMargin = 0.25; //Most all Apple II software including GS/OS assume a 1/4 inch margin on an Imagewriter - rightMargin = pageWidth = defaultPageWidth; - bottomMargin = pageHeight = defaultPageHeight; - lineSpacing = (Real64)1/6; - cpi = 12.0; - printRes = 2; - style &= (0xffff - STYLE_PROP); - definedUnit = 96; - curCharTable = 1; - style = 0; - extraIntraSpace = 0.0; - printUpperContr = true; - bitGraph.remBytes = 0; - densk = 0; - densl = 1; - densy = 2; - densz = 3; - charTables[0] = 0; // Italics - charTables[1] = charTables[2] = charTables[3] = 437; - multipoint = false; - multiPointSize = 0.0; - multicpi = 0.0; - hmi = -1.0; - switcha = 0; - switchb = ' '; - numPrintAsChar = 0; - LQtypeFace = fixed; - verticalDot = 0; - selectCodepage(charTables[curCharTable]); - - updateFont(); - updateSwitch(); - -#endif // HAVE_SDL - newPage(false,true); -#ifdef HAVE_SDL - - // Default tabs => Each eight characters - /*for (Bitu i=0;i<32;i++) - horiztabs[i] = i*8*(1/(Real64)cpi);*/ - numHorizTabs = 0; - - numVertTabs = 0; -#endif // HAVE_SDL -} - - -Imagewriter::~Imagewriter(void) -{ -#ifdef HAVE_SDL - finishMultipage(); - if (page != NULL) - { - SDL_FreeSurface(page); - page = NULL; - FT_Done_FreeType(FTlib); - } -#if defined (WIN32) - DeleteDC(printerDC); -#endif -#endif // HAVE_SDL -}; - -#ifdef HAVE_SDL -void Imagewriter::selectCodepage(Bit16u cp) -{ - Bit16u *mapToUse = NULL; - - switch(cp) - { - case 0: // Italics, use cp437 - case 437: - mapToUse = (Bit16u*)&cp437Map; - break; - default: - //LOG(LOG_MISC,LOG_WARN)("Unsupported codepage %i. Using CP437 instead.", cp); - mapToUse = (Bit16u*)&cp437Map; - } - - for (int i=0; i<256; i++) - curMap[i] = mapToUse[i]; -} -#endif // HAVE_SDL - -#ifdef HAVE_SDL -void Imagewriter::updateFont() -{ - // char buffer[1000]; - if (curFont != NULL) - FT_Done_Face(curFont); - - char* fontName; - - switch (LQtypeFace) - { - case fixed: - fontName = g_imagewriter_fixed_font; - break; - case prop: - fontName = g_imagewriter_prop_font; - break; - default: - fontName = g_imagewriter_fixed_font; - } - - if (FT_New_Face(FTlib, fontName, 0, &curFont)) - { - - printf("Unable to load font %s\n"); - //LOG_MSG("Unable to load font %s", fontName); - curFont = NULL; - } - - Real64 horizPoints = 10; - Real64 vertPoints = 10; - if (!multipoint) - { - actcpi = cpi; - - if (!(style & STYLE_CONDENSED)) { - horizPoints *= 10.0/cpi; - //vertPoints *= 10.0/cpi; - } - - if (!(style & STYLE_PROP)) { - if ((cpi == 10.0) && (style & STYLE_CONDENSED)) { - actcpi = 17.14; - horizPoints *= 10.0/17.14; - } - if ((cpi == 12.0) && (style & STYLE_CONDENSED)) { - actcpi = 20.0; - horizPoints *= 10.0/20.0; - vertPoints *= 10.0/12.0; - } - } else if (style & STYLE_CONDENSED) horizPoints /= 2.0; - - - if ((style & STYLE_DOUBLEWIDTH)) { - actcpi /= 2.0; - horizPoints *= 2.0; - } - } else { // multipoint true - actcpi = multicpi; - horizPoints = vertPoints = multiPointSize; - } - - if (style & STYLE_SUPERSCRIPT || style & STYLE_SUBSCRIPT || style & STYLE_HALFHEIGHT) { - //horizPoints *= 2.0/3.0; - vertPoints *= 2.0/3.0; - //actcpi /= 2.0/3.0; - } - - FT_Set_Char_Size(curFont, (Bit16u)horizPoints*64, (Bit16u)vertPoints*64, dpi, dpi); - - if (style & STYLE_ITALICS || charTables[curCharTable] == 0) - { - FT_Matrix matrix; - matrix.xx = 0x10000L; - matrix.xy = (FT_Fixed)(0.20 * 0x10000L); - matrix.yx = 0; - matrix.yy = 0x10000L; - FT_Set_Transform(curFont, &matrix, 0); - } -} - - -void Imagewriter::updateSwitch() -{ - //Set international character mappping (Switches A-1 to A3) - int charmap = switcha &= 7; - curMap[0x23] = intCharSets[charmap][0]; - curMap[0x40] = intCharSets[charmap][1]; - curMap[0x5b] = intCharSets[charmap][2]; - curMap[0x5c] = intCharSets[charmap][3]; - curMap[0x5d] = intCharSets[charmap][4]; - curMap[0x60] = intCharSets[charmap][5]; - curMap[0x7b] = intCharSets[charmap][6]; - curMap[0x7c] = intCharSets[charmap][7]; - curMap[0x7d] = intCharSets[charmap][8]; - curMap[0x7e] = intCharSets[charmap][9]; - //MSB control (Switch B-6) - if (!(switchb&32)) - { - msb = 255; - } - else msb = 0; -} -void Imagewriter::slashzero(Bit16u penX, Bit16u penY) -{ - FT_Face slashFont = curFont; - FT_UInt slashindex = FT_Get_Char_Index(slashFont, curMap[0x2f]); - FT_Load_Glyph(slashFont, slashindex, FT_LOAD_DEFAULT); - FT_Render_Glyph(slashFont->glyph, FT_RENDER_MODE_NORMAL); - blitGlyph(slashFont->glyph->bitmap, penX, penY, false); - blitGlyph(slashFont->glyph->bitmap, penX+1, penY, true); - if (style & STYLE_BOLD) { - blitGlyph(slashFont->glyph->bitmap, penX+1, penY, true); - blitGlyph(slashFont->glyph->bitmap, penX+2, penY, true); - blitGlyph(slashFont->glyph->bitmap, penX+3, penY, true); - } -} -#endif // HAVE_SDL - -#ifdef HAVE_SDL -bool Imagewriter::processCommandChar(Bit8u ch) -{ - if (ESCSeen || FSSeen) - { - ESCCmd = ch; - if(FSSeen) ESCCmd |= 0x800; - ESCSeen = FSSeen = false; - numParam = 0; - - switch (ESCCmd) { - case 0x21: // Select bold font (ESC !) IW - case 0x22: // Cancel bold font (ESC ") IW - case 0x24: // Cancel MSB control and Mousetext (ESC $) IW - case 0x2b: // custom char width is 8 dots (ESC -) IW - case 0x2e: // custom char width is 8 dots (ESC +) IW - case 0x30: // Clear all tabs (ESC 0) IW - case 0x31: // Insert 1 intercharacter spaces (ESC 1) IW - case 0x32: // Insert 2 intercharacter spaces (ESC 2) IW - case 0x33: // Insert 3 intercharacter spaces (ESC 3) IW - case 0x34: // Insert 4 intercharacter spaces (ESC 4) IW - case 0x35: // Insert 5 intercharacter spaces (ESC 5) IW - case 0x36: // Insert 6 intercharacter spaces (ESC 6) IW - case 0x3c: // bidirectional mode (one line) (ESC <) IW - case 0x3e: // Unidirectional mode (one line) (ESC >) IW - case 0x3f: // Send ID string (ESC ?) IW - case 0x41: // Select 1/6-inch line spacing (ESC A) IW - case 0x42: // Select 1/8-inch line spacing (ESC B) IW - case 0x45: // 12 cpi, 96 dpi graphics (ESC E) IW - case 0x4d: // Same as ESC a2 (ESC M) IW - case 0x4e: // 10 cpi, 80 dpi graphics (ESC N) IW - case 0x4f: // Disable paper-out detector (ESC O) IW - case 0x50: // Proportional, 160 dpi graphics (ESC P) IW - case 0x51: // 17 cpi, 136 dpi graphics (ESC Q) IW - case 0x57: // Cancel halfheight printing (ESC W) IW - case 0x58: // Turn underline on (ESC X) IW - case 0x59: // Turn underline off (ESC Y) IW - case 0x63: // Initialize printer (ESC c) IW - case 0x65: // 13.4 cpi, 107 dpi graphics (ESC e) IW - case 0x66: // Select forward feed mode (ESC f) IW - case 0x6b: // Select optional font (ESC k) IW LQ - case 0x6d: // Same as ESC a0 (ESC m) IW - case 0x6e: // 9 cpi, 72 dpi graphics (ESC n) IW - case 0x6f: // Enable paper-out detector (ESC o) IW - case 0x70: // Proportional, 144 dpi graphics (ESC p) IW - case 0x72: // Select reverse feed mode (ESC r) IW - case 0x71: // 15 cpi, 120 dpi graphics (ESC q) IW - case 0x77: // Select halfheight printing (ESC w) IW - case 0x78: // Select superscript printing (ESC x) IW - case 0x79: // Select subscript printing (ESC y) IW - case 0x7a: // Cancel superscript/subscript printing (ESC z) IW - neededParam = 0; - break; - case 0x3d: // Internal font ID (ESC = n) IW LQ - case 0x40: // Select output bin (ESC @ n) IW LQ - case 0x4b: // Select printing color (ESC K n) IW - case 0x61: // Select font (ESC a n) IW - case 0x6c: // Insert CR before LF and FF (ESC l n) IW - case 0x73: // Set intercharacter space (ESC s n) IW - case 0x74: // Shift printing downward n/216 inch (ESC t n) IW LQ - case 0x833: // Feed n lines of blank space (US n) IW - neededParam = 1; - break; - case 0x44: // Set soft switches to closed (on)= 1 (ESC D nn) IW - case 0x54: // Distance between lines to be nn/144 inch (ESC T nn) IW - case 0x5a: // Set soft switches to open (off) = 0 (ESC Z nn) IW - neededParam = 2; - break; - case 0x4c: // Set left margin at column nnn (ESC L nnn) IW - case 0x67: // Print graphics for next nnn * 8 databytes (ESC g nnn) IW - case 0x75: // Add one tab stop at nnn (ESC u nnn) IW - neededParam = 3; - break; - case 0x28: // Set horizontal tabs (ESC ( nnn,) IW - numHorizTabs = 0; - case 0x29: // Delete horizontal tabs (ESC ) nnn,) IW - case 0x43: // Print hi-res graphics for next nnnn*3 databytes (ESC C nnnn) IW LQ - case 0x47: // Print graphics for next nnnn databytes (ESC G nnnn) IW - case 0x46: // Place printhead nnnn dots from left margin (ESC F nnnn) IW - case 0x48: // Set pagelength to nnnn/144 (ESC H nnnn) IW - case 0x53: // Print graphics for next nnnn databytes (ESC S nnnn) IW - case 0x52: // Repeat character c nnn times (ESC R nnn c) IW - case 0x68: // Place printhead nnnn hi-res dots from left margin (ESC h nnnn) IW LQ - neededParam = 4; - break; - case 0x56: //Repeat Print nnnn repetitions of dot column c (ESC V nnnn c) IW - neededParam = 5; - msb = 255; - break; - case 0x55: //Repeat Print nnnn repetitions of hi-res dot column abc (ESC U nnnn abc) IW LQ - neededParam = 7; - msb = 255; - break; - case 0x27: // Select user-defined set (ESC ') - case 0x49: // Define user-defined characters (ESC I) - //LOG(LOG_MISC,LOG_ERROR)("User-defined characters not supported!"); - return true; - default: - /*LOG_MSG("PRINTER: Unknown command %c (%02Xh) %c , unable to skip parameters.", - (ESCCmd & 0x800)?"FS":"ESC",ESCCmd, ESCCmd);*/ - - neededParam = 0; - ESCCmd = 0; - return true; - } - - if (neededParam > 0) - return true; - } - - if (numParam < neededParam) - { - params[numParam++] = ch; - - if (numParam < neededParam) - return true; - } - if (ESCCmd != 0) - { - switch (ESCCmd) - { - case 0x19: // Control paper loading/ejecting (ESC EM) - // We are not really loading paper, so most commands can be ignored - if (params[0] == 'R') - newPage(true,false); // TODO resetx? - break; - case 0x73: // Set intercharacter space (ESC s) IW - if (style & STYLE_PROP) - { - extraIntraSpace = (Real64)paramc(0); - updateFont(); - } - break; - case 0x46: // Set absolute horizontal print position (ESC F nnnn) IW - { - int x = 0; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - Real64 unitSize = definedUnit; - if (unitSize < 0) - unitSize = (Real64)72.0; - - Real64 newX = leftMargin + ((Real64)PARAM4(0)/unitSize); - if (newX <= rightMargin) - curX = newX; - } - break; - case 0x68: // Set absolute horizontal hi-res print position (ESC h nnnn) IW LQ - { - int x = 0; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - Real64 unitSize = definedUnit*2; - if (unitSize < 0) - unitSize = (Real64)72.0; - - Real64 newX = leftMargin + ((Real64)PARAM4(0)/unitSize); - if (newX <= rightMargin) - curX = newX; - } - break; - case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36:// Insert 1-6 intercharacter spaces (ESC 1 to 6) IW - { - if (style & STYLE_PROP) //This function only works in proportional mode - { - Real64 unitSize = definedUnit; - if (unitSize < 0) - unitSize = (Real64)72.0; - - Real64 newX = ((Real64)(ESCCmd-'0')/unitSize); - if (newX <= rightMargin) - curX = newX; - } - break; - } - case 0x47: case 0x53: // Print graphics (ESC G nnnn) IW - { - int x = 0; - printRes &= ~8; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - setupBitImage(printRes, PARAM4(0)); - break; - } - case 0x43: // Print hi-res graphics (ESC G nnnn) IW LQ - { - int x = 0; - printRes |= 8; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - setupBitImage(printRes, PARAM4(0)); - break; - } - case 0x67: // Print graphics (ESC g nnn) IW - { - int x = 0; - printRes &= ~8; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - setupBitImage(printRes, (PARAM3(0)*8)); - break; - } - case 0x56: //Repeat Print nnnn repetitions of dot column byte c (ESC V nnnn c)IW - { - int x = 0; - printRes &= ~8; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - x = 0; - while ( x < PARAM4(0)) - { - setupBitImage(printRes, 1); - printBitGraph(params[4]); - x++; - } - msb = 0; - break; - } - case 0x55: //Repeat Print nnnn repetitions of hi-res dot column byte abc (ESC U nnnn abc) IW LQ - { - int x = 0; - printRes |= 8; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - x = 0; - while ( x < PARAM4(0)) - { - setupBitImage(printRes, 1); - printBitGraph(params[4]); - printBitGraph(params[5]); - printBitGraph(params[6]); - x++; - } - msb = 0; - break; - } - case 0x74: // Shift printing downward n/216 inch (ESC t n) IW LQ - { - verticalDot = paramc(0); - break; - } - case 0x6e: // 9 cpi, 72/144 dpi graphics (ESC n) IW - cpi = 9.0; - style &= (0xffff - STYLE_PROP); - printRes = 0; - definedUnit = 72; - extraIntraSpace = 0.0; - LQtypeFace = fixed; - updateFont(); - break; - case 0x4e: // 10 cpi, 80/160 dpi graphics (ESC N) IW - cpi = 10.0; - printRes = 1; - style &= (0xffff - STYLE_PROP); - definedUnit = 80; - extraIntraSpace = 0.0; - LQtypeFace = fixed; - updateFont(); - break; - case 0x45: // 12 cpi, 96/192 dpi graphics (ESC E) IW - cpi = 12.0; - printRes = 2; - style &= (0xffff - STYLE_PROP); - definedUnit = 96; - extraIntraSpace = 0.0; - LQtypeFace = fixed; - updateFont(); - break; - case 0x65: // 13.4 cpi, 107/216 dpi graphics (ESC e) IW - cpi = 13.4; - printRes = 3; - style &= (0xffff - STYLE_PROP); - definedUnit = 107; - extraIntraSpace = 0.0; - LQtypeFace = fixed; - updateFont(); - break; - case 0x71: // 15 cpi, 120/240 dpi graphics (ESC q) IW - cpi = 15; - printRes = 4; - style &= (0xffff - STYLE_PROP); - definedUnit = 120; - extraIntraSpace = 0.0; - LQtypeFace = fixed; - updateFont(); - break; - case 0x51: // 17 cpi, 136/272 dpi graphics (ESC Q) IW - cpi = 17; - printRes = 5; - style &= (0xffff - STYLE_PROP); - definedUnit = 136; - extraIntraSpace = 0.0; - LQtypeFace = fixed; - updateFont(); - break; - case 0x70: // Proportional, 144/288 dpi graphics (ESC p) IW - style |= STYLE_PROP; - cpi = 10; - //printQuality = QUALITY_LQ; - printRes = 6; - definedUnit = 144; - LQtypeFace = prop; - updateFont(); - break; - case 0x50: // Proportional, 160/320 dpi graphics (ESC P) IW - style |= STYLE_PROP; - cpi = 12; - //printQuality = QUALITY_LQ; - printRes = 7; - definedUnit = 160; - LQtypeFace = prop; - updateFont(); - break; - case 0x54: // Set n/144-inch line spacing (ESC T nn) IW - lineSpacing = (Real64)PARAM2(0)/144; - break; - case 0x59: // Turn underline off (ESC Y) IW - style &= ~STYLE_UNDERLINE; - updateFont(); - break; - case 0x58: // Turn underline on (ESC X) IW - style |= STYLE_UNDERLINE; - score = SCORE_SINGLE; - updateFont(); - break; - case 0x42: // Select 1/8-inch line spacing (ESC B) IW - lineSpacing = (Real64)1/8; - break; - case 0x41: // Select 1/6-inch line spacing (ESC A) IW - lineSpacing = (Real64)1/6; - break; - case 0x3c: case 0x3e: // Unidirectional mode (one line) (ESC <) - // We don't have a print head, so just ignore this - break; - case 0x63: // Initialize printer (ESC c) IW - resetPrinter(); - break; - case 0x48: // Set page length in lines (ESC H nnnn) IW - { - int x = 0; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - pageHeight = (Real64)PARAM4(0)/144; - bottomMargin = pageHeight; - topMargin = 0.0; - break; - } - case 0x21: // Select bold font (ESC !) IW - style |= STYLE_BOLD; - updateFont(); - break; - case 0x22: // Cancel bold font (ESC ") IW - style &= ~STYLE_BOLD; - updateFont(); - break; - case 0x78: // Select superscript printing (ESC x) IW - style |= STYLE_SUPERSCRIPT; - updateFont(); - break; - case 0x79: // Select subscript printing (ESC y) IW - style |= STYLE_SUBSCRIPT; - updateFont(); - break; - case 0x7a: // Cancel superscript/subscript printing (ESC z) IW - style &= 0xFFFF - STYLE_SUPERSCRIPT - STYLE_SUBSCRIPT; - updateFont(); - break; - case 0x77: // Select halfheight printing (ESC w) IW - style |= STYLE_HALFHEIGHT; - updateFont(); - break; - case 0x57: // Cancel halfheight printing (ESC W) IW - style &= ~STYLE_HALFHEIGHT; - updateFont(); - break; - case 0x72: // Reverse paper feed (ESC r) IW - { - printf("Reverse Feed\n"); - if(lineSpacing > 0) lineSpacing *= -1; - break; - } - case 0x66: // Forward paper feed (ESC f) IW - { - if(lineSpacing < 0) lineSpacing *= -1; - break; - } - case 0x61: // Select typeface (ESC a n) IW worry about this later - break; - case 0x6d: case 0x4d: //Same as ESC a n commands - break; - case 0x4c: // Set left margin (ESC L nnn) IW - { - int x = 0; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - leftMargin = (Real64)(PARAM3(0)-1.0) / (Real64)cpi; - if (curX < leftMargin) - curX = leftMargin; - break; - } - case 0x4b: // Select printing color (ESC K) IW - - switch (paramc(0)) - { - case 0: break; - case 1: params[0] = 4; break; - case 2: params[0] = 1; break; - case 3: params[0] = 2; break; - case 4: params[0] = 5; break; - case 5: params[0] = 6; break; - case 6: params[0] = 3; break; - } - if(paramc(0)==0) color = COLOR_BLACK; - else color = params[0]<<5; - break; - case 0x3d: // Internal font ID (ESC = n) IW LQ - //Ignore for now - break; - case 0x3f: //Send ID string to computer (ESC ?) IW - //insert SCC send code here - printf("Sending ID String\n"); - iw_scc_write = true; - break; - case 0x52: // Repeat character c for nnn times (ESC R nnn c) IW - { - int x = 0; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - x = 0; - ESCCmd = 0; - while (x < PARAM3(0)) - { - printChar(params[3]); - x++; - } - break; - } - case 0x30: //Clear all tabs - numHorizTabs = 0; - break; - case 0x28: // Set horizontal tabs (ESC ( nnn,) IW - { - int x = 0; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - if (params[3] == '.' || (numHorizTabs>0 && horiztabs[numHorizTabs-1] > (Real64)PARAM3(0)*(1/(Real64)cpi))) - { - horiztabs[numHorizTabs++] = (Real64)PARAM3(0)*(1/(Real64)cpi); - //printf("Adding tab %d, and end\n",PARAM3(0)); - //printf("Number of Tabs:%d\n",numHorizTabs); - } - else if (params[3] == ',' && numHorizTabs < 32) - { - horiztabs[numHorizTabs++] = (Real64)PARAM3(0)*(1/(Real64)cpi); - numParam = 0; - neededParam = 4; - //printf("Adding tab %d, plus more\n", PARAM3(0)); - //printf("Number of Tabs:%d\n",numHorizTabs); - return true; - } - x = 0; - break; - } - case 0x29: // Delete horizontal tabs (ESC ) nnn,) IW - { - int x = 0; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - x = 0; - while (x < numHorizTabs) - { - if (horiztabs[x] == (Real64)PARAM3(0)*(1/(Real64)cpi)) - { printf("Tab Found %d\n",PARAM3(0)); - horiztabs[x] = 0; - } - x++; - } - - if (params[3] == '.') - { - printf("Deleting tab %d, and end\n",PARAM3(0)); - } - else if (params[3] == ',') - { - numParam = 0; - neededParam = 4; - //printf("Deleting tab %d, plus more\n", PARAM3(0)); - return true; - } - x = 0; - break; - } - case 0x5a: // Set switches to open (off) (ESC Z nn) IW - //printf ("switcha is: %x switchb is: %x\n",switcha,switchb); - //printf ("(Setting to 0) param 0 is: %x param 1 is: %x\n",params[0],params[1]); - switcha &= ~params[0]; - switchb &= ~params[1]; - //printf ("switcha is now: %x switchb is now: %x\n",switcha,switchb); - updateSwitch(); - break; - case 0x44: // Set switches to closed (on) (ESC D nn) IW - //printf ("switcha is: %x switchb is: %x\n",switcha,switchb); - //printf ("(Setting to 1) param 0 is: %x param 1 is: %x\n",params[0],params[1]); - switcha |= params[0]; - switchb |= params[1]; - //printf ("switcha is now: %x switchb is now: %x\n",switcha,switchb); - updateSwitch(); - break; - case 0x75: // Add one tab stop at nnn (ESC u nnn) IW - { - bool haveStop = false; - int lastEmpty; - //If the list is full, we assume there are no empty spaces to fill until the list is scanned - if (numHorizTabs == 32) lastEmpty = 33; - else lastEmpty = numHorizTabs; - int x = 0; - //convert any leading spaces in parameters to zeros - while (x < 4) - { - if (params[x] == ' ') params[x] = '0'; - x++; - } - x = 0; - //see if we have the tab stop already on the list and check for any deleted entries to reuse - while (x < numHorizTabs) - { - if (horiztabs[x] == (Real64)PARAM3(0)*(1/(Real64)cpi)) - { - //printf("We have this tab already! at list entry: %d\n", x); - haveStop = true; - } - if (horiztabs[x] == 0) lastEmpty = x; - //printf("at list entry: %d\n", x); - x++; - } - if (!haveStop && lastEmpty < 33) - { - //printf("Adding tab %d\n", PARAM3(0)); - horiztabs[lastEmpty] = (Real64)PARAM3(0)*(1/(Real64)cpi); - if (lastEmpty == numHorizTabs) numHorizTabs++; //only increase if we don't reuse an empty tab entry - //printf("Number of Tabs:%d\n",numHorizTabs); - } - } - break; - case 0x833: // Feed n lines of blank space (US n) IW - { - int x = 0; - while (x < paramc(0)) - { - curY += lineSpacing; - if (curY > bottomMargin) - newPage(true,false); - x++; - } - } - break; - default: - if (ESCCmd < 0x100); - //LOG(LOG_MISC,LOG_WARN) - //LOG_MSG("PRINTER: Skipped unsupported command ESC %c (%02X)", ESCCmd, ESCCmd); - else; - //LOG(LOG_MISC,LOG_WARN) - //LOG_MSG("PRINTER: Skipped unsupported command ESC ( %c (%02X)", ESCCmd-0x200, ESCCmd-0x200); - } - - ESCCmd = 0; - return true; - } - - switch (ch) - { - case 0x00: // NUL is ignored by the printer - return true; - case 0x07: // Beeper (BEL) - // BEEEP! - return true; - case 0x08: // Backspace (BS) - { - Real64 newX = curX - (1/(Real64)actcpi); - if (hmi > 0) - newX = curX - hmi; - if (newX >= leftMargin) - curX = newX; - } - return true; - case 0x09: // Tab horizontally (HT) - { - // Find tab right to current pos - Real64 moveTo = -1; - for (Bit8u i=0; i curX) - moveTo = horiztabs[i]; - // Nothing found => Ignore - if (moveTo > 0 && moveTo < rightMargin) - curX = moveTo; - } - return true; - case 0x0b: // Tab vertically (VT) - if (numVertTabs == 0) // All tabs cancelled => Act like CR - curX = leftMargin; - else if (numVertTabs == 255) // No tabs set since reset => Act like LF - { - curX = leftMargin; - curY += lineSpacing; - if (curY > bottomMargin) - newPage(true,false); - } - else - { - // Find tab below current pos - Real64 moveTo = -1; - for (Bit8u i=0; i curY) - moveTo = verttabs[i]; - - // Nothing found => Act like FF - if (moveTo > bottomMargin || moveTo < 0) - newPage(true,false); - else - curY = moveTo; - } - return true; - case 0x0c: // Form feed (FF) - newPage(true,true); - return true; - case 0x0d: // Carriage Return (CR) - curX = leftMargin; - if ((switcha&=128)) curY += lineSpacing; // If switch A-8 is set, send a LF after CR - if (!autoFeed) - return true; - case 0x0a: // Line feed - //curX = leftMargin; - curY += lineSpacing; - if (curY > bottomMargin) - newPage(true,false); - return true; - case 0x0e: //Select double width printing (SO) IW - style |= STYLE_DOUBLEWIDTH; - updateFont(); - return true; - case 0x0f: // Dis-select double width printing (SI) IW - style &= ~STYLE_DOUBLEWIDTH; - updateFont(); - return true; - case 0x11: // Select printer (DC1) - // Ignore - return true; - case 0x12: // Cancel condensed printing (DC2) - hmi = -1; - style &= ~STYLE_CONDENSED; - updateFont(); - return true; - case 0x13: // Deselect printer (DC3) - // Ignore - return true; - case 0x14: // Cancel double-width printing (one line) (DC4) - return true; - case 0x18: // Cancel line (CAN) - return true; - case 0x1b: // ESC - ESCSeen = true; - return true; - case 0x1f: // unit seperator (US) Feed 1 to 15 line commands - FSSeen = true; - return true; - default: - return false; - } - - return false; -} -#endif // HAVE_SDL - -//static void PRINTER_EventHandler(Bitu param); - -void Imagewriter::newPage(bool save, bool resetx) -{ - //PIC_RemoveEvents(PRINTER_EventHandler); - if(printer_timout) timeout_dirty=false; - -#ifdef HAVE_SDL - if (save) - outputPage(); - - if(resetx) curX=leftMargin; - curY = topMargin; - - SDL_Rect rect; - rect.x = 0; - rect.y = 0; - rect.w = page->w; - rect.h = page->h; - SDL_FillRect(page, &rect, SDL_MapRGB(page->format, 255, 255, 255)); - - /*for(int i = 0; i < 256; i++) - { - *((Bit8u*)page->pixels+i)=i; - }*/ -#endif // HAVE_SDL - if (strcasecmp(output, "text") == 0) { /* Text file */ - if (textPrinterFile) { - fclose(textPrinterFile); - textPrinterFile = NULL; - } - } -} - -void Imagewriter::printChar(Bit8u ch) -{ -#ifdef HAVE_SDL - - charRead = true; - if (page == NULL) return; -// Apply MSB if desired, but only if we aren't printing graphics! - if (msb != 255) { - if (!bitGraph.remBytes) ch &= 0x7F; - } -#endif // HAVE_SDL - if (strcasecmp(output, "text") == 0) { - if (!textPrinterFile) { - textPrinterFile = fopen(textPrinterFileName,"ab"); - } - fprintf(textPrinterFile,"%c",ch); - fflush(textPrinterFile); - return; - } -#ifdef HAVE_SDL - - // Are we currently printing a bit graphic? - if (bitGraph.remBytes > 0) { - printBitGraph(ch); - return; - } - // Print everything? - if (numPrintAsChar > 0) numPrintAsChar--; - else if (processCommandChar(ch)) return; - - // Do not print if no font is available - if (!curFont) return; - if(ch==0x1) ch=0x20; - - // Find the glyph for the char to render - FT_UInt index = FT_Get_Char_Index(curFont, curMap[ch]); - - // Load the glyph - FT_Load_Glyph(curFont, index, FT_LOAD_DEFAULT); - - - // Render a high-quality bitmap - FT_Render_Glyph(curFont->glyph, FT_RENDER_MODE_NORMAL); - - Bit16u penX = PIXX + curFont->glyph->bitmap_left; - Bit16u penY = PIXY - curFont->glyph->bitmap_top + curFont->size->metrics.ascender/64; - - //if (style & STYLE_SUBSCRIPT) penY += curFont->glyph->bitmap.rows / 2; - //if (style & STYLE_HALFHEIGHT) penY += curFont->glyph->bitmap.rows / 4; - if (style & STYLE_SUBSCRIPT) penY += 20; - if (style & STYLE_SUPERSCRIPT) penY -= 10; - if (style & STYLE_HALFHEIGHT) penY += 15; - - // Copy bitmap into page - SDL_LockSurface(page); - - blitGlyph(curFont->glyph->bitmap, penX, penY, false); - blitGlyph(curFont->glyph->bitmap, penX+1, penY, true); - - // Bold => Print the glyph a second time one pixel to the right - // or be a bit more bold... - if (style & STYLE_BOLD) { - blitGlyph(curFont->glyph->bitmap, penX+1, penY, true); - blitGlyph(curFont->glyph->bitmap, penX+2, penY, true); - blitGlyph(curFont->glyph->bitmap, penX+3, penY, true); - } - SDL_UnlockSurface(page); - - // For line printing - Bit16u lineStart = PIXX; - // Print a slashed zero if the softswitch B-1 is set - if(switchb&1 && ch=='0') slashzero(penX,penY); - // advance the cursor to the right - Real64 x_advance; - if (style & STYLE_PROP) - x_advance = (Real64)((Real64)(curFont->glyph->advance.x)/(Real64)(dpi*64)); - else { - x_advance = 1/(Real64)actcpi; - } - x_advance += extraIntraSpace; - curX += x_advance; - - // Draw lines if desired - if ((score != SCORE_NONE) && (style & - (STYLE_UNDERLINE))) - { - // Find out where to put the line - Bit16u lineY = PIXY; - double height = (curFont->size->metrics.height>>6); // TODO height is fixed point madness... - - if (style & STYLE_UNDERLINE) lineY = PIXY + (Bit16u)(height*0.9); - - drawLine(lineStart, PIXX, lineY, score==SCORE_SINGLEBROKEN || score==SCORE_DOUBLEBROKEN); - - // draw second line if needed - if ((score == SCORE_DOUBLE)||(score == SCORE_DOUBLEBROKEN)) - drawLine(lineStart, PIXX, lineY + 5, score==SCORE_SINGLEBROKEN || score==SCORE_DOUBLEBROKEN); - } - // If the next character would go beyond the right margin, line-wrap. - if((curX + x_advance) > rightMargin) { - curX = leftMargin; - curY += lineSpacing; - if (curY > bottomMargin) newPage(true,false); - } -#endif // HAVE_SDL -} - -#ifdef HAVE_SDL -void Imagewriter::blitGlyph(FT_Bitmap bitmap, Bit16u destx, Bit16u desty, bool add) { - for (Bitu y=0; y 0 && (destx+x < page->w) && (desty+y < page->h) ) { - Bit8u* target = (Bit8u*)page->pixels + (x+destx) + (y+desty)*page->pitch; - source>>=3; - - if (add) { - if (((*target)&0x1f )+ source > 31) *target |= (color|0x1f); - else { - *target += source; - *target |= color; - } - } - else *target = source|color; - } - } - } -} - -void Imagewriter::drawLine(Bitu fromx, Bitu tox, Bitu y, bool broken) -{ - SDL_LockSurface(page); - - Bitu breakmod = dpi / 15; - Bitu gapstart = (breakmod * 4)/5; - - // Draw anti-aliased line - for (Bitu x=fromx; x<=tox; x++) - { - // Skip parts if broken line or going over the border - if ((!broken || (x%breakmod <= gapstart)) && (x < page->w)) - { - if (y > 0 && (y-1) < page->h) - *((Bit8u*)page->pixels + x + (y-1)*page->pitch) = 240; - if (y < page->h) - *((Bit8u*)page->pixels + x + y*page->pitch) = !broken?255:240; - if (y+1 < page->h) - *((Bit8u*)page->pixels + x + (y+1)*page->pitch) = 240; - } - } - SDL_UnlockSurface(page); -} - -void Imagewriter::setAutofeed(bool feed) { - autoFeed = feed; -} - -bool Imagewriter::getAutofeed() { - return autoFeed; -} - -bool Imagewriter::isBusy() { - // We're never busy - return false; -} - -bool Imagewriter::ack() { - // Acknowledge last char read - if(charRead) { - charRead=false; - return true; - } - return false; -} - -void Imagewriter::setupBitImage(Bit8u dens, Bit16u numCols) { - switch (dens) - { - case 0: - bitGraph.horizDens = 72; - bitGraph.vertDens = 72; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 1: - bitGraph.horizDens = 80; - bitGraph.vertDens = 72; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 2: - bitGraph.horizDens = 96; - bitGraph.vertDens = 72; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 3: - bitGraph.horizDens = 107; - bitGraph.vertDens = 72; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 4: - bitGraph.horizDens = 120; - bitGraph.vertDens = 72; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 5: - bitGraph.horizDens = 136; - bitGraph.vertDens = 72; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 6: - bitGraph.horizDens = 144; - bitGraph.vertDens = 72; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 7: - bitGraph.horizDens = 160; - bitGraph.vertDens = 72; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - //Imagewriter LQ resolutions - case 8: - bitGraph.horizDens = 144; - bitGraph.vertDens = 216; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 9: - bitGraph.horizDens = 160; - bitGraph.vertDens = 216; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 10: - bitGraph.horizDens = 192; - bitGraph.vertDens = 216; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 11: - bitGraph.horizDens = 216; - bitGraph.vertDens = 216; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 12: - bitGraph.horizDens = 240; - bitGraph.vertDens = 216; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 13: - bitGraph.horizDens = 272; - bitGraph.vertDens = 216; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 14: - bitGraph.horizDens = 288; - bitGraph.vertDens = 216; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 15: - bitGraph.horizDens = 320; - bitGraph.vertDens = 216; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - default: - //break; - printf("PRINTER: Unsupported bit image density"); - } - - bitGraph.remBytes = numCols * bitGraph.bytesColumn; - bitGraph.readBytesColumn = 0; -} - -void Imagewriter::printBitGraph(Bit8u ch) -{ - bitGraph.column[bitGraph.readBytesColumn++] = ch; - bitGraph.remBytes--; - - // Only print after reading a full column - if (bitGraph.readBytesColumn < bitGraph.bytesColumn) - return; - - Real64 oldY = curY; - SDL_LockSurface(page); - - // When page dpi is greater than graphics dpi, the drawn pixels get "bigger" - Bitu pixsizeX=1; - Bitu pixsizeY=1; - if(bitGraph.adjacent) { - pixsizeX = dpi/bitGraph.horizDens > 0? dpi/bitGraph.horizDens : 1; - if(dpi%bitGraph.horizDens && bitGraph.horizDens < dpi) - { - if(PIXX%(bitGraph.horizDens*8) || (PIXX == 0)) //Primative scaling function - { - pixsizeX++; - } - } - pixsizeY = dpi/bitGraph.vertDens > 0? dpi/bitGraph.vertDens : 1; - if(bitGraph.vertDens == 216) - { - if(PIXY%(bitGraph.vertDens*8) || (PIXY == 0)) //Primative scaling function - { - pixsizeY++; - } - } - } - if ((printRes > 7) && (verticalDot != 0)) //for ESC t - { - curY += (Real64)verticalDot/(Real64)bitGraph.vertDens; - } - // TODO figure this out for 360dpi mode in windows - -// Bitu pixsizeX = dpi/bitGraph.horizDens > 0? dpi/bitGraph.horizDens : 1; -// Bitu pixsizeY = dpi/bitGraph.vertDens > 0? dpi/bitGraph.vertDens : 1; - - for (Bitu i=0; iw) && ((PIXY + yy) < page->h)) - *((Bit8u*)page->pixels + (PIXX+xx) + (PIXY+yy)*page->pitch) |= (color|0x1F); - } - } // else white pixel - curY += (Real64)1/(Real64)bitGraph.vertDens; // TODO line wrap? - } - } - SDL_UnlockSurface(page); - - curY = oldY; - bitGraph.readBytesColumn = 0; - - // Advance to the left - curX += (Real64)1/(Real64)bitGraph.horizDens; -} -#endif // HAVE_SDL - -void Imagewriter::formFeed() -{ -#ifdef HAVE_SDL - // Don't output blank pages - newPage(!isBlank(),true); - finishMultipage(); -#endif // HAVE_SDL -} - -#ifdef HAVE_SDL -static void findNextName(char* front, char* ext, char* fname) -{ - document_path = ""; - Bitu i = 1; - Bitu slen = strlen(document_path); - if(slen>(200-15)) { - fname[0]=0; - return; - } - FILE *test = NULL; - do - { - strcpy(fname, document_path); - printf(fname); -#ifdef WIN32 - const char* const pathstring = ".\\%s%d%s"; -#else - const char* const pathstring = "./%s%d%s"; -#endif - sprintf(fname+strlen(fname), pathstring, front,i++,ext); - test = fopen(fname, "rb"); - if (test != NULL) - fclose(test); - } - while (test != NULL ); -} - -void Imagewriter::outputPage() -{/* - SDL_Surface *screen; - screen = SDL_SetVideoMode(1024, 768, 16, SDL_DOUBLEBUF | SDL_RESIZABLE); -if (screen == NULL) { - printf("Unable to set video mode: %s\n", SDL_GetError()); -} -SDL_Surface *image; -SDL_LockSurface(page); -image = SDL_DisplayFormat(page); -SDL_UnlockSurface(page); -SDL_Rect src, dest; - -src.x = 0; -src.y = 0; -src.w = image->w; -src.h = image->h; - -dest.x = 100; -dest.y = 100; -dest.w = image->w; -dest.h = image->h; - -SDL_BlitSurface(image, &src, screen, &dest); -SDL_Flip(screen); - -SDL_Delay(2000); -SDL_FreeSurface(image);*/ - char fname[200]; - if (strcasecmp(output, "printer") == 0) - { -#if defined (WIN32) - if (multipageOutput && outputHandle == NULL) - { - ShowCursor(1); - PRINTDLG pd; - pd.lStructSize = sizeof(PRINTDLG); - pd.hDevMode = (HANDLE) NULL; - pd.hDevNames = (HANDLE) NULL; - pd.Flags = PD_RETURNDC | PD_USEDEVMODECOPIESANDCOLLATE; - pd.hwndOwner = NULL; - pd.hDC = (HDC) NULL; - pd.nFromPage = 0xFFFF; - pd.nToPage = 0xFFFF; - pd.nMinPage = 1; - pd.nMaxPage = 0xFFFF; - pd.nCopies = 1; - pd.hInstance = NULL; - pd.lCustData = 0L; - pd.lpfnPrintHook = (LPPRINTHOOKPROC) NULL; - pd.lpfnSetupHook = (LPSETUPHOOKPROC) NULL; - pd.lpPrintTemplateName = (LPCSTR) NULL; - pd.lpSetupTemplateName = (LPCSTR) NULL; - pd.hPrintTemplate = (HANDLE) NULL; - pd.hSetupTemplate = (HANDLE) NULL; - if(!PrintDlg(&pd)) - { - //If user clicks cancel, show warning dialog and force all output to bitmaps as failsafe. - MessageBox(NULL,"You did not select a printer.\nAll output from this print job will be saved as bitmap files.",NULL,MB_ICONEXCLAMATION); - findNextName("page", ".bmp", &fname[0]); - SDL_SaveBMP(page, fname); //Save first page as bitmap. - outputHandle = printerDC; - printerDC = NULL; - ShowCursor(0); - return; - } - else - { - //Create device context. - printerDC = pd.hDC; - ShowCursor(0); - } - } - if (!printerDC) //Fall thru for subsequent pages if printer dialog was cancelled. - { - findNextName("page", ".bmp", &fname[0]); - SDL_SaveBMP(page, fname); //Save remaining pages. - return; - } - Bit32u physW = GetDeviceCaps(printerDC, PHYSICALWIDTH); - Bit32u physH = GetDeviceCaps(printerDC, PHYSICALHEIGHT); - Bit16u printeroffsetW = GetDeviceCaps(printerDC, PHYSICALOFFSETX); //printer x offset in actual pixels - Bit16u printeroffsetH = GetDeviceCaps(printerDC, PHYSICALOFFSETY); //printer y offset in actual pixels - Bit16u deviceDPIW = GetDeviceCaps(printerDC, LOGPIXELSX); - Bit16u deviceDPIH = GetDeviceCaps(printerDC, LOGPIXELSY); - Real64 physoffsetW = (Real64)printeroffsetW/deviceDPIW; //printer x offset in inches - Real64 physoffsetH = (Real64)printeroffsetH/deviceDPIH; //printer y offset in inches - Bit16u dpiW = page->w/defaultPageWidth; //Get currently set DPI of the emulated printer in an indirect way - Bit16u dpiH = page->h/defaultPageHeight; - Real64 soffsetW = physoffsetW*dpiW; //virtual page x offset in actual pixels - Real64 soffsetH = physoffsetH*dpiH; //virtual page y offset in actual pixels - HDC memHDC = CreateCompatibleDC(printerDC); - BITMAPINFO *BitmapInfo; - HBITMAP bitmap; - - // Start new printer job? - if (outputHandle == NULL) - { - DOCINFO docinfo; - docinfo.cbSize = sizeof(docinfo); - docinfo.lpszDocName = "GSport Virtual ImageWriter"; - docinfo.lpszOutput = NULL; - docinfo.lpszDatatype = NULL; - docinfo.fwType = 0; - - StartDoc(printerDC, &docinfo); - multiPageCounter = 1; - } - SDL_LockSurface(page); - StartPage(printerDC); - DWORD TotalSize; - HGDIOBJ Prev; - void* Pixels; - BitmapInfo = (BITMAPINFO*) - malloc (sizeof (BITMAPINFO)+255*sizeof (RGBQUAD)); - memset (BitmapInfo,0,sizeof (bitmap)); - BitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); - BitmapInfo->bmiHeader.biWidth = page->w; - BitmapInfo->bmiHeader.biHeight = -page->h; - BitmapInfo->bmiHeader.biPlanes = 1; - BitmapInfo->bmiHeader.biBitCount = page->format->BitsPerPixel; - BitmapInfo->bmiHeader.biCompression = BI_RGB; - BitmapInfo->bmiHeader.biSizeImage = page->h * page->pitch; - BitmapInfo->bmiHeader.biXPelsPerMeter = 0; - BitmapInfo->bmiHeader.biYPelsPerMeter = 0; - BitmapInfo->bmiHeader.biClrUsed = page->format->palette->ncolors; - BitmapInfo->bmiHeader.biClrImportant = 0; - if (page->format->palette) { - for (int I=0; Iformat->palette->ncolors; I++) { - BitmapInfo->bmiColors[I].rgbRed = - (page->format->palette->colors+I)->r; - BitmapInfo->bmiColors[I].rgbGreen = - (page->format->palette->colors+I)->g; - BitmapInfo->bmiColors[I].rgbBlue = - (page->format->palette->colors+I)->b; - } - } - memHDC = CreateCompatibleDC(printerDC); - if (memHDC) { - bitmap = CreateDIBSection(memHDC, BitmapInfo, DIB_RGB_COLORS, - (&Pixels), NULL, 0); - if (bitmap) { - memcpy (Pixels, page->pixels, - BitmapInfo->bmiHeader.biSizeImage); - Prev = SelectObject (memHDC, bitmap); - StretchBlt(printerDC, 0, 0, physW, physH, memHDC, soffsetW, soffsetH, page->w, page->h, SRCCOPY); - SelectObject (memHDC,Prev); - DeleteObject (bitmap); - } - } - free (BitmapInfo); - SDL_UnlockSurface(page); - EndPage(printerDC); - - if (multipageOutput) - { - multiPageCounter++; - outputHandle = printerDC; - } - else - { - EndDoc(printerDC); - outputHandle = NULL; - } - DeleteObject(bitmap); - DeleteDC(memHDC); -#else - //LOG_MSG("PRINTER: Direct printing not supported under this OS"); -#endif - } -#ifdef C_LIBPNG - else if (strcasecmp(output, "png") == 0) - { - // Find a page that does not exists - findNextName("page", ".png", &fname[0]); - - png_structp png_ptr; - png_infop info_ptr; - png_bytep * row_pointers; - png_color palette[256]; - Bitu i; - - /* Open the actual file */ - FILE * fp=fopen(fname,"wb"); - if (!fp) - { - //LOG(LOG_MISC,LOG_ERROR)("PRINTER: Can't open file %s for printer output", fname); - return; - } - - /* First try to alloacte the png structures */ - png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,NULL, NULL); - if (!png_ptr) return; - info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) { - png_destroy_write_struct(&png_ptr,(png_infopp)NULL); - return; - } - - /* Finalize the initing of png library */ - png_init_io(png_ptr, fp); - png_set_compression_level(png_ptr,Z_BEST_COMPRESSION); - - /* set other zlib parameters */ - png_set_compression_mem_level(png_ptr, 8); - png_set_compression_strategy(png_ptr,Z_DEFAULT_STRATEGY); - png_set_compression_window_bits(png_ptr, 15); - png_set_compression_method(png_ptr, 8); - png_set_compression_buffer_size(png_ptr, 8192); - - - png_set_IHDR(png_ptr, info_ptr, page->w, page->h, - 8, PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); - for (i=0;i<256;i++) - { - palette[i].red = page->format->palette->colors[i].r; - palette[i].green = page->format->palette->colors[i].g; - palette[i].blue = page->format->palette->colors[i].b; - } - png_set_PLTE(png_ptr, info_ptr, palette,256); - png_set_packing(png_ptr); - SDL_LockSurface(page); - - // Allocate an array of scanline pointers - row_pointers = (png_bytep*)malloc(page->h*sizeof(png_bytep)); - for (i=0; ih; i++) - row_pointers[i] = ((Bit8u*)page->pixels+(i*page->pitch)); - - // tell the png library what to encode. - png_set_rows(png_ptr, info_ptr, row_pointers); - - // Write image to file - png_write_png(png_ptr, info_ptr, 0, NULL); - - - - - SDL_UnlockSurface(page); - - /*close file*/ - fclose(fp); - - /*Destroy PNG structs*/ - png_destroy_write_struct(&png_ptr, &info_ptr); - - /*clean up dynamically allocated RAM.*/ - free(row_pointers); - } -#endif - else if (strcasecmp(output, "colorps") == 0) - { - FILE* psfile = NULL; - - // Continue postscript file? - if (outputHandle != NULL) - psfile = (FILE*)outputHandle; - - // Create new file? - if (psfile == NULL) - { - if (!multipageOutput) - findNextName("page", ".ps", &fname[0]); - else - findNextName("doc", ".ps", &fname[0]); - - psfile = fopen(fname, "wb"); - if (!psfile) - { - //LOG(LOG_MISC,LOG_ERROR)("PRINTER: Can't open file %s for printer output", fname); - return; - } - - // Print header - fprintf(psfile, "%%!PS-Adobe-3.0\n"); - fprintf(psfile, "%%%%Pages: (atend)\n"); - fprintf(psfile, "%%%%BoundingBox: 0 0 %i %i\n", (Bit16u)(defaultPageWidth*72), (Bit16u)(defaultPageHeight*72)); - fprintf(psfile, "%%%%Creator: GSport Virtual Printer\n"); - fprintf(psfile, "%%%%DocumentData: Clean7Bit\n"); - fprintf(psfile, "%%%%LanguageLevel: 2\n"); - fprintf(psfile, "%%%%EndComments\n"); - multiPageCounter = 1; - } - - fprintf(psfile, "%%%%Page: %i %i\n", multiPageCounter, multiPageCounter); - fprintf(psfile, "%i %i scale\n", (Bit16u)(defaultPageWidth*72), (Bit16u)(defaultPageHeight*72)); - fprintf(psfile, "%i %i 8 [%i 0 0 -%i 0 %i]\n", page->w, page->h, page->w, page->h, page->h); - fprintf(psfile, "currentfile\n"); - fprintf(psfile, "/ASCII85Decode filter\n"); - fprintf(psfile, "/RunLengthDecode filter\n"); - fprintf(psfile, "false 3\n"); - fprintf(psfile, "colorimage\n"); - - SDL_LockSurface(page); - Bit8u * templine; - templine = (Bit8u*) malloc(page->w*3); - Bit32u x = 0; - Bit32u numy = page->h; - Bit32u numx = page->w; - Bit32u numpix = page->w*3; - Bit32u pix = 0; - Bit32u currDot = 0; - Bit32u y = 0; - Bit32u plane = 0; - Bit8u r, g, b; - ASCII85BufferPos = ASCII85CurCol = 0; - for (y=0; y < numy;y++) - { - currDot = 0; - for (x = 0; x < numx; x++) - { - SDL_GetRGB(getxyPixel(x,y), page->format, &r, &g, &b); - templine[currDot] = ~r; currDot++; - templine[currDot] = ~g; currDot++; - templine[currDot] = ~b; currDot++; - } - // Compress data using RLE - pix = 0; - while (pix < numpix) - { - if ((pix < numpix-2) && (templine[pix] == templine[pix+1]) && (templine[pix] == templine[pix+2])) - { - // Found three or more pixels with the same color - Bit8u sameCount = 3; - Bit8u col = templine[pix]; - while (sameCount < 128 && sameCount+pix < numpix && col == templine[pix+sameCount]) - sameCount++; - - fprintASCII85(psfile, 257-sameCount); - fprintASCII85(psfile, 255-col); - - // Skip ahead - pix += sameCount; - } - else - { - // Find end of heterogenous area - Bit8u diffCount = 1; - while (diffCount < 128 && diffCount+pix < numpix && - ( - (diffCount+pix < numpix-2) - || (templine[pix+diffCount] != templine[pix+diffCount+1]) - || (templine[pix+diffCount] != templine[pix+diffCount+2]) - )) - diffCount++; - - fprintASCII85(psfile, diffCount-1); - for (Bit8u i=0; iw, page->h, page->w, page->h, page->h); - fprintf(psfile, "currentfile\n"); - fprintf(psfile, "/ASCII85Decode filter\n"); - fprintf(psfile, "/RunLengthDecode filter\n"); - fprintf(psfile, "image\n"); - - SDL_LockSurface(page); - - Bit32u pix = 0; - Bit32u numpix = page->h*page->w; - ASCII85BufferPos = ASCII85CurCol = 0; - - while (pix < numpix) - { - // Compress data using RLE - - if ((pix < numpix-2) && (getPixel(pix) == getPixel(pix+1)) && (getPixel(pix) == getPixel(pix+2))) - { - // Found three or more pixels with the same color - Bit8u sameCount = 3; - Bit8u col = getPixel(pix); - while (sameCount < 128 && sameCount+pix < numpix && col == getPixel(pix+sameCount)) - sameCount++; - - fprintASCII85(psfile, 257-sameCount); - fprintASCII85(psfile, 255-col); - - // Skip ahead - pix += sameCount; - } - else - { - // Find end of heterogenous area - Bit8u diffCount = 1; - while (diffCount < 128 && diffCount+pix < numpix && - ( - (diffCount+pix < numpix-2) - || (getPixel(pix+diffCount) != getPixel(pix+diffCount+1)) - || (getPixel(pix+diffCount) != getPixel(pix+diffCount+2)) - )) - diffCount++; - - fprintASCII85(psfile, diffCount-1); - for (Bit8u i=0; i= 79) - { - ASCII85CurCol = 0; - fprintf(f, "\n"); - } - } - else - { - char buffer[5]; - for (Bit8s i=4; i>=0; i--) - { - buffer[i] = (Bit8u)((Bit32u)num % (Bit32u)85); - buffer[i] += 33; - num /= (Bit32u)85; - } - - // Make sure a line never starts with a % (which may be mistaken as start of a comment) - if (ASCII85CurCol == 0 && buffer[0] == '%') - fprintf(f, " "); - - for (int i=0; i<((b != 257)?5:ASCII85BufferPos+1); i++) - { - fprintf(f, "%c", buffer[i]); - if (++ASCII85CurCol >= 79) - { - ASCII85CurCol = 0; - fprintf(f, "\n"); - } - } - } - - ASCII85BufferPos = 0; - } - - } - else // Close string - { - // Partial tupel if there are still bytes in the buffer - if (ASCII85BufferPos > 0) - { - for (Bit8u i = ASCII85BufferPos; i < 4; i++) - ASCII85Buffer[i] = 0; - - fprintASCII85(f, 257); - } - - fprintf(f, "~"); - fprintf(f, ">\n"); - } -} - -void Imagewriter::finishMultipage() -{ - if (outputHandle != NULL) - { - if (strcasecmp(output, "ps") == 0) - { - FILE* psfile = (FILE*)outputHandle; - fprintf(psfile, "%%%%Pages: %i\n", multiPageCounter); - fprintf(psfile, "%%%%EOF\n"); - fclose(psfile); - } - if (strcasecmp(output, "colorps") == 0) - { - FILE* psfile = (FILE*)outputHandle; - fprintf(psfile, "%%%%Pages: %i\n", multiPageCounter); - fprintf(psfile, "%%%%EOF\n"); - fclose(psfile); - } - else if (strcasecmp(output, "printer") == 0) - { -#if defined (WIN32) - EndDoc(printerDC); -#endif - } - outputHandle = NULL; - } -} - -bool Imagewriter::isBlank() { - bool blank = true; - SDL_LockSurface(page); - - for (Bit16u y=0; yh; y++) - for (Bit16u x=0; xw; x++) - if (*((Bit8u*)page->pixels + x + (y*page->pitch)) != 0) - blank = false; - - SDL_UnlockSurface(page); - return blank; -} - -Bit8u Imagewriter::getxyPixel(Bit32u x,Bit32u y) { - Bit8u *p; - - /* get the X/Y values within the bounds of this surface */ - if ((unsigned) x > (unsigned) page->w - 1u) - x = (x < 0) ? 0 : page->w - 1; - if ((unsigned) y > (unsigned) page->h - 1u) - y = (y < 0) ? 0 : page->h - 1; - - /* Set a pointer to the exact location in memory of the pixel - in question: */ - - p = (Bit8u *) (((Bit8u *) page->pixels) + /* Start at top of RAM */ - (y * page->pitch) + /* Go down Y lines */ - x); /* Go in X pixels */ - - - /* Return the correctly-sized piece of data containing the - * pixel's value (an 8-bit palette value, or a 16-, 24- or 32-bit - * RGB value) */ - - return (*p); -} -Bit8u Imagewriter::getPixel(Bit32u num) { - Bit32u pixel = *((Bit8u*)page->pixels + (num % page->w) + ((num / page->w) * page->pitch)); - return *((Bit8u*)page->pixels + (num % page->w) + ((num / page->w) * page->pitch)); -} -#endif // HAVE_SDL - -//Interfaces to C code - - -extern "C" void imagewriter_init(int pdpi, int ppaper, int banner, char* poutput, bool mpage) -{ - if (defaultImagewriter != NULL) return; //if Imagewriter on this port is initialized, reuse it - defaultImagewriter = new Imagewriter(pdpi, ppaper, banner, poutput, mpage); -} -extern "C" void imagewriter_loop(Bit8u pchar) -{ - if (defaultImagewriter == NULL) return; - defaultImagewriter->printChar(pchar); -} - -extern "C" void imagewriter_close() -{ - delete defaultImagewriter; - defaultImagewriter = NULL; -} -extern "C" void imagewriter_feed() -{ - if(defaultImagewriter == NULL) return; - defaultImagewriter->formFeed(); -} diff --git a/.svn/pristine/9c/9cc560f2fedbc2f51ba81bd8784ae81feebdd2be.svn-base b/.svn/pristine/9c/9cc560f2fedbc2f51ba81bd8784ae81feebdd2be.svn-base deleted file mode 100644 index 6714f0e..0000000 --- a/.svn/pristine/9c/9cc560f2fedbc2f51ba81bd8784ae81feebdd2be.svn-base +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright (c) 1993, 1994, 1997 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that: (1) source code distributions - * retain the above copyright notice and this paragraph in its entirety, (2) - * distributions including binary code include the above copyright notice and - * this paragraph in its entirety in the documentation or other materials - * provided with the distribution, and (3) all advertising materials mentioning - * features or use of this software display the following acknowledgement: - * ``This product includes software developed by the University of California, - * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of - * the University nor the names of its contributors may be used to endorse - * or promote products derived from this software without specific prior - * written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - * - * @(#) $Header$ (LBL) - */ - -/* - * This file contains a collage of declarations for IPv6 from FreeBSD not present in Windows - */ - -#include - -#ifndef __MINGW32__ -#include -#endif /* __MINGW32__ */ - -#define IN_MULTICAST(a) IN_CLASSD(a) - -#define IN_EXPERIMENTAL(a) ((((u_int32_t) (a)) & 0xe0000000) == 0xe0000000) - -#define IN_LOOPBACKNET 127 - -#ifdef __MINGW32__ -/* IPv6 address */ -struct in6_addr - { - union - { - u_int8_t u6_addr8[16]; - u_int16_t u6_addr16[8]; - u_int32_t u6_addr32[4]; - } in6_u; -#define s6_addr in6_u.u6_addr8 -#define s6_addr16 in6_u.u6_addr16 -#define s6_addr32 in6_u.u6_addr32 -#define s6_addr64 in6_u.u6_addr64 - }; - -#define IN6ADDR_ANY_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } -#define IN6ADDR_LOOPBACK_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } -#endif /* __MINGW32__ */ - - -#ifdef __MINGW32__ -typedef unsigned short sa_family_t; - -#define __SOCKADDR_COMMON(sa_prefix) \ - sa_family_t sa_prefix##family - -/* Ditto, for IPv6. */ -struct sockaddr_in6 - { - __SOCKADDR_COMMON (sin6_); - u_int16_t sin6_port; /* Transport layer port # */ - u_int32_t sin6_flowinfo; /* IPv6 flow information */ - struct in6_addr sin6_addr; /* IPv6 address */ - }; - -#define IN6_IS_ADDR_V4MAPPED(a) \ - ((((u_int32_t *) (a))[0] == 0) && (((u_int32_t *) (a))[1] == 0) && \ - (((u_int32_t *) (a))[2] == htonl (0xffff))) - -#define IN6_IS_ADDR_MULTICAST(a) (((u_int8_t *) (a))[0] == 0xff) - -#define IN6_IS_ADDR_LINKLOCAL(a) \ - ((((u_int32_t *) (a))[0] & htonl (0xffc00000)) == htonl (0xfe800000)) - -#define IN6_IS_ADDR_LOOPBACK(a) \ - (((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \ - ((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1)) -#endif /* __MINGW32__ */ - -#define ip6_vfc ip6_ctlun.ip6_un2_vfc -#define ip6_flow ip6_ctlun.ip6_un1.ip6_un1_flow -#define ip6_plen ip6_ctlun.ip6_un1.ip6_un1_plen -#define ip6_nxt ip6_ctlun.ip6_un1.ip6_un1_nxt -#define ip6_hlim ip6_ctlun.ip6_un1.ip6_un1_hlim -#define ip6_hops ip6_ctlun.ip6_un1.ip6_un1_hlim - -#define nd_rd_type nd_rd_hdr.icmp6_type -#define nd_rd_code nd_rd_hdr.icmp6_code -#define nd_rd_cksum nd_rd_hdr.icmp6_cksum -#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0] - -/* - * IPV6 extension headers - */ -#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */ -#define IPPROTO_IPV6 41 /* IPv6 header. */ -#define IPPROTO_ROUTING 43 /* IPv6 routing header */ -#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */ -#define IPPROTO_ESP 50 /* encapsulating security payload */ -#define IPPROTO_AH 51 /* authentication header */ -#define IPPROTO_ICMPV6 58 /* ICMPv6 */ -#define IPPROTO_NONE 59 /* IPv6 no next header */ -#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */ -#define IPPROTO_PIM 103 /* Protocol Independent Multicast. */ - -#define IPV6_RTHDR_TYPE_0 0 - -/* Option types and related macros */ -#define IP6OPT_PAD1 0x00 /* 00 0 00000 */ -#define IP6OPT_PADN 0x01 /* 00 0 00001 */ -#define IP6OPT_JUMBO 0xC2 /* 11 0 00010 = 194 */ -#define IP6OPT_JUMBO_LEN 6 -#define IP6OPT_ROUTER_ALERT 0x05 /* 00 0 00101 */ - -#define IP6OPT_RTALERT_LEN 4 -#define IP6OPT_RTALERT_MLD 0 /* Datagram contains an MLD message */ -#define IP6OPT_RTALERT_RSVP 1 /* Datagram contains an RSVP message */ -#define IP6OPT_RTALERT_ACTNET 2 /* contains an Active Networks msg */ -#define IP6OPT_MINLEN 2 - -#define IP6OPT_BINDING_UPDATE 0xc6 /* 11 0 00110 */ -#define IP6OPT_BINDING_ACK 0x07 /* 00 0 00111 */ -#define IP6OPT_BINDING_REQ 0x08 /* 00 0 01000 */ -#define IP6OPT_HOME_ADDRESS 0xc9 /* 11 0 01001 */ -#define IP6OPT_EID 0x8a /* 10 0 01010 */ - -#define IP6OPT_TYPE(o) ((o) & 0xC0) -#define IP6OPT_TYPE_SKIP 0x00 -#define IP6OPT_TYPE_DISCARD 0x40 -#define IP6OPT_TYPE_FORCEICMP 0x80 -#define IP6OPT_TYPE_ICMP 0xC0 - -#define IP6OPT_MUTABLE 0x20 - - -#ifdef __MINGW32__ -#ifndef EAI_ADDRFAMILY -struct addrinfo { - int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ - int ai_family; /* PF_xxx */ - int ai_socktype; /* SOCK_xxx */ - int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ - size_t ai_addrlen; /* length of ai_addr */ - char *ai_canonname; /* canonical name for hostname */ - struct sockaddr *ai_addr; /* binary address */ - struct addrinfo *ai_next; /* next structure in linked list */ -}; -#endif -#endif /* __MINGW32__ */ diff --git a/.svn/pristine/a0/a0d9bfec9a0317767425e146dfdf318355929ea0.svn-base b/.svn/pristine/a0/a0d9bfec9a0317767425e146dfdf318355929ea0.svn-base deleted file mode 100644 index e491a08..0000000 --- a/.svn/pristine/a0/a0d9bfec9a0317767425e146dfdf318355929ea0.svn-base +++ /dev/null @@ -1,45 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* END_HDR */ - -/* engine_c.c */ -void check_breakpoints(word32 addr); -word32 get_memory8_io_stub(word32 addr, byte *stat, double *fcycs_ptr, double fplus_x_m1); -word32 get_memory16_pieces_stub(word32 addr, byte *stat, double *fcycs_ptr, Fplus *fplus_ptr, int in_bank); -word32 get_memory24_pieces_stub(word32 addr, byte *stat, double *fcycs_ptr, Fplus *fplus_ptr, int in_bank); -void set_memory8_io_stub(word32 addr, word32 val, byte *stat, double *fcycs_ptr, double fplus_x_m1); -void set_memory16_pieces_stub(word32 addr, word32 val, double *fcycs_ptr, double fplus_1, double fplus_x_m1, int in_bank); -void set_memory24_pieces_stub(word32 addr, word32 val, double *fcycs_ptr, Fplus *fplus_ptr, int in_bank); -word32 get_memory_c(word32 addr, int cycs); -word32 get_memory16_c(word32 addr, int cycs); -word32 get_memory24_c(word32 addr, int cycs); -void set_memory_c(word32 addr, word32 val, int cycs); -void set_memory16_c(word32 addr, word32 val, int cycs); -void set_memory24_c(word32 addr, word32 val, int cycs); -word32 do_adc_sbc8(word32 in1, word32 in2, word32 psr, int sub); -word32 do_adc_sbc16(word32 in1, word32 in2, word32 psr, int sub); -void fixed_memory_ptrs_init(void); -word32 get_itimer(void); -void set_halt_act(int val); -void clr_halt_act(void); -word32 get_remaining_operands(word32 addr, word32 opcode, word32 psr, Fplus *fplus_ptr); -int enter_engine(Engine_reg *engine_ptr); diff --git a/.svn/pristine/a0/a0dc5bd9f4436b14529a48f6d44277a1e48c4582.svn-base b/.svn/pristine/a0/a0dc5bd9f4436b14529a48f6d44277a1e48c4582.svn-base deleted file mode 100644 index c8595daa2909d8955ce64b881ea0b6191db5faf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787228 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%0D!P-O2o9YzDPAzEGWA(P4mb_ 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"QJ{iqgL-1jrD_}J)sv488QXK(G) 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�)(}mzi`$l;YS|b`@?j! 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 diff --git a/.svn/pristine/a1/a18355de7767bb48683a2663910cc8870e000ad2.svn-base b/.svn/pristine/a1/a18355de7767bb48683a2663910cc8870e000ad2.svn-base deleted file mode 100644 index 3fe08b0086c2239de92fa32120ef55d4e594482f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164039 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 z 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

o`flD)u%yN2Y)+OBCuhU@9;BR66eCY zj+W1A9X7lBO=OLNwIWul3pc)c^3D52-K^6a)z zv8m7G2t=OfC<-fmAN0(qVP_k)o_<1x{sl;&FN)`a5onZ7&!RVYfYt-!w*g&e{^c2k zO>TmbjjzY^WXcpI{9Zu~F5xeK?1d3e$*y^77Ljd;>W-bf>qKbupLQ%?&rpJSk?ZlG zzdX)ihXYB;+j`_bs(CkmkVJa7=<0R8zM+A7sqrtPYb%Kh!tbGx3qg#-$sr^M6spx%Eo|q|R z9imzjIchV`&iG^5|psfMf36a+F^;>rO@k@{)m-nhIu)Q7QJ z%NmzBF8_RtdYB{-$l=iPreFXAn|6XOya}1fw;ZI8=Lf7zYP;UmLc)F zGaD=z@fl=ZPJY%1-zvRQ?(MlxCQeX5PxDw*H6y|BKlGfg>47HKh02kdBqPCg$3Jn% zodehM&FXEfs#rprqnDDmFdfLvGR?+&i=zKK)KOAR?ULyq{@>%zfiQG&^2%28yZ5vb zGDYqLH1+7PQBm^V@^AHb+ioH!&D;sdbRT_ZD0-q(W9QZ5oKvG(c}06)S9A8$Ze9p31Qw*OCxve z8v=5}yY!a`0e40K9e|Ack;zPXymK^E|M;105&wJCUkg4`i^wXz-|h`cAHF5@Rq zcn@;^-DAixhF@&jYn3op7)_*XE4f5AZWTB>ukMP_Nv1OQi40n*W)Fx52=T(*uUp5} z*Ipf;$Q^xBO4;k1F9TSB=T-3S5dNO&Gf~>ZG*+6yu2m&Ohf>3n5<&+Q$+Dev%vvUA zD}JBd@hj=HfAyNJSrTzB*u+=O(35F}$#e`GXX3JC;?E(nW2-2~2Vz|8B0!Bb%r9ek zbjwy5@imIB#NrsF#^JJl?}$TQluTFR8o0eaWKSl>jt#kX0hyiu>Oph_ukw#u${~r$qfx=q(DLppVN@VLoKF~s`eLq7L?V5sqGl;+K)aBn zQ})c(@$%@cc~S_D`6MVD{9dG^D%B1Whwb;b@91Mo1@NHpN!h2={_DZ&lkZov%{ym8 zXz3gu-SEY@bH^7BBe=?A6O09ZS!v`HHRo%UJG)#4@biBlx>AZZ8XtztjH}2Hd6XdB zS@Ry5WgdUYEoi9*7@`9a3IcFP!fNxVpyf#Sp#uiF!R))5FVy}j|FZtr?b<8@12>0R(?Pka%P69)(x+U1Hh+uQn&g(ehnoPhr;d(@K{Mt -#endif - -extern Scc scc_stat[2]; -extern word32 g_c025_val; - -#ifdef MAC -int -scc_serial_mac_init(int port) -{ - char str_buf[1024]; - Scc *scc_ptr; - int state; - int fd; - - scc_ptr = &(scc_stat[port]); - - scc_ptr->state = 0; /* mark as uninitialized */ - - /*sprintf(&str_buf[0], "/dev/tty.USA19QW11P1.1"); */ - sprintf(&str_buf[0], "/dev/tty.USA19H181P1.1"); - /* HACK: fix this... */ - - fd = open(&str_buf[0], O_RDWR | O_NONBLOCK); - - scc_ptr->host_handle = (void *)fd; - scc_ptr->host_handle2 = 0; - - printf("scc_serial_mac_init %d called, fd: %d\n", port, fd); - - if(fd < 0) { - scc_ptr->host_handle = (void *)-1; - return -1; - } - - scc_serial_mac_change_params(port); - - state = 2; /* raw serial */ - scc_ptr->state = state; - - return state; -} - -void -scc_serial_mac_change_params(int port) -{ - struct termios termios_buf; - Scc *scc_ptr; - int fd; - int csz; - int ret; - - scc_ptr = &(scc_stat[port]); - - fd = (intptr_t)scc_ptr->host_handle; - printf("scc_serial_mac_change_parms port: %d, fd: %d\n", port, fd); - if(fd <= 0) { - return; - } - - ret = tcgetattr(fd, &termios_buf); - if(ret != 0) { - printf("tcgetattr port%d ret: %d\n", port, ret); - } - -#if 1 - printf("baudrate: %d, iflag:%x, oflag:%x, cflag:%x, lflag:%x\n", - (int)termios_buf.c_ispeed, (int)termios_buf.c_iflag, - (int)termios_buf.c_oflag, (int)termios_buf.c_cflag, - (int)termios_buf.c_lflag); -#endif - - memset(&termios_buf, 0, sizeof(struct termios)); - cfmakeraw(&termios_buf); - cfsetspeed(&termios_buf, scc_ptr->baud_rate); - - csz = scc_ptr->char_size; - termios_buf.c_cflag = CREAD | CLOCAL; - termios_buf.c_cflag |= (csz == 5) ? CS5 : - (csz == 6) ? CS6 : - (csz == 7) ? CS7 : - CS8; - switch((scc_ptr->reg[4] >> 2) & 0x3) { - case 2: // 1.5 stop bits - termios_buf.c_cflag |= CSTOPB; /* no 1.5 stop bit setting.*/ - break; - case 3: // 2 stop bits - termios_buf.c_cflag |= CSTOPB; - break; - } - - switch((scc_ptr->reg[4]) & 0x3) { - case 1: // Odd parity - termios_buf.c_cflag |= (PARENB | PARODD); - break; - case 3: // Even parity - termios_buf.c_cflag |= PARENB; - break; - } - - /* always enabled DTR and RTS control */ - termios_buf.c_cflag |= CDTR_IFLOW | CRTS_IFLOW; - - printf("fd: %d, baudrate: %d, iflag:%x, oflag:%x, cflag:%x, lflag:%x\n", - fd, (int)termios_buf.c_ispeed, (int)termios_buf.c_iflag, - (int)termios_buf.c_oflag, (int)termios_buf.c_cflag, - (int)termios_buf.c_lflag); - ret = tcsetattr(fd, TCSANOW, &termios_buf); - if(ret != 0) { - printf("tcsetattr ret: %d\n", ret); - } -} - -void -scc_serial_mac_fill_readbuf(int port, int space_left, double dcycs) -{ - byte tmp_buf[256]; - Scc *scc_ptr; - int fd; - int i; - int ret; - - scc_ptr = &(scc_stat[port]); - - fd = (intptr_t)scc_ptr->host_handle; - if(fd <= 0) { - return; - } - - /* Try reading some bytes */ - space_left = MIN(space_left, 256); - ret = read(fd, tmp_buf, space_left); - - if(ret > 0) { - for(i = 0; i < ret; i++) { - scc_add_to_readbuf(port, tmp_buf[i], dcycs); - } - } - -} - -void -scc_serial_mac_empty_writebuf(int port) -{ - Scc *scc_ptr; - int fd; - int rdptr; - int wrptr; - int done; - int ret; - int len; - - scc_ptr = &(scc_stat[port]); - - fd = (intptr_t)scc_ptr->host_handle; - if(fd <= 0) { - return; - } - - /* Try writing some bytes */ - done = 0; - while(!done) { - rdptr = scc_ptr->out_rdptr; - wrptr = scc_ptr->out_wrptr; - if(rdptr == wrptr) { - //printf("...rdptr == wrptr\n"); - done = 1; - break; - } - len = wrptr - rdptr; - if(len < 0) { - len = SCC_OUTBUF_SIZE - rdptr; - } - if(len > 32) { - len = 32; - } - if(len <= 0) { - done = 1; - break; - } - ret = write(fd, &(scc_ptr->out_buf[rdptr]), len); - - if(ret <= 0) { - done = 1; - break; - } else { - rdptr = rdptr + ret; - if(rdptr >= SCC_OUTBUF_SIZE) { - rdptr = rdptr - SCC_OUTBUF_SIZE; - } - scc_ptr->out_rdptr = rdptr; - } - } -} -#endif /* MAC */ diff --git a/.svn/pristine/a3/a3fdbe7db53232b1c6fecac5f2647aa0466f4772.svn-base b/.svn/pristine/a3/a3fdbe7db53232b1c6fecac5f2647aa0466f4772.svn-base deleted file mode 100644 index ff0782f..0000000 --- a/.svn/pristine/a3/a3fdbe7db53232b1c6fecac5f2647aa0466f4772.svn-base +++ /dev/null @@ -1,1183 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2012 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* This file contains the socket calls */ - -#include "defc.h" -#include "scc.h" -#include -#include -#ifndef UNDER_CE //OG -#include -#endif -#ifdef __CYGWIN__ -#include -#endif -extern Scc scc_stat[2]; -extern int g_serial_modem[]; - -#if !(defined _MSC_VER || defined __CYGWIN__) -extern int h_errno; -#else -#define socklen_t int -#endif -int g_wsastartup_called = 0; -typedef unsigned short USHORT; - -/* Usage: scc_socket_init() called to init socket mode */ -/* At all times, we try to have a listen running on the incoming socket */ -/* If we want to dial out, we close the incoming socket and create a new */ -/* outgoing socket. Any hang-up causes the socket to be closed and it will */ -/* then re-open on a subsequent call to scc_socket_open */ - -void -scc_socket_init(int port) -{ - Scc *scc_ptr; - -#ifdef _WIN32 - WSADATA wsadata; - int ret; - - if(g_wsastartup_called == 0) { - ret = WSAStartup(MAKEWORD(2,0), &wsadata); - printf("WSAStartup ret: %d\n", ret); - g_wsastartup_called = 1; - } -#endif - scc_ptr = &(scc_stat[port]); - scc_ptr->state = 1; /* successful socket */ - scc_ptr->sockfd = -1; /* Indicate no socket open yet */ - scc_ptr->accfd = -1; /* Indicate no socket open yet */ - scc_ptr->rdwrfd = -1; /* Indicate no socket open yet */ - scc_ptr->socket_state = -2; /* 0 means talk to "modem" */ - /* 1 connected */ - scc_ptr->socket_num_rings = 0; - scc_ptr->socket_last_ring_dcycs = 0; - scc_ptr->dcd = 0; /* 0 means no carrier */ - scc_ptr->modem_s0_val = 0; - scc_ptr->host_aux1 = sizeof(struct sockaddr_in); - scc_ptr->host_handle = malloc(scc_ptr->host_aux1); - /* Real init will be done when bytes need to be read/write from skt */ -} - -static int -scc_socket_close_handle(SOCKET sockfd) -{ - if (sockfd != -1) - { -#if defined(_WIN32) || defined (__OS2__) - return closesocket(sockfd); // NW: a Windows socket handle is not a file descriptor -#else - return close(sockfd); -#endif - } - return 0; -} - -void -scc_socket_maybe_open_incoming(int port, double dcycs) -{ - Scc *scc_ptr; - struct sockaddr_in sa_in; - int on; - int ret; - SOCKET sockfd; - int inc; - - inc = 0; - - scc_ptr = &(scc_stat[port]); - - if(scc_ptr->sockfd != -1) { - /* it's already open, get out */ - return; - } - if(scc_ptr->socket_state < 0) { - /* not initialized; ok, since we need to listen */ - //return; - } - - printf("scc socket close being called from scc_socket_maybe_open_incoming\n"); - scc_socket_close(port, 0, dcycs); - - scc_ptr->socket_state = 0; - scc_ptr->socket_num_rings = 0; - - memset(scc_ptr->host_handle, 0, scc_ptr->host_aux1); - - while(1) { - sockfd = socket(AF_INET, SOCK_STREAM, 0); - printf("sockfd ret: %d\n", sockfd); - if(sockfd == -1) { - printf("socket ret: %d, errno: %d\n", sockfd, errno); - scc_socket_close(port, 0, dcycs); - scc_ptr->socket_state = -1; - return; - } - /* printf("socket ret: %d\n", sockfd); */ - - on = 1; - ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, - (char *)&on, sizeof(on)); - if(ret < 0) { - printf("setsockopt REUSEADDR ret: %d, err:%d\n", - ret, errno); - scc_socket_close(port, 0, dcycs); - scc_ptr->socket_state = -1; - return; - } - - memset(&sa_in, 0, sizeof(sa_in)); - sa_in.sin_family = AF_INET; - sa_in.sin_port = htons(6501 + port + inc); - sa_in.sin_addr.s_addr = htonl(INADDR_ANY); - - ret = bind(sockfd, (struct sockaddr *)&sa_in, sizeof(sa_in)); - - if(ret >= 0) { - ret = listen(sockfd, 1); - break; - } - /* else ret to bind was < 0 */ - printf("bind ret: %d, errno: %d\n", ret, errno); - inc++; - scc_socket_close_handle(sockfd); - printf("Trying next port: %d\n", 6501 + port + inc); - if(inc >= 10) { - printf("Too many retries, quitting\n"); - scc_socket_close(port, 0, dcycs); - scc_ptr->socket_state = -1; - return; - } - } - - printf("SCC port %d is at unix port %d\n", port, 6501 + port + inc); - - scc_ptr->sockfd = sockfd; - scc_ptr->state = 1; /* successful socket */ - - scc_socket_make_nonblock(port, dcycs); - -} - -void -scc_socket_open_outgoing(int port, double dcycs) -{ - Scc *scc_ptr; - struct sockaddr_in sa_in; - struct hostent *hostentptr; - int on; - int ret; - SOCKET sockfd; - USHORT port_number = 23; - - scc_ptr = &(scc_stat[port]); - - printf("scc socket close being called from scc_socket_open_outgoing\n"); - scc_socket_close(port, 0, dcycs); - - scc_ptr->socket_state = 0; - - memset(scc_ptr->host_handle, 0, scc_ptr->host_aux1); - - sockfd = socket(AF_INET, SOCK_STREAM, 0); - printf("sockfd ret: %d\n", sockfd); - if(sockfd == -1) { - printf("socket ret: %d, errno: %d\n", sockfd, errno); - scc_socket_close(port, 1, dcycs); - return; - } - /* printf("socket ret: %d\n", sockfd); */ - - on = 1; - ret = setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, - (char *)&on, sizeof(on)); - if(ret < 0) { - printf("setsockopt REUSEADDR ret: %d, err:%d\n", - ret, errno); - scc_socket_close(port, 1, dcycs); - return; - } - - memset(&sa_in, 0, sizeof(sa_in)); - sa_in.sin_family = AF_INET; - /* ARO: inspect the ATDT command to see if there is a decimal port number declared & if so, use it */ - /* Format: ATDT, */ - /* Example ATDT192.168.1.21,4001 */ - char *comma_ptr = strchr(&scc_ptr->modem_cmd_str[0], ','); - if (comma_ptr != NULL) { - long custom_port = strtol(comma_ptr + 1, NULL, 10); - *comma_ptr = '\0'; /* null terminate the hostname string at the position of the comma */ - if (custom_port >= 1 && custom_port <= 65535) { - port_number = (USHORT)custom_port; - } else { - printf("Specified port out of range: %ld\n", custom_port); - scc_socket_close_handle(sockfd); - scc_socket_close(port, 1, dcycs); - return; - } - } - sa_in.sin_port = htons(port_number); - hostentptr = gethostbyname((const char*)&scc_ptr->modem_cmd_str[0]); // OG Added Cast - if(hostentptr == 0) { -#if defined(_WIN32) || defined (__OS2__) - fatal_printf("Lookup host %s failed\n", - &scc_ptr->modem_cmd_str[0]); -#else - fatal_printf("Lookup host %s failed, herrno: %d\n", - &scc_ptr->modem_cmd_str[0], h_errno); -#endif - scc_socket_close_handle(sockfd); - scc_socket_close(port, 1, dcycs); - x_show_alert(0, 0); - return; - } - memcpy(&sa_in.sin_addr.s_addr, hostentptr->h_addr, - hostentptr->h_length); - /* The above copies the 32-bit internet address into */ - /* sin_addr.s_addr. It's in correct network format */ - - ret = connect(sockfd, (struct sockaddr *)&sa_in, sizeof(sa_in)); - if(ret < 0) { - printf("connect ret: %d, errno: %d\n", ret, errno); - scc_socket_close_handle(sockfd); - scc_socket_close(port, 1, dcycs); - return; - } - scc_socket_modem_connect(port, dcycs); - scc_ptr->dcd = 1; /* carrier on */ - scc_ptr->socket_state = 1; /* talk to socket */ - scc_ptr->socket_num_rings = 0; - - printf("SCC port %d is now outgoing to %s on TCP port %d\n", port, - &scc_ptr->modem_cmd_str[0], port_number); - - scc_ptr->sockfd = sockfd; - scc_ptr->state = 1; /* successful socket */ - - scc_socket_make_nonblock(port, dcycs); - scc_ptr->rdwrfd = scc_ptr->sockfd; -} - -void -scc_socket_make_nonblock(int port, double dcycs) -{ - Scc *scc_ptr; - SOCKET sockfd; - int ret; -#if defined(_WIN32) || defined (__OS2__) - u_long flags; -#else - int flags; -#endif - - scc_ptr = &(scc_stat[port]); - sockfd = scc_ptr->sockfd; - -#if defined(_WIN32) || defined (__OS2__) - flags = 1; - ret = ioctlsocket(sockfd, FIONBIO, &flags); - if(ret != 0) { - printf("ioctlsocket ret: %d\n", ret); - } -#else - flags = fcntl(sockfd, F_GETFL, 0); - if(flags == -1) { - printf("fcntl GETFL ret: %d, errno: %d\n", flags, errno); - scc_socket_close(port, 1, dcycs); - scc_ptr->socket_state = -1; - return; - } - ret = fcntl(sockfd, F_SETFL, flags | O_NONBLOCK); - if(ret == -1) { - printf("fcntl SETFL ret: %d, errno: %d\n", ret, errno); - scc_socket_close(port, 1, dcycs); - scc_ptr->socket_state = -1; - return; - } -#endif -} - -void -scc_socket_change_params(int port) -{ -} - -void -scc_socket_close(int port, int full_close, double dcycs) -{ - Scc *scc_ptr; - int rdwrfd; - SOCKET sockfd; - int i; - - scc_ptr = &(scc_stat[port]); - - printf("In scc_socket_close, %d, %d, %f\n", port, full_close, dcycs); - - rdwrfd = scc_ptr->rdwrfd; - if(rdwrfd != -1) { - printf("socket_close: rdwrfd=%d, closing\n", rdwrfd); - scc_socket_close_handle(rdwrfd); - } - sockfd = scc_ptr->sockfd; - if(sockfd != -1) { - printf("socket_close: sockfd=%d, closing\n", sockfd); - scc_socket_close_handle(sockfd); - } - - scc_ptr->modem_cmd_len = 0; - scc_ptr->telnet_mode = 0; - scc_ptr->telnet_iac = 0; - for(i = 0; i < 2; i++) { - scc_ptr->telnet_local_mode[i] = 0; - scc_ptr->telnet_remote_mode[i] = 0; - scc_ptr->telnet_reqwill_mode[i] = 0; - scc_ptr->telnet_reqdo_mode[i] = 0; - } - scc_ptr->rdwrfd = -1; - scc_ptr->sockfd = -1; - scc_ptr->dcd = 0; - scc_ptr->socket_num_rings = 0; - - if(!full_close) { - return; - } - - scc_socket_modem_hangup(port, dcycs); - - /* and go back to modem mode */ - scc_ptr->socket_state = 0; - if(g_serial_modem[port]) { - scc_ptr->modem_dial_or_acc_mode = 0; - } else { - scc_ptr->modem_dial_or_acc_mode = 2; /* always accept */ - } -} - -void -scc_accept_socket(int port, double dcycs) -{ -#ifdef SCC_SOCKETS - Scc *scc_ptr; - int flags; - int num_rings; - int rdwrfd; - int ret; - - scc_ptr = &(scc_stat[port]); - - if(scc_ptr->sockfd == -1) { - printf("in accept_socket, call socket_open\n"); - scc_socket_maybe_open_incoming(port, dcycs); - } - if(scc_ptr->sockfd == -1) { - return; /* just give up */ - } - if(scc_ptr->rdwrfd == -1) { - rdwrfd = accept(scc_ptr->sockfd, (struct sockaddr*)scc_ptr->host_handle, - (socklen_t*)&(scc_ptr->host_aux1)); - if(rdwrfd < 0) { - return; - } - - flags = 0; - ret = 0; -#if !defined(_WIN32) && !defined(__OS2__) - /* For Linux, we need to set O_NONBLOCK on the rdwrfd */ - flags = fcntl(rdwrfd, F_GETFL, 0); - if(flags == -1) { - printf("fcntl GETFL ret: %d, errno: %d\n", flags,errno); - return; - } - ret = fcntl(rdwrfd, F_SETFL, flags | O_NONBLOCK); - if(ret == -1) { - printf("fcntl SETFL ret: %d, errno: %d\n", ret, errno); - return; - } -#endif - scc_ptr->rdwrfd = rdwrfd; - printf("Set port[%d].rdwrfd = %d\n", port, rdwrfd); - - num_rings = 4; - if(scc_ptr->modem_s0_val > 0) { - num_rings = scc_ptr->modem_s0_val; - } - scc_ptr->socket_num_rings = num_rings; - scc_ptr->socket_last_ring_dcycs = 0; /* do ring now*/ - scc_socket_modem_do_ring(port, dcycs); - - /* and send some telnet codes */ - scc_ptr->telnet_reqwill_mode[0] = 0xa; /* 3=GO_AH and 1=ECHO */ - scc_ptr->telnet_reqdo_mode[0] = 0xa; /* 3=GO_AH and 1=ECHO */ -#if 0 - scc_ptr->telnet_reqdo_mode[1] = 0x4; /* 34=LINEMODE */ -#endif - } -#endif -} - -void -scc_socket_telnet_reqs(int port, double dcycs) -{ - Scc *scc_ptr; - word32 mask, willmask, domask; - int i, j; - - scc_ptr = &(scc_stat[port]); - - for(i = 0; i < 64; i++) { - j = i >> 5; - mask = 1 << (i & 31); - willmask = scc_ptr->telnet_reqwill_mode[j]; - if(willmask & mask) { - scc_add_to_writebuf(port, 0xff, dcycs); - scc_add_to_writebuf(port, 0xfb, dcycs); /* WILL */ - scc_add_to_writebuf(port, i, dcycs); - } - domask = scc_ptr->telnet_reqdo_mode[j]; - if(domask & mask) { - scc_add_to_writebuf(port, 0xff, dcycs); - scc_add_to_writebuf(port, 0xfd, dcycs); /* DO */ - scc_add_to_writebuf(port, i, dcycs); - } - } -} - -void -scc_socket_fill_readbuf(int port, int space_left, double dcycs) -{ -#ifdef SCC_SOCKETS - byte tmp_buf[256]; - Scc *scc_ptr; - int rdwrfd; - int ret; - int i; - - scc_ptr = &(scc_stat[port]); - - scc_accept_socket(port, dcycs); - scc_socket_modem_do_ring(port, dcycs); - - if(scc_ptr->socket_state == 0 && g_serial_modem[port]) { - /* Just get out, this is modem mode */ - /* The transmit function stuffs any bytes in receive buf */ - return; - } - rdwrfd = scc_ptr->rdwrfd; - if(rdwrfd < 0) { - return; /* just get out */ - } - - /* Try reading some bytes */ - space_left = MIN(space_left, 256); - ret = recv(rdwrfd, (char*)tmp_buf, space_left, 0); // OG Added cast - if(ret > 0) { - for(i = 0; i < ret; i++) { - if(tmp_buf[i] == 0) { - /* Skip null chars */ - continue; - } - scc_socket_recvd_char(port, tmp_buf[i], dcycs); - } - } else if(ret == 0) { - /* assume socket close */ - printf("recv got 0 from rdwrfd=%d, closing\n", rdwrfd); - scc_socket_close(port, 1, dcycs); - } -#endif -} - -int g_scc_dbg_print_cnt = 50; - -void -scc_socket_recvd_char(int port, int c, double dcycs) -{ - Scc *scc_ptr; - word32 locmask, remmask, mask; - word32 reqwillmask, reqdomask; - int telnet_mode, telnet_iac; - int eff_c, cpos; - int reply; - - scc_ptr = &(scc_stat[port]); - - scc_socket_maybe_open_incoming(port, dcycs); - - telnet_mode = scc_ptr->telnet_mode; - telnet_iac = scc_ptr->telnet_iac; - if(c >= 0xf0 || telnet_mode || telnet_iac) { - g_scc_dbg_print_cnt = 50; - } -#if 0 - if(g_scc_dbg_print_cnt) { - printf("Recv: %02x mode: %d\n", c, telnet_mode); - g_scc_dbg_print_cnt--; - } -#endif - - eff_c = c; - if(telnet_iac == 0) { - if(c == 0xff) { - scc_ptr->telnet_iac = 0xff; - return; /* and just get out */ - } - } else { - /* last char was 0xff, see if this is 0xff */ - if(c != 0xff) { - /* this is some kind of command */ - eff_c = eff_c | 0x100; /* indicate prev char IAC */ - } - } - scc_ptr->telnet_iac = 0; - - mask = 1 << (c & 31); - cpos = (c >> 5) & 1; - locmask = scc_ptr->telnet_local_mode[cpos] & mask; - remmask = scc_ptr->telnet_remote_mode[cpos] & mask; - reqwillmask = scc_ptr->telnet_reqwill_mode[cpos] & mask; - reqdomask = scc_ptr->telnet_reqdo_mode[cpos] & mask; - switch(telnet_mode) { - case 0: /* just passing through bytes */ - switch(eff_c) { - case 0x1fe: /* DON'T */ - case 0x1fd: /* DO */ - case 0x1fc: /* WON'T */ - case 0x1fb: /* WILL */ - case 0x1fa: /* SB */ - telnet_mode = c; - break; - default: - if(eff_c < 0x100) { - scc_add_to_readbuf(port, c, dcycs); - } - break; - } - break; - case 3: /* LINEMODE SB SLC, octet 0 */ - if(eff_c == 0x1f0) { - /* SE, the end */ - telnet_mode = 0; - } - printf("LINEMODE SLC octet 0: %02x\n", c); - telnet_mode = 4; - break; - case 4: /* LINEMODE SB SLC, octet 1 */ - printf("LINEMODE SLC octet 1: %02x\n", c); - telnet_mode = 5; - if(eff_c == 0x1f0) { - /* SE, the end */ - printf("Got SE at octet 1...\n"); - telnet_mode = 0; - } - break; - case 5: /* LINEMODE SB SLC, octet 2 */ - printf("LINEMODE SLC octet 2: %02x\n", c); - telnet_mode = 3; - if(eff_c == 0x1f0) { - /* SE, the end */ - printf("Got SE at octet 2...\n"); - telnet_mode = 0; - } - break; - case 34: /* LINEMODE SB beginning */ - switch(c) { - case 3: /* SLC */ - telnet_mode = 3; - break; - default: - telnet_mode = 0xee; /* go to SB eat */ - break; - } - break; - case 0xfa: /* in 0xfa = SB mode, eat up subcommands */ - switch(c) { - case 34: /* LINEMODE */ - telnet_mode = 34; - break; - default: - telnet_mode = 0xee; /* SB eat mode */ - break; - } - break; - case 0xee: /* in SB eat mode */ - if(eff_c == 0x1f0) { /* SE, end of sub-command */ - telnet_mode = 0; - } else { - /* just stay in eat mode */ - } - break; - case 0xfe: /* previous char was "DON'T" */ - if(locmask && (reqwillmask == 0)) { - /* it's a mode change */ - /* always OK to turn off a mode that we had on */ - scc_add_to_writebuf(port, 0xff, dcycs); - scc_add_to_writebuf(port, 0xfc, dcycs); /* WON'T */ - scc_add_to_writebuf(port, c, dcycs); - } - scc_ptr->telnet_local_mode[cpos] &= ~mask; - scc_ptr->telnet_reqwill_mode[cpos] &= ~mask; - telnet_mode = 0; - break; - case 0xfd: /* previous char was "DO" */ - reply = 0xfc; - if(locmask == 0 && (reqwillmask == 0)) { - /* it's a mode change, send some response */ - reply = 0xfc; /* nack it with WON'T */ - if(c == 0x03 || c == 0x01) { - reply = 0xfb; /* Ack with WILL */ - } - scc_add_to_writebuf(port, 0xff, dcycs); - scc_add_to_writebuf(port, reply, dcycs); - scc_add_to_writebuf(port, c, dcycs); - } - if(reqwillmask || (reply == 0xfb)) { - scc_ptr->telnet_local_mode[cpos] |= mask; - } - scc_ptr->telnet_reqwill_mode[cpos] &= ~mask; - telnet_mode = 0; - break; - case 0xfc: /* previous char was "WON'T" */ - if(remmask && (reqdomask == 0)) { - /* it's a mode change, ack with DON'T */ - scc_add_to_writebuf(port, 0xff, dcycs); - scc_add_to_writebuf(port, 0xfe, dcycs); /* DON'T */ - scc_add_to_writebuf(port, c, dcycs); - } - scc_ptr->telnet_remote_mode[cpos] &= ~mask; - scc_ptr->telnet_reqdo_mode[cpos] &= ~mask; - telnet_mode = 0; - break; - case 0xfb: /* previous char was "WILL" */ - reply = 0xfe; /* nack it with DON'T */ - if(remmask == 0 && (reqdomask == 0)) { - /* it's a mode change, send some response */ - if(c == 0x03 || c == 0x01) { - reply = 0xfd; /* Ack with DO */ - } - scc_add_to_writebuf(port, 0xff, dcycs); - scc_add_to_writebuf(port, reply, dcycs); - scc_add_to_writebuf(port, c, dcycs); - } - if(reqdomask || (reply == 0xfd)) { - scc_ptr->telnet_remote_mode[cpos] |= mask; - } - scc_ptr->telnet_reqdo_mode[cpos] &= ~mask; - telnet_mode = 0; - break; - default: - telnet_mode = 0; - break; - } - scc_ptr->telnet_mode = telnet_mode; -} - -void -scc_socket_empty_writebuf(int port, double dcycs) -{ -#ifdef SCC_SOCKETS -# if !defined(_WIN32) && !defined(__OS2__) - struct sigaction newact, oldact; -# endif - Scc *scc_ptr; - double diff_dcycs; - int plus_mode; - int rdptr; - int wrptr; - int rdwrfd; - int done; - int ret; - int len; - int c; - int i; - - scc_ptr = &(scc_stat[port]); - - /* See if +++ done and we should go to command mode */ - diff_dcycs = dcycs - scc_ptr->out_char_dcycs; - if((diff_dcycs > 900.0*1000) && (scc_ptr->modem_plus_mode == 3) && - (scc_ptr->socket_state >= 1) && - (g_serial_modem[port] != 0)) { - scc_ptr->socket_state = 0; /* go modem mode, stay connect*/ - scc_ptr->modem_plus_mode = 0; - scc_socket_send_modem_code(port, 0, dcycs); - } - - /* Try writing some bytes */ - done = 0; - while(!done) { - rdptr = scc_ptr->out_rdptr; - wrptr = scc_ptr->out_wrptr; - if(rdptr == wrptr) { - done = 1; - break; - } - rdwrfd = scc_ptr->rdwrfd; - len = wrptr - rdptr; - if(len < 0) { - len = SCC_OUTBUF_SIZE - rdptr; - } - if(len > 32) { - len = 32; - } - if(len <= 0) { - done = 1; - break; - } - - if(scc_ptr->socket_state < 1 && g_serial_modem[port]) { - len = 1; - scc_socket_modem_write(port, scc_ptr->out_buf[rdptr], - dcycs); - ret = 1; - } else { - if(rdwrfd == -1) { - if(g_serial_modem[port]) { - printf("socket_state: %d, ser_mod: %d, " - "rdwrfd: %d\n", - scc_ptr->socket_state, - g_serial_modem[port], rdwrfd); - } - scc_ptr->socket_state = 0; - scc_socket_maybe_open_incoming(port, dcycs); - return; - } - for(i = 0; i < len; i++) { - c = scc_ptr->out_buf[rdptr + i]; - plus_mode = scc_ptr->modem_plus_mode; - diff_dcycs = dcycs - scc_ptr->out_char_dcycs; - if(c == '+' && plus_mode == 0) { - if(diff_dcycs > 500*1000) { - scc_ptr->modem_plus_mode = 1; - } - } else if(c == '+') { - if(diff_dcycs < 800.0*1000) { - plus_mode++; - scc_ptr->modem_plus_mode = - plus_mode; - } - } else { - scc_ptr->modem_plus_mode = 0; - } - scc_ptr->out_char_dcycs = dcycs; - } - -#if defined(_WIN32) || defined (__OS2__) - ret = send(rdwrfd, (const char*)&(scc_ptr->out_buf[rdptr]), len, 0); // OG Added Cast -# else - /* ignore SIGPIPE around writes to the socket, so we */ - /* can catch a closed socket and prepare to accept */ - /* a new connection. Otherwise, SIGPIPE kills GSport */ - sigemptyset(&newact.sa_mask); - newact.sa_handler = SIG_IGN; - newact.sa_flags = 0; - sigaction(SIGPIPE, &newact, &oldact); - - ret = send(rdwrfd, &(scc_ptr->out_buf[rdptr]), len, 0); - - sigaction(SIGPIPE, &oldact, 0); - /* restore previous SIGPIPE behavior */ -# endif /* WIN32 */ - -#if 0 - printf("sock output: %02x\n", scc_ptr->out_buf[rdptr]); -#endif - - } - - if(ret == 0) { - done = 1; /* give up for now */ - break; - } else if(ret < 0) { - /* assume socket is dead */ - printf("socket write failed, resuming modem mode\n"); - scc_socket_close(port, 1, dcycs); - done = 1; - break; - } else { - rdptr = rdptr + ret; - if(rdptr >= SCC_OUTBUF_SIZE) { - rdptr = rdptr - SCC_OUTBUF_SIZE; - } - scc_ptr->out_rdptr = rdptr; - } - } -#endif -} - -void -scc_socket_modem_write(int port, int c, double dcycs) -{ - Scc *scc_ptr; - char *str; - word32 modem_mode; - int do_echo; - int got_at; - int len; - - scc_ptr = &(scc_stat[port]); - - if(scc_ptr->sockfd == -1) { - scc_ptr->socket_state = 0; - scc_socket_maybe_open_incoming(port, dcycs); - } - - modem_mode = scc_ptr->modem_mode; - str = (char*)&(scc_ptr->modem_cmd_str[0]); // OG Added Cast - -#if 0 - printf("M: %02x\n", c); -#endif - do_echo = ((modem_mode & SCCMODEM_NOECHO) == 0); - len = scc_ptr->modem_cmd_len; - got_at = 0; - if(len >= 2 && str[0] == 'a' && str[1] == 't') { - /* we've got an 'at', do not back up past it */ - got_at = 1; - } - if(c == 0x0d) { - if(do_echo) { - scc_add_to_readbuf(port, c, dcycs); /* echo cr */ - scc_add_to_readbuf(port, 0x0a, dcycs); /* echo lf */ - } - do_echo = 0; /* already did the echo */ - scc_socket_do_cmd_str(port, dcycs); - scc_ptr->modem_cmd_len = 0; - len = 0; - str[0] = 0; - } else if(c == 0x08) { - if(len <= 0) { - do_echo = 0; /* do not go past left margin */ - } else if(len == 2 && got_at) { - do_echo = 0; /* do not erase "AT" */ - } else { - /* erase a character */ - len--; - str[len] = 0; - } - } else if(c < 0x20) { - /* ignore all control characters, don't echo */ - /* includes line feeds and nulls */ - do_echo = 0; - } else { - /* other characters */ - if(len < SCC_MODEM_MAX_CMD_STR) { - str[len] = tolower(c); - str[len+1] = 0; - len++; - } - } - scc_ptr->modem_cmd_len = len; - if(do_echo) { - scc_add_to_readbuf(port, c, dcycs); /* echo */ - } -} - -void -scc_socket_do_cmd_str(int port, double dcycs) -{ - Scc *scc_ptr; - char *str; - int pos, len; - int ret_val; - int reg, reg_val; - int was_amp; - int c; - int i; - - scc_ptr = &(scc_stat[port]); - - str = (char*)&(scc_ptr->modem_cmd_str[0]); // OG Added cast - printf("Got modem string :%s:=%02x %02x %02x\n", str, str[0], str[1], - str[2]); - - len = scc_ptr->modem_cmd_len; - str[len] = 0; - str[len+1] = 0; - str[len+2] = 0; - pos = -1; - if(len < 2) { - /* just ignore it */ - return; - } - if(str[0] != 'a' || str[1] != 't') { - return; - } - - /* Some AT command received--make sure socket 6501/6502 is open */ - printf("Some AT command received, sockfd=%d\n", scc_ptr->sockfd); - - pos = 2 - 1; - ret_val = 0; /* "OK" */ - was_amp = 0; - while(++pos < len) { - c = str[pos] + was_amp; - was_amp = 0; - switch(c) { - case '&': /* at& */ - was_amp = 0x100; - break; - case 'z': /* atz */ - scc_ptr->modem_mode = 0; - scc_ptr->modem_s0_val = 0; - pos = len; /* ignore any other commands */ - break; - case 'e': /* ate = echo */ - c = str[pos+1]; - if(c == '1') { - scc_ptr->modem_mode &= ~SCCMODEM_NOECHO; - pos++; - } else { - scc_ptr->modem_mode |= SCCMODEM_NOECHO; - pos++; - } - break; - case 'v': /* atv = verbose */ - c = str[pos+1]; - if(c == '1') { - scc_ptr->modem_mode &= ~SCCMODEM_NOVERBOSE; - pos++; - } else { - scc_ptr->modem_mode |= SCCMODEM_NOVERBOSE; - pos++; - } - break; - case 'o': /* ato = go online */ - printf("ato\n"); - if(scc_ptr->dcd && (scc_ptr->rdwrfd != -1) && - (scc_ptr->socket_state == 0)) { - printf("Going back online\n"); - scc_ptr->socket_state = 1; - scc_socket_modem_connect(port, dcycs); - ret_val = -1; - } - break; - case 'h': /* ath = hang up */ - printf("ath, hanging up\n"); - scc_socket_close(port, (scc_ptr->rdwrfd != -1), dcycs); - /* scc_socket_maybe_open_incoming(port, dcycs); */ - /* reopen listen */ - break; - case 'a': /* ata */ - printf("Doing ATA\n"); - scc_socket_do_answer(port, dcycs); - ret_val = -1; - break; - case 'd': /* atd */ - pos++; - c = str[pos]; - if(c == 't' || c == 'p') { - /* skip tone or pulse */ - pos++; - } - /* see if it is 111 */ - if(strcmp(&str[pos], "111") == 0) { - /* Do PPP! */ - } else { - /* get string to connect to */ - /* Shift string so hostname moves to str[0] */ - for(i = 0; i < len; i++) { - str[i] = str[pos]; - if(pos >= len) { - break; - } - pos++; - } - - } - scc_ptr->modem_dial_or_acc_mode = 1; - scc_socket_open_outgoing(port, dcycs); - ret_val = -1; - pos = len; /* always eat rest of the line */ - break; - case 's': /* atsnn=yy */ - pos++; - reg = 0; - while(1) { - c = str[pos]; - if(c < '0' || c > '9') { - break; - } - reg = (reg * 10) + c - '0'; - pos++; - } - if(c == '?') { - /* display S-register */ - if(reg == 0) { - scc_add_to_readbufv(port, dcycs, - "S0=%d\n", - scc_ptr->modem_s0_val); - } - break; - } - if(c != '=') { - break; - } - pos++; - reg_val = 0; - while(1) { - c = str[pos]; - if(c < '0' || c >'9') { - break; - } - reg_val = (reg_val * 10) + c - '0'; - pos++; - } - printf("ats%d = %d\n", reg, reg_val); - if(reg == 0) { - scc_ptr->modem_s0_val = reg_val; - } - pos--; - break; - default: - /* some command--peek into next chars to finish it */ - while(1) { - c = str[pos+1]; - if(c >= '0' && c <= '9') { - /* eat numbers */ - pos++; - continue; - } - if(c == '=') { - /* eat this as well */ - pos++; - continue; - } - /* else get out */ - break; - } - } - } - - if(ret_val >= 0) { - scc_socket_send_modem_code(port, ret_val, dcycs); - } -} - -void -scc_socket_send_modem_code(int port, int code, double dcycs) -{ - Scc *scc_ptr; - char *str; - word32 modem_mode; - - scc_ptr = &(scc_stat[port]); - - switch(code) { - case 0: str = "OK"; break; - case 1: str = "CONNECT"; break; - case 2: str = "RING"; break; - case 3: str = "NO CARRIER"; break; - case 4: str = "ERROR"; break; - case 5: str = "CONNECT 1200"; break; - case 13: str = "CONNECT 9600"; break; - case 16: str = "CONNECT 19200"; break; - case 25: str = "CONNECT 14400"; break; - case 85: str = "CONNECT 19200"; break; - default: - str = "ERROR"; - } - - printf("Sending modem code %d = %s\n", code, str); - - modem_mode = scc_ptr->modem_mode; - if(modem_mode & SCCMODEM_NOVERBOSE) { - /* just the number */ - scc_add_to_readbufv(port, dcycs, "%d", code); - scc_add_to_readbuf(port, 0x0d, dcycs); - } else { - scc_add_to_readbufv(port, dcycs, "%s\n", str); - } -} - -void -scc_socket_modem_hangup(int port, double dcycs) -{ - scc_socket_send_modem_code(port, 3, dcycs); -} - -void -scc_socket_modem_connect(int port, double dcycs) -{ - /* decide which code to send. Default to 1 if needed */ - scc_socket_send_modem_code(port, 13, dcycs); /*13=9600*/ -} - -void -scc_socket_modem_do_ring(int port, double dcycs) -{ - Scc *scc_ptr; - double diff_dcycs; - int num_rings; - - scc_ptr = &(scc_stat[port]); - num_rings = scc_ptr->socket_num_rings; - if(num_rings > 0 && scc_ptr->socket_state == 0) { - num_rings--; - diff_dcycs = dcycs - scc_ptr->socket_last_ring_dcycs; - if(diff_dcycs < 2.0*1000*1000 && g_serial_modem[port]) { - return; /* nothing more to do */ - } - printf("In modem_do_ring, ringing at %f\n", dcycs); - if(g_serial_modem[port]) { - scc_socket_send_modem_code(port, 2, dcycs); /* RING */ - } else { - num_rings = 0; - } - scc_ptr->socket_num_rings = num_rings; - scc_ptr->socket_last_ring_dcycs = (int)dcycs; - if(num_rings <= 0) { - /* decide on answering */ - if(scc_ptr->modem_s0_val || (g_serial_modem[port]==0)) { - scc_socket_do_answer(port, dcycs); - } else { - printf("No answer, closing socket\n"); - scc_socket_close(port, 0, dcycs); - } - } - } -} - -void -scc_socket_do_answer(int port, double dcycs) -{ - Scc *scc_ptr; - - scc_ptr = &(scc_stat[port]); - scc_ptr->modem_dial_or_acc_mode = 2; - scc_accept_socket(port, dcycs); - if(scc_ptr->rdwrfd == -1) { - printf("Answer when rdwrfd=-1, closing\n"); - scc_socket_close(port, 1, dcycs); - /* send NO CARRIER message */ - } else { - scc_ptr->socket_state = 1; - scc_socket_telnet_reqs(port, dcycs); - printf("Send telnet reqs, rdwrfd=%d\n", scc_ptr->rdwrfd); - if(g_serial_modem[port]) { - scc_socket_modem_connect(port, dcycs); - } - scc_ptr->dcd = 1; /* carrier on */ - scc_ptr->socket_state = 1; /* talk to socket */ - scc_ptr->socket_num_rings = 0; - } -} diff --git a/.svn/pristine/a3/a3fe448e71196e8106bb26b4989709ee567194c8.svn-base b/.svn/pristine/a3/a3fe448e71196e8106bb26b4989709ee567194c8.svn-base deleted file mode 100644 index 04daec7..0000000 --- a/.svn/pristine/a3/a3fe448e71196e8106bb26b4989709ee567194c8.svn-base +++ /dev/null @@ -1,337 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -int -IWM_READ_ROUT (Disk *dsk, int fast_disk_emul, double dcycs) -{ - Trk *trk; - double dcycs_last_read; - int pos; - int pos2; - int size; - int next_size; - int qtr_track; - int skip_nibs; - int track_len; - byte ret; - int shift; - int skip; - int cycs_this_nib; - int cycs_passed; - double dcycs_this_nib; - double dcycs_next_nib; - double dcycs_passed; - double track_dcycs; - double dtmp; - - iwm.previous_write_bits = 0; - - qtr_track = dsk->cur_qtr_track; - -#if IWM_DISK_525 - qtr_track = qtr_track & -4; /* round to nearest whole trk! */ -#endif - - trk = 0; - track_len = 0; - if(dsk->trks) { - trk = &(dsk->trks[qtr_track]); - track_len = trk->track_len; - } - - dcycs_last_read = dsk->dcycs_last_read; - dcycs_passed = dcycs - dcycs_last_read; - - cycs_passed = (int)dcycs_passed; - - if(track_len == 0) { - ret = (cycs_passed & 0x7f) + 0x80; - iwm_printf("Reading c0ec, track_len 0, returning %02x\n", ret); - return ret; - } - - pos = dsk->nib_pos; - if(pos >= track_len) { - /* Arm may have moved from inner 3.5 track to outer one, */ - /* and so must make pos fit on smaller sized track */ - pos = 0; - } - - size = trk->nib_area[pos]; - - while(size == 0) { - pos += 2; - if(pos >= track_len) { - pos = 0; - } - size = trk->nib_area[pos]; - } - - cycs_this_nib = size * (2 * IWM_CYC_MULT); - dcycs_this_nib = (double)cycs_this_nib; - - if(fast_disk_emul) { - cycs_passed = cycs_this_nib; - dcycs_passed = dcycs_this_nib; - - /* pull a trick to make disk motor-on test pass ($bd34 RWTS) */ - /* if this would be a sync byte, and we didn't just do this */ - /* then don't return whole byte */ - /* BUT, don't do this if g_fast_disk_unnib, since it will */ - /* cause the dsk->unix routines to break */ - if(size > 8 && !g_fast_disk_unnib && (g_iwm_fake_fast == 0)) { - cycs_passed = cycs_passed >> 1; - dcycs_passed = dcycs_passed * 0.5; - g_iwm_fake_fast = 1; - } else { - g_iwm_fake_fast = 0; - } - } - - skip = 0; - if(cycs_passed >= (cycs_this_nib + 11)) { - /* skip some bits? */ - skip = 1; - if(iwm.iwm_mode & 1) { - /* latch mode */ - - pos2 = pos + 2; - if(pos2 >= track_len) { - pos2 = 0; - } - next_size = trk->nib_area[pos2]; - while(next_size == 0) { - pos2 += 2; - if(pos2 >= track_len) { - pos2 = 0; - } - next_size = trk->nib_area[pos2]; - } - - dcycs_next_nib = next_size * (2 * IWM_CYC_MULT); - - if(dcycs_passed < (dcycs_this_nib + dcycs_next_nib)) { - skip = 0; - } - } - } - - if(skip) { - iwm_printf("skip since cycs_passed: %f, cycs_this_nib: %f\n", - dcycs_passed, dcycs_this_nib); - - track_dcycs = IWM_CYC_MULT * (track_len * 8); - - if(dcycs_passed >= track_dcycs) { - dtmp = (int)(dcycs_passed / track_dcycs); - dcycs_passed = dcycs_passed - - (dtmp * track_dcycs); - dcycs_last_read += (dtmp * track_dcycs); - } - - if(dcycs_passed >= track_dcycs || dcycs_passed < 0.0) { - dcycs_passed = 0.0; - } - - cycs_passed = (int)dcycs_passed; - - skip_nibs = ((word32)cycs_passed) >> (4 + IWM_DISK_525); - - pos += skip_nibs * 2; - while(pos >= track_len) { - pos -= track_len; - } - - dcycs_last_read += (skip_nibs * 16 * IWM_CYC_MULT); - - dsk->dcycs_last_read = dcycs_last_read; - - size = trk->nib_area[pos]; - dcycs_passed = dcycs - dcycs_last_read; - if(dcycs_passed < 0.0 || dcycs_passed > 64.0) { - halt_printf("skip, last_read:%f, dcycs:%f, dcyc_p:%f\n", - dcycs_last_read, dcycs, dcycs_passed); - } - - while(size == 0) { - pos += 2; - if(pos >= track_len) { - pos = 0; - } - size = trk->nib_area[pos]; - } - - cycs_this_nib = size * (2 * IWM_CYC_MULT); - cycs_passed = (int)dcycs_passed; - dcycs_this_nib = cycs_this_nib; - } - - if(cycs_passed < cycs_this_nib) { - /* partial */ -#if 0 - iwm_printf("Disk partial, %f < %f, size: %d\n", - dcycs_passed, dcycs_this_nib, size); -#endif - shift = (cycs_passed) >> (1 + IWM_DISK_525); - ret = trk->nib_area[pos+1] >> (size - shift); - if(ret & 0x80) { - halt_printf("Bad shift in partial read: %02x, but " - "c_pass:%f, this_nib:%f, shift: %d, size: %d\n", - ret, dcycs_passed, dcycs_this_nib, shift, size); - } - } else { - /* whole thing */ - ret = trk->nib_area[pos+1]; - pos += 2; - if(pos >= track_len) { - pos = 0; - } - if(!fast_disk_emul) { - dsk->dcycs_last_read = dcycs_last_read + dcycs_this_nib; - } - } - - dsk->nib_pos = pos; - if(pos < 0 || pos > track_len) { - halt_printf("I just set nib_pos: %d!\n", pos); - } - -#if 0 - iwm_printf("Disk read, returning: %02x\n", ret); -#endif - - return ret; -} - - -void -IWM_WRITE_ROUT (Disk *dsk, word32 val, int fast_disk_emul, double dcycs) -{ - double dcycs_last_read; - word32 bits_read; - word32 mask; - word32 prev_val; - double dcycs_this_nib; - double dcycs_passed; - double sdiff; - int prev_bits; - - if((!dsk->file) || dsk->trks == 0) { - halt_printf("Tried to write to type: %d, drive: %d!\n", - IWM_DISK_525, dsk->drive, dsk->trks); - return; - } - - dcycs_last_read = dsk->dcycs_last_read; - - dcycs_passed = dcycs - dcycs_last_read; - - prev_val = iwm.previous_write_val; - prev_bits = iwm.previous_write_bits; - mask = 0x100; - iwm_printf("Iwm write: prev: %x,%d, new:%02x\n", prev_val, prev_bits, - val); - - if(IWM_DISK_525) { - /* Activate slow write emulation mode */ - g_dcycs_end_emul_wr = dcycs + 64.0; - if(!g_slow_525_emul_wr) { - set_halt(HALT_EVENT); - g_slow_525_emul_wr = 1; - } - } else { - /* disable slow writes on 3.5" drives */ - if(g_slow_525_emul_wr) { - set_halt(HALT_EVENT); - printf("HACK3: g_slow_525_emul_wr set to 0\n"); - g_slow_525_emul_wr = 0; - } - } - - if(iwm.iwm_mode & 2) { - /* async mode = 3.5" default */ - bits_read = 8; - } else { - /* sync mode, 5.25" drives */ - bits_read = ((int)dcycs_passed) >> (1 + IWM_DISK_525); - if(bits_read < 8) { - bits_read = 8; - } - } - - if(fast_disk_emul) { - bits_read = 8; - } - - dcycs_this_nib = bits_read * (2 * IWM_CYC_MULT); - - if(fast_disk_emul) { - dcycs_passed = dcycs_this_nib; - } - - if(prev_bits > 0) { - while((prev_val & 0x80) == 0 && bits_read > 0) { - /* previous byte needs some bits */ - mask = mask >> 1; - prev_val = (prev_val << 1) + ((val & mask) !=0); - prev_bits++; - bits_read--; - } - } - - val = val & (mask - 1); - if(prev_bits) { - /* force out prev_val if it had many bits before */ - /* this prevents writes of 0 from messing us up */ - if(((prev_val & 0x80) == 0) && (prev_bits < 10)) { - /* special case: we still don't have enough to go */ - iwm_printf("iwm_write: zip2: %02x, %d, left:%02x,%d\n", - prev_val, prev_bits, val,bits_read); - val = prev_val; - bits_read = prev_bits; - } else { - iwm_printf("iwm_write: prev: %02x, %d, left:%02x, %d\n", - prev_val, prev_bits, val, bits_read); - disk_nib_out(dsk, prev_val, prev_bits); - } - } else if(val & 0x80) { - iwm_printf("iwm_write: new: %02x, %d\n", val,bits_read); - disk_nib_out(dsk, val, bits_read); - bits_read = 0; - } else { - iwm_printf("iwm_write: zip: %02x, %d, left:%02x,%d\n", - prev_val, prev_bits, val,bits_read); - } - - iwm.previous_write_val = val; - iwm.previous_write_bits = bits_read; - if(bits_read < 0) { - halt_printf("iwm, bits_rd:%d, val:%08x, prev:%02x, prevb:%d\n", - bits_read, val, prev_val, prev_bits); - } - - sdiff = dcycs - dcycs_last_read; - if(sdiff < (dcycs_this_nib) || (sdiff > (2*dcycs_this_nib)) ) { - dsk->dcycs_last_read = dcycs; - } else { - dsk->dcycs_last_read = dcycs_last_read + dcycs_this_nib; - } -} diff --git a/.svn/pristine/a4/a46f79a63007fb2ae505073d3466e09db61f8769.svn-base b/.svn/pristine/a4/a46f79a63007fb2ae505073d3466e09db61f8769.svn-base deleted file mode 100644 index fab8662bde64abb1eced21a2fa5cc270a47da759..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507918 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

d5tgWp5tZ%e_)q1~m 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 diff --git a/.svn/pristine/a5/a5a1325b497331edafb880aebe4af262187b7b06.svn-base b/.svn/pristine/a5/a5a1325b497331edafb880aebe4af262187b7b06.svn-base deleted file mode 100644 index de07f87..0000000 --- a/.svn/pristine/a5/a5a1325b497331edafb880aebe4af262187b7b06.svn-base +++ /dev/null @@ -1,1626 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifdef ASM - -# ifdef ACC8 - .export defs_instr_start_8,data -defs_instr_start_8 .word 0 -# else - .export defs_instr_start_16,data -defs_instr_start_16 .word 0 -# endif /* ACC8*/ -#endif /* ASM */ - - -#undef GET_DLOC_X_IND_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_DLOC_X_IND_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_X_IND_WR() ! \ - bl get_mem_long_8,link ! \ - nop -# else -# define GET_DLOC_X_IND_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_X_IND_WR() ! \ - bl get_mem_long_16,link ! \ - nop -# endif /* ACC8 */ -#else /* C*/ -# ifdef ACC8 -# define GET_DLOC_X_IND_RD() \ - GET_1BYTE_ARG; \ - GET_DLOC_X_IND_WR(); \ - GET_MEMORY8(arg, arg); -# else -# define GET_DLOC_X_IND_RD() \ - GET_1BYTE_ARG; \ - GET_DLOC_X_IND_WR(); \ - GET_MEMORY16(arg, arg, 0); -# endif -#endif - -#undef GET_DISP8_S_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_DISP8_S_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DISP8_S_WR() ! \ - bl get_mem_b0_8,link ! \ - nop -# else -# define GET_DISP8_S_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DISP8_S_WR() ! \ - bl get_mem_b0_16,link ! \ - nop -# endif -#else /* C */ -# ifdef ACC8 -# define GET_DISP8_S_RD() \ - GET_1BYTE_ARG; \ - GET_DISP8_S_WR(); \ - GET_MEMORY8(arg, arg); -# else -# define GET_DISP8_S_RD() \ - GET_1BYTE_ARG; \ - GET_DISP8_S_WR(); \ - GET_MEMORY16(arg, arg, 0); -# endif -#endif - - -#ifdef ASM -# define MUST_FIX \ - break -#endif - -#undef GET_DLOC_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_DLOC_RD() \ - ldb 1(scratch1),arg0 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - INC_KPC_2 ! \ - add direct,arg0,addr_latch ! \ - extru addr_latch,23,16,arg3 ! \ - CYCLES_PLUS_1 ! \ - ldwx,s arg3(page_info_ptr),scratch2 ! \ - extru addr_latch,31,8,scratch4 ! \ - extru addr_latch,31,16,addr_latch ! \ - ldbx scratch4(scratch2),ret0 ! \ - extru,= scratch2,BANK_IO_BIT,1,0 ! \ - bl get_memory_iocheck_stub_asm,link ! \ - copy addr_latch,arg0 -# else -# define GET_DLOC_RD() \ - ldb 1(scratch1),arg0 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - INC_KPC_2 ! \ - add direct,arg0,arg0 ! \ - bl get_mem_b0_16,link ! \ - extru arg0,31,16,arg0 -# endif -#else /* C */ -# ifdef ACC8 -# define GET_DLOC_RD() \ - GET_1BYTE_ARG; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - INC_KPC_2; \ - GET_MEMORY8((direct + arg) & 0xffff, arg); -# else -# define GET_DLOC_RD() \ - GET_1BYTE_ARG; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - INC_KPC_2; \ - GET_MEMORY16((direct + arg) & 0xffff, arg, 1); -# endif -#endif - - -#undef GET_DLOC_L_IND_RD -#ifdef ASM -# ifdef ACC8 -# define GET_DLOC_L_IND_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_L_IND_WR() ! \ - bl get_mem_long_8,link ! \ - nop -# else -# define GET_DLOC_L_IND_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_L_IND_WR() ! \ - bl get_mem_long_16,link ! \ - nop -# endif -#else /* C */ -# ifdef ACC8 -# define GET_DLOC_L_IND_RD() \ - GET_1BYTE_ARG; \ - GET_DLOC_L_IND_WR(); \ - GET_MEMORY8(arg, arg); -# else -# define GET_DLOC_L_IND_RD() \ - GET_1BYTE_ARG; \ - GET_DLOC_L_IND_WR(); \ - GET_MEMORY16(arg, arg, 0); -# endif -#endif - - -#undef GET_IMM_MEM - -#ifdef ASM -# ifdef ACC8 -# define GET_IMM_MEM() \ - ldb 1(scratch1),ret0 ! \ - INC_KPC_2 -# else -# define GET_IMM_MEM() \ - ldb 2(scratch1),scratch2 ! \ - INC_KPC_3 ! \ - ldb 1(scratch1),ret0 ! \ - CYCLES_PLUS_1 ! \ - dep scratch2,23,8,ret0 -# endif -#else -# ifdef ACC8 -# define GET_IMM_MEM() \ - GET_1BYTE_ARG; \ - INC_KPC_2; -# else -# define GET_IMM_MEM() \ - GET_2BYTE_ARG; \ - CYCLES_PLUS_1; \ - INC_KPC_3; -# endif -#endif - - -#undef GET_ABS_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_ABS_RD() \ - ldb 2(scratch1),arg3 ! \ - INC_KPC_3 ! \ - ldb 1(scratch1),addr_latch ! \ - CYCLES_PLUS_2 ! \ - dep dbank,23,24,arg3 ! \ - ldwx,s arg3(page_info_ptr),scratch2 ! \ - copy addr_latch,scratch4 ! \ - dep arg3,23,24,addr_latch ! \ - ldbx scratch4(scratch2),ret0 ! \ - extru,= scratch2,BANK_IO_BIT,1,0 ! \ - bl get_memory_iocheck_stub_asm,link ! \ - copy addr_latch,arg0 -# else -# define GET_ABS_RD() \ - ldb 1(scratch1),arg0 ! \ - CYCLES_PLUS_1 ! \ - ldb 2(scratch1),scratch2 ! \ - INC_KPC_3 ! \ - dep dbank,15,16,arg0 ! \ - bl get_mem_long_16,link ! \ - dep scratch2,23,8,arg0 -# endif -#else -# ifdef ACC8 -# define GET_ABS_RD() \ - GET_2BYTE_ARG; \ - CYCLES_PLUS_1; \ - GET_MEMORY8((dbank << 16) + arg, arg); \ - INC_KPC_3; -# else -# define GET_ABS_RD() \ - GET_2BYTE_ARG; \ - CYCLES_PLUS_1; \ - GET_MEMORY16((dbank << 16) + arg, arg, 0); \ - INC_KPC_3; -# endif -#endif - - -#undef GET_LONG_RD - - -#ifdef ASM -# ifdef ACC8 -# define GET_LONG_RD() \ - ldb 1(scratch1),arg0 ! \ - INC_KPC_4 ! \ - ldb 2(scratch1),scratch2 ! \ - CYCLES_PLUS_2 ! \ - ldb 3(scratch1),scratch1 ! \ - dep scratch2,23,8,arg0 ! \ - bl get_mem_long_8,link ! \ - dep scratch1,15,8,arg0 -# else -# define GET_LONG_RD() \ - ldb 1(scratch1),arg0 ! \ - INC_KPC_4 ! \ - ldb 2(scratch1),scratch2 ! \ - CYCLES_PLUS_2 ! \ - ldb 3(scratch1),scratch1 ! \ - dep scratch2,23,8,arg0 ! \ - bl get_mem_long_16,link ! \ - dep scratch1,15,8,arg0 -# endif -#else /* C */ -# ifdef ACC8 -# define GET_LONG_RD() \ - GET_3BYTE_ARG; \ - CYCLES_PLUS_2; \ - GET_MEMORY8(arg, arg); \ - INC_KPC_4; -# else -# define GET_LONG_RD() \ - GET_3BYTE_ARG; \ - CYCLES_PLUS_2; \ - GET_MEMORY16(arg, arg, 0); \ - INC_KPC_4; -# endif -#endif - - - -#undef GET_DLOC_IND_Y_RD - -#undef GET_DLOC_IND_Y_WR_SPECIAL2 - -#define GET_DLOC_IND_Y_WR_SPECIAL2() \ - add direct,arg0,arg0 ! \ - bl get_mem_b0_direct_page_16,link ! \ - extru arg0,31,16,arg0 ! \ - dep dbank,15,8,ret0 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - add yreg,ret0,arg0 /* don't change this instr */ - /* or add any after */ - /* to preserve ret0 & arg0 */ - - -#ifdef ASM -# ifdef ACC8 -# define GET_DLOC_IND_Y_RD() \ - ldb 1(scratch1),arg0 ! \ - INC_KPC_2 ! \ - GET_DLOC_IND_Y_WR_SPECIAL2() ! \ - xor arg0,ret0,scratch1 ! \ - extru,= psr,27,1,0 ! \ - extru,= scratch1,23,8,0 ! \ - CYCLES_PLUS_1 ! \ - bl get_mem_long_8,link ! \ - nop -# else -# define GET_DLOC_IND_Y_RD() \ - ldb 1(scratch1),arg0 ! \ - INC_KPC_2 ! \ - GET_DLOC_IND_Y_WR_SPECIAL2() ! \ - xor arg0,ret0,scratch1 ! \ - extru,= psr,27,1,0 ! \ - extru,= scratch1,23,8,0 ! \ - CYCLES_PLUS_1 ! \ - bl get_mem_long_16,link ! \ - nop -# endif -#else /* C */ -# ifdef ACC8 -# define GET_DLOC_IND_Y_RD() \ - GET_1BYTE_ARG; \ - GET_MEMORY_DIRECT_PAGE16((direct + arg) & 0xffff, tmp1); \ - tmp1 += (dbank << 16); \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - tmp2 = tmp1 + yreg; \ - if(((psr & 0x10) == 0) || ((tmp1 ^ tmp2) & 0xff00)) { \ - CYCLES_PLUS_1; \ - } \ - INC_KPC_2; \ - GET_MEMORY8(tmp2, arg); -# else -# define GET_DLOC_IND_Y_RD() \ - GET_1BYTE_ARG; \ - GET_MEMORY_DIRECT_PAGE16((direct + arg) & 0xffff, tmp1); \ - tmp1 += (dbank << 16); \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - tmp2 = tmp1 + yreg; \ - if(((psr & 0x10) == 0) || ((tmp1 ^ tmp2) & 0xff00)) { \ - CYCLES_PLUS_1; \ - } \ - INC_KPC_2; \ - GET_MEMORY16(tmp2, arg, 0); -# endif -#endif - - -#undef GET_DLOC_IND_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_DLOC_IND_RD() \ - ldb 1(scratch1),arg0 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - INC_KPC_2 ! \ - add direct,arg0,arg0 ! \ - bl get_mem_b0_direct_page_16,link ! \ - extru arg0,31,16,arg0 ! \ - copy ret0,arg0 ! \ - bl get_mem_long_8,link ! \ - dep dbank,15,16,arg0 -# else -# define GET_DLOC_IND_RD() \ - ldb 1(scratch1),arg0 ! \ - extru,= direct,31,8,0 ! \ - CYCLES_PLUS_1 ! \ - INC_KPC_2 ! \ - add direct,arg0,arg0 ! \ - bl get_mem_b0_direct_page_16,link ! \ - extru arg0,31,16,arg0 ! \ - copy ret0,arg0 ! \ - bl get_mem_long_16,link ! \ - dep dbank,15,16,arg0 -# endif -#else -# ifdef ACC8 -# define GET_DLOC_IND_RD() \ - GET_1BYTE_ARG; \ - INC_KPC_2; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - GET_MEMORY_DIRECT_PAGE16((direct + arg) & 0xffff, arg); \ - GET_MEMORY8((dbank << 16) + arg, arg); -# else -# define GET_DLOC_IND_RD() \ - GET_1BYTE_ARG; \ - INC_KPC_2; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - GET_MEMORY_DIRECT_PAGE16((direct + arg) & 0xffff, arg); \ - GET_MEMORY16((dbank << 16) + arg, arg, 0); -# endif -#endif - - -#undef GET_DLOC_X_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_DLOC_X_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_INDEX_WR_A(xreg) ! \ - bl get_mem_b0_8,link ! \ - GET_DLOC_INDEX_WR_B(xreg) -# else -# define GET_DLOC_X_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_INDEX_WR_A(xreg) ! \ - bl get_mem_b0_16,link ! \ - GET_DLOC_INDEX_WR_B(xreg) -# endif -#else -# ifdef ACC8 -# define GET_DLOC_X_RD() \ - GET_1BYTE_ARG; \ - CYCLES_PLUS_1; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - INC_KPC_2; \ - arg = (arg + xreg + direct) & 0xffff; \ - if(psr & 0x100) { \ - if((direct & 0xff) == 0) { \ - arg = (direct & 0xff00) | (arg & 0xff); \ - } \ - } \ - GET_MEMORY8(arg & 0xffff, arg); -# else -# define GET_DLOC_X_RD() \ - GET_1BYTE_ARG; \ - CYCLES_PLUS_1; \ - if(direct & 0xff) { \ - CYCLES_PLUS_1; \ - } \ - INC_KPC_2; \ - arg = (arg + xreg + direct) & 0xffff; \ - if(psr & 0x100) { \ - if((direct & 0xff) == 0) { \ - arg = (direct & 0xff00) | (arg & 0xff); \ - } \ - } \ - GET_MEMORY16(arg, arg, 1); -# endif -#endif - - -#undef GET_DISP8_S_IND_Y_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_DISP8_S_IND_Y_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DISP8_S_IND_Y_WR() ! \ - bl get_mem_long_8,link ! \ - nop -# else -# define GET_DISP8_S_IND_Y_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DISP8_S_IND_Y_WR() ! \ - bl get_mem_long_16,link ! \ - nop -# endif -#else -# ifdef ACC8 -# define GET_DISP8_S_IND_Y_RD() \ - GET_1BYTE_ARG; \ - GET_DISP8_S_IND_Y_WR(); \ - GET_MEMORY8(arg, arg); -# else -# define GET_DISP8_S_IND_Y_RD() \ - GET_1BYTE_ARG; \ - GET_DISP8_S_IND_Y_WR(); \ - GET_MEMORY16(arg, arg, 0); -# endif -#endif - - -#undef GET_DLOC_L_IND_Y_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_DLOC_L_IND_Y_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_L_IND_Y_WR() ! \ - bl get_mem_long_8,link ! \ - nop -# else -# define GET_DLOC_L_IND_Y_RD() \ - ldb 1(scratch1),arg0 ! \ - GET_DLOC_L_IND_Y_WR() ! \ - bl get_mem_long_16,link ! \ - nop -# endif -#else /* C */ -# ifdef ACC8 -# define GET_DLOC_L_IND_Y_RD() \ - GET_1BYTE_ARG; \ - GET_DLOC_L_IND_Y_WR(); \ - GET_MEMORY8(arg, arg); -# else -# define GET_DLOC_L_IND_Y_RD() \ - GET_1BYTE_ARG; \ - GET_DLOC_L_IND_Y_WR(); \ - GET_MEMORY16(arg, arg, 0); -# endif -#endif - - -#undef GET_ABS_INDEX_ADDR_FOR_RD - -#ifdef ASM -/* to get cycle right: add 1 cycle */ -/* if (x is 16bit) || (carry into high byte), add another cycle */ -/* So, if x==16bit, add 1. If x==8bit then add 1 if carry */ -# define GET_ABS_INDEX_ADDR_FOR_RD(index_reg) \ - ldb 1(scratch1),ret0 ! \ - CYCLES_PLUS_1 ! \ - ldb 2(scratch1),scratch1 ! \ - dep dbank,15,16,ret0 ! \ - INC_KPC_3 ! \ - dep scratch1,23,8,ret0 ! \ - add ret0,index_reg,arg0 ! \ - xor arg0,ret0,scratch1 ! \ - extru,= psr,27,1,0 ! \ - extru,= scratch1,23,8,0 ! \ - CYCLES_PLUS_1 -#else /* C */ -# define GET_ABS_INDEX_ADDR_FOR_RD(index_reg) \ - GET_2BYTE_ARG; \ - CYCLES_PLUS_1; \ - INC_KPC_3; \ - tmp1 = (dbank << 16) + arg; \ - arg = tmp1 + index_reg; \ - if(((psr & 0x10) == 0) || ((tmp1 ^ arg) & 0xff00)) { \ - CYCLES_PLUS_1; \ - } -#endif - -#undef GET_ABS_Y_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_ABS_Y_RD() \ - GET_ABS_INDEX_ADDR_FOR_RD(yreg) ! \ - bl get_mem_long_8,link ! \ - extru arg0,31,24,arg0 -# else -# define GET_ABS_Y_RD() \ - GET_ABS_INDEX_ADDR_FOR_RD(yreg) ! \ - bl get_mem_long_16,link ! \ - extru arg0,31,24,arg0 -# endif -#else /* C */ -# ifdef ACC8 -# define GET_ABS_Y_RD() \ - GET_ABS_INDEX_ADDR_FOR_RD(yreg); \ - GET_MEMORY8(arg, arg); -# else -# define GET_ABS_Y_RD() \ - GET_ABS_INDEX_ADDR_FOR_RD(yreg); \ - GET_MEMORY16(arg, arg, 0); -# endif -#endif - - - - -#undef GET_ABS_X_RD -#undef GET_ABS_X_RD_WR - -#ifdef ASM -# ifdef ACC8 -# define GET_ABS_X_RD() \ - GET_ABS_INDEX_ADDR_FOR_RD(xreg) ! \ - bl get_mem_long_8,link ! \ - extru arg0,31,24,arg0 - -# define GET_ABS_X_RD_WR() \ - ldb 1(scratch1),ret0 ! \ - INC_KPC_3 ! \ - ldb 2(scratch1),scratch1 ! \ - dep dbank,15,16,ret0 ! \ - CYCLES_PLUS_2 ! \ - dep scratch1,23,8,ret0 ! \ - add ret0,xreg,arg0 ! \ - bl get_mem_long_8,link ! \ - extru arg0,31,24,arg0 -# else -# define GET_ABS_X_RD() \ - GET_ABS_INDEX_ADDR_FOR_RD(xreg) ! \ - bl get_mem_long_16,link ! \ - extru arg0,31,24,arg0 - -# define GET_ABS_X_RD_WR() \ - ldb 1(scratch1),ret0 ! \ - INC_KPC_3 ! \ - ldb 2(scratch1),scratch1 ! \ - dep dbank,15,16,ret0 ! \ - CYCLES_PLUS_2 ! \ - dep scratch1,23,8,ret0 ! \ - add ret0,xreg,arg0 ! \ - bl get_mem_long_16,link ! \ - extru arg0,31,24,arg0 -# endif -#else /* C */ -# ifdef ACC8 -# define GET_ABS_X_RD() \ - GET_ABS_INDEX_ADDR_FOR_RD(xreg); \ - GET_MEMORY8(arg, arg); - -# define GET_ABS_X_RD_WR() \ - GET_2BYTE_ARG; \ - INC_KPC_3; \ - CYCLES_PLUS_2; \ - arg = (dbank << 16) + ((arg + xreg) & 0xffff); \ - GET_MEMORY8(arg, arg); -# else -# define GET_ABS_X_RD() \ - GET_ABS_INDEX_ADDR_FOR_RD(xreg); \ - GET_MEMORY16(arg, arg, 0); - -# define GET_ABS_X_RD_WR() \ - GET_2BYTE_ARG; \ - INC_KPC_3; \ - CYCLES_PLUS_2; \ - arg = (dbank << 16) + ((arg + xreg) & 0xffff); \ - GET_MEMORY16(arg, arg, 0); -# endif -#endif - - -#undef GET_LONG_X_RD - -#ifdef ASM -# ifdef ACC8 -# define GET_LONG_X_RD() \ - ldb 1(scratch1),ret0 ! \ - ldb 2(scratch1),scratch2 ! \ - CYCLES_PLUS_2 ! \ - ldb 3(scratch1),scratch1 ! \ - INC_KPC_4 ! \ - dep scratch2,23,8,ret0 ! \ - dep scratch1,15,8,ret0 ! \ - add ret0,xreg,arg0 ! \ - bl get_mem_long_8,link ! \ - extru arg0,31,24,arg0 -# else -# define GET_LONG_X_RD() \ - ldb 1(scratch1),ret0 ! \ - ldb 2(scratch1),scratch2 ! \ - CYCLES_PLUS_2 ! \ - ldb 3(scratch1),scratch1 ! \ - INC_KPC_4 ! \ - dep scratch2,23,8,ret0 ! \ - dep scratch1,15,8,ret0 ! \ - add ret0,xreg,arg0 ! \ - bl get_mem_long_16,link ! \ - extru arg0,31,24,arg0 -# endif -#else /* C */ -# ifdef ACC8 -# define GET_LONG_X_RD() \ - GET_3BYTE_ARG; \ - arg = (arg + xreg) & 0xffffff; \ - INC_KPC_4; \ - CYCLES_PLUS_2; \ - GET_MEMORY8(arg, arg); -# else -# define GET_LONG_X_RD() \ - GET_3BYTE_ARG; \ - arg = (arg + xreg) & 0xffffff; \ - INC_KPC_4; \ - CYCLES_PLUS_2; \ - GET_MEMORY16(arg, arg, 0); -# endif -#endif - - -#define SET_NEG_ZERO16(val) \ - zero = val; \ - neg = (val) >> 15; - -# define SET_NEG_ZERO8(val) \ - zero = val; \ - neg = (val) >> 7; - -#define SET_CARRY8(val) \ - psr = (psr & ~1) + (((val) >> 8) & 1); - -#define SET_CARRY16(val) \ - psr = (psr & ~1) + (((val) >> 16) & 1); - -#if 0 -# define NEGZERO8(val) SET_NEG_ZERO8(val) -#else -# define NEGZERO16(val) SET_NEG_ZERO16(val) -#endif - -#define SET_INDEX_REG(src, dest) \ - if(psr & 0x10) { \ - dest = (src) & 0xff; \ - SET_NEG_ZERO8(dest); \ - } else { \ - dest = (src) & 0xffff; \ - SET_NEG_ZERO16(dest); \ - } - -#define LD_INDEX_INST(index_reg, in_bank) \ - if(psr & 0x10) { \ - GET_MEMORY8(arg, arg); \ - } else { \ - GET_MEMORY16(arg, arg, in_bank);\ - } \ - SET_INDEX_REG(arg, index_reg); - -#define LDX_INST(in_bank) LD_INDEX_INST(xreg, in_bank) -#define LDY_INST(in_bank) LD_INDEX_INST(yreg, in_bank) - -#undef ORA_INST - -#ifdef ASM -# ifdef ACC8 -# define ORA_INST() \ - ldi 0xff,scratch1 ! \ - or acc,ret0,arg0 ! \ - and arg0,scratch1,zero ! \ - extru arg0,24,1,neg ! \ - b dispatch ! \ - dep arg0,31,8,acc -# else -# define ORA_INST() \ - zdepi -1,31,16,scratch1 ! \ - or acc,ret0,arg0 ! \ - and arg0,scratch1,zero ! \ - extru arg0,16,1,neg ! \ - b dispatch ! \ - dep arg0,31,16,acc -# endif -#else /* C */ -# ifdef ACC8 -# define ORA_INST() \ - tmp1 = (acc | arg) & 0xff; \ - acc = (acc & 0xff00) + tmp1; \ - SET_NEG_ZERO8(tmp1); -# else -# define ORA_INST() \ - acc = (acc | arg); \ - SET_NEG_ZERO16(acc); -# endif -#endif - -#undef AND_INST - -#ifdef ASM -# ifdef ACC8 -# define AND_INST() \ - ldi 0xff,scratch1 ! \ - and acc,ret0,arg0 ! \ - and arg0,scratch1,zero ! \ - extru arg0,24,1,neg ! \ - b dispatch ! \ - dep arg0,31,8,acc -# else -# define AND_INST() \ - zdepi -1,31,16,scratch1 ! \ - and acc,ret0,arg0 ! \ - and arg0,scratch1,zero ! \ - extru arg0,16,1,neg ! \ - b dispatch ! \ - dep arg0,31,16,acc -# endif -#else /* C */ -# ifdef ACC8 -# define AND_INST() \ - tmp1 = (acc & arg) & 0xff; \ - acc = (acc & 0xff00) + tmp1; \ - SET_NEG_ZERO8(tmp1); -# else -# define AND_INST() \ - acc = (acc & arg); \ - SET_NEG_ZERO16(acc); -# endif -#endif - -#undef EOR_INST - -#ifdef ASM -# ifdef ACC8 -# define EOR_INST() \ - ldi 0xff,scratch1 ! \ - xor acc,ret0,arg0 ! \ - and arg0,scratch1,zero ! \ - extru arg0,24,1,neg ! \ - b dispatch ! \ - dep arg0,31,8,acc -# else -# define EOR_INST() \ - zdepi -1,31,16,scratch1 ! \ - xor acc,ret0,arg0 ! \ - and arg0,scratch1,zero ! \ - extru arg0,16,1,neg ! \ - b dispatch ! \ - dep arg0,31,16,acc -# endif -#else /* C */ -# ifdef ACC8 -# define EOR_INST() \ - tmp1 = (acc ^ arg) & 0xff; \ - acc = (acc & 0xff00) + tmp1; \ - SET_NEG_ZERO8(tmp1); -# else -# define EOR_INST() \ - acc = (acc ^ arg); \ - SET_NEG_ZERO16(acc); -# endif -#endif - -# undef LDA_INST - -#ifdef ASM -# ifdef ACC8 -# define LDA_INST() \ - extru ret0,31,8,zero ! \ - extru ret0,24,1,neg ! \ - b dispatch ! \ - dep zero,31,8,acc -# else -# define LDA_INST() \ - extru ret0,31,16,zero ! \ - extru ret0,16,1,neg ! \ - b dispatch ! \ - dep zero,31,16,acc -# endif -#else /* C*/ -# ifdef ACC8 -# define LDA_INST() \ - acc = (acc & 0xff00) + (arg & 0xff); \ - SET_NEG_ZERO8(arg & 0xff); -# else -# define LDA_INST() \ - acc = (arg & 0xffff); \ - SET_NEG_ZERO16(acc); -# endif -#endif - -# undef ADC_INST - -#ifdef ASM -# ifdef ACC8 -# define ADC_INST() \ - b adc_binary_8 ! \ - extru acc,31,8,arg0 -# else -# define ADC_INST() \ - b adc_binary_16 ! \ - extru acc,31,16,arg0 -# endif -#else /* C */ -# ifdef ACC8 -# define ADC_INST() \ - tmp1 = do_adc_sbc8(acc & 0xff, arg & 0xff, psr, 0); \ - acc = (acc & 0xff00) + (tmp1 & 0xff); \ - psr = (tmp1 >> 16); \ - zero = !(psr & 0x2); \ - neg = (psr >> 7) & 1; -# else -# define ADC_INST() \ - tmp1 = do_adc_sbc16(acc, arg & 0xffff, psr, 0); \ - acc = (tmp1 & 0xffff); \ - psr = (tmp1 >> 16); \ - zero = !(psr & 0x2); \ - neg = (psr >> 7) & 1; -# endif -#endif - - -# undef SBC_INST - -#ifdef ASM -# ifdef ACC8 -# define SBC_INST() \ - uaddcm 0,ret0,ret0 ! \ - b sbc_binary_8 ! \ - extru acc,31,8,arg0 -# else -# define SBC_INST() \ - uaddcm 0,ret0,ret0 ! \ - b sbc_binary_16 ! \ - extru acc,31,16,arg0 -# endif -#else /* C */ -# ifdef ACC8 -# define SBC_INST() \ - tmp1 = do_adc_sbc8(acc & 0xff, arg & 0xff, psr, 1); \ - acc = (acc & 0xff00) + (tmp1 & 0xff); \ - psr = (tmp1 >> 16); \ - zero = !(psr & 0x2); \ - neg = (psr >> 7) & 1; -# else -# define SBC_INST() \ - tmp1 = do_adc_sbc16(acc, arg & 0xffff, psr, 1); \ - acc = (tmp1 & 0xffff); \ - psr = (tmp1 >> 16); \ - zero = !(psr & 0x2); \ - neg = (psr >> 7) & 1; -# endif -#endif - - -# undef CMP_INST - -#ifdef ASM -# ifdef ACC8 -# define CMP_INST() ! \ - extru acc,31,8,scratch1 ! \ - subi 0x100,ret0,ret0 ! \ - ldi 0xff,scratch2 ! \ - add ret0,scratch1,ret0 ! \ - extru ret0,23,1,scratch1 ! \ - and ret0,scratch2,zero ! \ - extru ret0,24,1,neg ! \ - b dispatch ! \ - dep scratch1,31,1,psr -# else -# define CMP_INST() ! \ - ldil l%0x10000,scratch3 ! \ - zdepi -1,31,16,scratch2 ! \ - sub scratch3,ret0,ret0 ! \ - add ret0,acc,ret0 ! \ - extru ret0,15,1,scratch1 ! \ - and ret0,scratch2,zero ! \ - extru ret0,16,1,neg ! \ - b dispatch ! \ - dep scratch1,31,1,psr -# endif -#else /* C */ -# ifdef ACC8 -# define CMP_INST() \ - arg = (acc & 0xff) + (0x100 - arg); \ - SET_CARRY8(arg); \ - arg = arg & 0xff; \ - SET_NEG_ZERO8(arg & 0xff); -# else -# define CMP_INST() \ - arg = (acc & 0xffff) + (0x10000 - arg); \ - SET_CARRY16(arg); \ - arg = arg & 0xffff; \ - SET_NEG_ZERO16(arg & 0xffff); -# endif -#endif - -# undef BIT_INST - -#ifdef ASM -# ifdef ACC8 -# define BIT_INST() \ - ldi 0xff,scratch1 ! \ - and acc,ret0,arg0 ! \ - extru ret0,24,1,neg ! \ - and arg0,scratch1,zero ! \ - extru ret0,25,1,scratch2 ! \ - b dispatch ! \ - dep scratch2,25,1,psr -# else -# define BIT_INST() \ - zdepi -1,31,16,scratch1 ! \ - and acc,ret0,arg0 ! \ - extru ret0,16,1,neg ! \ - and arg0,scratch1,zero ! \ - extru ret0,17,1,scratch2 ! \ - b dispatch ! \ - dep scratch2,25,1,psr -# endif -#else /* C */ -# ifdef ACC8 -# define BIT_INST() \ - neg = arg >> 7; \ - zero = (acc & arg & 0xff); \ - psr = (psr & (~0x40)) | (arg & 0x40); -# else -# define BIT_INST() \ - neg = arg >> 15; \ - zero = (acc & arg & 0xffff); \ - psr = (psr & (~0x40)) | ((arg >> 8) & 0x40); -# endif -#endif - -# undef STA_INST - -#ifdef ASM -# ifdef ACC8 -# define STA_INST() \ - extru acc,31,8,arg1 ! \ - ldil l%dispatch,link ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -# define STA_INST() \ - extru acc,31,16,arg1 ! \ - ldil l%dispatch,link ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C*/ -# ifdef ACC8 -# define STA_INST(in_bank) \ - SET_MEMORY8(arg, acc); -# else -# define STA_INST(in_bank) \ - SET_MEMORY16(arg, acc, in_bank); -# endif -#endif - - -#undef TSB_INST - -#ifdef ASM -# ifdef ACC8 -/* Uses addr_latch as full apple addr to write data to */ -# define TSB_INST() \ - or acc,ret0,arg1 ! \ - CYCLES_PLUS_1 ! \ - extru arg1,31,8,arg1 ! \ - and ret0,acc,zero ! \ - copy addr_latch,arg0 ! \ - extru zero,31,8,zero ! \ - ldil l%dispatch,link ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -/* Uses addr_latch as full apple addr to write data to */ -# define TSB_INST() \ - or acc,ret0,arg1 ! \ - CYCLES_PLUS_1 ! \ - extru arg1,31,16,arg1 ! \ - and ret0,acc,zero ! \ - copy addr_latch,arg0 ! \ - extru zero,31,16,zero ! \ - ldil l%dispatch,link ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C*/ -# ifdef ACC8 -# define TSB_INST(in_bank) \ - tmp1 = arg | acc; \ - CYCLES_PLUS_1; \ - zero = arg & acc; \ - SET_MEMORY8(addr_latch, tmp1); -# else -# define TSB_INST(in_bank) \ - tmp1 = arg | acc; \ - CYCLES_PLUS_1; \ - zero = arg & acc; \ - SET_MEMORY16(addr_latch, tmp1, in_bank); -# endif -#endif - - -#undef ASL_INST - -#ifdef ASM -# ifdef ACC8 -/* Uses addr_latch as full apple addr to write data to */ -# define ASL_INST() \ - ldi 0xff,scratch1 ! \ - copy addr_latch,arg0 ! \ - sh1add ret0,0,scratch3 ! \ - CYCLES_PLUS_1 ! \ - extru scratch3,24,1,neg ! \ - and scratch3,scratch1,zero ! \ - extru scratch3,23,1,scratch2 ! \ - copy zero,arg1 ! \ - dep scratch2,31,1,psr /* set carry */ ! \ - ldil l%dispatch,link ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -/* Uses addr_latch as full apple addr to write data to */ -# define ASL_INST() \ - zdepi -1,31,16,scratch1 ! \ - copy addr_latch,arg0 ! \ - sh1add ret0,0,scratch3 ! \ - CYCLES_PLUS_1 ! \ - extru scratch3,16,1,neg ! \ - and scratch3,scratch1,zero ! \ - extru scratch3,15,1,scratch2 ! \ - copy zero,arg1 ! \ - dep scratch2,31,1,psr /* set carry */ ! \ - ldil l%dispatch,link ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C */ -# ifdef ACC8 -# define ASL_INST(in_bank) \ - psr = (psr & 0x1fe) + ((arg >> 7) & 1); \ - tmp1 = (arg << 1) & 0xff; \ - CYCLES_PLUS_1; \ - SET_NEG_ZERO8(tmp1); \ - SET_MEMORY8(addr_latch, tmp1); -# else -# define ASL_INST(in_bank) \ - psr = (psr & 0x1fe) + ((arg >> 15) & 1);\ - tmp1 = (arg << 1) & 0xffff; \ - CYCLES_PLUS_1; \ - SET_NEG_ZERO16(tmp1); \ - SET_MEMORY16(addr_latch, tmp1, in_bank); -# endif -#endif - -# undef ROL_INST - -#ifdef ASM -# ifdef ACC8 -/* Uses addr_latch as full apple addr to write data to */ -# define ROL_INST() \ - extru psr,31,1,scratch2 ! \ - ldi 0xff,scratch1 ! \ - copy addr_latch,arg0 ! \ - sh1add ret0,scratch2,scratch3 ! \ - CYCLES_PLUS_1 ! \ - extru scratch3,24,1,neg ! \ - and scratch3,scratch1,zero ! \ - extru scratch3,23,1,scratch2 ! \ - copy zero,arg1 ! \ - dep scratch2,31,1,psr /* set carry */ ! \ - ldil l%dispatch,link ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -/* Uses addr_latch as full apple addr to write data to */ -# define ROL_INST() \ - extru psr,31,1,scratch2 ! \ - copy addr_latch,arg0 ! \ - zdepi -1,31,16,scratch1 ! \ - sh1add ret0,scratch2,scratch3 ! \ - CYCLES_PLUS_1 ! \ - extru scratch3,16,1,neg ! \ - and scratch3,scratch1,zero ! \ - extru scratch3,15,1,scratch2 ! \ - copy zero,arg1 ! \ - dep scratch2,31,1,psr /* set carry */ ! \ - ldil l%dispatch,link ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C */ -# ifdef ACC8 -# define ROL_INST(in_bank) \ - arg = (arg << 1) | (psr & 1); \ - SET_MEMORY8(addr_latch, arg); \ - CYCLES_PLUS_1; \ - SET_NEG_ZERO8(arg & 0xff); \ - SET_CARRY8(arg); -# else -# define ROL_INST(in_bank) \ - arg = (arg << 1) | (psr & 1); \ - SET_MEMORY16(addr_latch, arg, in_bank); \ - CYCLES_PLUS_1; \ - SET_NEG_ZERO16(arg & 0xffff); \ - SET_CARRY16(arg); -# endif -#endif - -# undef LSR_INST - -#ifdef ASM -# ifdef ACC8 -/* Uses addr_latch as full apple addr to write data to */ -# define LSR_INST() \ - copy addr_latch,arg0 ! \ - extru ret0,30,7,zero ! \ - CYCLES_PLUS_1 ! \ - ldi 0,neg ! \ - dep ret0,31,1,psr /* set carry */ ! \ - copy zero,arg1 ! \ - ldil l%dispatch,link ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -/* Uses addr_latch as full apple addr to write data to */ -# define LSR_INST() \ - copy addr_latch,arg0 ! \ - extru ret0,30,15,zero ! \ - CYCLES_PLUS_1 ! \ - ldi 0,neg ! \ - dep ret0,31,1,psr /* set carry */ ! \ - copy zero,arg1 ! \ - ldil l%dispatch,link ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C */ -# ifdef ACC8 -# define LSR_INST(in_bank) \ - SET_CARRY8(arg << 8); \ - arg = (arg >> 1) & 0x7f; \ - SET_MEMORY8(addr_latch, arg); \ - CYCLES_PLUS_1; \ - SET_NEG_ZERO8(arg); -# else -# define LSR_INST(in_bank) \ - SET_CARRY16(arg << 16); \ - arg = (arg >> 1) & 0x7fff; \ - SET_MEMORY16(addr_latch, arg, in_bank); \ - CYCLES_PLUS_1; \ - SET_NEG_ZERO16(arg); -# endif -#endif - - -# undef ROR_INST - -#ifdef ASM -# ifdef ACC8 -# define ROR_INST() ! \ - extru psr,31,1,neg ! \ - copy addr_latch,arg0 ! \ - extru ret0,30,7,zero ! \ - CYCLES_PLUS_1 ! \ - dep neg,24,1,zero ! \ - copy zero,arg1 ! \ - dep ret0,31,1,psr ! \ - ldil l%dispatch,link ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -# define ROR_INST() ! \ - extru psr,31,1,neg ! \ - copy addr_latch,arg0 ! \ - extru ret0,30,15,zero ! \ - CYCLES_PLUS_1 ! \ - dep neg,16,1,zero ! \ - copy zero,arg1 ! \ - dep ret0,31,1,psr ! \ - ldil l%dispatch,link ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C */ -# ifdef ACC8 -# define ROR_INST(in_bank) \ - tmp1 = psr & 1; \ - SET_CARRY8(arg << 8); \ - arg = ((arg >> 1) & 0x7f) | (tmp1 << 7); \ - SET_MEMORY8(addr_latch, arg); \ - CYCLES_PLUS_1; \ - SET_NEG_ZERO8(arg); -# else -# define ROR_INST(in_bank) \ - tmp1 = psr & 1; \ - SET_CARRY16(arg << 16); \ - arg = ((arg >> 1) & 0x7fff) | (tmp1 << 15); \ - SET_MEMORY16(addr_latch, arg, in_bank); \ - CYCLES_PLUS_1; \ - SET_NEG_ZERO16(arg); -# endif -#endif - -# undef TRB_INST - -#ifdef ASM -# ifdef ACC8 -/* Uses addr_latch as full apple addr to write data to */ -# define TRB_INST() \ - andcm ret0,acc,arg1 ! \ - copy addr_latch,arg0 ! \ - and ret0,acc,zero ! \ - extru arg1,31,8,arg1 ! \ - CYCLES_PLUS_1 ! \ - extru zero,31,8,zero ! \ - ldil l%dispatch,link ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -/* Uses addr_latch as full apple addr to write data to */ -# define TRB_INST() \ - andcm ret0,acc,arg1 ! \ - CYCLES_PLUS_1 ! \ - extru arg1,31,16,arg1 ! \ - and ret0,acc,zero ! \ - copy addr_latch,arg0 ! \ - extru zero,31,16,zero ! \ - ldil l%dispatch,link ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C */ -# ifdef ACC8 -# define TRB_INST(in_bank) \ - arg = arg & 0xff; \ - tmp1 = arg & ~acc; \ - CYCLES_PLUS_1; \ - zero = arg & acc; \ - SET_MEMORY8(addr_latch, tmp1); -# else -# define TRB_INST(in_bank) \ - tmp1 = arg & ~acc; \ - CYCLES_PLUS_1; \ - zero = arg & acc; \ - SET_MEMORY16(addr_latch, tmp1, in_bank); -# endif -#endif - -# undef DEC_INST - -#ifdef ASM -# ifdef ACC8 -# define DEC_INST() ! \ - addi -1,ret0,ret0 ! \ - copy addr_latch,arg0 ! \ - extru ret0,24,1,neg ! \ - CYCLES_PLUS_1 ! \ - extru ret0,31,8,zero ! \ - ldil l%dispatch,link ! \ - copy zero,arg1 ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -# define DEC_INST() ! \ - addi -1,ret0,ret0 ! \ - copy addr_latch,arg0 ! \ - extru ret0,16,1,neg ! \ - CYCLES_PLUS_1 ! \ - extru ret0,31,16,zero ! \ - ldil l%dispatch,link ! \ - copy zero,arg1 ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C */ -# ifdef ACC8 -# define DEC_INST(in_bank) \ - CYCLES_PLUS_1; \ - arg = (arg - 1) & 0xff; \ - SET_MEMORY8(addr_latch, arg); \ - SET_NEG_ZERO8(arg); -# else -# define DEC_INST(in_bank) \ - CYCLES_PLUS_1; \ - arg = (arg - 1) & 0xffff; \ - SET_MEMORY16(addr_latch, arg, in_bank); \ - SET_NEG_ZERO16(arg); -# endif -#endif - - -# undef INC_INST - -#ifdef ASM -# ifdef ACC8 -# define INC_INST() ! \ - addi 1,ret0,ret0 ! \ - copy addr_latch,arg0 ! \ - extru ret0,24,1,neg ! \ - CYCLES_PLUS_1 ! \ - extru ret0,31,8,zero ! \ - ldil l%dispatch,link ! \ - copy zero,arg1 ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -# define INC_INST() ! \ - addi 1,ret0,ret0 ! \ - copy addr_latch,arg0 ! \ - extru ret0,16,1,neg ! \ - CYCLES_PLUS_1 ! \ - extru ret0,31,16,zero ! \ - ldil l%dispatch,link ! \ - copy zero,arg1 ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C */ -# ifdef ACC8 -# define INC_INST(in_bank) \ - CYCLES_PLUS_1; \ - arg = (arg + 1) & 0xff; \ - SET_MEMORY8(addr_latch, arg); \ - SET_NEG_ZERO8(arg); -# else -# define INC_INST(in_bank) \ - CYCLES_PLUS_1; \ - arg = (arg + 1) & 0xffff; \ - SET_MEMORY16(addr_latch, arg, in_bank); \ - SET_NEG_ZERO16(arg); -# endif -#endif - -# undef STZ_INST - -#ifdef ASM -# ifdef ACC8 -# define STZ_INST() \ - ldi 0,arg1 ! \ - ldil l%dispatch,link ! \ - b set_mem_long_8 ! \ - ldo r%dispatch(link),link -# else -# define STZ_INST() \ - ldi 0,arg1 ! \ - ldil l%dispatch,link ! \ - b set_mem_long_16 ! \ - ldo r%dispatch(link),link -# endif -#else /* C */ -# ifdef ACC8 -# define STZ_INST(in_bank) \ - SET_MEMORY8(arg, 0); -# else -# define STZ_INST(in_bank) \ - SET_MEMORY16(arg, 0, in_bank); -# endif -#endif - - -#undef COND_BR1 -#undef COND_BR2 -#undef COND_BR_UNTAKEN - -#ifdef ASM -# define COND_BR1 \ - ldb 1(scratch1),arg0 - -/* be careful about modifying kpc as first instr of COND_Br2 since it */ -/* is in the delay slot of a branch! */ -# define COND_BR2 \ - addi 2,kpc,scratch3 ! \ - ldi 0x100,scratch4 ! \ - extrs arg0,31,8,ret0 ! \ - and scratch4,psr,scratch4 ! \ - add scratch3,ret0,ret0 ! \ - CYCLES_PLUS_1 ! \ - xor scratch3,ret0,scratch3 ! \ - and,= scratch4,scratch3,0 ! \ - CYCLES_PLUS_1 ! \ - b dispatch ! \ - dep ret0,31,16,kpc - - -# define COND_BR_UNTAKEN \ - b dispatch ! \ - INC_KPC_2 -#else /* C */ -# define BRANCH_DISP8(cond) \ - GET_1BYTE_ARG; \ - tmp2 = kpc & 0xff0000; \ - kpc += 2; \ - tmp1 = kpc; \ - if(cond) { \ - kpc = kpc + arg - ((arg & 0x80) << 1); \ - CYCLES_PLUS_1; \ - if((tmp1 ^ kpc) & psr & 0x100) { \ - CYCLES_PLUS_1; \ - } \ - } \ - kpc = tmp2 + (kpc & 0xffff); -#endif - -#undef STY_INST -#undef STX_INST - -#ifdef ASM -# define STY_INST() \ - ldil l%dispatch,link ! \ - b set_mem_yreg ! \ - ldo r%dispatch(link),link - -# define STX_INST() \ - ldil l%dispatch,link ! \ - b set_mem_xreg ! \ - ldo r%dispatch(link),link -#else /* C */ -# define STY_INST(in_bank) \ - if(psr & 0x10) { \ - SET_MEMORY8(arg, yreg); \ - } else { \ - SET_MEMORY16(arg, yreg, in_bank);\ - } -# define STX_INST(in_bank) \ - if(psr & 0x10) { \ - SET_MEMORY8(arg, xreg); \ - } else { \ - SET_MEMORY16(arg, xreg, in_bank);\ - } -#endif - -#ifndef ASM - -# define C_LDX_ABS_Y() \ - GET_ABS_INDEX_ADDR_FOR_RD(yreg); \ - LDX_INST(0); - -# define C_LDY_ABS_X() \ - GET_ABS_INDEX_ADDR_FOR_RD(xreg); \ - LDY_INST(0); - -# define C_LDX_ABS() \ - GET_ABS_ADDR(); \ - LDX_INST(0); - -# define C_LDY_ABS() \ - GET_ABS_ADDR(); \ - LDY_INST(0); - -# define C_LDX_DLOC() \ - GET_DLOC_ADDR(); \ - LDX_INST(1); - -# define C_LDY_DLOC() \ - GET_DLOC_ADDR(); \ - LDY_INST(1); - -# define C_LDY_DLOC_X() \ - GET_DLOC_X_ADDR(); \ - LDY_INST(1); - -# define C_LDX_DLOC_Y() \ - GET_DLOC_Y_ADDR(); \ - LDX_INST(1); - -# define CP_INDEX_VAL(index_reg) \ - arg = 0x100 - arg + index_reg; \ - if((psr & 0x10) == 0) { \ - arg += 0xff00; \ - SET_NEG_ZERO16(arg & 0xffff); \ - SET_CARRY16(arg); \ - } else { \ - SET_NEG_ZERO8(arg & 0xff);\ - SET_CARRY8(arg); \ - } - -# define CP_INDEX_LOAD(index_reg, in_bank) \ - if((psr & 0x10) != 0) { \ - GET_MEMORY8(arg, arg); \ - } else { \ - GET_MEMORY16(arg, arg, in_bank);\ - } \ - CP_INDEX_VAL(index_reg) - -# define CPX_INST(in_bank) \ - CP_INDEX_LOAD(xreg, in_bank); - -# define CPY_INST(in_bank) \ - CP_INDEX_LOAD(yreg, in_bank); - -# define C_CPX_IMM() \ - INC_KPC_2; \ - if((psr & 0x10) == 0) { \ - GET_2BYTE_ARG; \ - CYCLES_PLUS_1; \ - INC_KPC_1; \ - } else { \ - GET_1BYTE_ARG; \ - } \ - CP_INDEX_VAL(xreg); - -# define C_CPY_IMM() \ - INC_KPC_2; \ - if((psr & 0x10) == 0) { \ - GET_2BYTE_ARG; \ - CYCLES_PLUS_1; \ - INC_KPC_1; \ - } else { \ - GET_1BYTE_ARG; \ - } \ - CP_INDEX_VAL(yreg); - -# define C_CPX_DLOC() \ - GET_DLOC_ADDR(); \ - CPX_INST(1); - -# define C_CPY_DLOC() \ - GET_DLOC_ADDR(); \ - CPY_INST(1); - -# define C_CPX_ABS() \ - GET_ABS_ADDR(); \ - CPX_INST(0); - -# define C_CPY_ABS() \ - GET_ABS_ADDR(); \ - CPY_INST(0); - -#endif - - - - -/* This is here to make sure all the macros expand to no instrs */ -/* if defs_instr_end_8 - start != 0, then something did expand */ - -#ifdef ASM -# ifdef ACC8 - .export defs_instr_end_8,data -defs_instr_end_8 .word 0 -# else - .export defs_instr_end_16,data -defs_instr_end_16 .word 0 -# endif -#endif diff --git a/.svn/pristine/a9/a90c2728bc84d7fa706d48bfca602fb35ccf8c43.svn-base b/.svn/pristine/a9/a90c2728bc84d7fa706d48bfca602fb35ccf8c43.svn-base deleted file mode 100644 index b6050e5..0000000 --- a/.svn/pristine/a9/a90c2728bc84d7fa706d48bfca602fb35ccf8c43.svn-base +++ /dev/null @@ -1,44 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* - * Function prototypes - */ -MRESULT EXPENTRY MyWindowProc( HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2 ); -VOID os2_abort(HWND hwndFrame, HWND hwndClient); - -#define MSGBOXID 1001 - -#define ID_WINDOW 256 - -#define ID_OPTIONS 257 -#define ID_OPTION1 258 -#define ID_OPTION2 259 -#define ID_OPTION3 260 - -#define ID_EXITPROG 261 - -#define IDS_HELLO 262 -#define IDS_1 263 -#define IDS_2 264 -#define IDS_3 265 - -#define ID_BITMAP 266 /* For testing backgrounds - can be removed once video works */ diff --git a/.svn/pristine/a9/a911a4fb8667448a8d00303f2b0b30f86609b829.svn-base b/.svn/pristine/a9/a911a4fb8667448a8d00303f2b0b30f86609b829.svn-base deleted file mode 100644 index de25db5..0000000 --- a/.svn/pristine/a9/a911a4fb8667448a8d00303f2b0b30f86609b829.svn-base +++ /dev/null @@ -1,22 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -char g_compile_time[] = "Compiled: " __DATE__ " " __TIME__ ; diff --git a/.svn/pristine/aa/aa2bd14dc1323a740498a6e202c3c85a5a3cb8bd.svn-base b/.svn/pristine/aa/aa2bd14dc1323a740498a6e202c3c85a5a3cb8bd.svn-base deleted file mode 100644 index 09313869032ccf2d6d2212f9de367b397b34c78f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274353 zcmb@ucYIq_wl99rFd^XA_9-TVG{@AuyQeUB0#F!v^NKfh5q{j9au+H3E< z_S)aQuU(B!puAphxR$W}EsFBEB&O&$gp~IiGFgf2jU3A3rJY%XX6@Wb@ACTa!(CfG zApOS%`#WxQv^%ah*4MxP0d~DZr3FRuQk_Ao-|?R1dhO7^#J=(FyL%H_9|>eB)_h0IWu zdH!jESy@)brJ(Sbj1S&OOo@+ecZQKS_wI^sus59!YO9kOtf}W9L|%QJ{Y;32Ho%fI}Ozx@8Uzx~~Bzx(dne@;vP_M63Tf7e)1 zXK(49nOewTf3r9`_3sJWcf9v$?$pFQJLUFhIg=S{S3ky`n3zvaxjm?3iDlZx?3Di2>yGC3_C|Y6ZJoU{IV?Yd6}BCMY)N=0DuSX|e$+2Ndo1|u`RS_V zKk%{qc%IYuJAC?n_y{_f+dq9eJAOK5jyl_ae%{{t^YgY}oVWhsysh)+&$kc#{JgjK z7v~*6Kksb(A*J{BjT@hMYU8udz3}48FKu}qYTkS;k|}1s_PZ4I4(}ZGj+A1(qvGj3 zRPS6UqNsB@a@M&u63S~$j#ymC5wi+~`PZm-I23h3&iCfMbCO#3j&kn{zj^#fT60TV zi___HwX`%gHrVa;^|jU2He0o|!eBNs%+OA^;(Tu zqfI=1EUl`h!EUP``{#e2EsF__OiE8;=^K7rDrno)lp>WvsZvGkcsJTqal?^Vw}89;3dPLaq<6(yyi?`(_Go1D#Rm9FEvMciM0q$2GZudSDpMRJ+E zq$KpUm#=B{&g*KmrtRxF>0AE3FP}ZI-s_bs$@#@Zdc64Z3ol(!YTD}L2D5W^O8V>N z0n1jcS{krDG$B_kmWU-6p4)PvM1H-hNLSu5HBx%?SFgYJ>MO6kdN4F5r!c>;AphL+ zo6d>F*DHm^B`S?P^Wx{9eMTQze>gCepPQGPoA<@j>rdqu+UrCLt)jSu6Z8f5^iwAi z#loB%eooGbC!Wfzt+X4&y87m}7ER*SD_7{C?8|($fJ@_hbnUtfdsD4N&dVt-k&4s9 z!XhHBT?>!MmKEjatFMa=ta|L4vbwHW7k%o~iF1N7Q4WurnU)Y0lbD=@I*dNF`Z3Nx zUvGbnFg+t%RO{5o9@x3-lLLp3e{u0@Xk?`B>}uar8bwJ_UUoKzUr`@r4)pTYX=7 zb=zBSzWLTRvXy#~-s-Vs%f|mp-Jw`3KIgGnpRXvUSf97^Iy~AxPn6(dYEG+1>MKjc z6zdghP6Jh)FT^u6MRDZS-c_H+Q6HXFMy$B_L5yN_bbS0v)T*N+0|TUgRbPL9Z*O0J zUvE!mPj^v7igth=TzzZ)_S8^qnX$aOq49ci+s*zC7jbTIDdMA*{R2aTef@KP{3BzM zQHhL6ate$sxc^jpQADu3w{K>qv$cKxFW)HKCiwzml5_*@%xEjRe72;gcW$JnqUN4O zQr=6KdQ;nixb^LAsKQ0(zbNYJxz+fSQ9kj(uUAmpLU{G9ZEY>B1;;-x?CievlTik| z9{l+_YU^cAZEH(wOH1D2{rRqrp`VP>d&P!z0n{s3>1qdQUgh8)*voHs4%Gf=l$-!> z|LtLPRTJ%4&ENAOr=_*O@}5P?Ki~fPHuBo~R}Y3|SsU$*_6GW+o!L!|{Z@h7BGb>3 zdj=`2YN&5$sL$T{es)9S&D#40c@+lfc_Kkq!?CSS-?5{#yS?3X&m7fpm+zS)uePqH z8sF4+-z{otuDfrJ1xdm8%`r=B(iv(8?Mc6RD_sS1EDJsU#fft{+Wh{Pa#J#BaUIO@;I3V}4}1o53<`;iGO=HOiQUrJP-{`E$_$mYj)8Wq)>4$R zG%+oc@CAip%eB{DK1uXX8+5v|GQGiIakM&G+HD#oY6+BXwf^{)r}i8c9Q8SN;)_$K zPoE@5sU!4J&m)KTKJ|YXYut2|CuUvUR782KxjN08@tD5KnB%6xoNSn$k&%q)!@;>jIS4Gqp$x6N#`wX}44!Qf(x8HvE?cHzY=jY}Y=I7?;7Zw(= zpPielwfjh3a_mZsy@!dla}C%mgyPX{h^YiHXPc!-g|3=x}To- zd|VfJ#yB;7x8+B33|Rj7+T{Un#i@G7#>U6S^{0>PCMUmXlDO+g#vId4lpQ{)92xz(?FW10!5lN4gPh^j%3~)RzMlQ6 zUgWMFRneE+<`^jIA08USx8(SN>b@RVjZ6TtQc+6CJ#!4tYw2*hM(>V`41iJ~A$o&&}fGTMPH?wJ%IhO}9&P@Th)n&4;(yx=EBvm=){!t ztTySsPl{*8$A){_n%i#l4v)|FRo66_i&qxQm1QPNmF*^f@1BI7uFg*4T7ILetGjP} zYHWP6-`UpMO4@yHIJ@HZz8%PkS&C@}rOP4?B1^ zqwC%$0WLw?zFW-9be7fNg_ZyWDe_xyX@cRWB55G@h9)3Um>cj5`fAR49XFq%R z{iC}det+MNhu`11{o(h2{l+&B>id_+({H}^hhJWM@O)<5%YS_E{FldHzw*+betGS| z^SiHXx%=SxFOP4(^uq05UVHHTo0lFN`lkm!-{JGX`K`yip4)Ta)BozT=LL_ywfBGQ zm1~KN=N_5HQ2mcbe*Z{$o(hgl;U+I(vlEjN5|fhfW0NEbe?N9oB0Gs4dwJgs6%d*& zED#rp#G)bz5tCv+bc%~5Qb|z>DGHD%ii#xSqM}01xhZP>`E-R!sV!A%wJJH&ehT$! zwN|f%KToS^jV~HhwWc`Z$d}Y(o1;Z4g+eYtL#x)SRa%Wir6OuS<|Ty=8>05rXmx6x zHt*_}l8 z4~%*&TiG(gD5+d~!6&Fj1 zge5H@QdV&ZDPApCils7Pu~a6KmPjPUnK7YZ+)!3n7$?*tI5?COOoftQztEtdVCEN` z6GX1Eu3RBkeXm@+axpOQ^llO5dpIdgTp||BXvy*t8Hk9bd19%kKq>*J$8laFk;)}f zsYHf;jTpCcayT5C|2BuurFk3pj!31*)@e_+hg^V%g=88q6 z@MDRnu%IAUlAABg7w3v_yD+y%oG+0S9*<9_WpimxMmC+! z;}ANIP9`KdcuzhR_gTESK$ykL&&e&w&gBYdo`BCoXNr@>`kkLKp&WD8;mu4a>5 zVKxppJm#5fJSO1ta|AS>@Cc8W!{KIU^5|^B%TA{=GuTNfnQ2M!aanOO>Cq|4DM=}* z?2MEocGk5M`P9xY;xZXsB(qZzVq&5qqT>)BintaL5*i#59vU7Vd@UqABseTAJS03g zI6MkjbnRMDD9$27u7%(VeQkBfwQFHvL1AHdJ}5Z&a_E%{CrIEE=K=#SUpasN#G$~; zmo5bc2L^>)xpplgGVHvN@_p~nzRO9Osce$GF)lhXD*9S*a8TgYi9x;FJ8Ea`+?^#(C1&haQfnz3ujKB{^I2M zFHW95b?W5NZ+`ks_M#$DoaJV$yjbODaE;T@J>Q4|1d#Q z(@N8PEls>;zm{fPX>PJ#Ck_goA*z9HI@)Njt!r$s)z;P7szBRj ztF<9^VYOA()Yn)mE6Xc%Rc332#ZqA{HW}Qi=FSF>FozbE->hyY3jzki@n|du& z)d(uJbp%QFYd{|t0s)|^t z3R1qR!eX>qlvNgs!B}ok8;nLhF}$MJfwfkv(P>R4l>zl0xM~cjiM0k}#=&FqMu@}E zgFKC#I-iEd+Qx>aI=bN*djmvfbWn#Vg#%j~et67QgN&=Gsjei|zLnNWh+SPxmv1&h z#nl$Q(SYpKf+g4+4Cox{v^t|sD-Smsv_$iSL8B~FYLps{so>brQhQyUrrHLL)W($nS zXtGq$#$^m^y+K!o#tc#u?Q)Gms4v9{LQ>A1P_jS5?~TG*ygDOtv$BQs?cK zw}!4`)#7YjZC#}m0)k07OsKN5y4q^Ng(_0%Z#7pS3Ake>7FLM?8-t!0{S43m*qd~; z_EluCQlmC%HB7_G#L6^Cg;JY$^q`=ws;b^*t6&TWa#gt%;8Rxx`I%HuwRBxTV@*wE zMU6G%;?>jSu;*vz3siKem-PE`gMsMQSS%*|D!{*@+Qyg|(%_)&KIva0{Z8_IVT0E!FFF7%hNfp;6^3iF!Ta0UABy zz`!|3{`faB6;+J2z+h{LZGCNxt-*$Z#;~VD7rHt9}O1Pd>Jp&5` zCu-Aa^FFswyw#FXti+yA_D=P$f_eB?qe0Vggjgbt=dRt5)$96PvMuCVA}vW!ng z)GU>jsMl%W0im$CBdv zoU9BwlMo8+J1@tJmzfv=ZoCkmD~EP}maIfIw47lFlhh#S0v8Fc+=hIqM59!fDXu(E zo!8b_QGp`cDyxt?l~wh04GVR6O+b~c3WeVJmq13Ed(86UcfUj4_4;JrzJpgth<{jo z0-}a75kVJumnnob4+n>w-Lv~p3V3P3l&OT6`~p|40v?-6tAN~^qVpT66KY#!rPW$p z1WOvh)^B=wE4|I{%{R7f+xqg0 zukYf1#5#0>oD4V{beQ3*Q>h{EO9}!1B?K=M7sFN6icV0}A$gUx##&*uR@GG+D=MwF zTBPIF?Qfjc+<11Rs(N@~LO%Z>;{X{&`4Rtjm#S@JRGT3`@*3B6qw&Vg`f5X2nfPb&1!$-z z*XIlg82TwlH53KohX<{I>yIvg;w>fodMzAkO~GdrwO3MQEjL=rD=Nxi8|4b*mZ7+Q zbgKSh09 zR8xt%wz9muQm?aF%VC+p#8j@=sC3l^txjsGtq{%e?;9g>2dQ7WN;Gqt>qT9CD2oF zmc`y!sVNo0^75c$ z`1%DRx!z=RSZl3id6TohYs_i|Bx@?6CsLRj?Ch`?h zmHZ32T#K_(xm>M^qNx`{v~Y`z#!{`xpeZ+5a1s8n81xD*W`h(-+Sl-|Ee${CrQ`=SUP!!4PC}Rf$|7gG>sQQ6-hhWik~SD0vu7 zu>uvu;IB8B^yNmA$zUXgwO8Vl_UnySgC>uMA>xXPf{Bswg+DyVF^BT;es$sh{eS-Y zTk?C)KlC33%NKuSSqep#%1gBhfm~KvhC>;OX^Fg8DU%h+MOVP`oSf)h*XVVOC&oBL zMoUmU5sKxy$~tRBoz0@x=S_@^%>DikfBEyD@73cdu^3bL-toWr|G{c`A?E>Z7{`+< z!B8QW%8JyA5}90y?rmwQOeQVSNG{Nn*B2!Qy_)ErL1U?boN(+fXOyUPI<-P6R##Z{ zIy1v<_K&|M59kzw-`;QYe((9aJL>g0)bbyNlb0xDCB>vYQqVc5e}`+1h+%0H)y0L@nv?2rMAwb*XHGrqBV+2=yPOj;oI;2@{@1^%Hv7f z1ZUK1>{i_#-v_k`<0z4qK#3Txl$A(}qMM%esMv*Of*4{ES-kI{Ae$^RDl1oRcltQT(xHP z3b#s6cHJw5BB?@BBF+;RgGq6TLV|q>m=#ME1!AS(FikxNekwTvM`*~HAQQZTOR0IH zBB{nyQ*Etnv>P<}kZ{@P>>nObX+8=CWz_?`D!$F%`j_u8#w ziG&$SFTkcqBH@UZ3K%AZqFj+woc$3^dA}ooR^&wHUF7CM30z6(ulYDXdw7n4$FirRX?;C|{#Dl~>!l`frNeQjCpG&RF@vg2+oT zyfjuyf;8;Kq`Zn$#vM&U2u@s(kFStdAQBW57UUE_5OHq4xUjI8y&cy2e6ko8Q!K%+ zxI|Kj%HeDbS0EJ^lqh8afl#c~=0Xzh(TVXXE1w8G_$g7`2r5h(@>1xvpi9U0GF$|V za&mL?b76YW%l0*Mbn8pCbfOVQwB!Cb=A8UIAjGc{w?Pj9@P1dnE@s16w8qE07;z zVPV#V^P!inUbuMnJbhu+`J?;x@7=q5|GvHNzyHC`T_0|J+PuO0=@YWv!W@pkGhdJ= zpmUbz^7C^+&i&1yLG;N$E;LW_#QDe=QNCD^e=MU0vAY(#y@hj~<5+s#;b^L>ZF2Q= z9BqI~M_2K1V=j^K%iF&CO2WB0!s$o0OBA!@a_#o;u6TL*SOl2{@V$heCi7GetZeLs(r!$UNi@E^yH!{L+MOaN&Z zKF}MFn;yueyw1`>K|T?97YK4;&LlVBix_cUt*Z>999CuD7(fMn-S& zLxW8r&%T$3MDn=VJT8})%cD~fBj@s&_i1#k5va~O&!wI}m&Ql@8rm0d1W>&o=Tw41 zSBB0H+%cuBM9mDAsEFLZOs}hZfHIe+xuD5K_?<&%12usp=f(g7#N%fWIun$AzDRTH zhzR_#rvV;1l>&dqQ>HRhlA6a5#j32VscWpa*3?!ukKRwS|9g2fLGnPB&`a~!88{Sj zNlq#_(HcV|~leeX=Xx z%gfBpCOJqSV1p!^n?q=yjBIuiq4_lJk(~&-{wGrTr_)iB6%>;ECksUdg{Koy#$_-( zg&7SjqO?sFh-@_xhkyG$!XZJydPdDzS=odz>CVbZCfSiZl9A2J%I0U#barMIH~A!& zdiPi&C%4E@RbfS7qRLubU4JD^h@zigq|(*5IeQ03067>Q8XD;D9~^S4IVdJB%sp(P z28Uc8SY&5qW|Qn}WL+jk0l3_ZERuyWkL(Oi!U?GRvqWA_zFEsDTW2gs(C=yxPa@`U zIbx|+Bq_hq(>pZGnOHsA-7z=@^SC0Er(8XQ_WMpQf(kXO8I)|4@ zXD!K0h03xxS(!ZcQE2^eJZ(9gmMfx**U3s1#o|0oIpW23r8KuJd~VY&Rq_chmhbkI|vbr(vY3mSy`Nz3;`!sgaMmOzpSi`6#V1C z!tYQ#|N3^3uEI|0*VNV9?M+SXT|GDZM{>@8arMZdBf-JED=V)C9uMSJIC&u$RtO5d zd^v~?UK$b_8p8bDJATNEVb{XK!^3u-%dIzOX42f$l(dv|ZgGL3B`=X%NHR0CGBdK$ zv*JEOaXlQ%z5Y&ijv%j~AdjDuC)es~nw(t&gXy1sx}O|k?cYOo(L4P={Al;#1F_A# zs7N~ElgP;MaG+S@V-gahV`HPEVD#GFFy4l;p{`BBc&N1GR zqo03v;NYuAYSk7+uBa$aP(nCGY@*H;Df0=RpPVO5#z2!OBPKI0O+?r{X2d8ZEC$0z zbVx+_>6mLruZCYrh)c;1O;R+ab=~36#OAmY9OxpkH z5zaCG@y`z)I{DH&H8;Pmm#WHCq(Yi!QAkXBg{ej$G0=+Iyb?o>wjfQKOQe}e{LCyV zYN@pJY(XJW7Q~3t6VhWtB7$SsaVZHWKhcXbG9wRxCt_A4xM=U-I}o}=g_c8%Q5Lmkxn47C=@n9fk{weRaTmWqWsKUK_-_I zAIr;3;j$yxp%;+f8JQ`$X+r+-eTNQRx_Ii`p;w;Y-^I;}gl?A{h~QMcuR=@=(M(dk z+}?I`XcT>$LH1sZK<*WM^7igeK0E&62abvUu8E189Zlo90v^eP^Pmy2qf$tIhRB=| z9ujo<(v?eR&U}98V#N8NO9u{px{G|W?$b|qfB4b9Pqx4L)|=b6ZGCm?3mZ3-Wu}K7 zK>e}zT2}S$v_f?mYPpprb3;pe&(P@T*bu!p%@ntfzvnl*KmPcm0|%ae&pJ3d*x%OT zx;foDS$ySEd|+@~=!G*UPMtq_>Wk0z@7=R^|ACL+-oE{d(La~v(G;B z4E-#<+55T8&urYdiSw-A=BGD2ElEqiwjU*BZ)j2?Co(EAtGl^DlE{qaN1yxRq*o3oibOFu(_F8&)SkR{JkFOpY$ zwr+jp^=;eVp?CN})`K@PlEU_JsZD#XCC39Okep1ivXkQh;EcD8-Wn{)!RRWtq;GJL z3_o$}*5Fu6d}4AIA*uEDl#sMiwe5Q6jpNUfjULZD`!tw5L!R~C{KCsGy|j&f!~69& zpvAYz2dtet$Z!02?%D-BX&}as2`7Nd;kOL;3scx3kZ{%ButWwjnt;L5goG5ppAtw` zKsGyt!7U_bW@nMijagZlBqK2a*r+6S8l7Ns#2h~#n9ke(?B?gTyuST4vVF;~cI?`@ zbI;+=j~+d7lAK}%Nod6IHk28oq9Y=rV`8pF#U-UB0_&QT9Fv-r8Jn0G0;$*T2~LWS zjf#)MHy*_&F(EDvp=c8SQXC+y?z7~$=(u=PFSrq(fSW0qu{AD5azb=y$kp)3Bs1;s zYrfvx;*`Zj#*x?;qmmMmGLqQr6pZ~QG9=;?6OutYF(w*Y&_)g>B!%qeQcHIS#l|Ip zb89_~=+f!V}`43r?JO5?IH^k$5VSj(aXXAvuMC)+XQ`9Aj`fg^hvd zG&U$EgEY9Mkc3U~F|kQ84CBQ3sHo)l=;VZ?@UWEVtLy~GoE(Y)Tc3}D!6q)A#C?F* zqGFgN;2?<+J()Md`xgMiT7mEOvkN= zMM@dTKq)pV<|I;$RMuNZGQ;$heru@Hj>Wh)&{{gaEsofP71YoslFT zXf~Feltd@8U=m6Gusz&@ED7Ai^-0Ot$0O@fAVplXTR%}T(J}E!B+fG;juGE0COY=Y zhp_K=FU7}2hR5JBMl^t-<4DZov5erza*&BmN={-3$HF>E@+uUW+%k4(@3&MVoDMxIRI#lWLQ;7a#Au$VWnf^l?oF}CP>nYfDt9e zM-#K%OzilaRvVlTYTqXJHb#izIpDk+X6c)(Ig z3YA2sEMcdnWTd8MrKY8`*(B8?JvE)AE=x;INyjfO8NbvNlIoq7mYR-N*y~f$Q&Lh> zGt!`D=prQ*-^8R8V3=STs~MY&XUaq(J1#Mfoe~>%l20xF_3@J@j~_dJ;^fI=$4(qS zPEPooJb_CmPSP0QSqV79sZ(E^I*A(J{XI!ecriCm@=tg(&z-;v^l`sqCyt&tj_)b@ z7=f*jp6Lbd*b0$3|qSS07l5Q~vfMF0mC zBgB_0^OQ^Y5i^vx&{E&%0Ib0au!g24(&BA*I9eK8cn<$I^plz#j)wBgDQan|rLDc) z)!N?Sa<;S+C#${_8<(rl>CtS6{*qd?Tk3GOx3xOj+nvrX%-wK0a-6Kz4!+adl!N{lLKGbT(_=pP)7*Ry&&=NRSiXb{CUEB%-~|<#Kkkw{x8SIA!iRjVC9l z&4R{Om%OpPjk(5b@COg4v)$g-f#*9qot?DPtF7Ht6AAQHh`P1K>1YRjwvB4%v<0-c zw}L}kYZJt8V*$9|<_i)4*w>SBY9-&+*4*3|NvjtsZ78(W50_j;_3e$# zoEFb!rz&-X@;E~q0U2rLI6R?sJJ-Q!W;t4jV^vFAlcTlX(cFSOz|T^gTPpP8^MyPf z&G$gRk%1TaaM770sj+}qMJX*z9<^{BR4Z}3(&VUZYH4c3o5(gd2@rDco0uz2bv9-i zO-(h1y{ky|5}Z|GTobT^Y8$Eatw!gi3dj^-3CvausRoOJv#O7C3Q(uo^L>tfqR2AR$JjATQX&t1**g7Mg1#^hZCP)TQ zM3r7=)tijOz=F7~@m8$c#ZMHMBZ_IZ)v`hB`^97e;kT@`-FkiL9gqc*nvVDUM`HIZ=3H zsJl#^Eu^+wi3sBuf#xuo5nk4mq0fMUH4Kx@Li;HZBHk2(p~3hDh{IF z=Q~FRkg7p4M25+bHmC!soICzT;dNJA>;(+1M zAR`=qXv6Tmyy`^{ZFtblYY=GzE9Ou4`SfBgQ%@f_dUbdA^g+Ir-CaE$U7cVCAzhsv zn99`Q?P^tbbz#nuXNR+`6ZLCPLqbB!t>Iy3AAisX**XLv$S|aZqP=iF2$g$5-Tj^X zL3+TWe_)vOlRj2&AKlAx_40b?E>?Fh>Ed*(kqz5YGjJ(za|jUxX%26}qw z9>4CMR?OMz?sSnZU)W1m2l9~P3V;sLBz0nkw#buFDRKJL#$2l!W^%=|w;x6`=*wsp z`WvPPpJLMB<~lqAW9)QRW?T+Fee~F|&o7FBTJ}}^<%YX`pgTP}I(s<1etq3t-Hd^D zk}e<2#O>^CZzCPVxzsH;L}!{coCh$6J=U;GCg`%C8srXmGBT547K#m%wa7R!xNNBZ zU#IGlj>Z5MHE%&6%|nn9PsgzmkCKl(KishkXjzZ!;t|fwvVR^#tJT`x*4fzsro4_N zz)HGVc6B+KmfY3BbNY1}L(V8sxcayQKFCA2gaZ_$T#IA;dTx!f0fw6X?JvPld=HwP zO4xp>i5HH1e&opKm*`;spuh-g69PwzU33S9;sHN_cCs4Uc}}W}>-2FcFCCHe_0xUN zfFEOuZVvs7V1t7_3^#oL?Rdv;e+Ghjoc90->h!^b2ljt@;#(+@bkNR#_7;~DO?iv6 z3weiDALX#FI z!eA;5CewS6UU)0dpgD#4b+&T%Q<*N*0DYKbIMCNW2wqHmgjB;I{83`2 zGh}xTbcFnO!A=L+9gJDKeBgDtI@?=FyC1~uY_@l`wh`xYmm`&;Vx5CbjfdHxbRX$m z!<6BXk@3D8O*M692I`bv{4*%fe+6|~@c`86U@An-aZ;UhJIe{9SkdG_+3sjc!Ze4L z0hCwLyP3L0n3tvU+&&KSww%{|Vv5DAPeZSHa(Oy4+qQ<5R+; zbdvU!&i2L_iVAa}&FDcR)!Rz%Gc2`3G1>)RLQF&9u8}gP?VRD`T^Pm`apDpW_zoHv_0Ww!}$D= zg3*3gO&~=bHQ(&!_fT*;9)}1~S>+E!HHiS4d+dpyU`@zasGHNi9EoNU4*woqgEn*k zmUmR11nx`M*M|lYsv$k=nSD=BVsUD7)8mM#qRAfofXv_(juo zQ*wNI!s%y$_*rou*5qc!=!>+lP=~boIh<{x)>c<*3*GABbV`6~61Z+MEqhA`TqFnw z7bfc3-+^jca_;7>fsvu!$;qzx$9_UJ9b}WXr(g*!t@nP6QFOIC(A&cie)%-DgxiLO zopC1MHql+{Iy)m{9}Q|+=DpDjK(4J8T`K*l6+fY34zgi#t?Sy`>X~^AP+$w%Hgqg; z(9-J20SG6vjqcb6ABXWL@ayV{iu=0|O&hs{7qL}!HIw?+SAbynI?S{rb$4t)*k16=6PV(7TC%Um?nl7 z_%xH2wdf&3iA@m9(cD~bZ*D;sx;_J#ri9jRx3|K$ot>S|<{n2xlI+o#CRV_6+^t?O zJ-=~<7Xmf+@jeIHEtn0`+(KH{LK+;QOKf9CRUP2!G|N(;%@_x9dci$H>)7#PXH!Fu zGctsJ6r@Q=v6j8WdByA1*Is>o*@Jo4+CrLFGm(J$=H`}02e@Lwh{Itg&7N(|_C%WU zj;KMqfmZ1WIAR?LK18Jd9e5@W@0Cw-*Lytq_>!N%Ob6K@PaNJ5r2!)1aA`|BB!enZ z^crGl$|JlHPNi21Qxg;TFRLPik3ur#Q8~U0?(laT~%dZXap2>lzzlTMvgXX?_GPfrA}!ftE@vJb_s>&0L2Eh;tmQ>TqB) zF58&u{a)C{+03+5p^=ZqE3LVYSAw-MAqOVg5whSq5a?oJA z=^(qQ$zIO{_?pV>APk4yZf~;NZIw87G+WODM)bL*oyl?1N?IOwq9$q$`)}Zs4ze*l z2|OT&)zQ?9AS1(o**Ku9M$0K+x%L^Dd_e(e!AcWM@oWkCZ{d^x!)*ZUQGDQ&8G?MLLLfJ%1XTtQ(FB4Oz9xIfzb`-RyB}%e?-i1 zT#r*?_pS#o^{0SbJy(oXCYT&+ax}uM9IHZt{}!dROAW~m(=;x*Fg>mgHg)I^gc&rz1xbBGfnoCM`D!T)4#j)S8u(0 z5>vh!tLtr;#Z|uyJP<9k)z>#7hKR{ttg1qc=kpP%1ONvav4SzN27BST3lGC6SvGhb zHO<*=oH|cCX7ACq<(NBXX9zQ2Ta6Gjxi)CMs@?%T*_Srf+b^U)458$6@wMtYb#)!r z=7~8xcG|YA+5oSiuGWr;i#8h%V^74!BprcPsHPsu54f7DeJDD~;Q@@yrZ_swY)kou!Ja&lOG_3@?$Eqzgm{C=4bLSkw zw3t3d1D2G5xGkn0)#Hz}V|z7T`6yV@svQLgT0>++u9_(9#tK2`tw<{~FEvW$9B$nIi8l4?CZg4tYfo~Z0 z2uMVX z>C9$R#ns@SAW21k14#T~+hjng0bM>EL}t($Sv~Nf=Cy zcr+yG+~ts<2zGQ}P|)eXFRlcgyp)ubl4ZJKQdKrp)>tf6x+q9{O;=U7>mLhAN)CzP zkt|Lq14#-$dL;rw(8-xGSvpr~ZAFEpEE+}(h5{M6)>nKv%Lju$(Z*Lec+?r z`viO5{^XO7_8)leUF+c3|4%&9(>X>n!*O|#%52pKg|m|)Vv`bS9?4%K(&+Rxbt(Hk zc=et4_&YYf_tCz+2lxN#<9O*K@JM7c_gOA5Lu3 zuT4NzZQ*Y9*tTsu=Uu`?pw*-b<5G_Yt4x@ZgPBK|gKJ=>5UM)orlxd6>@5+M zjbYKusg2W9lM93DGCfumG;}+&ucgY>Hb>Wu)o!&|9AiJnf$Ug7Ahpvh83P@pqs8HNJIbCnID8bq5s>;mF$PU1`qJf!7W-wY& z!iF1s?qQ*tFTW!T1VpAVAEv)_xazqyrJ)$U!gYu%pD&!0Ve z;Zk7WrAW2KY_?zmUzJ@h$EqMca)lZ*ob3>4B;h1p=x7%=?_^PenW zz_7&3D-Z06(UUnNdT)b!%##?_;M`K7zAflRm8Xy^eoKWD!dCR8LEbIhWFA-a;#_o&SoPfC~@@53`U$7m`P{Y;)1t( zsyJSuG#vdpgUPHfE7O%3G-WzH=JGK=GiE{3Mj!WEMiX%#VUaiRSZmN=vNtAlnKUYM znF6D_Mx$97g39)a0@JSU$&1^)?#<&!zMHiHlhq7{GDrft8obZK_^_U(!zRG2lADdtut^S)pE@TqBK4q#4aRgC zHp~fT!W;0~GB842jC;&g1BY26z-YoBd8F2uAfP8wi`-cQc5c>865S~`=oDsR@I+z_ zG$o@!=DT<@h*m&t$wUv;EVheacF zSigc12MassG5sB^7+YhMT86=OFUHi(w8`6SG9oMaCNDDzpP6g+_=xs(8VxFVH z-%=nqBbT6CVt5Rb4;l5Legk*VS8K(`xs>O-JiVUQEyuNcEb+7fAO%AJDn_H;QUPZK zJZZBxSbz^PFToy21`PR|Etv62;}S7FXV4hI3e|u{ZIvVC7ABtA59bM+B z(dB-^qx{m;Iy|a3nHl}$m}$#;D>EtA!Ytx}UquxfJm!=+Ar{JCb&}+79jKlQ~^8UesJ0dXc50}3d;(j^7fyc8Uy9Y>8TkS4=@jr zDb_SL9LsJtIWb!#sm>!#862S1p^9=rhNyYsuQ!~wHCn#Up==8+c^u#0= z7zx(Y6g_z_At1X1(zy{6Q?su032LcvYGS4h4G1G962h9CrYHUIz$j=>Ptnu#l-K0s z%uxO~<;!WCo|qn=nBYuO6ZE7%lXSc_F^Usvf;Z_kF*!Y<8>c)>6H|E;)FfxZb8>V7 zJFn^H;puVSgvU&$YJ~Dk&<{-T$H@eRzsLB*IA?-2K0(G;PGIT3iDA%Ze&f?UHH=a6 zVEvwqHFC@p4k-(5ri{7f9Fq^~7@bii79l|I7@im(8zbYaF_84b;rJ+iqr7o%P#hnh z@@a(eZ(CK)A>8BcMY@mVhBMXJT}8Vic#VaAz2|vAcJD z9MAcTgX!?_7-yIs^2LBIMk@z~Xg9NNpah1-?c99ITXb^*GcSOHA7S7fG>%w9Sf!N$ z9>WKCixC%-M(-i4=Q@l_p3Jzu`wlb0kCAo{23Ih!2IJEGeS;VRy?L{*?`C)RKzG+b zH|Hk7Vw^Vt50POOrgVrwQVf#5r5JVSc43qQ&=8l4zTt_Oc_+ES>byZ*81%TYw6p7m z6N?tzxY3C%ae3eXTjn7b<>b3o-f#gz=fo%wLY@GdIqY=1N9zqIx#8_X9DG0{q&#y= za?40R)kki6_kdRyRzqSj!;Y&lOaQ!rd$f=lF~qN(ZUd%{IpDTY*KyL?%tQ)vT6xW^ z>#YQ<7WpwznP&X1ljfy(|3hO4_=C`3%bKgn`)YUcLcZ|~e8-%@wzZ^?H7zy0pJ zyWf3>?eFi9?>xW#_Pe{B?^t)gqj8`A?b2_)`S$MJ+jsBYnO?keo80kQytBCY4Ot}L zklP*$i;LtoHBT0)ugId$+*gZOvviT3^Z#o8tGVg%VV5bMV346{_6}a~z{GWZvVe`FYNq-{M5~!ra{K%p_-)njy2EGqW?ZWX2zL z2-g9$I8tFxk+sxJzCvydhWWjTBabbZoPa(0KIiK0D z=4K}rz5>xn{;bE$ENJ?H;_TcM$a1Ea%*-(L)WS`1$>iNakb*{Tdo5yzJ+wlQVrctL z?jm;q`UXvJEC~w*&~x4per^_&k<{54&Ma$YmOJA$J>i<2p{Lh^Iw*toS7S2iDxkZT9_3sdM+?Ixv*s3tzl#$bW6{%zM4aN7kIO%_h%U5NbvLwD(J~! z9P+0DF`HgGJ0>fb_-2+NFu9-wrTN?Q{5k&xtXhi%F3vB|^JLBghh)zCtJ$w6X1^j( zEIk{*5M;j7Gf3wWq!BrHueo5VVJLcbL?Z0Hv#>xGS@R3Z#emz$s=4{!_1|c3AXT1~ zbt8DsxCgDsYfE}6k$HCOx4NhXyZF<22goTR~{wo(|@BH;<*Wmc?{`CF#_a;VT zy&+o267cClFOdk7go(^g-*6ox0QK!(A*=8FYtD=>ga^G5v`=6~rdQ!)u9bw^P#ze) zBH1v#1+H5R&;NUU`cFUNUA%L$(&OVZ2xnO;F#4%LL}yg~6}liZkAdj)GgF}#s&otf1ib+`Fpe<4zCHga%j(`&M9|R z61Uy0`^wFN$p8Qtv74PYoTJnrJWn%r3_;u*hSO4XrQ005?`0qyD|k?xspVr6Zst;oDwuJXq|NT$jO!N-v+gnCwCrf_5^3J^lgdTv`TO#_8iHi2lkvPe;`8g zrWfYi)dbw9`N!Sa_tofiduwm+O=o9qrJ+pwH%kXCy$`JcWn>V|IE9m-Mke24d^pA% zotem|DDDI*4m1@^!ttF%%BKf=2D=*#SoJ{i|FQSg0ab0;|M$`*ElMK|f(i%%N+aDN zij>kyBaLz|-5@0m(%ncXdFk#@Qb0)w1rY^)`{H}!%$xUpZ^m()KYs7rI%nUr*Jtf@ zYM-^&`kdcq4LbD;YY-3(ECY4|bfhKv$GicNHqs-gMN*x(Q8EZlW~CR$U_nwFJOrPsW$RB8te9gKy16FVBlgpIWajo z0W=4vP~w`WNg#6g4+w*BejyA3iVu7>GqPt40i9eDq+H~23D73H-9dm>)6}@nBxD>m zNd}rwoAJj%HAt!;EPn|8FH}Lut%+3H6WN0Xp~j%24#W?G<@1y6_7I5n^Qp;kaMgPS zK9ds@NDI}b0Sc}^APNFuJGe-mAe>)9YLEtkfe!ZI@Hl9~Shh&kc|%lr13f% z2t=@Q7F+z z28SoBwP6rw(Ui|PWD-73HZn3^8<$l0C(J-Nc(`~JBN2g^$r9J1Jma9viE9 z3KGEonDPgN$6&K~v7xea&|!d3s&CC19QFaS{RW}k{h%=egK?k@;o!oIij)l-BSdys zCi`m=0L$2)vHYN7vh(wK@}gehr2&*Q-&zt1?iIViJzjr5xJw*qX^aLCVc?p92J{~V z4PhSW8yl?wd<1_=>w|}W&cV|Y4hJ6}TP7a}_TSnu>;(AMI2$Zv$tKw6e^5j6k4aqOjFnWzAch&uU z{h&$kK~&H*a7T{TKQJ-~!oV;+2gi^nP2`0i*+m6CvZ^HiKZ}G3gka&)30x$n;bX%? z?rvYHe8Ax|fYIMS+yVA#_y82R3kFa?6XD>yFAzY%`^J!GXwWPa&^Y)AQB~MO-#@1D z2}aTdfxR2u51cu_^7(+HX8_g@E~Mb5zuybYqJbOy{y|tjw9f~G1h{u2PpH6^GJG0& zKCMiN`_uTCUzvP>rA~YWUj2ATPXh7{3I>6D0R`+7$dEGN%m6MA=-^lBBZE~Df6n7` z>X!f+y+)+80pEU*N74`J_3B3lqXA##+H{QrhYfI=AU#5ZxK*L<0e{BcgGca{y$49` z2VRGM%z?hw19(-CewE(7evko!G|XVTJ%~jzt{Vkj7I2aQdlXTn|Gz-kgZnFC50DPLCum53 zZde~tKX9@DH1O%|1kD&m*aF3MYDWI%ECR<1$>88KxRuSnLfC`#OC*e51FR3F{{*SK z6Qt|F`XJq&eVCvf;0aoFCLj(*_Sx`YcQ8`xL@gd{QU!53{1b$ z_2B#(2cy>j{7NXm+XL$bo|;}XWE;Rd=1F@7s{x%G-i6{ZARB-H%YpnQlEMCG{x<)_ z*7Iu|49q}G+cd!h|0`XOULz0(Ucg$oz=s58k$$V*PFOE`H*iT+0)jJ4x`I(49*FKo zMRfMJ!TO1w`91LYEnm;CaWMDw42*t>gVAs71uBEIiC)z1zHX4lgaU-aPb3c)Nqa(| z+2FuJ@9aYE2C%-f;HM%C4$}JmnX3onks-NybgjM3^pfB}SXgkYuvM;vl@g7pyq+kri+GuPStSCSsmeA1T+CS_Ii6upXUDoB@e#to$0Q6WDXPZ-31Iy=34z|=U6z#a2f;3BrdVbgz!Qk{O?raFBn&Xy+0_Z8qV;ukb*F)`xdh<2 zJTWT##0WTLQDKpPNWzn5f?}%Cf0F71^2*SF=*|u}kd6fe0?}Q)DIg*xu0Ob&1Psjm zad=Cb2`Uf;^g;nOy}D33kiJUX-X@UQ)CE%Ay84qq|2`(58v-1wC}n_)_YawN(oE2i z(mFdmyU;t40y{U}XLb zr~tg99mu@4Q^4`r0${+avjZs@Gpf70qz&vpp1l-cZ|p0Nef%d(J0`{{Cn|#^Ag@ls zj*gbjjz%C1c#uJ!6QG6YKVr z1ynM|M)4=+?egm&0RCN&od{$iQ;beTLp!5D)IfMwXK&A77f4C$hYgYp<$3%P%o3dv zomlW&ejO8S1-)N_Sz=El1Fti@9TVgfHMW5~H+TnddV^db0M*?U34{lCbk9TqqU*vl zAQrNyAoXeX3As*0Oh!<^lYa_jF|u&6_**Co1$feeMmKPe0~a)~MrU_@M=zig0#riC zOdt&4=mzbH0Hz7;=vuK4N=Sznk`@#q$7O1pzOw7+nCR;0{w9{i!ttKb@3QMKoUrSd zYZi4)k2is!`Gz{cs^8MnIX2tX($x<@kts;P^BfLFID=X{mz>;xFP24G7AE)4u`KuR z-T(7g7B|DdxU{U~h|owt6$bYW4vomGsHz*9>uT-l1$j^)5h>IQf*#P`F=O|{^M{e^ zcze3T{k;K~n!T;QgWX*#SBH>@^xCo)y(10%!0V61#PDtFnzH<7avfQ~=kq<}I-Xw6 zt`Gf!9>oM$1-sd}SQ=WGx(4}$M~8;L>Tm084F-q-EuB+Vsrf#+e@Cn%D1tHs9q6yvfSC(8U%JB|CY`<%Y>{PI0&9W(&}`AD$xAXm!}=>6E70J6b>xB(+aV$FgrkN>NE}Zhlr~R(UN5V(ISg>x9Y3X)22QBFTKj z6*Vr(6?OLh8pSf0Y53=?I$q4EApC>jB*ugela@vRxfy-EAf&$FDQHt=)r}1x%px^D zDGiWm6_tX3aCbRn`pvmZp@Y+Vp7RFZPzFXgGn@sTmE+PSE*=;k z#ub6<3JNMWU^lU~bRFE|Hal7n016)tlB`==5G`%sB+=3ga;tEsHrLn3Kw55B=kS`( zI_36UOG_&_OSev~wpW$al+`u2)N3-*($X<7vBKFP?0~c90-vDZHBoVx7*zf?Ob22B zGe@`bLQ*b*O!b(gGH~_q?853^+F0*vX=?_yM1eK7!4QN17Mv*%033k;XNQh9PmnE* zJiE4gc0fR`muCx3XUo(oA`Lu4C&dVM4OLWD{T|#F#|aEx`zB{)W+I~uq2)tfWB8-v zWA$Jl3|I<`p|!SqwPLk^^BibZGl)hdhS!5ky5^G?q8SO--0XFds*GrXBOooXW^|+p z5Xd|!q&^+ZFPBFfL4sRld38<0tJko3OfWRHu-x0+1aBs60?FgZlPJh;JkcJQ3>#Vb zq%A-MkcU8NYw`hOU~ctoC#Wq5pJo7r{D42b035O=Sl6o=1?UKC_C`QkTHtNyh_)7x zlm|zkgDf|o2poZdTo25_5T}}&!T2F4ZK?-3-C!M*wq`KShT#qtfixJ9g#3mhu#r`e zb(%q177T#_@@;V-Ag>uwe*z6fX4Zo*I4}g#AV|fLmA?XlpMYi@MBR%MW3@Gc z*jr5J7i}Ph2LV8!$S+i+W^nKWq{9$sK(o3gBtFhp-NAATP#ake@?u&5Jouo3oeivv z0#<=FBmZiC;R%+$YKr`YHDiFnMnoM91jpG_H$F#h(q>N}7zg}<@k+1`0&G0!3#9hI zW(ar-W*ZQM{P?#(z#`DA1?)Od1i-^+1_^gf2%r^4a}#(W^@cQgHKT#t_vg-F3z?K4 zbN!K$zit(<3aptBGzn?{#+G)lTYz_)cMBHSGGNFSEWiK)nDc7E2bkd4LB5*5+7!F3 zq!ySRX>MdAn-QMP&^oZspf@$u)mK`BttFn_21Z>$bD&L4p3S}p8~_27M+ygmK}$|h zz;F;MC43F)wxEEOki)i3U~7SOPk|BL+NL(JQvib?01_s$fk1XMya}}) zk*DPiA&mtIxyXhf<%93`mUhq}?{>^i&?f+S%^+PH0=h_$PEXL~Kz5qIaR=?{@&#QI z+>TCgNS>tff<9mytlhH>xzSr7ZE#?UW}qgbr90jSLTHc)IN(9N3P`V{AGc^Ebx~F{>K)8{tMH8 zPel}!+%9nchMc044tKA7A@_&VSJU?>v|m#qR%v{Kr2&3jS9tK=A9M zsQ(e|ca{oK{|j3Hdg;sWK>cpfG|qp)04Sori}ibjOGN(-eAC~9`rWck%KrjBTEXvP z{cfS?k3RySoV&jZ^}B`fKYj;9%l%!X-!D8gMn(A-&XoVxD*t@+KuJS?AL;)n{oDZZ zwg2_0^zWv!951%tZayg2zkKZf9}4|j#k)8DQ2{7+&%agwKVEr*=^qXt6y^U|;=d^X zhWbqbC=|`_->m*0uU>@?{Y3#N3WWe)*?%nX-xM$+EJ%%l)Bt)m<-@;O_Xn-MmrD(W zKZ&|epr=i3XSa_ChR)|eY)%Q9kqU7mEfO#;QgcW;kHNrSn!jV z9_joW7u_GP+ZPM@wI46_Uzhk^Ti~Z&_kOF{vK0H^Z_9q>@-#0^)6c~FEml7pN%?Qf ze&%u`6;}Gs#QQB)DG}!5-t#i{wu%0Hl5 z8^Fgd`T>HzQ^a!|C=~nYcUJxZ)rzs9P^{=5Am}?qqyv0R|L?5)1FFSf0etr#Am}?q z1Ooj3We4OTCcroPPUU|u=E5UE9sj?KX)$wD}Kz+Mg4}B@fH7n<^fH{LT-P|z;7D;+_~7V`2VvZ zu*YBVAO74{e?tq#Jh8vax00Vb=XZjS@!;p8ena#6if{9+ zzv7#GEBU!|4=_&JZ}@XjzoFTj;G^q*EBU!|7GLpoe=h1bH1n_cH@}tq+&SZ~_?kZ# z^&8sVulVZUN`CH~KDhmdoH$^Petr}JK)ii|k0y0|bokTpk&qfldRoI3{xKX=0;(LNvSUjgn9a05#D_W0*F|M=+W9rH;LCls&q=eHh-I7$d^ zKfwV&V7^@uB}{wY&c)iW>^ z#ly{%d64c0fKNz&SxU>y(e=MSxq!*p+1bg-!CXs_%#EIWaef@cA(z^X2Ayy6L}X6 zfe;v4TiAWQpb&yZdP5^)6Ua#i53Ggy>)H?$@B)2KWDOwB@L2g+6~c{N`b8Xa_GJ3a zG8!1F{@eRl4T1+&0)w|`Xb|YJ4uphG<>pO;U*9)XRBj#{L5Ltw`8)UT7&&k{@?PM+ zz;zrBK{gH2U;*kx_BWvsynUa?-z773C7!M8 zYL2(3bWfKPKL}B;DK$1Lyqn;^KbeJ*%`wda&Lv!eW3$?U3Is7$+_ zxk9QXoa5l;@KkHkcNv;+R7c0}J6JWe`-C3xVlMid3yD!4C{|M7S z#k4&o)-Rml%!6`fe|XFq@dk^M1UJo%m&8Qy2{R|M+qT%Lor|>h_$)fEtj=V$%;~%& zc`Uv*c&_~2ivfCr17_ zR$lM{$*UKcFPmzoCNu`{Xm9p>VDD+#B@x>_BeoX>5t6~XlX%&E9k+%ORbop($SQ%T zf@oasQ@^wFGt$vDBT^^cM_-o3)i@2hHjeeJRT9jUi5`0bvl6x?HIp{0afjF8EKh#1YQSz&alRmT}Joo-1PIuR4$jR zpMEjP-P!%9KAo8x8jIOJuPi;U)3i4X@e}?)xqsecO4{_jXtQNjrO3+Wy&QF)FR^a- z(8#~Y>hcL9_6yeT_-+PZD%n**9NF=J;@c}$GV%6Z|Q4( z%I96kQHN@0!y4Pr^BHNXJxZo$q3A}{eeVr5qbn80Saapi%|Alm-(7FS4;_uVEZaTQ zpcLO=Yc!X4m#;BX`mDABTWGC+2bQs=g=4FxW%zIXhwv04@^}x)b^gk*c8S*LdDTF!aB+LG^yt1EUwsK)h}nZ z8a&DduS(IL<%Xd9sgB@eP*2;Z+nHEt=`f8ow{`Dw-PyV-upEH!dAoPW7 zsbgoG^PNPRBO|zmN&Dj47A6q1x#+h@&=QyvE}%u>H&jBaXatr>1=cIWZ7r=5{ogWi zHA;WB4Lg<6aQ9k_f`YcA-Hf~u%M5l8H(WZ8%gh-ol)ofCFP!EJe|?(eGu|C3zm}u^ zq8=bABCP>v^y>j#k>g_0fmCZ$zxra#^xetKgIS zSs8}PaOKd9tj9N?x1vskz;$_;46mqq4iFT1ZN;f9t1O<=UhcPe8g#KT!hJF0FwjlE zBZL3Fa`W4!UEcP2ak0H>n9T=2%H{j7_wX&>Ug@qaXWDpAyOf$setW{VYxDiU`tTim zRJ2>!h>3Qo+>bY}OSav=K6DY9hFd0xxdZdf3Ux-QpLe<^5^|&JfvF9mOn5L?CI=VK ziA~3b6or;WVx`d#(JH2zXiOjb=#>vGt6sv6?2J;P-%#*_MhvtWzc^;m;=lmfrLa(p z{wz5Aq`7&XwC1t?L%ajUXoV!T@SAC>r{h(Pf;>*Sk(0A+Ok<&F_!7@p7NPsGIys6K z;UG}z1Rtlk+)2V;-%e9a`24Y4$u8(M1;GUa(e%^Yrvela{Be(8J~J^+#e9W!Ddb?% zn-HaxZxmzt$;b@EwZ*vDgw1%5$iGtQfliGji*0kmw*HZ!__0G^dYgwkQAfd%P>24y z_C0%DytA3+*Lm^tuG3)Kkq*#%Zduu^<0)qE)MOLLE5H-uQ^UJNFdEX|Je+f4Dx5uP z7-o=idQ9BgGm6--3~PEvP?;KyqC0XW8TTwK;4TJh3ohSin1(jJ0!eiC!tE~pbJ2|f zu9V$OkQB>k2lIRAUj#EWQNYQGRg#~xl=t@NUb|rPfi9Q) zv&HlBQ<=E$KRr#z;9nm%n3g6Y`$!^*?L*7vf=haRQ}QNnzJcvAwjo}E^jl2s2yU?` zqB)^R0ag}xvGH}!8|P=(Ghbv3vcMtR@8(s!Bu*=AlD1iDeSyET>9lZUrn(mZb1~L3 zurq?!XDT`$$a);RzGuMW$2HW|t|TWnoQTY3lYPdLEM66PdFS*{-WmxfMBGTeQ|&y&{RUh8nFljrD0Th5cqZ-bbCI-O zXdy?sbj=wzjgzHz3$ij(^eF%uIpnGHioo;jd5+oEo?6dRcwJIizOyq9MxzwEDdmqkt2vA^GWVQV>!)^`W85Nb^DtbJl#LW_>r^z7@0 zWA9#R5x9;sdagdCeZ+a|wvQ$>2K5?i*Hy%b%I#ExXcz%+lVr0efofN_S?!hm=I&(0 ziqD17jkOPxJMP{8NGwBBrn|@xJ}|sEdxk}Wi`++npO0tR>y7pLzD~P#mARC>#d%v4 zgFXu}^E)2S*UN9(i$y*oWn?1O>fxfIZLhtkb4=(qNZqP#Fw-39`h~JC;Hi||i8$LnglYyOAyHI5epqlO|rb(}Ykd-YD+oZ_B`x6t;~){KG9f!qhnDybCK z?z2m-TpVG3yQefyDRIqHlrvRI3*!f^E5Nt|baZw*v;xc1j&5-UVc7W1C2z%i9#*Zm za7254sim#2eo#GSq+ycm;kbj*!I@zirZUz~`g{)rwL=2S@29k~UQu&eOgzgu5*)Wp zbY0zx%B{qy+H{@IUVwzFgriNdk~%>srR}~TH0;{#x@Y9eFS~nV%3hBIG29$vl$S6gn&DNl$SR}7fyEU6_JRYVAjrFrSYvqa0O7Vd|MFg-o==bMivae4 z!?aX~hI^ayaY~Py2CP};V{_zU*27*8bm|J3dJb;9=P3_E@gQ?vYanPm>M>u8xHf+4 z0FOq%_q<31I`sj?3-P|*F1FWMXZ14qouYa#yIDR$Grq@hTjp`}+t}n!J}#ZD;dU0s zd}tI;H?UxqeXIH+qHr_bU63)Y08CIK}-PktWGq#OsPK&XjcvXJdNL&E!P;-q|ZS@OT z!V%9>F#6JcW@c<#n?r_r-<5+UEu)V8`}Z=mCq4w3OusTE4!#g^mqa)-G4$P`F;T?< z`3jDRRo+XuxH>^Jzx{McR`JBl+>zBILK-Q578}o151*ly=b)%2w;i9% z3my&@^1^d@ zT&Bo~H}yHs(#Xo+XFCSWLg`kuwGvNJDU@JrIutbA%^RzFw`<*6>!w^IHUZ0E?Rv<; zrQe?vq%Yo`KX*25#mG&*edmo?d@*~^+C3BJK`oYyT3hGfxaCl|`HCZ%L#${}yFZH;+r_%|RYr;_ z6}Cq(X&w4=hIB0|NFS51bk9V%KU%Bz3np!Mo*P#mWYv3aDA5tBwrsOPQI;X`tiy8I zUdTNik!YhD*s`%Qk1iLP#Kz*eQ7gH_D!5n|$`sTfYTU zzrN(=5aGCFNpD>V;dEgP=zB}=zZsYKG0<|!rDAxb%x}G@zmaluXi-0+=Cu{gfL(;nh}Tr3 zH&LaROzq9haWgFnQe)=*z(_9AB|0Xf2OZixMm`sMP_;0n${H}HAGu~-%VjL3Gr^$K5l>s<)G`<#VW+hu&8>{8T*1A!d7pRKr2y4lH!hs&#BMm#o-BqGnrrC-g(q*eA z&85C68TUf#J_MX5=*Rh^I)mbR=i=toyX7wH~jKY0o`ez8BG}DeM9% z+o*|E7lrB`ZaPS>QayarmS6nAm~$a;@>(I$qol#EGOIXsHpYcPICts;i&y=sYxi2F z++#|VS-B)1YF50#!dLFAA*#kjrAZlY3M5GIx_En=N}W@(pxnjTR4cT>)PVZv#eLf` z#W!3Jhi>R`7NcNYa>8C5^K@Z5Tt^*<#ZmHQh(RAxF*Y?w64IC`H!65Wm zbPv2xIPZ0QF-dSk#U>2nntH{4o49(Hld&k<^Hx3WWU4q@0{l;b{cfnSA!(W%*Uv5c zo~0h&;i+CuBdWSnEcj!5w_) z7g~~xGGjR*HymxHl3AZ(9S%L&P*JBV9TYA(w0NPK!A*OcH|>zzusc-tq6zqfx2#?7LN($B z@tHQ#%p~K~yV>#J9UZmFAtuA_&@4Zys8F%mrK`34X3CeS3CPhibb?s&n>pLw)G$|8 zqIvh`%2PMLjBMo36{T$%OgsM})4VpaK)z!gC%Sl!NOcTHYxr7s{iE0sBNckA+%h$} z8!}y|1Ff=o{a9tn+6dM5T-o(*R1iF48n%C~awO1EE`4l3)HJ?7yN=<%h8mn(afzZt zlN=}A(?B}7-1C^B2#+8xh*vZxJtCj!1JO{Gs5`ni%xd3LiGUNz@#PYf1NH5fcl%eM z*M=5@+wqh>2FMUeUfGE`%r)$>o!~$dAkXT)gGWUY@G^6hkuA>H(Cg7e6-7}6&erL& zm*w%%>diaLyx9t~S0ph=G$ci5-v=Q&-Yz#r?IjLb}q7iB+Ov>8VaLq%NGG>aRw6<%`%s*{wK8Jy^1+S>L9A^w<(sKIyz;^Av$LjpDt59y^N-7&O zPrJBUYNh2#s$0Cy7p1cK@5Y-2ntZI`yXQtw3mc9b*eH!cnVKK!RFE$94NQ=(R)%1B||y2qWVFhgBaI8tCR+0urx;92I>;=MWAooB-0;tP>36&mku^PRe^ zH^o{?8y=^#s%XHMQ<2w7J77-0DS6E?b?!{dpmS)EuOvRkMc8~jlVCH&+0LIY=L|Zvh5xI)#FA`Jo!T{T-;R22 z#fQ!sJ+ZSGXN$W#q6V&!c_#AWEcGcU4WHezcB3HO*3mA5^7L88&wZ|VtqqRG zdEzR_kOa7I4clVQ+qw1#h2~x4zdFG~*W!5HpUc~08yc8-LzD-fL=D$x<`-EIuA=nZ+e{7EpV1oNzxXavrSE7hwQuGg zI+iM1zKqEkJ5;s667F5i>KPQF%Ek@P_KkWx<$-qLb5hC@G_-;`;wj0U7E_^Yt&Cs% zKX%M4io1Er+;x_vl$m_w%=5O6oUSyb01;Z$rFH7;oq)=um7R30_&BkufT;T<{X5)+ zYNi(jt#htFQx~D<3rInGuXm(u72J8M*i-gK#C#O{nx0ZHYoF+Y#{1gpf@Ww7r&vrc zW|x-6$zPvGQReRFWF!voJtK?Odcgc8K#-EU@YSgGOvQl#OZfZr8`V~R_BOhw@Sjn* zzF-Q0@cXfbjg$4UUa-AYN=?n6gOT0gyERRm?_n-1GgF2c6*GDTVm1PQ71WAefEuu0 z!q3Ny`c~CnB@(Nn6+0r^&dAa)`)x0-N}BzM;!EuZ5k3BVwMT2!GXoLE+c(B{w@atf z$#?F!nULjE%tNZUjfLa7p6`*gHT00*>(>Z!5AaJ>?OHgx5GUa2Bx6gB-tzgp$_rdu zT%+@6Wt<5y$ujaZ^;fpXb71~B_ov%F@B)J4Ea8Vk#U7k)05;g0u_XW6SqGBBtc?J5=vjf#-^lM(2JC zP}$R*x0QcHu19(?vL$?u0~41rj8FIFQ-3cU6{sVQQnw2#UeO->NE)_HWu~B*sAHi> z-2b2?q${g*AQdOp73V5+$#0%PE9^`7#AoL|a?d+FdsZmHLF8#)}h(3G{%6vO4FEvM*2u}rGNFzYUL6XN;W;=L-%KCL8fk&&hhqc5*IX6EyoHGTpYxNyc}%O4n;`OU80*uoY1XZaZX(2Oysz-dLx+{I@hAuSnV>`;R z^P$d0YhN}QXE}P%C;99YyK9GV1aFYus?dvi)saB?#7nVaRMcK@(Eeee0oIwhi>Oz7 zdQz+wS}m|BP$MmSmR&{p6PTI!9GqldkT>P?%oW@-BIxrkm0R0ASC+st^;ReLW{x`;4#A-Ixk6-3K%%0|${A%NTF?Xs=~ddcu< z6=FGS0SOlxgvb-Y#S2S4?ytC<{juFeL{Z&;Z>y^_u)Nf$!ks_9fDHN>D zpU-n?`z@xulk~yH6u+>a-k^?^33+;&dHSqR+>OmU+L*WAGiT#Uyr~bB?Y7|_Xv3|M zf4V%-Wr%kLJ+LzDv25ccfbPt$Pd7+-h`euUc&H zv&5X`q$z03%N}O7eB9pSqoaR&(e(6+IwKcr@vXrYRY&5XyR><Q5uC=a)knZAbAB5roh=1HrJ$I%RuC#A2BXqWBSC7`m%K=B&-OLhl0)jWP~Wmp8+r*~45o3d zaTL~k%D812kx%cPw(){5F14f;LG*0fwEhY&q1{uiSC#edL(7*8bnCz9WLaK zZ|@xC#dRj1&5C&bW+pS2JY}GT`qXt5yl|Ie3zEFnStd3+y-)E2*h3y0ctInmwxhTO zuVY^Xy9y0tO17oAL~|Oa_8mJKQBqO)K%x#?TdJ;AYjDCzD?QzM7HsV49R90N!dRIuyM236s*mZz zekR`#vZo6faa*Qk?;1DTIjH+KxBL1h)$#S_3|Vf6NpI!xmh(Pj8QK)A zrnFak5=-+C=?HVgqz%`GnFpSEH#GUgmgf2v+9%QAkcParA@P1vM%N2xDh&7~a_$c@ z?Y}V$ZHdXI;4v7($C6cs4xUj*7ZqNRQ71k~a(On$i$=W=D6Aac6sl`Zs-E@MZJl=7x z#;dis^vHx-T)AyX`B4-tR2Y@WknUogqLEgI7<}FB_0p~sZ~5RQe3&>J1D&Y9QpXbJ~+I2CH5T9EB7|8w9xCi8Q^TJXfSjmuB7g ziG!cm`rc!ymF~|2Fhn%`Qv#7DN2On(Mu&4{z!4i^tg%|`h6XXQ1kHJqQC`SwMnByr zGu|j{3nTmI+@EG%t3`TDzwoZ8=8TYE+({Rp&b;X8NawUagJ$l1iZkOAyW6(QJ(@gh zcKpp160Xwc7vEvaz%dAm*@!WjVP+m{ed#M(N5*%PBX`A#h|3e}9Nr{9myL|ki+30+ zk6FC5QqN{{NL=K{-j4E-U{H+pj+6aZJDSLvB5|yN^i#A4ZkGkzIO#2<4h>bfYZB~w zuiaBnk(9E)7eZZOEabcMnmS0?*?FE z4U?fs`xdy3>#|#z-IWZJ2)8$4pQjvMqPvsIDEL}Fj1WCc^YNvayIvRD?Jqe}@aI!a zwz@S}TtB{D-(U8&q1yVe=L4a|lX?-wNnWR$I0O;oO*vCg2}s*QsE8)IMpuPfuCvN3 zVwuOvFRRrXXhuNqu(g=v*mCSz;wqCP)kT^;rwI>YJLgSALxZa+8jpR^^JFTsS6#~N zv7|SP;}DkvcIBKB=T)U*oJgLfEb}O@=6$1W7W&5d<9NoGLC=V{ zx}t7&YA#}gQmYHuvG@vau!Pew@9L?*ZhEw;bHTH9vbyrrZ6>fQg%(7ka>8m7%(~mg zV(xaEGTC@PDT-(r7nA11MzwHioiN$vv{p=tX>YvG-KAnjY**#fYs1B;EM zd@r`^hT4^3YBfzHi8jiye=~lYG5(P;E#?;Fbh*qVdFVRzWoYVKT!cDDSPN^P)|l5} z=x*qso9(Cl3vustX%7iJ^=1m`9N1fKR<2~HrTSz$2i;Hiq`pn^K%Z>(!Ze{6{mo+~ z43xdeoqXr<2S-OdZWiH)t^P3fVHIeobczeDk?fhg>PwOakKx?qF9RD#j!s1^6C^5a zWyGgjS+1{8(VsqlcCZnJuoe3h_=e={bN3o?7ge%2ew71?x%@*u2&I>))FE;f$ zQm3CyOQ@k)ZPOg1ym1}t(-T!^xeQ%26J|NqqU%$zGu4eeZk;-%j;Iih7LPBmRh%Tp zR((?!vv*brvHMpQ8axsuX0;TaCO_PKE5UxMScH5Gu9wCZCav(%uDbP!PWm3tsfiL| zWhNOsvv74@ch`q?599q(VhPjvDL%8#-?I?$d`W}@``ZQsGpF5^aBVv`3}vHBgcoql zil05a5u5w;YLoykgH&EYl-q$~^n-aqlu(1QTM?@fdKuK!IrhP^$yVsI1?N2V zl&orkIbE}z6apiMP;n{QOx7sc{MHHH%B`MvEmoPCWC?dNvanR4?^1M9%v!AfD8pB5 zm8e^AKK#n{FQv_qg8sV4@}w4!*V&~yvVC|PR5q!sW!>>N-|s&xbzo6>ig~+ep&{e( z(z9~B9hhx&&8-2lTv784rlwI*xCL43Bjb?{#uka8^)jnyed^2=%BxjA=NI4ZT;+&2 z^InSX4~LKkzgUZdc9kqnwx>?}hL;H%H?x|j1Zl6NV`=S;+<$w|FZQf$@Y}LlACb#c zHXcXDheDHW^iQnMRXj4oBXXAw6>2%R5i6O)bt*3xPfhgiwyF#d#00*N@?Ki{19yMs zRi;NzEFL8m(RAl)j|?L3%*hOs8Rd>iTp(K4hbsR_lOR^GJO$B5DLZ_aM?MXnli$;!Z2pj0VlQ%}=mo zH@!K1bp@+eC7X}v+lJRP-RHAZIXafrF4A#tWqY<7C|ZX`%bmW65cN2g+IP_|jdE9* zZj@pc=VqexPnOaW&SK~ia=*fuJ2A;$#5WVJ(Z57Lmuyk3aZz|Qhmz7siX=Wuj=3Tu z%gNhStOxaF#Lews#z!9dSx%2^*q2^V&Ye~Bvob!qb2c@I>Ltmut(Ep81YtnCVwA5- zv-Hr_*-hOWMtxIjUK;(aj>RoBMWb!F3uyVdx6)j5sg`K?HB72nguE|JrxFGS8-+Z) zcxqW$A@6kUQ)snX?<7X@<{JI;ZLyn0CW#dvi=wFD>d(0p8c46j7y52rnmI>A`8nLF z+BWU>nJ{H?w+70hSMnT3Bv$x4h==(yF-2Ez+EX+=y14XZ#b|b-zkG?BcX@l3F>fma zE^}aT9iRM@Y0kmWZ4LH1L%)^uV!hF#XW7H3w;CuEMz3C;<=&_KvS-Ce4y&5CyUzQ$;b9E+eIgs25ym*t*eC)ECfP`26lozHjhQSgWqsYy<3*D}K zecJMO_Re3FN+nA7x)`a0EA>zi#Z~&l5#dT>07W%E+1;^dtMXZs)12n~B$w&}T<}DW z&6*r#GjQ+<9fpitE~TlI-V9Tx-eq|Pbvrinv~0rq5E&#$)Wxf&IK+z(TzBMGQ#i}} zCERMtBW)p1kmZ@-CZ#tA@q)58ZH|2k70P+Xyfx>+pQd zZ0hA#67Xcu1zxcIoBd+k z8mz54pnY}C3@SiXQ0>Qw*KR9T67|_UUKT1Zm~A~BjC1Xajj}QQ z9#KIbf5z1X2|tq5pgVLy;+81X6!zPQx6S??cAu(oFa*{ZghcRGQ$OvRZViXa%_op! zir`1e!Cd-Fsx6OCy<4}gy%T&k{%jt9JOQuBjb4kxxMO}RuLOhTnKKM;Vx`y7V9yh- z7moxMkc}`CTlcMR5mC|LV7oY^UlQA=GzrFRn2EGQlXQ%`#oCs+Mwoo>oGjgvRoWP? zu2>HR?JP&}v`7xM|kC8UKJUoi3ojy-7A;KWp6B+w=&DGY#UF{XExWXf7m#D_EhVWB0swhlO>dc=-$4Y7Opeb%deDFIzobpgv#wuP%fe&L>o1dfn1;0;eNdB9w z`k6z^53%9-eV#@+17{{11wL9kx`Q|?Cs~532D68C?;s0(P}Y){h;d)1#e`y%(?^L3 z&Gsg)D{Gg@Z{^%kni!U9y-Mm5KHn274;Q|4%M;p6KBscb%EWidiV`J>?l$iPmI8~K zt7Oczd9>q)T}gOUEV8}Z>yWjm2YZ8@6|OcupJB^4==kZFxwt+y7|+QU&W4>z&%OPm zoH;VO>(I(swi)GA9*d+v^1Tp-H+a=kUWO&nHEayFg9mr83#IAfsU_i;O0VNyJXer) zO@P#*V4<#jOTYuqe~eV0$qt5f+qy7iMKv7fdHUNio)vK`wD6?K&?0#^K2)}x)=$(y zcPxT1vY4KE?+7)COe>hDnMrKl*~#Zw-&qc~?LEB&f7x_Uv4}d8o@Y@tijurvOfxli zZ~N(UwJG|Yj|}k{q#JZkc^ztQ*>>A`r1p?{eY7H1=2 zlkr?CN}9NjPui*m?w4fCvL&r5>pAmg_?NK3_~VNcyNfI(Zjhz8k$1yF^5>KY>YnS2 z$viV37cQk4*RbHGc}GK{5#G=gdif=ZB?ZQ=PYjbd^Ia{3Sl@e^ILA{Lc$(5Y7?kkd zJys2NkH%LQd+y*a-`vXt#eSx-v(cq1bcoCE!EV8?RH`0FH_^Ojb!&_F+6w$eZWor# z0n5uU+*_s#kuPugp2A>cJ0{fC9Y(ZaScdE*&x=uQIXG`AGPki+oxzH^Moz(UT6AZJ zYF1Tie=J3vP*kyeF$509bAhOjy~#4?Bw!FF$hofYHYuD+D~33zfIgSU$h{-Ah{_O` z*-d;mBbDOIEN;A6rDMgE^|$9I{Nk%XCq(`FNzR}+2{nzH@9Bq99`+6YrUIR zC(N_4f#Wf{$6@ig?j;_*H=9jj0W6b#q{&Y{@$TtXR}L13XYW<8E0U$x==F;fKcTHZ z#jD6NCl+eExwk1nJ~1{qWB)|M(>RWN6@Ff{DmejVVL5G31jq3L2J&W{==wi7IZ@=so3U zn~RsrHHhO`u^k+*R+%g>k?cMQI9rB$yMVA}S*#g-{c2gmjf$EhE~828ToAsy9X^sg-2KlWH*vyy`Kn1Nz7L87aE7% zuG3xBoKX+A=IaxB+ISsbUEbfbCVg80_qBq(`)MgHw-}ft=OH$6tfjiOa+>rR9Lf>N zB=nj*|GK>kFJe*FX=q>44~UJNHx`5kpL>5n?g=V++>N&8hlXjI;ZiBL-_I#Yl3iKC zu;cE>L~y1lHN8p0A|WlzzGglzvfy&?`4#6g{3ofQjrpj= z0~xp9b?BX=BvM6BXBg|J&zX1k4jn)EBP>m$Fq>1-%oZ!Ii}m|i zmUAuE;Z!OHYQJ+|yr5mQQXJ4kD+Ya*XX2~&2$lFCN>g;SiEs=mPW6D*j@>ggHZGZyNhqJP3e;4Dc__dhoX@LYW<jpgVDZSlr-zPwh)<)psij--)St}!lWWM6Wx?5egl+jo_#0X zGYd5qdn<_rzLy zeS+C@xE^h9QsZc3XrG&j&+I-E_9N#O;!JaS+@p9^ruGXr-k;N$EW`v06##$zrpBAluVEQkl9W3tnb^(0oO?A#fPy< zVBcyf6PE!%q#xIQ^9n?)|2YF*$`0tbVSm>|=Q)dSuAQVu0ClAcMt$7x5Pba@a%LmK z70W5z8DdKdU(f2j)Hu%7nu*lbCq4o8ZIHLNcboArZ2BU{to(LN^rMmR4P`)OZ-8%a zoSmHieCtThJYCw#{zrTy)rqh{VdGVy0W6k`KU}z};?FkH(qKfCd}zgT+G5-`;jNwU zGhURSU7NUahW%V01itPlt~AzfS>Z3W&Y9YD#`WGIN?c(q<+w{maa2gO-CU)KNEdk< z6evoQQJbZ06t2!@YGvBcH(1LvCB&%B-1OnFU%XhiB-EY*uZw-&IZjbkw34@Wt_uY} z)v{8hA#9yp29_-22&TmhM{64NN zJKhxzz;B;%0QTbWeqs)3EA4{oZZmB>q{ZmWwjFFAB>iNUN@J{PC8u&fESpfg-WG35 z2F?|47&43@pw|)3$8T+}bG5xLJ4x4*n(%7of_R`9YuEru+c&(U{1a>jEHZA-V@Y>$ zyVtQi6*4$8`mZM2Y!3Mu7+VDKHc@Ol|`Ub$YXp2XHU`1FXEnE?$>#V@ox+VhLp${P*l&#|8|eI z1|$4>r~?Vi-5|&N(fyV6`kSiN^hi?kW2R4@dw<<_~b0fjDJR4S`U>^>)_}x4FnZuI9ks z1OVmo8vkD9|6&154uFhqh4X(ttgW;)i5GTVDM$IsexKu)VM2MT`bfl4)GivT*%KWj zDqOy#6f*lO&^!UN^h)Hx{f+MF4KPwWdQy4o9oE*HuGv}0SIpW9>;cZ;mJ1k=hzHVIT9mN!LD=(uYxwVXKIa>KYS7RX?q1B?9uqQWt=`li1!4 zwupYKOI-7MK{mF$1i) zKsuSChKIP-kSLMKi)U$`0By6mkZyPML_X#zC{iK8tDz7`1JX5SKeFgME=FKF#oAM5 zsFI3kxOlVA#^FG5(&NSGVoM`C=WqtmDrTHi(Iabi9f@~QoJ>vSxxEV~P#<1aRd zPSqtro3W`Zm1C#L_ZggK)Yl;NypPzj)=oA1>Kh_WmzM}W1bn-xvw=XQOKe1h7X;5dbNG3>b-scZKO^515O*) z>~`>rPelj#_>u3~47L!U;3QP8(N)RC*dVM_6`>-U2M!y6{^wYg1)D4}wgA(2Pk29! zCps#hC7f=yAhX2${43SoAwFYkVw0#Nt<9w;ndJtfK`RXHUwt1$p1vzt4O^-# z%d%JRTYhb){trWq>*~7;bv|i<9?Pw+uHSa)m`#T$&>v}gMT81w-*51!X~H?n2?3=m zL-Iv?6Dy%ZnB*PGUokE|sB(X}Lw)YVmr&3|nzJ&Oe9*zRYn&Z;{E-8mGEB}rQT2Lv z4v>p)NARXt_TN<90)oi-qs)J3ps&mo!-BMHPRBD#-f(uKFHHPzLqGC1?j-wde15YXf8k^Qhd|;XHGZRU+x7_*o50rn~$X=b5i~gg^XVh2o9zKsv=_ z+@`_g0zAqn=c$j#YL~F8K*u?~J~&dUJ#!}A)2Wn2uq=`nfk(Tj+Tc|Y)f}WYkZnu|F+9GG98wIJ$lhqV0NnsNpSPd}$ zU=p`T<{C5i92&h7!768u=kYf#Meg1!nx>^gwP|S+&@5u3^eF!-Ffi77Qv=eAO^>ay zaqm6y(cYel5fCdKXtCU?SUmxiH;+Ru6AcguTUL(H6}_BB4Lvfj#S~@fdth z47EZeO>tzEdmp85t!6_+7QPpVKW3QWCnG|{E6L*GN2L2-TekA8_$PM@2~%?Q{&`NH z^bBFW&L8ZHJ~trMYR8J0e_~Nii?0DyM_l%A)qyC-op*+2pZIa6 zoQLX!3_cSl7R}KrpG~Fc4tK}JzvSrMl??66m6#FL%seX|!Kjr4dN=Da&>H+={|d5) z4-B-4UD&U&wCo#6g|Hm9xiPlI&>Gz21SPmP)!(AQkdvpV2r8qALJb(FvB`m&Xz=nL zHXJ;fwr@2edIw~uxOpLX0w*n~t#tP>9}1ULGy>lP?&ytHKF~`C+^`h{)0CB+pnke9 zD=a}9qUc4rVz^RP|36WH%~5g}wl~_gn)4QhK6KTK-)HJ?M);OAhXOUn`w6zj!xc5N zI7~{+;+WnGPBvvG6+rd8)uC`BRLTzmZ&}-|QYy_@ES#kPnC{Ng|6I<@*V6${dxGAu z-+cmjF8&R{lR)fZtgUrIE)6b5MxWxe;6<8cp_WjC%u$3F_PtsB4?3Ps6uXp=!P^Jx zdR5sVW;wQnFXU0CtNx}1je#A_5lCuy9XrQY$y^f#hwMeIik2FDRE4V{6O}H_=--|; zv>?_3Vz0S3_)!SN%wxrt{Klbbl)nIM4Jm;XTJwDOStEtGtbQ7QNhQ@d(AI$ zE83P$Vz1|0Ig*MMJWby$i2rE@?j+AWMo_LwNrbobE(EdByu#aWML8=up)E?rfc%qD z!WhPFa3)y!Pm1{|5Qr8yBCb&zyT${P_C0N-+5`9)p(s1t^F<#}tIv>t%xkp+S)03E zuO=V-!_4s`Mud#^=7FPd-ir%qzEYtT=Nzc}ZwT%gA#9_0u`WE#@S!C!}BnW6i!jVi7cXO9@=%DkeSKjthA^q8$8?; zRSaLbsoxlp6M4hB-2?xB^EVT1iDUxED>*CHspyjqYeXtEylKo(w2?bX zqqVb;LRk4a)HseuD#8W#t{KsDq^-b&dcXBt4w>|vB^iYYs3>U5uSk{|+;|>{Nt4H4 z9!H)Ox6tgT)aS>1UK8O*T=wC2O*$N1w#>hWO0O|S=6}4k^P-&!?0pmQ@vhFI3I9K; zuNbtF`*ti;q;NN^Jj;|}5!FRVe_3`uT?7t?84=V76JYEOPybOV!ISS%5zz^KC|saw zmm{aZ(8^T$u`EH=edtb?<_dqhwLl9s#1W`0>8+MoImzgjWV8wYG#`~GlNa{{UJgqL z6*S^|#0NE*EjLfn{+(nux6jWOZIL}X$M zVH75;Lw^weHP`R_=NnJFdw2a4)WFSx>SF$cy#GU5Q&}W8GaJV5Njnn|4zeZ;* z-Bo}0l!$#++2+FR-xF;ZbsH#KO8OONoemO=bs7H##uZ+Du646#09oblCJNv4`{rD% zId1ka$Dd0x z=*|PMRkm0?I|Hv5-#1PXN z=v9kxV-RmlBi$5|4+4xy)nc#IjZrod5!+riOp|~Aeg8}G+1bZ1)q>}Q7>cm$&?pf+ zSOEY4000038gi4;eO2_n@)F1r3a9E7ez&WTsLd57tYK0h00000Vl?JQyf$qG%<8Cv zE^N&cw=FInZ6FfgLe(?kidkdksh-jgn~6XG0000zfMr4QcxDiFE@UKiETA_k6@OkZ zxOlY6Q#E-4ro14tz?HQKCd5DJ^<1UQDFwtXj0A!IfB%1rl{f=_85$}k`rwZN2M;yg zD`>Gm)qPC^7*qmL57c24QPwg561&%oXvrm}^Vo7yaZhBf&t1Y$(}GclpFWi6g!Ag; zmV7ybfWg94ZxJCHKI1a@1J+Lwd#Le7+TuXVX-t*juoD8AO$%>%2mZ)APGPp@W#wqv z62SJatS!j+sGFrvs2}idXk149q@B|kF)66m4uz?5;#tbH_ULHXLs#Fw2}SV|o-!VS zU_-}XSdeU7UrDP2XMqC5#;A>u5O*c{yWTPmO%?R}S%1xP_OC{FX+?|x$~)9o0#WIW z2ZeXEvW2doy)IB%W6o|YpAH%f=kWAo{vFl-2d0Pc^i9j{^nt$K_&)9d{Z^geCA=Z43DUL9Me?K0qJ*c&qOALmB_qXHm{K!$UM4) ziGzf3Ul5GwUEt=Cp(ac&9}y@_cWaeQeZXe{x1gKQ3!Pe-s7UOe`J_{MtWZ?5sl2?dTA*-GXLN)u{O}~WW+QLp2!~5(efFmjzX7f#Bo0^@ zzqzP8ed;J7sg`K}R~JRdr5u7B8N<<`H&l0!g+=wgKP9_`fQvW72`^Q7HX{x=pJv<1 zVG+lmJClDJu^v?@c&!Wzgb{k_Q4nWPQ(W8;9u#Aso!hf|E9YsJZ-;O$BOt5ZBy!V8 z3UfK5$7A-YAG|BZ%ok!Lv(kT*h)k}TEfIRLGE1j$w4C?||6WT;&(pOlS+=PQk&euA z4{WW6zHv=b>CnqBm{=}0C=LxL4O^gYk`(=M&-w(%fc8^(FVA{f_v$gIH`>>>8$-jH z+D=E$CX?PivG3L?HBr?}_rMy8x59?iB$2ua=U7=Pvwmbi=*gNkp#eDVJHtwnumPAk zoTUO>BjxWWL7xqq0k_iaWY25qvbKh4Jmb)V36Fp#MH=>9rvo_zjc1efgZW?7dvKSh z5? z(_`1~+yT4rbSwW+P}57JEFz>H%~=w7 zxS;u3UEgnSKF4@q$j3!`Q>BT0yWPc$qn{i+^lT>aS)Fe4oH_y zw@JqHdg?OOUhT^$mE@ic0pOH)EpYF*j5^9yfrW7qK3zL;i4LE>L#?deI0r-CaidB#!t`fD6w!d)FSJ58vjc%$8a z$>Y1K&F&B=!l#R1p5@u(M)jM)P9b>E{~-A<8D#`%J)mh(H=(u@al+vHb~O5}yp6<>|!CQn2w7|2~1N|=p$>oukq7~~F2sHv4YMK6BqgpCsk zu>ue%bRPd6m4Lw3pK0b3s*sZFF#Peen%}(Qaj}i+C9xb{<((_1qLd4-M(}H}wN7x3 zHMA`E|1ac}S#N&U5osK;2`z!;pifFuY8J9Rqp9He8wK3vR%vl1jr6ZQT9JlQk+Iz7 z@tx4pvB2L27NDHzJ_y<{Ns;<~USqQ%$rMgJgr(`M5u8|`E*~Bmv&l!ytDvV%QFwiM zQvTDOH_e`Lp2E&=5&e*7#DVcoi1PbjJ-aDNu2?x9lb+~GhAh;%oMNQCgk^vPQ#FiX z$j%#INX!trL&LfuH`$fiDrbl-w|84x)awe}EE~qqNJlL#aq{`Vl!Stx(d;Pl1;Nc# zp(@#%ZG|@o{%bLa{++Z^-j91Kn|T#@)j8GJr~tYRa|pmFecNm2aa5@;AIq-|L~?Oi zZLlu6%O}`cZXAo@-%%q(^2^dN$86tZ?3f6m&h8JSG!BYVecK=kHQ4^qU5Mu4bDh7Wm{hneIpZ@$p74UJiIVD$Z(AB6KVr z^N69VrDA-~V-|C;4S=F)tC;NB)D0W*5BZG^<<8uz{Emn( zqb{H=#?mGO=DT|b5_i4?U(&J#`bUK2(&h?fIWTV;+Ry=(RFH(IXj_wW^ zr-A%S^>vlavbn5Cvp;TjOC{Ynd#oCTlnO^SIK8nJU#QtGRCMIvfZE>^{b^|)k(OkZ z8ca?-$li2(6e^e$lNK%U7R?46s_9t5jr~ z>n0fnq~0h90h@V>`BMRv)c%EhjG>Gsx&#TZ_Fj>KA!}r8YR=n z5$R%P$cz+E=1Nz09FEQ7E}DaaDALLS5)D=^YmFVjbPNLY2@$M`17~A0WOD*h1i@3*dH|tL)7*hkOFSM;Fll6 z=c$U-caP!O6|k2=OMLi-&OJH?1m^9Ot9$xE5A%}ur&AFGl6#q%Guq4y!u%{p6Jzn6 zpJ3fu+#8En{`uiNzRX3Yq(YU?cCG^Iu27qTn*47RVfb3`Rwy(CJ>lu48Pt9m^mNJ< zK@uRi%uAfoc#fC*HhFRRi4}&OIv11hq}ZU*TI%*N&lcm~F^vBVg2ndsQRCsuRm;$GTf+)ZLuyGT ziAT_6aNjmyRzpF$f~D@llaHc0>Co4Z4N>!z(7A5TYJv*Jp+aCT6F&yT)qx|B(hOiU z!=11(+;;KP`kdI3JmsFfy}E}L3N&_;RGPky$n=OW^MrfuCA{JEXdAKt7Bni1Zre`) zvqrN2MbQq=iYrmehJ%8mH_&vey)<11E}8x?(>Tk}$w0VEK0W=7#K@T#YY^6r-hM2= z?GSRbb3S1@%Cxi5#@NXIIpBG>9NHwKZ1Kd7dwW@mOWdVq(}&(ShY-Y*$Z4%r?G!Br z*L^50^jSb^?kv*Vp9U;$LyW^Oh*nK{L<{!(u|wNPX()heRiTM z$q)JgB$m^l$S}jA+np3C|4&Z(Q-&0O{mrTn*@yps|9{#Rmm;qoGvHW>Ajdf@ zhXm(AG7_Ww4bml>w(uPe*ucsH_>^aC65N~nccU^l-1H>c3vEodZ7&BcC)(9sW@!Aa zCtny4+W5D|0vq@vbICU97Sq72F|~Da7NI3ey(Pk@Z!nj*;)xOw7+K zYx>LDheI$r!SA0ByTq17W=voNcR5Mm*Ib0LGU!N7e=odL+|m#&SU}Y@BRpbTyy<#& z7=A$~Zu|WaRI9$B6v?(1->j@1OoVc)H}j5AD|^IiOWlpC`Av;Bsilyxb@C*dSep0m z!5E=X-T{jBMpgX~Rs8@NM7#uxpVipP zRRYDj6@s%4gu7okIBXWUkwH7bUxE4Y(^%15^=F;nTbG_F-&YZi2yUM9RVCkii`>YW8YzO@`tBrS>$#h# z>oh`F>=_-I5Y>))qVOaIRQBO+l#fSyV@al>>8jgQw`g>}QW-r-plq{Fg(&ERy#X^@ ziAhiSojSz)o5(%-{kjx>zNCOvk10MY=OE~BjtoU@Yjad>?eX&qppkSaE7$z?b9ATL zz_EJqkp8i?0Cf#uaED;Q!8@FRu3?G(fIxis5bRCu_)%R9AYiXpqY+t}c z#cZ+LRvXgX;K4ypBR;@CvT@1aI;=(&kK8R_{k8^bmQ#%o$Zd#v%kr60$Csba5;j&e zHqpmhP#CYhQS_AL5IBR>E}m(xL*C>EW1184z!ES(vC)!!YZ7LfRl}y(xY5(YX5+sM z%XL&iVvgWE3p}5z$6r$e_+M}ZSB};=PR1)Tmc9T9V;u$lMKl~!XMG|jK zbT}vwrO;VbDDIy}M5maIi&?-3DDy#~zyhI4o4nq9)H5*tR9L$MHbe>O0Tn;ju6>sINOg)yAR0T; zXh2NPEsjOCA@$ZzVah7;nc6?LJBfrqjS3H)^Z>T@&SN0W;hkqSH*4#MJ=wHZ{t?*~ z1UYK}%g?DaekKqKxh;Za2Y+Jota?|TGaz4}evO%uk+9_1jYv0dqLF+&LeW~fYpg=g z4Xk%b&LC*`TzfMOUtl;;?Hl;E@&!ye;lmUDZyo;pTOzM3S8cH*feSzevz0J}wEQS} z8CS+>0=%cN%V?DN`grxxd33&K68C9b79wP66s0v0PCnztkjp@#7%psYn-QT7QY=vc%Qn_b09kmN9SJ!{7fe<(5g4G#*H|sE4b? ztiZ;Ze0 z=__v+0=)r{5jNLDiAsPNVf}Niky_NZCM==&kxq(%wSx`zP*xb1joco3C0s);v8}^L z+;>Rc782jx7{eVZ2 z2l2?ceeV&l>$KZ|8c3}Ki?I$7g1sZRmpCQ&f@7hDz`8FvugKGrhE;zKM;YhLOa(`v z*M>;|J5CHH)x85DUe~6+2V?TQDd<*-r%LS~7dqM#t7@z38S<`0Tb}NA?1E??c2st` z&fZ2G>gg+XR&6$J1eZAQOltfEb@f3(Q0dYD{1ww)qjgb6P#LB*y(pbdQkOcCEVP>u zl=P;=h(Z1$m(n6M9{y-YgN9dVO|56oQkI9qzq+g_(PEMi!kST;TAW`tUnNgbT>nnQ z52NvOX$Oq|I&p`UMcHO_P7Y=+O1eVffUqWO^}{Rk3$Y?X$|>ZHtZXWA(JUZ_hd*0G zkp^#B=mYT~e7X0MJ*gENzVszIJELaK$a~xo96_tu5Q|Wx4M#2@Y_l|J*`jJz&hIWk z9!Z0#nR_!^Lx72obSHhY4z+(CK-_j>JjTj+f)T%iRZfagm!gMc&5fPkFMt8dvo`iM zX{Pw94pZb~q}fN|XilQ)id8~KbX%S99{MFT*eUNe2G9ioz)FBX#)8VSs3eiYG7vg$ zhN0qik6UQK=y3#Fio?yI6!Wj*|2a#Qkhun|gu4lhXn?~p_UwR0OC2ClS=V-Xg{u{; zPXV9^)<5p(zY%+mq@-_fM`!m*YZh`_e8=v2qgn%MoHu1TT0YhqR{Uy7NUlgr6}_gM zKRO;`<(PW)G{=SjMHRjOGks%6ZKv-ynf(H%|7cE!UI;-!N>x07Bc5~V&ea866!l-H zm^Q%?-)p2Tzz5}b+>FBLuTrU|2Y8=@`%J^O<%b1+*LnjX^ zQvl)6Ui|@1MCO%iUVr|v+{b1xE!}q4XT=nU_T7?7+f!RjJtcC{QSkC&a649cNvn{3 z_#inO%G7>gfjuQPBjUz96XX`y&g=KOFD*u`No0F8Ixsezr}TI=A*=E|?s9(M>{VJg z_j)JjtK^w75|-r=Lo|AwUSg8~R%jcZumco8-LXW0HS_B`T3<%l;D%5hzvBWMkNFr? zBS$j}fLD!C(*wxSh>2IcVca+jeB$3}4fPyS^+Qh9=#kEsuEoaVo~%;61=l!KrRdOE z)RtPrOgSMn?QKPZ`q{Fs)#&5f`FYXde)Joc#n{oz&#QYTDN5HY_KMY7ZEuLiS&t?m zh{}1d{oON`U(}0?zKU@>WDK%#@__xAXvTOecCP#fFODer90!5Ym12UwlXI2xSekyk zo&8SM5;8WusWAnXfih5bzwsd1*j9^ zb^w^5{O-1;_-~Z~cqzz`1$s5X(=(ms2$e0)#y}4Xh&d1bbAdS|@eNb1wx%?4qi|P< ziZuu~AeSAr$(l?T4L?P#EK(tFc*OW2*VYu3O1O6#jFWqVewj=w)J$$Q%1epsRrecf zSmGMP{|?)|jcZ7LX?{%E&mY=C%>LXFTf+$gv)u%`ndid#eWE~KqpzUga*G9v<+z|X zOj5IoiFO5$yi}Zn$(T&-##Zk^BE?I;p7;PfDSFbn)|be4GK%nN2=qPwF;~a(L&zB; z!BZM<;zKFq8l;N(VOG z=_bI3V=JNvIuJTi!ItcpBI~5o^P(!yH2+)sQzTfQ5Hg=$OF>Q_OrJZ4?5YFBmC{<& zYBBgWzL*g9Ia{%(aMBacw+CWS^wQRU$F0*1(w8sA%qrnK9;5A=i0Q^8V$bMMLXx1f z3g{gPXQRSO(06?-YJlEAGGBMoU~)um)xM_zFGR&Xuv$l1C_sM0MT=GLC<5&_s!;^; z1l|XrjrU>R$wc#pQ{}nZ5T2qIoP?zSY47Ay`n>bM2a@;kihZ1CDewI8`p?WsZ+0Y4 z!8Xz$-gqP;l0JB>U8`NsonTRfj_jHguW{hjGSkfZKrT=F3IwL7F&^4-1)$3k^y%zF zSSRbQ#*0V2t8y(E=%tuSWJzN5Fw=7j>e>X?c8QPcd0lS1&W8T0kNieN*i1cNJ2*d} zh2Am#daa*kt`od6*QcwDXh~*6bYO~Szdk65YV4{;2j5KKJt==QbJIwXacHm`z# zTkoaJWEZ6WfBRi9Z8C@it~_jR>&uB=QmmJZKR$fHS#MJ~0oaTt?hFj9&6rW_Ey8Bw zkRVpmt1<2`yjj7kLBE7{>!T^d68_|0+ZMCD+O1~?@^4es`W9$8BwB&8&VA0llcP{7 zXN~ken)N_bR%dtV{{wnJ;yc1f=MP2sC6uYU=L9*CQS20=i6F(cPFlRl^8kiD!^pLP z@MwJilrUh$^*wdKeEnql^k?V6jr3Soz(PA;UF0ZzO7h<=3`+txE!Y85{LhK|NE2SDZxH-{St-E#a7NwOSzp8WOXYB6Kuyz>A zB^g+k;cRujyPXBk{>mp)LgWKYALU@Jhc^=m&Z=(K9T!{IC-=47*8$J?laUOpdIyc& zXD&+?^cb;is`0lFfxW_M4xl)eXr^!3PhU{t`|+@FHrTYjK>RBZU8@pHmK9K+{qD{i zCXf|eHHQRu|2N7N&`kpoI2KZ8nP>lH<&}<>D_E`qdn%RqIu85@NF*bce7J>LJ$noP zbUJX^b#=+NS>&*PGaw_VE2`UMW-F8@pC^NB@$5ApHvqe2TkdB|0%ddRoLv~jefr&z z%L7&fv--NT5k#6GR#p_>w_qO&Q(sMTb^-r+*3P(+8(CHND(+@`e5io>bESZv#z_x- z@lk~x>t+)%r3Hx@F!jMweqfZg&;p)V2%!ehWatNH*zsA0D1NwOZpswks3j|P9Hm{@ zX-%U-b1!BE=B6CC9z1q={jdz}3vgjiTjA?v|4J_-AG5)Bu5p%$It1u!u{G(pdKEgmx>O_@VS#uohEdw>Gl@LXMVrtUc?WtC)@Ep&)Aim zQjC&NTi72~rvG=Zqcr=F$rt+iTHIq%&u&4ibIGAj4XwmGi+Epl;nzX?$zY=fXqZAv zGQ9ePD?M!dtXk(@PFz?^5eqoPBRi53)y$iaxqZ3gZe9xts$M5Ct}0JM=CBu+!Z(65 z>C{wn7ZQ3yubt=B7z4`|WsT^Z|7=B1xK`Ce#jc^yK2GdCS0FF{D?1V!HxwEeu?1Y! zKa+$&ZjMfazlXT11B;~%<{Z2*&<>;uq_C4L-?+J=XIlR`j!~ElTa(1*S4ZT;dBI6M z+8|lQK%jIsk(Xl(>RMmq^roW{cDhZgIt*IKNU_TEF6}CP6_&vPJ z^m(xg&=oWVzq}!7&jFcNg%Mf%Zs#QRiGAjkRYhefm z;7boN^HmKs`2H}(TEa7FvF}x_q-l$UJJW4g7LZUk8W1TM1_?U)PH2KMvtn>E{ z8I4wl!)g1*O(#J1MlPX^Pqd`r`WQd(vH>~LXo&c<5)~Mv zXe8DPGZT?MIpXa;%$Sn^BKoC6X|}S5w}ml^$+#GJR=5(S3|reL`q?El>{8q|Eu*13 zJT)Wg36y!yXxk3vZb%`Jf|!i^uz#M5{2ug))+NdPxw2@=`W*a>Al|hNVe83rilOY% z3R41mflhnGWYzfY{tL7DjJ@(fE;q__7!VR`<)Hz6zGA9LscY-4ULi-@jd2|&Hjy={ zp3q>C;Ye#(sM83pDq-JV^jz`&AvmN<_x4I6&u(Ia1&Z!i?-QuxAUcxfQ57P-c}FIT zIkjLjfw{ar91FSd_#3*~XBkfu!Si6<>wUVrNgN;_qt2~)6ED8W8)DKHkri&J*ONT? zFP_hz7wm^0mtKDdZn3Z369`siouU&oy-s|2+vq+V6YeU^Hx6NxLWCAwcODD?7+%?C zy!;S)WV(y;tnawM!;>Hd$RD!5#KsoJtA+q>MF35Bb5W}r0 zVXh)iUV6iRPw3A-@9JHx5d>8u2u3{}NBQSpaf!g7P^w&{l}7`J)*0>~wR)pGQY}vM z`tmU9{yakFZ$q6+1Y37g2NB4?m*WND@-?DpYE zwno5|rqx>&D@`(rPOg8SAw=Xi2uQpOM(6e$ZZ5=2U~PVTS8(n_+e?mJoVLYAiDx*) z+9?QB$%5jh9Ht=eX*tG+=2I=c$qdGD=)!WAa?}mH=({~wMrT`bPtntZ$mb^xw%Uqmtb(P9e$V+CfF(#FS2<&ClYH25@8wd z{PW264amtPo)<(ibOee_Y$Su<;o2Nc;qMp%Q#<{pZ2(BsLK-*7WEd{IJzlt{C>buY zkt`B@JLzF3IwQvVoDDRbrgU$l@P)O!U5+qvzyEfLDMPTPnW!OWxIkth3Zb@gjZWdH z-qk=@ePQRH!~OvkVd+EGa_eYlK7I_KBVNiCd4k85CrtuYwp#l`rdK!m^D4uHbVLwSdcUGvIxPEgn+l1U_zNhFt)@v0QbmhdqC z;`Xrl_*gY*-9r#L6(Pq_G~-{}uO|}>^`+*TMzOB=&dX&0=$aoJS5RlG-ua#d z&76K!r@?y+CjIYo49doM~2E3oHE7OG$ zLlrvUQM#H48wZf*dA2k!8c}3b=WjWNZ!iy$wwpjgng48SBuh|{8@us9_r_&&g^IiH zC2H2-<+A&X_lPC1jqBLOtISB6I$1zV4p^`SvryJGdpNmQlD?}4t*zKW8(bhp#T0#Q zPjZQ_1z>C79`h!WL)Wby4CjVj6rnzx`WI7fe7;fCF_A`#D>;}<%jPT$ z&XBAKu)h9vNU1yaJ2LH{H@U^^ZxiLbW8UGGD(D5j)QqKt;i!Wf?}Z7;ez2I>P-39e5qdR`>fT5KWsH#|1fo+eub!y zbXfx86{PL@L_-(rBH!NrB$?J5^?v$d@R~^KVArsiCuOop{JWi@K@=`j7&=BG)JD4E z@OQi;kL%fCPwNhvVLH@-Px~1^xDb=NI*~k$8QLQ7LF#$=7vv!P^@^u1htN#gwZ(t2 zy$$4eLBB=GD>_Uo$R#UJ>11b~{iH>AJ)$9OjDAh@1wQ$F*kse7;;WL@XBV%!A~?I# zKzZUc@U%m2MI!Bj7;4F)Jypn&Mn}zx^ zH&Bae{Q2K-<8>D@ZcbSGjow7H$hPL%Z`EZv&cwa@0jFvSnUO0`eMft0haK8JEKWwz z7vZ3IcQid{#_(^UH!X3L^b^Uj2X&nHx!oX}E85i6evE3=uR@F7ofE9Gewk-0Yw9h5 zJ+rT2@R+K(%7O|k-TNF9B{P`8xG6Q6or16Fge9?kAPSo6gAdfqrzK~44d{IOPZC%9 zU}t_D#_Rs&{M?^#FB@pN5c5_yWEc2R{-Il20TqAc`+POs2K!CrmAsCY`H+!|iAGl_ zBx}umpS@E0JGxw^qzgdQ>gvxD%zp<^z3m)>4A?W0TiFOGp(A5C(B3V7U-;F%x`^k{ zdL!=xsvJs9{8~K^Pwyav-;LVG&i_avdt3%SKid#$eVYocs^Px`Tn zEuXF>nOo5~DEn!rxpt-Y2-ja>;w9Rl8b>oej;JdxBT&*Z?fDnWT<3zLL)n?XLtjs* z(s+5$+PUR0Y)(t?r|2=geP9czmWbYEsx>k7g@ZUYnV@b;_!zXz#)NXV8KXHIbQB)r z)p{5b+2NA%=08bc#C)(IUYqp}vQ8$1mamu7;dIFwr=&Skj-q_BRpw0y#|*iObpQpW z9^mM-hWL9_b72MZZ%&&R^0MGa{2!y^OEvkgV>p^}Q+K29ZZa65gZbS-Y{@I`(3D{E zswjEoq}~_M)ppPg$fB|{oK0008HnWpZ5J2|xe!Fm%oH;vQRwWcuS7Yt8c@W6K}Oj& zb!v;#dpJSKrE{*J0%ZbL16Z_t&+0@MlkU_NT{2RgTSABXHcm&yKkSiYH7+aA;wMyiaBdGic^0+Qz*1sVtmov`L>42m=D>hm|F{JP5WPN%X=E+T_P!) zEGmEe2bWx2vnfz zdTChc+x8I*TYhmrR_%+7^qff*Ux;8IBt&6#&H?O@`Un2=za4n(R!{gNE?|Lf+{&q` z2jk^1tFS}XRT_8W2}~m!&jwv^4cVY>GWYPJ@)+YMgpw&0!W_Xgohx}T?3OVyAxF}< zy%z4fzd@|_C?<=eSrshz$^)`JX20LhZ z<$;X}x9wRmVc}srmp{Y24s4z{bR?6=52fo#>TuMAlq$kek_8&`Rgi0wA4hub(JAr& z9plTK9I9nzex$+skZGi3n7sj@-}9k|U>{1F{6j=cf~zlp$D@#BsYx{v#?%XBaK*(+ zuuMSTCIT#Zax7z-xdK=C^Wu*y>cyvO8K)L+2NEKhCsc+-9nVsu$T zV1bZspzkXoJ_bMV#8D`9RE7O-!;?$=W;!&mQg-?bY1@7Nm4%j33+3`eld6)aNZx=- z3O8S0;Ng7gF7((&kQEJp)zPfC^s{A< zK~Nha@rAqD*4^hfhyqv%En~=JW+GiZ3Y2;BZ31%;w^8tCoz%2=1+B{=MjBNHKJ(>>o-L2**c0Aq3wk6Cv> zAhQs;gt5wEx9%JX{tHLXAE^tSfsz9*{lS2tLDrO;%j0l@SO=emB~(+wA2~I2xLC-T z2?22zy{GepWk41l93(Q8k(M92@zPen5n6R7e>+5yo}=SPy_`7Tkv5d5B~u|3LhI;wrrT zRn#)QYXUi`j#yOjPBc@Sjp0?r9cSkdQc>;|eb6!Izx@r3S8eKn-pUnso-}f#wg3{w7*(6Ry~%@*g4>v4p81tv|EVg z(9WXZNGW%>em>g|*FyvYF>$MTQ#1n$@Q7~!6@USEbGv&X@{o|7-VHnbCJJ{_B+?x; zP=J?@Sn&T&P0v9FZz6M{h{;1Nb{T-F`URb8VS!K}Qq@lchG~j|Cy>k=5ci=btTSfU z^}te`vl*XWzV;GSxKvS7Mm3|&Jk#f~Vx(w(^a(wKAz4lfr>#TL?XV2j{V+d`WuhrU*hxHl;;SzGd;3A0t?8Vj|tg_?R2_!aSW~ zTTEV~vEZ#w>brXzmH2y!H{D{Td0p@e8qSLlgHcG z#8Gh$Ofdtl!EaYnKqk|}6BmtQJ$swK{N@*IuyU?AmS_XJhF+ zdOuuPgEkLg_Loi4IRL+`^PJgv-ZiR?u02JbIGVPsb_p3fKuFNv%&V+_`_NXP>h(qc zfB$jshdx|gU(rq{2GI-RvM=jqCRR4E9?`*SURKtyI18@>B+Q>Y!e>^RB>Afcn4ppq zRs6ITd5DDw%xdLK`&S8`Vh@HF`){!0wP2p9;u!K*_5z0*Z#`F{NM}11C&SQXlKiNz zV-f->S{+YRh2Hd{QX*?wzQZIjNV>;z=`kGmLzA1@WNWruS-mJV;$tPaO6*m3CNtdS z)a7Ro0A-*MGta(2Bg_OLsIq@17gU_t{?$UI-X3)hN_CM8TNx_*rh#tata=)}SMio# zC=*X>DP*K9W9y2?1P>Y@s}c4if?F})&pj6hPDM`!Ll0=oQr12p5gMxg8C2Ul;7~_x z;Pn=q5}EBfN0nX zc{DN4cmG(3614wOuERK(OJpI!8NWiP$%xnf5o3y$aGMu;Ykck5Fv7i&9 zT<%KOPEW}~9il(RIC{HmIvQ0eNGL}xnPW?KkgvB@`dbj@U452v$Sv>BCY?M!=wERm z0VY7HE*}S&D0HY45fKj0IQ4SH@FVWqCk-QW+7vwczXL7`a$7%DlcT6@;N?agZQ zs~t(AF?WEik9i|&a<8ubf8H-FOvd5|*xFi1Nng^jK_Ub<&}KaI`JDCa{O5Xr4skf` z2jY(YbsWMg0NG!RBo;Uy{tM~eYF-zDw_q7}pZSp-q3~DNTCAxVKmQOQh4;QOkGqY2 zYJl9a0MrGwUj0Fy*L_+zoUqJ+z;kSur!hn-_#gNC4}MJ={g&J9|1V5*SO|7^W-xv( z_+}-0i>f*>+AIin`&j5!MrZfHce(;QS%S7#k+)`l;-EeGEL2D?VwR2^tkRI#?27uv=N&xjLk!mAFdW9FI5b2kI&9?sk6^@bK(a(u}K zV>Qxd;>e$Nnqz7D-9>A}1HP&tA9WYYe4}Z{)6-F1)JPOicj%OF$hC_(u9QPq*}a^D zTCx3kXMh&xkB4iw4P8u|IRsf>$OeVoeF)zFXnH03SB+7`q0BbS>M$>r(lKfOFlz)| zzZIK`I#VWQHAcS z-Z-3?->}-{E~9#w&|v!S|9{|^2AxhbtzIW(DxuTrPCE z!ag+hMKb_>!z%N|#)oQ1l#jhz(*dtb9oxl!@u{8_p81-jSqVQ_;x#v6Y58!ZN^ecz@Wjy9!j`IheHiwl#R!_i(J$GUIqXCNnc zjzl}}MU%$ex+=_4ZzER^jbeZ_2eRZ6$3N84#+FX%ZjJ? z0=&>GNX2fSjTYPf;KT43rV&-oKj!1k8d_}zUz$G({g$#80K~okD;^HuF%3Q^I$N7r zPIO-_z7^~slsIO`msTaHl|T3ZC&Y42qJ!}bVj1-`V#y&|dV8gm2pMR<-;zT+yiZEw z?@zhTP`wbxV)xUvRI0Pea8P%eT4eDoXg0X06D9p2TZI0Wf1qSmbc}hEVn-4$JZX;f zb`lpuaO~splK*tCNGx5^k5p<9diLm@Xv2ocbuKncP;65 z2aLV2jb>J}FQw!5_7(ejw7#yQzi(R@ey+^FS6jcUs4vyn79Y2eEyp6tE>?C z2Nvh7A5BlZUlTKFNV(gz-Jb3NQ&}MHqJ@^uQ(q=Dp4C&1|8enuoO+PSz>(+aB4)}2 zCkwRoTvO{{1D1uNo{@dq%Hl&u2m=i;OFh5?Y{AZG#Ijs79yn*0LR=zu1%C3%0|&m3 zT7>l%(MvS*F3{wKX6te{tTmiF> zs3W(Ufog-}tQBt2|9vF`Y% z-eoV(y3E2!VNksyN!URXvfy7|^jNY0wuvQz-@?v3!5<0ap-gP_wawF6814++NiO@@ zb&=(jl~r|0PDv`CcLi0dLiczo`zzc&_)!@;Li7N|6;+oU1-J4(oo6R)#{!YLtwaey zdYQQS88S0x^;lJSrHFrq)auLvQLI+;;S1?PBfM-PyI>?ZUNdH*D4--%U)>!RaU00O zZ-lgx<}yn(k*=AMTnDAw;&7+0uV&aBiS9t3!fiai{{#rri1CFMLckq18?6l%O@{a! zN~G@{s@YDI`wA?&8=O0Q`E&2=O|IrEi7=vk( zT447GQ7aO`=)B8BesC2kEeB^B>NQ_U9{alO2?TCKFv4SP)85TVb>(kQ<7KjN_<7?C z&|PvjyEbJpQGGSnGX&Z%vPky7ZQSWW7H)3-oNMhJu?d8&<|U~9nnB<&A2%6^ zrSgfPL9{hv7hyjnjp7B?a7#44J~|Xh$yw{cUlu4;+G1O%yzooJE2pQ|IQ+_nQuhm5 zhd_($&HrP@{8MhNz)X6_v~i)@GPqA#sKG6YdqGZ};pGYP?&R;^_tFBSnoCN+=WuNW z^0@yth*epl1N&(^?NRl7hmff=j%t^9Fn6$w9jPQ)?D!q~_lUFsuQ0^=H zGQiCGNP=1n)upoO2cQz2FZiJd)(}%x0+--7Rxt(&;ZPa9!GAZ{)$pJ4bgln$Y69u$ zgDN0WRTkAv(zPu}>zFM{|9PZH3!))-F3Blc_2QGh^UA2dePqPz42WQB2%&)= z6`fzXs($qM=4yV+^e(t!MVqxt9FKNktpP#|B%5zZAJ;B-ndaCX!LVD*tiIWFRHYaOIUy!5WeED{}~M%KJx+8tIqMCe)P07VNtTkc?)1=N3d z{wco{v-WE3v_gUb=*!jsiQk?cMH^tfW+O-$vAZUj;WT{}@m!FPbKlVYRVlZX|9?g6 z-&JClH0IooQ9bStz!sTG9EOy+0>+`%&Zqj77~Jbs5)Qqr3&UDFv2Gt>8n1ymf&594 zH$Wt;lO0n$pHa@(R{8kLsvLsHpN7Y4?HB6UrJ8G74FzNRMrV{a$-{E>OuU9@scHWO zQ8OWNv6#7q6PJEdVAogUbp`Z-D43`k{KK4hu0kDPk?UXPB-miyUCoG0B z$-QXE__#I8)zg!DPp8zJSV&~P)WNJl2CrO~-`gf_`qhqYo0UPT17QO;w zYOE_j4=`^I_EzyGY*YwC;YkF`6v)^*TBtAF-`{U(=7!iZJ0c$~w?zV$`s>1hFuaEQ zWSzOEkA~PF>r?nKfi9_G`j5^XsSI^3ZHCrk!ybaKbhDHD8Z2IQR`GmtH}+Z6f&YKj zJx>os4J)U6cMwpE4lovUQ{gid$YoJ|x~cVd43?hT(ZSnZJR-4PpF4y-AoQ$ zlGdPQ5nU@E(H`WBC~YYW0GPjd`)OWXFDRc~ULXg~T?E-WC;A-1K5ORW$_12I6lSjQR|zIwdFfCpc;w zKyn@`p~AW%^Cf24s#>c%BFMj9&~5St3botGZBrQKi`PSHNsr#sw~jei?aXk3W>Yc@ z3jZ#U-HBGJjJJ@AT^b9p+}BM7+k5>3Zz^XlDsS7qs&Lp-B(#jG+f=wn1QoJ?{nm7e z_5B%$6bp)JU~G}2gtf#p17vlL=-}+->!Bj^Fq$MaYy5+lNQ7n;nkm2c zsYMavTewI$@V^5?&)SFenX?>%4u~WYd!~=Dv3sP=0Ofb~Ki0l4+vW*_AiB#VrIKD8 z?chnkvCxFzay*F}nptusjp|vS#kH6}(#xx%0-!%rpTaL}6Ul9}xYhuXBVv$SogJ_WGH65h zdo9UE$I+Y)K{#37Ut5Y?jgYzH@1pE*mY!tPN+;d_fB$$z^NYF~(Ad2u882r_(%&Iw z;>p>sD2VgqiPj@-eIP^d@_V8CDpujU&Xo2_Jd+kkn{e)w|5AI0;d_+UU&<{ z>&C*Lu{*_TRI6))Vq@Rqsoe>7>_Yqt_6c_Ja2ifSBYnWT$z}Jhq-oAW>w3S=PMTpA zsPqmh?|lMO!Fm=d1+CSslCxSQVxCuj(uMTVv%=M7qt$_Cy*uLis_WTzs-h|syO(WJ|X1Z31GTdRpLGUTkczt8O zS)*U}I~7cZ*v&1SwaBJFN>Ix{W`0d?6F@fE$`|aQj`80$jod=yieN1*DQ*yk+s_{n zpAfUZCuKR2ABiTH01nNDwDK!#3@<$q1s%;G)Y`y0fWT1HRWHaf8ZJS;J~YANGsHk% zAnMKPG#xZnd4X_yLF}UwXrxSKya7?@;Ai++8SS*E!4hYAQ zESBM({}8w40K|&%b#aaX{-IsAUGL3(s^Zr@Qb_+VLIfDhSJ*yYjD0r;l&q1$Gt9Rk zns@@7E5qq3ivFd*-IpT%{r?7U#jO0SNOzZDj9fpLS9A1Oqt+tRsbBRlk2C^wL>rl5 zKFfE^2X~8jK7b)GwW;_3Cp}{ZY?sT(`Y-h-cF(0!4N_c-tw-p+VYQ&2umKrC_3bo~ z8(blvlAce9!4^wSN_EZVOs|n4;x+yvQ0SS3i^X|CGqHjxZN^q?>CQEJG&ow4Zn0TE z$?;=Z+?U8no#}ti1cJiQgl}UQbe(hw9@0}^xWrnsOIciZPWrAc4sIw^0_cJ~Epm5l0m$KNrZvcs-!6QB%oCR@$30B27i@+GcO; zR$gvvmcC&?eHn7Pzq;%;VO?{LV0Jq2!@S-NalwsaxVuqPdTIA@laI{=;Y7R6DGr9d>Kka- zB=d%=NGu+e%hq6p62C znio<*9=YO9<^xwM94bH@9Nc?i=aB^}-}8K_rRUkqH3K#9f+Q+uhXqISWNfOuH{gk~ zkXXMb;i+@68%4rYSm_-4#TQ2Gk|et99=KJ0tGDB}foRVA6^fjJ#ocGv{-D1~d?V0R z<->;0_*G-j@?7x-@f3quCy+EVEu$Jd*NZ$j3gIVuE?eihB4fsZh?I&SPjmA1KFwa9 z(+k5xAN)JoZDj8I7pq5%I9;>V#KG?Wc9owr~aF=ZEulMDG}deRVN zXo}bZ&$G>&fEw?nKVXak2||N9D!Lwjue(01YquF(Y)2a@}(f71)N3yQK&=XdgOsFj;wpvNh7zWiSGgcLwROi zyBkdc<$2biK(BqH1;+N*x4V8wR;1Rp)+(;VF_m7??Zh*q9ku#+Z|-~}Ju9{Y7_fcU zpsYcpr3Jz+$F(;`CL)0fO00lw{;0u%!%#L-LA!62D(^R^xW%fB%H{4=scOtG+uuLN zM}*l&1VEv#Q@zI2Q>9AKEADW^O7fLc8UZJ9`OW#N1A8FVB^n??EmtcYC|)W7wV+S0 zaWiR0TKY&7O?s9*Y`lyzJ?M_xq6R3)*_-vps&RyQMmOB=E{K}3hlKw0mrd#1W zUWwE3!~ot8UIR1E58t`X7w)$Pff){lw~95pz7^hoikIlX73|nV?6%H{56ir{A%5(> zTm59C@r9QrPFgn^pF<@v4a3vO66XDmSaJp)zAf~ijfXNm$&zc${o*aONGfuM#Rk(_ zt+JTmO^L6MwdwFrV((4jf{X$BGi1s)X5_tWJ{lw`ucLvQ8j=v7wIQ=HM|54?S<2@VFj@NV@5E_`XB>qFRc`5ClImFFZ z_i{rSqrJ(;-uy1s>YgWtIMi>li|f~n_FHYpjNnRMjR`tO51;9o${S+}D&K|LgDTP) zkaoblyZi}&K|Mmy5}4J#{}?Fr(;(xjfRYmvRH?GycAO`6VuKd2jMX3DW}iew=KK)@QCTLCR+W)j?* ziH->o%ZiW~XlzZcXVU|{xyI6eMfn3EJh$xvwmK;qhNh@_Cc`x^M2l$Pt=BXnlG{B+ zH!nrM>nfeU$8|vZH}7HCu@8kbY&H&k0yES|GaCO}jp-V*HEI7Ph~O2SAw(TL!y-wZRy`-AmBlU>4w!aj8N2)qqSA=Bf zMm_-s*_l&Ai&Mw|qj3sL!T!#$50e(lmiRe02F>!`iis27RyJU^j><`A&N-qoknJxl zqqXB@h2rPQDlD?7B=1XER>K96weMi~?Kz++^tn>q4!TrLZ-rnz0~g3ykmOta*%7Id3)5GN|%fsFEo?qz2ZuWcktNdIjvZ`kO8mt zHqDiIyBbXvF-aH64l(xT@}LE-DZNA{>2i*HnOfqH{ zjY^_kc=E_NAAooZ3m7znQ;r@hq+YTjN_`L&|9H=1jU9yy3}qCUXhx6*6RO;`N{v_` zMw6|s)(PM5o&CE`mI@3W6eOwxp+9w#!$4`rswmNCH&!Zm)p){I?M^j=SPPhctL3^PZ=X}r~5ayI^cG=JnKO>p>X3kWP zOLA4{@o+cHD9lb`ck?{^Ka&b!G~x*bOS}!cE3GYSMU?jAqLd2rH+)wZgV;dz%uWP> z`oUH$gap3hn&~WloY-LHR%w<38G390-we2vBs_SyN#>&-Ruoi zwu6>^^jI~au~SBa7bil9;3h<9$%Tjid(iJ1Z3ZaqPn2*gKR++=4m(%Co7p>zf}B@S z*dTiKyu8JDFb>G+@E=Ap?6E1X=h$svQGm za6Ex)6<+hjJMDhYoExnKZP`BU{~Dj-h365#GJ-KWW>zr2SB~?_<59(%OTgPBk7E)g zxcmiq2_RKgFVomzZ|=i0fSIxnxZ*M139hP8q`T>ew%n9|4YNb*F~zvs4!u`t6D}ci z?AHs{m=&2vmml+aOG21R5Qb70;f;N40p(+6!u4ewbxzsMOuOd~^#5zBUWW9n=$@Vk z=p$TEb75JX;~Hk#>TLw`54=+{`||=w>rN49JP(o4iTGDHC3O+rB3JtA6BIn#BYW|! z-f)nZCFT;C#+*ulw);Kg}55>uhBnWqktE;dT;w}WNvsW$R zLrE>QEVn?_cptrsUIT|4pN}fkQqpm7Nhq42{+q%i6iD?*ncT?t{KKmJ9S}h^Fj0|a zCmR14Wzb%V4lg*mm9*d-Ae*V`+V~pt2OF;p-1@qN=QJb01(_u4g-veE#1MxSaK7s? zjf-r{IxMk!{$?C=20umedu}&|$)swCObY1P#k?Xy6Hk9%fRfOdZ>8n;FpPoUqFKH> zPXWkP3|#t={vXIafER&c`=xk_N##>-FL?44A_n!_n(%GC)zN5TS1!1wY_7pWdxYW6 zvg0D9mG#9kRCHLwlkeURkd2X&r!DHYYu!kEkJc`+r^;2)>6wiXS0OrF0TC5CnSI7ljkJU1-G2jCU3G*#pck9+hMyF2_ zz47B4cQ9@T>3G`aYqq4B{9zC7KY^6XP>hl4CU0t^BCLDvmxTJQYFWlNP`_(WCJlap262t;QU?<%fL>EynZ!C?tAGL>g~BpFn?g&stQvEyq^qlOq5{!9f2mf z*ZXxo7Mkf1569WlTv=u(FUm>xB+K8xzHy`BRy8TXjdNcq2?Bc5=G!s)b8v~Ax!5F2 z`X)qEqjfwTi-I5ceAm@HlybI?#Ip*j8=%rZGgxUNWn_~<-SMet?nnV*l#lVfJo&4D zk%^|fU|Fb&M*L}KY z&+rAnKbDYQ+0>!lPv?sHaW+255?uzPcN%i`*bg$!h|;O+Hf=ZE}K+ssCQp;T2LkJGRr3Vi|OY@9%sH7BcTLVQ{>~ zb73gzzk*)B4CMv#)m{0deAG2G;NIyy3B|a^4r?8G&8-=!NW0D{2yrSk^N{9WJM~7c zyX{h30r~_N$v54QZJXW4BvkPh!*J=qwFzaw9T0sbK|^*N)JWRZsF4BMi%z?svX}u* zXjzT$94ktOmagIHJWh*iKPTXo#c!U7Ot-SCNXMZ<+M|-tlHtpmTV&g8wNSW9Dt|)MV)lV@ijoI8}Wc9*j|grL4l7;mWmA9$21H@Iw0trM6eT@+a{6M|A$ld+l1_8Tr zfPU5xLU*Ii;9Db+>GEi@sbaX1ErRUE@c#F84~D`N!9C(+I3TMENsG^sgaGJPm9?%b zP{+Z+uS^rEmfQ($9#A|k1pi-c!a2a=`}d9%CqX^C4w)jo*4?r(5LFG?fH6+_hupyr zFf^BT(ORdSof);#U!y=Da$s5u#0F{u&L*^pCGFADy|Xk?XLUP2|8=s9b6TOGchOw1 z=jNkF6axxxFMq1IkT|w8pxGm8geO!56qkl*Wo@QW;p9W|40UZhyS@zRhv1Hl$GTOM z_tqaWu*@H4A*9LJ+{nbWNAa}ln9OQ-I7|Lgo9}XzoW4D_$x4L}{;`SP|l3TYxMNo2BWP1nC8<;Pakd^IoV!{Gr@K^31iB zec@`6bj}aQYUkmK3ZqTneEwp4zlb#=emz^?RNr7dm8T7>qC_PdG;w7bm3yKT9191V zJcR;|@f;^@O+C|;Apl9U(xYn%g_bz?_CK=5ciF_qs^?M;ybeHX?4~=HjPHx=9OT;6 zcVQp@fB$XUQ0YU6!vkZK3v9zzySx8!fBZ!l^x+YH)tyoTkFe>Uqmy>fx+bT#(3-gX zT%OspJx#b`;`+OkiOpcFIwnTK9!1asPR<%ua}%z3{T@va_^Ph(h%!#aY_H-&-)7VK zU^E5v;b-#3ac?MFJa~^@3nltW9wC-tb8MNKBZXN;_)-TeB#?im?!^Lwla4=Uh zS!R2SRMVePY}_8;uCEEewSmO6rX-nuWve`nwA;~GLqo=}(6Wgr3XmfF zEV?G(TCaX~VqTcyeJv`2Gl)o`3>{8kfzulmM2K`??hc}8+=GbuTf$DB95cn=X0PwR zzrU`%N(lF_4F_q^L}b;5Bc_?)Y3=02Noekl2D&@B?q0H7#A9?5U6Uy z^3LQ-i_)|d5}Rbif`vLC5wXyzOJ@EZ%ey=y?d+%a_1Aq}Cf`?DK1 z<>JXdVA|NT@sKp;hXiUR3WWCbjbBa28_K-=#{)#rm&&V7Inaj1EHN zDR`rDqmIAPIIaHd^k9S&gCiCr`>965p4XvRD_Asb4^{-fy8T#S?&*!-(8GNgxh~V3 zq`!nvsx{pzmV$5o=+1~ARK*smUE}_}O{h84{C#m`chT?%m%2fF7ZW))GLzLI8A6kgrtnf}N5`3I21(zw5~GN`>i42nAF?)4t?#(N8# zep|QMKr1c7++rr6oWO(-65(MDFrUn|hDw8D++2poAb7u?3fJcwnQ4Cqc5H)j+|dRD zHVQ1(*@`hs{}&odl_3IB%OpF5{-Qq_T0tI@qX1OX69R-&72cCacL@zMv-&KoGy8*j zKXX3Yq~1J1VVf=w^x87V{-DcJK3k9K5P^Mp9h<$mu>&GLyzzj$?w#D_;~@n3Pnhlw zp_dYoi+|eEOK!@APJk!JBf6(EdSZSe`MkF{ukxj&pC)!^6pulNLot)?oc%OLJOKz= ze&q+O(|sr>E}UjbfiI=uoJbMk4Q(qr}{fY2+!ntlTCc{udIAR)A;Am zX%YihJV;V41sa53lb}kMmUo2ZacDfK5CEB%`qiJ1i2gJxb95H-X#QMoqYI9Adx0q2 z!;mw#SYSL&V)woby8%O{V7!cM!vV#$WGT@(CSed!&lJm$=NcuxubL_lcQ>3XRj>-|B029G;e`BHM1YXm@eh+>sd+g@~ES1_8o2J9s7?Z4gIbAvNG0qY_9)e1B>VvlFM~55M6OEEs+!x*cxhzj> zU`LyNBXjU-?|mcc#$=cwG^d#|7WheNp9R8fhR~)SROE+Qb@eO`x1>vSy!q4>+dcOhrZBLCL<1-$Dx@Q6c;E=0puTMVY}oFzk-xWK-m53P1dJwp(sA! zmwkPIgr7V>4ubOh5TvP%1cmsTG}unQk~8e2BQy*$0s6;YQ?bBC=G7*drdZro602*V zBqH8#kWV3&Me?TnpDcA{E}7vCgn^JAAO~Ri{~vl*HaBX+_Re&{2-j4BZZfw63x|0w zRA0uk>0K>r9}b+GqFI0A-%`r@gMXc zSy$x%lH`M7*^Fj@bV0}!Ew9Jj#xST|maQIyaEBoT*DG({IbkVuoZg5g#O4`7)GR$`J zx#;P9ohrx4#cZNWN)D8%>K8UL)Lo$2oJf4|s$eXv2)VBff31yb{991xaV#f^0iz_Y zihH<$)b^>+0nPsf_O$zIoUHPCkW4+nfFUqYKSwKAokh(1>-4h0X;+uiTW3E?42^)RR!=klr!6vaY44B z4EHchs((LX*2JW^0*ipV__BH#m5#AiiQeEx zEVa#?3m>w2`|#oz2u6m>JfTq#a&4LOJ~)=UUo-o*B4n zxZeC%fL%v$`f7HW-T*wq|0;tPdz{upYmq08JL|bUIQH-nHSv<#qS0VV_6qdYBM~#9 zQ__1~d;?;|bXbs657!g@T2m5o?yL+OMGpj~&G{J3F6vD%yy!_Glr3m(rCqEXDXtce zDn^=d35&7fnPjSam!|`>tXe&o+!b5Ov@kcJNzY^wiUfgu>!2B0wr!Ze(FmManNp

1>$wqCuabpoXWZbR|4*X2p!6g@V~CW$a5@*Nlyrh83P3my z`(A^Fx>J~Q-%JLRe4DOFY2yI9l@^Ac>}c+2a?BJQ{x&l4t5{KE&?|4Z4x>aXILr)1 zCFR-LN?+YEo zi0cw-7-wNX=8HQYYN3>5i|xrb+c>S=z7I+zk&G_WwwPz3KKiqqRE-aOF+StWdBu&; zc+miE7OC?ySliLCk7rft9o6ju+^YsvH+P!Gl?P@8M2ElWtkr-d(d1HR{@Pmpl}~ZV zsskuce?Wax%NV2WEf?o7)Wg%Ux`>`=cJdt*p20jU@7XK;!=()3u9+qA9lSG~<^>v7 z&L)R*o*f~A#K0b)$CebdOc)h)KZ%}gFoeC)I+Zs`$e1HAZ^F`-%4Ar|YfT_R)!C02 z_5v-XAplFFbm0SFcEW&9hP={qns$6SDE1aQXvVX+5S$KA8jshIJS}Ue{f9jGHtL2g zR*=2jff7;}FG(gIrq3u|7>2xuPER+wmV7!)jBwoqZ>Ej4YT;v zQDAD05JA{r`8a{ARe84fN^x(1WKL4$IduTiV@Mm8qZUHRzNhmFv;)9aw4-KA3BJxH zv5;oyr=`%X-A0VIKq%g9vz-I(cEI*7Obj19)lrmI70c{#S7swZcE}m2YDR<7;OwRa zyOE+#9s)kX0tV?KlmVFS-x-$yO>r#qW#H_E+cx*LF72J?5hNK!(620(VXHsw&n)Y>jtm5_%D4$rt^ zNLDyNm6NIm5zkml*WNNthzm@=3Z!?tug}{eB;5=S zauJnaZh)LrtWH&cERmhe1JaKxEhf9XG`w=tt05ES((sCsl^Y>r|!NnI7U2x#6Frq^rhAU+7 zUtP9F!NmCh&zJC7iXX)0u^^9P7;kr703qRm$FkqXgu-zbP5FrJBbTxf`;`?QCzAy57v=QEQ|Z@%1C`EgQn99Z|e zEM-J`cVLV0%dSS`z1J|VcTV4vYfIG(k&K3>8Y%X^$GYc9bSjOgSDo>8Ouf37Q5{-r z_>fgA^H}dq;o`uVMG%(J-OcM33O%X^tZ<-I2vBUbGCl>=w&mQ|j`7+4KET}NierRw z9EzxfF3O1t??0%rveW#AZ{rb0+)G zJ%4M!dGLLTKu(hU`U_v$KT=gy^pxS=Rhl6AxDd@)#r^D%RP2tR!-}`aa67CO!z9m# zT25CF2KZ$Slss6ue<;Ljd+H`Yk|pD=ZQE5!X#$i&Ar@ema1^dri*6xS=dc?c&4=UP zw}XCU5M~Z%&#^C`#>JHOC$Nx-@JahLRhlTpywk`(mk5aW^Ed_@y;SIxJ)@9?cOCSc zEM?MzH(1%o)s+yyXB}eDq#Fb3k(s2q-L?_aeoWw`NrxpFYp3bI5*aiNyOWycuQgN3N<2B zbDyCQ50<&#Vl43AXj^ByCfWH31fW(qz*44Ys{eO{psFHWJIBs;8hpGm`mzJb3T?o} zb1MGcs^Hhdj&&7&NT_L_n;)z;m17;I2&<(P(kE!dBii(L9E^&e9#ui6|AqzZ3y*`FCU)j}}?*q<*# zmEC-$^d0l*@%!FOUs>H)_AT}Ipfx;IXMZIGLk%lEJROo(qI(v?WMd(}J%*1LQU{$> zYH_IvgS&!r;w08vVLeeqA25F#*Fn1snKWL%p1L2_u79by(pYp>3wUKRiagN$Cm0z~ zR5H2p1f6-|q3&7T^Z7-K#U;IBiEl_qC%xD;GV%pde|B$>Ht@y|;YQvuk>k2{Z2rn( zASXQ-Y_lkr@xf*T>P4HvxpGWVdO^6jkh0{nr>#8%w`6*vA-zF=i%5`*KD14?p8{D3 zq4B8Dj)4L(4&C&PHn`ibKo<9cr_3e03g##cvcKXo974#$d@kMdz;l9?%rI5dP*WP4>DJ%teA zoDJIH_%nZ=gQPVS@%O8JxtFd@%!D`#$nvW27Zv$MGoy6Q>w|+{aEr^r)#MGcp|9|-jR~2CJ>75hJWafj4pKyxH3BvWb6-7a#sEGs$($oTZp7ua= z>{1k%9KZK`URYQX)Bi~*#Y=(u@lG`LeYl*n?}(RSqwF8C`3kvEcf+alw9e54js*Cl z-*6wxt-2b9kD>ozNG0}b)7jDEMspx>0-74kr=Pm5&@M&YToG;^Tx_|O(HgAyAEgIy zh&Uxdm8U`4_YcC!Qr12%tQ@c8&dm}rOZIAX6n4>re6cJ@I9Qs)w>LI;5!b;gm0LLc z5ffmT&oqy$S>yH#;?+ms8+PnCCo{CbOnUckV;MDTy{Px9g2Gq5cqc0p*Sx$Pq<3HT zxhB;h$GmHqCRI}*XX)DS7_h>KG`(uAdRusw9`FhEurGhB#5rLRZu9FaFNEBFDoyt( z3}?t=RX%Ko%ka_TMt5+afMeqDlI0zyf5(@4vidrBdAB&EQhTj4YG~0ev6K&l1oKvg z>3|*m0O+EmZGkYNtP%BQjRVWO@f%r#Fj+4px3EE}IxJPICv~2&7b{TeoBz zSQ{OOq0$AjUMu6%th5A&Z1ixFH;Iq=`|Q8_;xT@d+fZ#|XMNFmR^gHyNri-09Kez4 z#OVs5*s{!l0{PQ&pr^4iOJF|qYiTyX^Ky~`v@`T%99r9FEYX%RAUeqWo2_34BXT0A zSD4JBiXML(p~Dk?%)1gO67SIXW z2LR{=l_=ou_{0EbY93r6^|FoZ`dRnjVibAa)&5?32Z(T!OSZ3TY{mDkXe{oxAjrMa zy%AEVSu#femlA}zrmPyH_*z)gC{&HxO6KJ@k9<7cI8dJFHQ1u`aZOp~Nr* zJBlJ|aV>%y8oc_b_P-?ry>VlGsYRK_X?r|>bW5*#ui5a+({%Wl^fQV$NVi(2UQU5Q zH70tRM|=Y1rz2NFet$=r^k`)UbQAAAg>Y}S4Q$W5t6MB*Hc$mExcna;+Hmb0?PmgpKjQ!`=yf?sMQLST^L)L9H_S7WdpYQl>bT>GH*NSzOyw(^Rl`V?PIpOU?2Afpxy1vgQ1$zz-kJ=>IHGNU%Q&MOYh9lJH1N zM{g!s?8$4b$W^YZi5aDVp#~PkcK9p4Quw)xnZffskLb`jg&J-|8JA2X28HkYi77xn zmgzDHz3zQm;38gc5+^E9V;!IbtnIJ6MoSEgxtUhM9~l2OqA1Y22tL;_K5wJSp_b?* z;vD6lX@woUbSL_bI|eT7WNi}VyWLfo_P^sp)9(gz$jWN|>Ho`lJEH?(NUklQR z|7IvmIKNX>2LA$$zu5GVrf86xEn^l>K^yVi@M?!aokPz6ynHkR;^xkEAAB~Y(lsbW z+8QJ{b*p=Mt5oJYDw@iWwf6E-x$G6$athgrlqye{jm*9Msu|vNKnkAU7z8MsJ=I|r zLg-aQIu1$;-A`sQ`|a{Uh9Iw8c2J4TA=~WF!nR$_@)w(du`>emT6_GOitt^~eW6O` ztlp|1R4FN#S&_H_5lv_wd!l&faMn2IVOac3$*|2@*iehXdTm)0fLAY4L<3KjG<)QQ z${~fvQF51tk%88jwrBNJR$-d#3ti4+1zgx`Y=#*zh6rJMBNcdM>>KG2q}d%bc5BXy z4*jLci#%m8(&F8zVNB_?R(hRWA~Y0B>KW%v<9SOE@|czjv97bCxBjT8xVnc72A(-498o z8K{Ln1!k&k&k1;O38)BbGoWz4glcL+l~vHjJ%CIAm)2+tcH<_tR#YL>9m$9fnMQnF)L~fMloU7D`H{MuiB^ z6bLUzkW@@(20@`!d>y!{#s3C16XaaSS%+(?;o}tmRR>z`A+3U8iS(SG7JQ6oAqEok zm!?EVinyhXlfxD?aG-=5ugZok6fcxRq&xAZR>l7raot;wc_eF8(3b`~xM0bPgs~as zg}K2#Dg8U&)zUKLqeT!)dRNPU#%(ds35RYt{MI!^+e&U`S5c&L>CH5Gr0%C?SP2

CDEpIg*q~6xB@l#J4Jc(s)d_= z`t^)*GdHRaud8UQnU6SuuWxp0Oz{Hbd0wFUM(b#GIT~J=h$IOOZ4u4wpURslfMWpR#**XS0<+$96t^IF_zxAkpW6~Kx~+a6@DW%17H=~MnzmoED9zs#kMCh^3Qf}a|_toWGWMC+-4GGV%6VZk0a z`#kbGzSGgxwEseVt>IOJ+=y+ z?IjdMQ&X$l5NxYgjE{O@J*{jL0(jbW(IlA>F;Xv@As3)WFBUJo0lUpbo8?N!-YWCjrf}GG~Bv6K;EZ?Yhx$A@0T*>5$sl z2Z$P(v%-$m4Z-QTy1WdXSDjbFAIOa?*|9{7q=gb51w-1$z z&biPbhS|LiqTsd1bQ3UYLGas~G`RJX?$`cBS4zIik4}jEt7pEXS4e)I<|ge=RPtT@i>fgMPtsApc}w znJHe*KvosfaM6$0liRO``wS9}+gqnn74df70#=x(PC!g4*MlB~<%ZM9=*k@0*f6&_ z6~jt%;qqAvX>*tW_@~Prf40h=$d)|6JA^`hR0h;Qmb$2-h!SZ2`aCxQs^FQZT%BU>ZF}Z30L@*2~K?MRkf^ zUDmmBpqA!{eFA@j z-cx+o7?%44!zu4w0YW@tDzs@gh&qyz#Ms0~>}uNi^T7!0XjUsm)`EgghPz#$a9a7S zcJckKf3=4G(qG$0pSFJ@W1s3 zNq~)+QuJR=@`TeJ?uYarv`l(Jg|CR`HL@j;&@)f?{fL4U3{~_&sG!&`|3CBO7NkS) zS#{{(yLncj!dzrTn`~26FKi?3ilZSl?fCYS;l?~Z%!uNWiT*Fz614duV0bubF(4AO7<46h{kh7y9S)0I}{0m6KKg;y$F3Lcet zQU4nPbU%?*O1-zVdV<<2S`5Ff2p|Nlq=S?CZ~^~0MZicf94yHv3nBK=&}EpIm;)H> zf76AJ4Z?oRzmAU=B!8RX8clj)7 z? z?d;NNmTfsT?F&heBhlp^k&6S~!E?{!7Y6<+jZdC)yLEM*wS9&>s2-yb-g28PXfNfK z({;dl-cwUj1rze4q+K?WZbJiv3WCe+r`ibCHHNylyiY1qJz1hq0(g6Yst%sDLF!Cx zW78>z(k4Q5wd%Ube({tjJJc@?uW+R?I0vv=Yuj&6cGy%$J226veoAZCcQKF24fvRg zFFN=3DLb0aDasAlxciP=m3*Sy)n%}+xNaB|j%TLCijaZ@gW}zb>e<@=Yq=e$gOQZ+ z;iKe?XB)@ixN6NkwNb?e5}6iSY&=aPoEmB)6hF81c9|-AlkItoPfbOcTJRtU0$p0~ zG7cQ^25xcV5jXP0pbkBu1RqT{Y%(WywFjXNsce-&D9UpWy zZ`!)xlBEi=|-6#B7^4$QTU=2_hA<{-C|9_e59F1!L_~@%D=rn7Wn+@BK z`1zOkeZ}ZYt1`6#%=25@H37P)rRm;>8|Nk4f>`rV_n^ z3-4opYQ64dX9sm*L&+s6(eveFvVH(uj!;d#i1?of;kQ(+QK@U24*+y+Vf<8;xbp~w z24ZhFPB&{aP^o7L*c1HKtMTqLdkca6$^bPj_y!;9Ec=7TAOHb`grL&n2?>4pGcAS-D7EAi6~=cWU;MId zF>wCn*RLky&)f!AS0qlg2}VD>i!&PJ?OM6V-^!y^1=^`GUR1hSar_+8j}*e3e;z(* z(fB0oWlW}g*RI6M$Cp>H*Ru?Wv(=nkzaOeP*?(&@1BWkb6iUwoz+X&1P0iRK;62-j_Bs_$zJqSE{-Mtq0m@=43$y14+WyMbU|ixxCZBYRe+?B;pUh}8 zmU5Ey`V)~P7p>g}wzS%3#%z?BIB+38yG`f?rWbuYr#D*l!#%ufgf#(zdW_C7gSnx( zW2z74d={9TCP&vcqXFi}RdC$&;pS@?mJ2N_=%fcMmq08Z_|EZAYQR{ZeGTy=#N=vm zZQE8?SgUH3XmVk$r~g**+;=RU*1)s*)Q*TZeBwYyek+B%+BlZe=QB^KX9enPy7?ob zh#^#AOY7l31Ak==s!SfNg>vr=I3pW zY3ggl8JUCl{z7Ef??*h|H{eb^SA{bUy%!W$kZ$c`4vF;P#3WF19sbbdg^J;fW(x`d zLxs1KzJU0mFzv@-6vYyu4-#%m5>5kJxBH$cM~B+XlCAb!U22@)i{27I2~{QrVfXOW zos*41xMQN_Y3$L9aJjIWh-+k6NHzNz@e~AxYGCu{PiZLSO1FB&e-we$H}caERQO>Q zi`!biCosRyM~j{I?D^lZVORDt2#JL&Kmm}kmnA5QJ%}F*(HAm-l z__cV6o7dDF;3a=IF80d$>pI4g9NF{G7VVFfvCv({Petu#xXGIaFcOsYi@pBU!9l6f z$1D7ES!cQsMd&TjiW#z{?r5Eii@XLm?E_5Zhp7p_QU#Lx6S_V$GP!w3d{ zy}#s63K|OI?!dzas=P7qh}z)V3$^;zUdvWyhIEBe)L$y6i~djV23|RG5X(m4yUSgT zGf3F4I(%9g{f?1*jBIXZgUbZySYFYBDz<|M6)7r1fFl)t6gYwrD+2zI+^FtoRc_4& zx2p;*4c1MK6{Df}$C_Akoq|he#rA=&@HJ~BE8-D33_A~4AyD(}Qw+IC0!ZXGqJgRK zapFo56w|+irKp*OBxc=Y?B`R&RwhFm;71c66a#kv=9Z(UfApXcIIk$I;W58qxuRTP zk=kR8+#Efpc+`;4s)_;Y9+M34D`N+4je05Z0>`T99iaZsq^Y5A=XOS*pz_0ZWD=6y z#BbwwuR&d1I`R!sP0iPOtv|W4yvTexlAtL_FrVC*aVrgol2ta_ehin); - queue_init(&port->out); - } -} - -void port_shutdown(struct packet_port_t* port) -{ - if (port) - { - queue_shutdown(&port->in); - queue_shutdown(&port->out); - } -} - -void queue_init(struct packet_queue_t* queue) -{ - if (queue) - { - queue->head = queue->tail = 0; - } -} - -void queue_shutdown(struct packet_queue_t* queue) -{ - if (queue) - { - struct packet_t* packet = dequeue(queue); - while (packet) - { - if (packet->data) - free(packet->data); - free(packet); - packet = dequeue(queue); - } - } -} - -void enqueue(struct packet_queue_t* queue, struct at_addr_t dest, struct at_addr_t source, byte type, size_t size, byte data[]) -{ - if (!queue) - return; - - struct packet_t* packet = (struct packet_t*)malloc(sizeof(struct packet_t)); - packet->dest.network = dest.network; - packet->dest.node = dest.node; - packet->source.network = source.network; - packet->source.node = source.node; - packet->type = type; - packet->size = size; - packet->data = data; - enqueue_packet(queue, packet); -} - -void enqueue_packet(struct packet_queue_t* queue, struct packet_t* packet) -{ - packet->next = 0; - - if (queue->tail) - queue->tail->next = packet; - else - queue->head = packet; - queue->tail = packet; -} - -void insert(struct packet_queue_t* queue, struct at_addr_t dest, struct at_addr_t source, byte type, size_t size, byte data[]) -{ - if (!queue) - return; - - struct packet_t* packet = (struct packet_t*)malloc(sizeof(struct packet_t)); - packet->dest.network = dest.network; - packet->dest.node = dest.node; - packet->source.network = source.network; - packet->source.node = source.node; - packet->type = type; - packet->size = size; - packet->data = data; - insert_packet(queue, packet); -} - -void insert_packet(struct packet_queue_t* queue, struct packet_t* packet) -{ - packet->next = queue->head; - queue->head = packet; - if (!queue->tail) - queue->tail = queue->head; -} - -struct packet_t* dequeue(struct packet_queue_t* queue) -{ - if (queue && queue->head) - { - struct packet_t* packet = queue->head; - if (queue->tail == queue->head) - queue->tail = queue->head = 0; - else - queue->head = packet->next; - return packet; - } - else - return 0; -} - -struct packet_t* queue_peek(struct packet_queue_t* queue) -{ - if (queue) - return queue->head; - else - return 0; -} diff --git a/.svn/pristine/b6/b61166d80a9dd3726b3f72e01d18d703a9afdcec.svn-base b/.svn/pristine/b6/b61166d80a9dd3726b3f72e01d18d703a9afdcec.svn-base deleted file mode 100644 index f9f12279d09eaeeda64a3018bb6f307f4b110b19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8478 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 diff --git a/.svn/pristine/b6/b6b10f1b3c1542dad57d42972bdbf543afbb3406.svn-base b/.svn/pristine/b6/b6b10f1b3c1542dad57d42972bdbf543afbb3406.svn-base deleted file mode 100644 index fa59a3c..0000000 --- a/.svn/pristine/b6/b6b10f1b3c1542dad57d42972bdbf543afbb3406.svn-base +++ /dev/null @@ -1,36 +0,0 @@ - - 4.0.0 - org.gsport - doc - 0.31 - GSport - http://maven.apache.org/maven2 - 2010 - - GSport Contributors - - - - website - scp://webhost.company.com/www/website - - - - - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - 2.6 - - - - - - - - - - diff --git a/.svn/pristine/bc/bc59d58b2bbc95dd7eccde8492333b4b6ac1c4ad.svn-base b/.svn/pristine/bc/bc59d58b2bbc95dd7eccde8492333b4b6ac1c4ad.svn-base deleted file mode 100644 index 135a99348ddc94d8f330c9c91d40129bc4db5370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10489 zcmeHt_g7P0*KNQkMS2k_(vjYj5{mR*0@6FmqadBodsPG?C6M=vr?SY_( zG(*tOgTE+3tPFKvHG@3M;0N4G+guw4tGj>p;QDFsnBMH+QaT_P;w;+uMUH-*V~@XJWJLmq-0;EnRv^ zlg1xsgF8O>ose+INC9Wkf+aaK?`+5xX(k*U9PWQlc;r6$eepQLKmXw3vaRp<5^wsS z+JQaEOM1ed?|MI^Io~sVrQ3$fL{Hy`-}AEKo-Z7kjq*u{QOXLvrWHm>EUo4C@v@AN z(t5l<>QN`dC>aIi_>o<&vO25{1r>PQ{+##)&Cl;&sJ*|ZnMit= zfSp_unj~3aCU)!rd;8A1TP)!>ufK?$_!7pa_9x!ak8T86>!~4VtQ0#mE+^d)NN2NQ zoX*aj@zr5vdRIawb!N$Z=bktx1w5RIA6XqZ)TAhs+**D;lYrAJ_wkA|oGaO~%dRvv zce#I$H>r%ClA1rr2qVZ_itCVlI*~Qf!b+Ild`NAGu`c!+RvJ^m z8)^#kvO5LhGQ&qf8jV2qh$q+xdhn_6ZZZib!YK7AD-hMSKX)ZV{&?QvODy1sv} zT*=={4eL>iPpRGdH>2n!(T;ahMqjk0TF~vPve*0Qa8@`Iq6mh170-HITk}-Kq;qsr~iu0)m;1-Qi z@{uibI>o~LvQSk?Z2m!02=TSYZfMo!`d6u7w9V$T_qwmZbmEjf6@RuT$8pnJeGdM# z+-mVRBt?-=qm}NVVU&ErmglgH7jG<0!!snB)e5ty`4c;-Xqd2!|2|b$Ko!#2AmB_p zJQSo&l`R7U7{F&aIO6;>;0O~t$<$2PN%QpE0J9YEw14n>nueGp>)iozqUu&m;;mNCo@%*lfyQG&KWr6TcYm(f`ng&eI5!{7gZ2 zMjO76W*rmws;zs$UfZ;P?$xtM;&|5MMb@uZ(DG>UYU7JO+3vxkS+r>B4I;Osctv@B ztcGQ5?#^{rb6(;LQ5DgZl2jQl9Sm>7tPy(>KR_r7*;64V*S9W+>{>Lx3}>Qd`67z1v}0@e`GNXFJGX`lnYlU7amME|b#8QBKp_=Pvei>qM}wNw)a_#SxRRR= z#4hbKFAzcGZ^F|EvWvMPfxmp2qr_J4^@yu28Dn-a-?G&w7(j^<0f6Eo|9t^hcfkh_|Jv#T6JB+z2*B^j2m$BQjGdwZWZIygnlJoL{2w~m7Y}a z&Btrcm;ijLE{z|P;m@-c6VU+OIWnBC8#QL9accqS)srLjEJM}1g zys;r%M6(cYsTNF0ln8P%f{Uck5UF4=a|CBdCmiJANMJW6!GIR(CbMm|O6+ zlQzcmKBMVI+^+wp__mG%$Z;e%mPa9iNL^Vbl=s0P)^v=T|8-F(56UOd3LmjG-%a#4 z39cJy4qbLTJ$B|}w&MDyYTF>zz$xLeg(`m(ZZ^Q;2LsoOYU^Jn$oQkL?O%y)s$qJt zq*@Uz%wQM*rDT}<{x5MJ3OE-$Ji~gMtZ^$Y_S zg&fLu9u!Y!Re4QBRW<$9rN6A~V~uMv(GL?>`Y;kE&WxRj zCeT4EO0)j1GWLfViXFk_ z_NdIabv5j){OsWJ$L^t&@-RbK(mp61i>lZiT7-;nk2uoV6wcJFk~EoaO-A3qUw&S? zc5bap4ZF33Pr8T<8i|E#`hBT5QyRyP7nt}ps&`9AAhA;tlwSA2bc8-qJDni8O{p&s zBuRO+me|%X}?_-&(Yl&<5QDcUCG9y`rVuSi} zey_i_FOQ#1vH<7Xp>#mjFva+&d6In@2oZgeosp)b&5E|(W@rTR$1ll@gq7b?Z3=GHk?^W=5i3pL_5PxN1Sn(0~? z17$<9rs<3z>Q&n?J6WekOxS|B$FqT9pYbS1=PxVTca(W*!rwOel}L8{*Si zC)1sBRyP8^z`~Eb3MFXZ$hRxLlQJk1il4f%h%x zdh`hA=#=ijGhxP9mU^}5f#?3)o8jxI#fE`uSI-eQ9>**AiQ^u&g-dn{;r=s|O-V-o z_LaGtRh-9q=B(@6R>obZe6sk!lg;qE#s!tnN;d|@-()nrWdv|DWe)Z>%QE5mse?%_ ze%6d{Qj}fqWD+H@If@e1?{u=0MuQ{*_pX{_2FvTnvO?p3#LsS;N3F{Q7MeF=%o7pj z1O`&*mPcH4ENOF-GxsHwVMJ+*6Xx)I?bug zSh2mWe_GV2nwFpMHq+FKWR7qgk8J6`_)7nI0e7U(p7-8)wez#IsK)Gzs9qsopzfav zYGJk>@J%}yPO@T490icN&46B*PxQowYkbRLpoa!=LTU1H!yJtKfxSPwzrd+Y(br*9 zA!^pCl)2WQYGALnaW|;ajG43l{yAU4y#dB|MCM4^q$i}&IB}$#AE>ygfnVCV!=?3aDBtrN z-pz6h$;@PK^>Ea+3E}N>jmiDIx{TOqkeUrRp2RIs-6dS0fXna$QPDolWIxr5vhEQK zRX)5yO1IuO=0|e;VoTMU@t{=0izi(5pPQaWa|cf8FV=xW7(CDXbIh`^{I#IG2e&;v2O+yhY&;Car5}z-!E7(yYx>go@(-xRz`M zWbflgmK}(TvI@*$e9?Xi2C$@hnqM5)G4(KOzmCK}<=jFGiB&`trJ|bE6#ZnlPty-- zRqXUy3Pa-$#B4t4S%}lcrL+sbWU5mc@cndI&p9cnU5pbEdEXl&&{QascO0me^(dut zl(hnXmzx1zLzvu}YLk1GDx_y%2(n&Xlq-zpAzHi-iwvLSD8)C+9(BZ07 za+I2`dF&Tg#)*@;O=SUzq{2`p$8Js}n+A=>7bE1wT^j#7`*qde*b-LkES+igdywS=hV~pml)#_Vqq%My_Yq z>Jf$h#n^AzqgI7(Bf*K|2!C|<2n!J8%{gFbi8-dmB?`zRh$YL?t!Jw{!rkM7JO=-8 zqQ?*gUshKMcQw)vRw)73Q^1o!ai#TX(SduB=v;-7s2wMuhpMSRF=Mw<-KGQ|F>Y{Y zA0)qwylLC|UgC@tgH2KDyL=}T-!F7s^hxn`++*VfSy|GbZ4kT%R@28R6( z3{|*{Nqe|R3y!To=UNA1{;q4|?ZI#)dF4TK*caZf`k!289RkU23I>z6C+Qgm*KUz% zl19?i3aVEj%VUy=7zjm@H#%MPIIww=Up20J-{*DT48dz?)Z{}C#NjIU7HhcA%tSx6n)GdE;}>n=%ZP)UiN&s9>8}n6Rrv z5u~dg7ntV?4G#-8CSO<*a%V|cKt~o&wReSp;FJaO-VIS<0!6wQ9L|-vGxPU>A$tdW zdi0N%5;S0Ik*c7of=Z|feA*u!AQ(m0^O^c9B%5dIw8jF5?u7giC(pzCP&TyT)6HqefJS-@b z*r^64ZwG?=x5LUS5DO}30MTAMeaPrY@9M}MI>)EPCDR8N+|$mRRCrQ7yu{aV>m~Fe zh?$r{ub=?*3KBczk}N<=#sz2I5y?Du^x7eApSLpRFyw$sD*lC%dW}(I60O4ect-OSEzlf8(S-Uf>>5CgwQ}Q3gHS1uC2aO;of`%0U zIL9ev9`NQwt*4-XT>eZ6EfDZZ&$7o%sxGv?CGb$3ffMvRwToFI!j*0+=wx&p=$s50 zodwUslF;B~=p=3iX!J7+P&+uilc1;v$y1O*<%7DRwNh__hctww!SjIGE^1+9&IEw= z2^g&bjJem#)6g=5z23rmz+TSOA!Xw;}QzYBVwtwTA$@}iC{IV;cl5m3v`t|~e4%2%X zO=g*R7Z~$t6ts_CK$OsJ=9i!_r(%G9{8=OCdeeXgc8q>fMs5{zgr~`3=fF1Jlv~g3 zV}Vn^zkxbedYSvHbE|(E!I|%T7;rp_Cz7SU2DC{eBs4ip7}9*Cg%*u`zZ=ayFa4kv z@Q*=FRz`7|-9IvZnQ)fSt^(~v8>xD`82i_?j>87P_C2s(~@7908~MvpyD?s*m-z(;X{Di3KHYCdrurx_;6@u{{-s>HRf&05acd8 zYO2M5-{9B3E@9%)g-#|z>{yqMh$?+oDDrtH)ZjyUbT(wWydEVJF&sHI2t!-w>%F>5 z8NCHPLY;I-VoPvbbz>8u#~q1tmU2s2g|wRAP?Pzn+nulIGOP61DXcFHX^#=i6}%XH zw!=ACZf1>!g@OX!o&=^}z@!nB)#ZGE+4iM&kwCtscT(?i@|oS%-VS=;bm?RCwY)_~ zKSwoA(-v7Cu7AQTzWBVjzixKs)!W{K4G(>)A1he^i&X%YwRkPex|h&IiLDFTE2mfn z$`nMBE-5rNlDP#=I#Wgw>GQs)4UMVUb9l9{}IpOLL2Lgl)u2G6pL?g}67Lc!pcZ82X4JW71YqV3h2Xgr16KW$Bdh_7vqf zDmu^K_Eeva+OHE}oGa>}EyBo~kOqM!~X!EZXV8`2$CjTgPuUPAXPKOo9{SIk` zuNEnVkCe}5EZK3dkD#CGjTR!}mUXNA;NOgZt`OnA^~h|M2IrdLWw>^#RM;jU6-TT; zXkU6T&c}W#e87@Jr`VvnpMf90nL!A(B2U9{bKELD@+X~lkouqdG9zj#maf6?*#KLpF8I{Veo0_dJdNeYs}fC|}JkZOAqcl$o=LGC|otCBhs zcB?`a9Dwc9L0NBzteT(5cm0zg5;$Ivc;OVgwTT8sZN4!h3-*;GB!aB?Rq~^=#_y1* zjMV>gOW;IC{;YVbO}1b{8d z3W`L3>(<`)@SN$xy4Ji2(&C_a1Z;Zpg<|A^!*6l+v5VzJ$9N7zYcr!X!pSVNPWezPnxnw!wx@)q>`Y% zz>|V>0y3xt;x7u&X%c602bU925K_U^*KeE%2%tFtSx6KoUXZOqafGSw#0k3Cd2T!N zI$zw)8;eWp1GU`^wDqUsSbz=jGKvQoPYFWCc0e%7^n5X9PN%54nManDyu6ATJi0iS z7nyknM!5|X=ch+?H*blb#c~;Jl($+lh64sbuP$PR_k4 zzfIjB*L6)0lpp4W5lhq|Khn@~1sII&i%`0@`jD}B&6RqLqeud-Y{$^wXJEZ|m(B0) zs)Yb}NbIE-mWT@) z3BSzOviCOFWw`K6QJoY%HQPs358`~4nh5DtNEu$3(dKku+^e}de$B3Dne@I7$UZqV z4S3v0ooF+qGu6fFhm&y;|3Lu}pBU zN)1B0;~X_2#-q%)du3dy^r|U`BQ2}{_pUkg;|9%pY~?2xkE~$SHNi9jOv)V6x~JeZ zOj!J|R0pnNVd8IQV5`XVWRo?kzcpFywEac*kjJ}=`X8wB@76%l(F;I=A%e8|_>Q*? zAhH0cGn}$?G5WjMhJ+@=x*f+dmTMzF@+5qkUCl9EJp@u-^!&Q6fG=jZ`YzAn? zps7JKzfe)!^9tx<=09I*3XWk@)}AD8DJ6BXG-@;PaPg_DSsrocTS$ORZH&QNH2P~Q}^uwVr*)T;l9IVbpK-ZTWVQ4 zdMFSUAYnB((+Q&X&+DMy^e3v!_V?bsDP)+rma^x_jnM8h6TR&t+od*}g=EGQ+gpJC zPHt|9mlZ*CPcaTcrCgF^kN28Gf33gA?p@t&U45Y(j`+_LUx@6Dwc|Lg;ERncIYVgm z?u{A&$UgW2I4o|0GCUIsnGs5mq}KfH7f*ygH5~wH_lM9EdjQ=Rs}{Y6OdpK08yuP3 zr3)u@dJw3M!HZHFC+0#9cz!wHYv_dtKr#a0`T+st_b=(h zw*7y9MJF$6Z(BB(v9$3Bz3}3~qpPXW^oqz=U$!!P(iGZi$aGAO}lEcGXJ|Jc@AvvfEaT7J@aEo)PQn-0bXR z8(tNM{R`vId7$$H(%s}Y2FKEPP$lquGS7xJr?d7yW_tCoNq%{d=Rk8Cg z>za!Z*cc7ZH{j0lD$v#7a?LxG-W!UundmSFmQ4S?eey36Z#*dmPjK4c!xz2Uv9)}; zA5ip$(P)lXdy8j#fVf$Dksq8dbVIE=SRp{uBi=rELKCUfn|SZHKd9YyM`d(;B9wL) zckM?6v#zTJ6#EaWj-L5w?etior2$()FC3BCpN1c5;#2bc`GJl>TKuFJHhUsc{lmnv z@9NRCkg_Fjt+pl0qfH3o*8rt>GXn_92!YMcH6Fg1qYK4o4J-2U8Nor&{x>;X&}GJ| z4Q60K6b<<$kZp)~$ew`ervOrg%OvRp^q%07s@^CAiY~ugCNM#%R{UTJSdt^i45=K_ ziO4hqEs6gS8kqbX$PDyL#7X)PAZismee&5sfj;QH35tV$+5fx(st*5iQ2#9u#m|oI zNI0%3Y3g{Y=q8Meox0YaFp%%gCtK|t|N40XiX{EpJ&Xf=2JovtNQpL2bs3el{GMgE z5Gii(Q3#V*8sW`~h@B9VkJG~$T+x1s#~J-@HXaWr<2tPuj!&jF@*C}-jEDtEr$Lxz z9y(VvveSBYgc)E2Ve~Avs;Ll5PPd#TUPOuNPq2UI6q0V@#7%M}w6xUBVeyj{&-Kv> z&0mIB)%A&U+E9&Oy;wy7k}QZ9QrJpqgeX&Us8sVK`Gt|wzD14NbvM@o4nYO#=fj%NQ_f27KybGyX4bs+V07aivF`+5~*+ zvcp1IQk(OBn{?yhv<_zFZZdD>Lbp%6V3W|qDDN5?&;GTnC6}<3=Kf|l4_u)Qfh)9l z6;aY=)x4xLWQ_siH?;qsH{P`}3qP10 ztSC4DioGyS#UX~Yku^~~r9y9hyB9iX=&P$M;QO-W6w~ox5H@=F>W+nHk3|zn8ap)q zpu0#TT78C!8UJt;x|}hBteYt?esC-|SPv8bA5+Zu@vQPmeS;Y9shY6Bi4LHE -#include -#include - - -#define BUF_SIZE 65536 -char buf[BUF_SIZE]; - -void -read_block(int fd, char *buf, int blk, int blk_size) -{ - int ret; - - ret = lseek(fd, blk * blk_size, SEEK_SET); - if(ret != blk * blk_size) { - printf("lseek: %d, errno: %d\n", ret, errno); - exit(1); - } - - ret = read(fd, buf, blk_size); - if(ret != blk_size) { - printf("ret: %d, errno: %d\n", ret, errno); - exit(1); - } -} - -int -main(int argc, char **argv) -{ - Driver_desc *driver_desc_ptr; - Part_map *part_map_ptr; - double dsize; - int fd; - int block_size; - word32 sig; - word32 map_blk_cnt; - word32 phys_part_start; - word32 part_blk_cnt; - word32 data_start; - word32 data_cnt; - int map_blocks; - int cur; - int long_form; - int last_arg; - int i; - - /* parse args */ - long_form = 0; - last_arg = 1; - for(i = 1; i < argc; i++) { - if(!strcmp("-l", argv[i])) { - long_form = 1; - } else { - last_arg = i; - break; - } - } - - - fd = open(argv[last_arg], O_RDONLY | O_BINARY, 0x1b6); - if(fd < 0) { - printf("open %s, ret: %d, errno:%d\n", argv[last_arg],fd,errno); - exit(1); - } - if(long_form) { - printf("fd: %d\n", fd); - } - - block_size = 512; - read_block(fd, buf, 0, block_size); - - driver_desc_ptr = (Driver_desc *)buf; - sig = GET_BE_WORD16(driver_desc_ptr->sig); - block_size = GET_BE_WORD16(driver_desc_ptr->blk_size); - if(long_form) { - printf("sig: %04x, blksize: %04x\n", sig, block_size); - } - if(block_size == 0) { - block_size = 512; - } - - if(sig == 0x4552 && block_size >= 0x200) { - if(long_form) { - printf("good!\n"); - } - } else { - printf("bad sig:%04x or block_size:%04x!\n", sig, block_size); - exit(1); - } - - map_blocks = 1; - cur = 0; - while(cur < map_blocks) { - read_block(fd, buf, cur + 1, block_size); - part_map_ptr = (Part_map *)buf; - sig = GET_BE_WORD16(part_map_ptr->sig); - map_blk_cnt = GET_BE_WORD32(part_map_ptr->map_blk_cnt); - phys_part_start = GET_BE_WORD32(part_map_ptr->phys_part_start); - part_blk_cnt = GET_BE_WORD32(part_map_ptr->part_blk_cnt); - data_start = GET_BE_WORD32(part_map_ptr->data_start); - data_cnt = GET_BE_WORD32(part_map_ptr->data_cnt); - - if(cur == 0) { - map_blocks = MIN(100, map_blk_cnt); - } - - if(long_form) { - printf("%2d: sig: %04x, map_blk_cnt: %d, " - "phys_part_start: %08x, part_blk_cnt: %08x\n", - cur, sig, map_blk_cnt, phys_part_start, - part_blk_cnt); - printf(" part_name: %s, part_type: %s\n", - part_map_ptr->part_name, - part_map_ptr->part_type); - printf(" data_start:%08x, data_cnt:%08x status:%08x\n", - GET_BE_WORD32(part_map_ptr->data_start), - GET_BE_WORD32(part_map_ptr->data_cnt), - GET_BE_WORD32(part_map_ptr->part_status)); - printf(" processor: %s\n", part_map_ptr->processor); - } else { - dsize = (double)GET_BE_WORD32(part_map_ptr->data_cnt); - printf("%2d:%-20s size=%6.2fMB type=%s\n", cur, - part_map_ptr->part_name, - (dsize/(1024.0*2.0)), - part_map_ptr->part_type); - } - - cur++; - } - - close(fd); - return 0; -} diff --git a/.svn/pristine/be/bed13364b8cc9923eaf37f78786f9b2fbb829077.svn-base b/.svn/pristine/be/bed13364b8cc9923eaf37f78786f9b2fbb829077.svn-base deleted file mode 100644 index 8e16e5e..0000000 --- a/.svn/pristine/be/bed13364b8cc9923eaf37f78786f9b2fbb829077.svn-base +++ /dev/null @@ -1,177 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#define SHIFT_PER_CHANGE 3 -#define CHANGE_SHIFT (5 + SHIFT_PER_CHANGE) - -#define SLOW_MEM_CH_SIZE (0x10000 >> CHANGE_SHIFT) - -#define MAXNUM_HEX_PER_LINE 32 - -/* Different Joystick defines */ -#define JOYSTICK_MOUSE 1 -#define JOYSTICK_LINUX 2 -#define JOYSTICK_KEYPAD 3 -#define JOYSTICK_WIN32_1 4 -#define JOYSTICK_WIN32_2 5 - - -#define HALT_EVENT 0x10 -#define HALT_WANTTOQUIT 0x20 // OG : added WANTTOQUIT event -#define HALT_WANTTOBRK 0x40 // OG : added WANTTOBRK event - -#define MAX_BREAK_POINTS 0x20 - -#define MAX_BP_INDEX 0x100 -#define MAX_BP_PER_INDEX 3 /* 4 word32s total = 16 bytes */ -#define SIZE_BREAKPT_ENTRY_BITS 4 /* 16 bytes = 4 bits */ - -/* Warning--next defines used by asm! */ -#define PAGE_INFO_PAD_SIZE 0x800 -#define PAGE_INFO_WR_OFFSET 0x10000+PAGE_INFO_PAD_SIZE - -#define BANK_IO_BIT 31 -#define BANK_SHADOW_BIT 30 -#define BANK_SHADOW2_BIT 29 -#define BANK_IO2_BIT 28 -#define BANK_BREAK_BIT 27 -#define BANK_BREAK (1 << (31 - BANK_BREAK_BIT)) -#define BANK_IO2_TMP (1 << (31 - BANK_IO2_BIT)) -#define BANK_IO_TMP (1 << (31 - BANK_IO_BIT)) -#define BANK_SHADOW (1 << (31 - BANK_SHADOW_BIT)) -#define BANK_SHADOW2 (1 << (31 - BANK_SHADOW2_BIT)) -#define SET_BANK_IO \ - (&g_dummy_memory1_ptr[BANK_IO_TMP | BANK_IO2_TMP]) - -#define BANK_BAD_MEM (&g_dummy_memory1_ptr[0xff]) - - -#define ENGINE_FCYCLES 0x00 -#define ENGINE_REG_KPC 0x08 -#define ENGINE_REG_ACC 0x0c -#define ENGINE_REG_XREG 0x10 -#define ENGINE_REG_YREG 0x14 -#define ENGINE_REG_STACK 0x18 -#define ENGINE_REG_DBANK 0x1c -#define ENGINE_REG_DIRECT 0x20 -#define ENGINE_REG_PSR 0x24 -#define ENGINE_FPLUS_PTR 0x28 - -#define LOG_PC_DCYCS 0x00 -#define LOG_PC_DBANK_KPC 0x08 -#define LOG_PC_INSTR 0x0c -#define LOG_PC_PSR_ACC 0x10 -#define LOG_PC_XREG_YREG 0x14 -#define LOG_PC_STACK_DIRECT 0x18 -#define LOG_PC_PAD 0x1c - -#define LOG_PC_SIZE 0x20 - - -#define FPLUS_PLUS_1 0x00 -#define FPLUS_PLUS_2 0x08 -#define FPLUS_PLUS_3 0x10 -#define FPLUS_PLUS_X_M1 0x18 - -#define RET_BREAK 0x1 -#define RET_COP 0x2 -#define RET_WDM 0x3 -#define RET_MVP 0x4 -#define RET_MVN 0x5 -#define RET_WAI 0x6 -#define RET_STP 0x7 -#define RET_ADD_DEC_8 0x8 -#define RET_ADD_DEC_16 0x9 -#define RET_C700 0xa -#define RET_C70A 0xb -#define RET_C70D 0xc -#define RET_IRQ 0xd - - -#define MODE_BORDER 0 -#define MODE_TEXT 1 -#define MODE_GR 2 -#define MODE_HGR 3 -#define MODE_SUPER_HIRES 4 - -#define BIT_ALL_STAT_TEXT 0 -#define BIT_ALL_STAT_VID80 1 -#define BIT_ALL_STAT_ST80 2 -#define BIT_ALL_STAT_COLOR_C021 3 -#define BIT_ALL_STAT_MIX_T_GR 4 -#define BIT_ALL_STAT_DIS_COLOR_DHIRES 5 /* special val, c029 */ -#define BIT_ALL_STAT_PAGE2 6 /* special val, statereg */ -#define BIT_ALL_STAT_SUPER_HIRES 7 /* special, c029 */ -#define BIT_ALL_STAT_HIRES 8 -#define BIT_ALL_STAT_ANNUNC3 9 -#define BIT_ALL_STAT_BG_COLOR 10 /* 4 bits */ -#define BIT_ALL_STAT_TEXT_COLOR 14 /* 4 bits */ - /* Text must be just above */ - /* bg to match c022 reg */ -#define BIT_ALL_STAT_ALTCHARSET 18 -#define BIT_ALL_STAT_FLASH_STATE 19 -#define BIT_ALL_STAT_A2VID_PALETTE 20 /* 4 bits */ - -#define ALL_STAT_SUPER_HIRES (1 << (BIT_ALL_STAT_SUPER_HIRES)) -#define ALL_STAT_TEXT (1 << (BIT_ALL_STAT_TEXT)) -#define ALL_STAT_VID80 (1 << (BIT_ALL_STAT_VID80)) -#define ALL_STAT_PAGE2 (1 << (BIT_ALL_STAT_PAGE2)) -#define ALL_STAT_ST80 (1 << (BIT_ALL_STAT_ST80)) -#define ALL_STAT_COLOR_C021 (1 << (BIT_ALL_STAT_COLOR_C021)) -#define ALL_STAT_DIS_COLOR_DHIRES (1 << (BIT_ALL_STAT_DIS_COLOR_DHIRES)) -#define ALL_STAT_MIX_T_GR (1 << (BIT_ALL_STAT_MIX_T_GR)) -#define ALL_STAT_HIRES (1 << (BIT_ALL_STAT_HIRES)) -#define ALL_STAT_ANNUNC3 (1 << (BIT_ALL_STAT_ANNUNC3)) -#define ALL_STAT_TEXT_COLOR (0xf << (BIT_ALL_STAT_TEXT_COLOR)) -#define ALL_STAT_BG_COLOR (0xf << (BIT_ALL_STAT_BG_COLOR)) -#define ALL_STAT_ALTCHARSET (1 << (BIT_ALL_STAT_ALTCHARSET)) -#define ALL_STAT_FLASH_STATE (1 << (BIT_ALL_STAT_FLASH_STATE)) -#define ALL_STAT_A2VID_PALETTE (0xf << (BIT_ALL_STAT_A2VID_PALETTE)) - -#define BORDER_WIDTH 32 - -//#define EFF_BORDER_WIDTH (BORDER_WIDTH + (640-560)) - -// OG Eff_border_widht == border side in A2 mode -#define EFF_BORDER_WIDTH (BORDER_WIDTH + (640-560)/2) - -/* BASE_MARGIN_BOTTOM+MARGIN_TOP must equal 62. There are 262 scan lines */ -/* at 60Hz (15.7KHz line rate) and so we just make 62 border lines */ -#define BASE_MARGIN_TOP 32 -#define BASE_MARGIN_BOTTOM 30 -#define BASE_MARGIN_LEFT BORDER_WIDTH -#define BASE_MARGIN_RIGHT BORDER_WIDTH - -#define A2_WINDOW_WIDTH 640 -#define A2_WINDOW_HEIGHT 400 - -#define X_A2_WINDOW_WIDTH (A2_WINDOW_WIDTH + BASE_MARGIN_LEFT + \ - BASE_MARGIN_RIGHT) -#define X_A2_WINDOW_HEIGHT (A2_WINDOW_HEIGHT + BASE_MARGIN_TOP + \ - BASE_MARGIN_BOTTOM) - -#define MAX_STATUS_LINES 7 -#define STATUS_LINE_LENGTH 88 - -#define BASE_WINDOW_WIDTH (X_A2_WINDOW_WIDTH) - - -#define A2_BORDER_COLOR_NUM 0xfe diff --git a/.svn/pristine/bf/bfbcb286872f901c71852f4dd354829558e38eca.svn-base b/.svn/pristine/bf/bfbcb286872f901c71852f4dd354829558e38eca.svn-base deleted file mode 100644 index ea326ee..0000000 --- a/.svn/pristine/bf/bfbcb286872f901c71852f4dd354829558e38eca.svn-base +++ /dev/null @@ -1,108 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E810477A-E004-4308-A58A-21393213EF89} - Win32Proj - tfe - - - - StaticLibrary - true - MultiByte - v120 - - - StaticLibrary - false - true - MultiByte - v120 - - - - - - - - - - - - - true - - - false - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;TFE_EXPORTS;%(PreprocessorDefinitions) - Speed - false - ProgramDatabase - Default - CompileAsC - true - true - false - - - Windows - true - - - - - Level3 - NotUsing - Full - true - true - WIN32;NDEBUG;_WINDOWS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;TFE_EXPORTS;%(PreprocessorDefinitions) - Speed - CompileAsC - false - StreamingSIMDExtensions - AnySuitable - true - - - Windows - true - true - true - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.svn/pristine/bf/bfe3908d4f494d9c473976dd78fc39d5102fd6c2.svn-base b/.svn/pristine/bf/bfe3908d4f494d9c473976dd78fc39d5102fd6c2.svn-base deleted file mode 100644 index 4fc0db5..0000000 --- a/.svn/pristine/bf/bfe3908d4f494d9c473976dd78fc39d5102fd6c2.svn-base +++ /dev/null @@ -1,44 +0,0 @@ - ----- - GSport Ethernet - ----- - David Schmidt (david__schmidt at users dot souceforge dot net) - ----- - -GSport Emulated Ethernet - - The Uthernet (TFE) support in GSport was made possible by implementing the GPL source written by Spiro Trikaliotis for the {{{http://www.viceteam.org/}Vice emulator}}. -This version of GSport contains the latest code from VICE 2.2. - -* Details - - Right now Uthernet emulation only works under Windows. -Support for emulation under OS X and Linux is planned. -In order to use Uthernet emulation, you must install {{{http://www.WinPcap.org/install/default.html}WinPCap}} and -have a wired (not wireless) Ethernet connection on the host computer. - -* GSport Setup - - After GSport starts, press F4 to enter the text based menu and select the "Ethernet Card Configuration" option. - - By default, Uthernet emulation is turned off. Enable it by setting "Uthernet Card in Slot 3" to "On". - - Next, select the host interface you wish to use to communicate with the outside world. A list of available -interfaces is provided on screen. For most the default of interface "0" is correct. - - Return back to the main menu and save your configuration for good measure. Due to limitations, you must exit -and restart GSport for the changes you made to take effect. - -* GS/OS Setup - - In order to use TCP/IP connectivity under GS/OS, you need to install the latest version of Marinetti -and its Uthernet Link Layer. -Ewen Wannop has prepared a ready-made hard drive image with everything pre-installed, and that image -is available in a version tuned specifically to GSport's Uthernet emulation. -Download and use the disk image in the "GSport Internet Starter Kit": - - {{{http://sourceforge.net/projects/gsport/files/Emulator%20Software%20Images/}http://sourceforge.net/projects/gsport/files/Emulator Software Images/}} - -* 8-bit Applications - - Uthernet enabled versions of Contiki and ADTPro work fine with GSport. Other 8-bit software should also work but -are untested. diff --git a/.svn/pristine/c1/c11742ea98453f0aa69f6c0575d2dd2a30897fda.svn-base b/.svn/pristine/c1/c11742ea98453f0aa69f6c0575d2dd2a30897fda.svn-base deleted file mode 100644 index d784d55..0000000 --- a/.svn/pristine/c1/c11742ea98453f0aa69f6c0575d2dd2a30897fda.svn-base +++ /dev/null @@ -1,10 +0,0 @@ -TARGET = gsport.exe -OBJECTS = $(OBJECTS1) $(TFEOBJ) $(ATOBJ) $(PCAPOBJ) scc_windriver.o win32snd_driver.o win_console.o win_generic.o gsport32.o -CCOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DWIN_SOUND -DTOGGLE_STATUS -DWIN32 -D_WIN32 -D__USE_W32_SOCKETS -D_WINSOCK2API_ -std=gnu99 -DHAVE_ATBRIDGE -CPPOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DTOGGLE_STATUS -DWIN32 -D_WIN32 -D__USE_W32_SOCKETS -D_WINSOCK2API_ -DHAVE_ATBRIDGE -SUFFIX = ".exe" -NAME = gsport -EXTRA_LIBS = -Larch/win32 -lcomdlg32 -lShlwapi -lIPHlpApi - -XOPTS = -Wall -fomit-frame-pointer -march=i686 -XLIBS = \ No newline at end of file diff --git a/.svn/pristine/c1/c14f70c0134a83f0921a7befec781eb80c1ada2a.svn-base b/.svn/pristine/c1/c14f70c0134a83f0921a7befec781eb80c1ada2a.svn-base deleted file mode 100644 index 270c7d8..0000000 --- a/.svn/pristine/c1/c14f70c0134a83f0921a7befec781eb80c1ada2a.svn-base +++ /dev/null @@ -1,203 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {0B4E527A-DB50-4B5F-9B08-303ABAF7356A} - Win32Proj - gsport - - - - Application - true - MultiByte - v120 - - - Application - false - true - MultiByte - v120 - - - - - - - - - - - - - true - - - false - - - - NotUsing - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN_SOUND;GSPORT_LITTLE_ENDIAN;HAVE_TFE;HAVE_ATBRIDGE;TOGGLE_STATUS;%(PreprocessorDefinitions) - CompileAsC - Speed - true - ProgramDatabase - EnableFastChecks - Prompt - true - true - false - - - Console - true - IPHLPAPI.lib;Winmm.lib;Ws2_32.lib;Shlwapi.lib;$(SolutionDir)$(Configuration)\tfe.lib;;$(SolutionDir)$(Configuration)\atbridge.lib;%(AdditionalDependencies) - MachineX86 - - - - - Level3 - NotUsing - Full - true - true - WIN32;NDEBUG;_CONSOLE;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;WIN_SOUND;GSPORT_LITTLE_ENDIAN;HAVE_ATBRIDGE;HAVE_TFE;TOGGLE_STATUS;%(PreprocessorDefinitions) - Speed - false - CompileAsC - Prompt - StreamingSIMDExtensions2 - AnySuitable - true - true - - - Console - true - true - true - IPHLPAPI.lib;Winmm.lib;Ws2_32.lib;Shlwapi.lib;$(SolutionDir)$(Configuration)\tfe.lib;;$(SolutionDir)$(Configuration)\atbridge.lib;%(AdditionalDependencies) - - - - - - - - - - - - - - - perl make_inst c 8 instable.h > 8inst_c.h -perl make_inst c 16 instable.h > 16inst_c.h -perl make_inst s 8 instable.h > 8inst_s.h -perl make_inst s 16 instable.h > 16inst_s.h - 8inst_c.h 16inst_c.h 8inst_s.h 16inst_s.h - false - perl make_inst c 8 instable.h > 8inst_c.h -perl make_inst c 16 instable.h > 16inst_c.h -perl make_inst s 8 instable.h > 8inst_s.h -perl make_inst s 16 instable.h > 16inst_s.h - 8inst_c.h 16inst_c.h 8inst_s.h 16inst_s.h - false - - - - - - - - - - - - - - - - - - - - - - - perl make_size c size_tab.h > size_c.h -perl make_size s size_tab.h > size_s.h -perl make_size 8 size_tab.h > 8size_s.h -perl make_size 16 size_tab.h > 16size_s.h -perl make_size c size_tab.h > size_c.h - size_c.h size_s.h 8size_s.h 16size_s.h - false - perl make_size c size_tab.h > size_c.h -perl make_size s size_tab.h > size_s.h -perl make_size 8 size_tab.h > 8size_s.h -perl make_size 16 size_tab.h > 16size_s.h -perl make_size c size_tab.h > size_c.h - size_c.h size_s.h 8size_s.h 16size_s.h - false - - - - - - - - - - - - - - - - - - - - - CompileAsCpp - CompileAsCpp - - - - CompileAsCpp - CompileAsCpp - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.svn/pristine/c2/c2c4d23f1e2e2d8ea6e594296cccb3267cd53748.svn-base b/.svn/pristine/c2/c2c4d23f1e2e2d8ea6e594296cccb3267cd53748.svn-base deleted file mode 100644 index 8099074..0000000 --- a/.svn/pristine/c2/c2c4d23f1e2e2d8ea6e594296cccb3267cd53748.svn-base +++ /dev/null @@ -1,39 +0,0 @@ - - - -GSport Project Page - - - - - - -

-[GSport Home Page] -[SourceForge project page] -
- -
-

-
-GSport: an Apple II Emulator -
-

-
- -

-The documentation for the GSport project is maintained on the SourceForge site. -You should have been immediately redirected there; click on the following link -(http://gsport.sourceforge.net) -if not. -

- -
- -
-[GSport Home Page] -[SourceForge project page] -
- - - \ No newline at end of file diff --git a/.svn/pristine/c3/c3354967ea5d6758eae1d14474b3636c4fb4cebe.svn-base b/.svn/pristine/c3/c3354967ea5d6758eae1d14474b3636c4fb4cebe.svn-base deleted file mode 100644 index fa9ae70..0000000 --- a/.svn/pristine/c3/c3354967ea5d6758eae1d14474b3636c4fb4cebe.svn-base +++ /dev/null @@ -1,172 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" - -#ifdef ACTIVEIPHONE -void child_sound_init_mac() {} -void macsnd_init(word32 *shmaddr) {} -int mac_send_audio(byte *ptr, int in_size) {} -#else - -#include - - -#include "sound.h" -#include - -#define MACSND_REBUF_SIZE (64*1024) -#define MACSND_QUANTA 512 -/* MACSND_QUANTA must be >= 128 and a power of 2 */ - -word32 g_macsnd_rebuf[MACSND_REBUF_SIZE]; -volatile word32 *g_macsnd_rebuf_ptr; -volatile word32 *g_macsnd_rebuf_cur; -volatile int g_macsnd_playing = 0; - -extern int Verbose; - -extern int g_audio_rate; -extern word32 *g_sound_shm_addr; -extern int g_sound_size; - - -SndChannelPtr g_snd_channel_ptr; -ExtSoundHeader g_snd_hdr; -SndCommand g_snd_cmd; - -void -mac_snd_callback(SndChannelPtr snd_chan_ptr, SndCommand *in_sndcmd) -{ - OSStatus err; - int samps; - - // This is an interrupt routine--no printf, etc! - - samps = g_macsnd_rebuf_ptr - g_macsnd_rebuf_cur; - if(samps < 0) { - samps += MACSND_REBUF_SIZE; - } - - samps = samps & -(MACSND_QUANTA); // quantize to 1024 samples - if(g_macsnd_rebuf_cur + samps > &(g_macsnd_rebuf[MACSND_REBUF_SIZE])) { - samps = &(g_macsnd_rebuf[MACSND_REBUF_SIZE]) - - g_macsnd_rebuf_cur; - } - if(samps > 0) { - g_macsnd_playing = 1; - g_snd_hdr.numFrames = samps; - g_snd_hdr.loopEnd = samps; - g_snd_hdr.samplePtr = (char *)g_macsnd_rebuf_cur; // OG Cast from byte* to ,char* - - g_snd_cmd.cmd = bufferCmd; - g_snd_cmd.param1 = 0; - g_snd_cmd.param2 = (long) &g_snd_hdr; - - g_macsnd_rebuf_cur += samps; - if(g_macsnd_rebuf_cur >= &(g_macsnd_rebuf[MACSND_REBUF_SIZE])) { - g_macsnd_rebuf_cur -= MACSND_REBUF_SIZE; - } - - err = SndDoImmediate(g_snd_channel_ptr, &g_snd_cmd); - - // And set-up callback - g_snd_cmd.cmd = callBackCmd; - g_snd_cmd.param1 = 0; - g_snd_cmd.param2 = 0; - err = SndDoCommand(g_snd_channel_ptr, &g_snd_cmd, TRUE); - } else { - g_macsnd_playing = 0; - } -} - -int -mac_send_audio(byte *ptr, int in_size) -{ - SndCommand snd_cmd = {0}; - word32 *wptr, *macptr; - word32 *eptr; - int samps; - int i; - - samps = in_size / 4; - wptr = (word32 *)ptr; - macptr = (word32 *)g_macsnd_rebuf_ptr; - eptr = &g_macsnd_rebuf[MACSND_REBUF_SIZE]; - for(i = 0; i < samps; i++) { - *macptr++ = *wptr++; - if(macptr >= eptr) { - macptr = &g_macsnd_rebuf[0]; - } - } - - g_macsnd_rebuf_ptr = macptr; - - if(!g_macsnd_playing) { - mac_snd_callback(g_snd_channel_ptr, &snd_cmd); - } - - return in_size; -} - -void -child_sound_init_mac() -{ - OSStatus err; - - mac_printf("In mac child\n"); - fflush(stdout); - mac_printf("pid: %d\n", getpid()); - fflush(stdout); - - //return; - - //g_snd_channel_ptr = 0; - err = SndNewChannel(&g_snd_channel_ptr, sampledSynth, initStereo, - NewSndCallBackUPP(mac_snd_callback)); - mac_printf("SndNewChannel ret: %d\n", (int)err); - fflush(stdout); - - memset(&g_snd_hdr, 0, sizeof(g_snd_hdr)); - g_snd_hdr.sampleSize = 16; - g_snd_hdr.numChannels = 2; - g_audio_rate = 44100; - g_snd_hdr.sampleRate = g_audio_rate << 16; - g_snd_hdr.numFrames = 0; // will be set in mac_send_audio - g_snd_hdr.encode = extSH; - g_snd_hdr.baseFrequency = 0; - g_snd_hdr.samplePtr = 0; - - set_audio_rate(g_audio_rate); - - mac_printf("End of child_sound_init_mac\n"); - fflush(stdout); -} - -void -macsnd_init(word32 *shmaddr) -{ - g_macsnd_rebuf_cur = &g_macsnd_rebuf[0]; - g_macsnd_rebuf_ptr = &g_macsnd_rebuf[0]; - mac_printf("macsnd_init called\n"); - child_sound_loop(-1, -1, shmaddr); -} -#endif diff --git a/.svn/pristine/c4/c4270473f6ea4a682f711bbc4ab3dddb36feac84.svn-base b/.svn/pristine/c4/c4270473f6ea4a682f711bbc4ab3dddb36feac84.svn-base deleted file mode 100644 index 0257d70..0000000 --- a/.svn/pristine/c4/c4270473f6ea4a682f711bbc4ab3dddb36feac84.svn-base +++ /dev/null @@ -1,10 +0,0 @@ - -TARGET = gsport.exe -OBJECTS = $(OBJECTS1) win32snd_driver.o windriver.o gsport32.o -CCOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -SUFFIX = ".exe" -NAME = gsport - -XOPTS = -Wall -fomit-frame-pointer -march=pentium -XLIBS = - diff --git a/.svn/pristine/c6/c63a59634393acbe7cc57481556231626b32e491.svn-base b/.svn/pristine/c6/c63a59634393acbe7cc57481556231626b32e491.svn-base deleted file mode 100644 index d4d1df4..0000000 --- a/.svn/pristine/c6/c63a59634393acbe7cc57481556231626b32e491.svn-base +++ /dev/null @@ -1,137 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2013-2014 by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -typedef byte at_node_t; -static const at_node_t at_broadcast_node = 0xFF; - -typedef word16 at_network_t; - -#pragma pack(push, 1) -struct at_addr_t -{ - at_network_t network; - at_node_t node; -}; -#pragma pack(pop) - -enum LAP_TYPES { /* reference C-6 */ - LAP_DDP_SHORT = 0x01, - LAP_DDP_LONG = 0x02 -}; - -enum DDP_SOCKETS { /* reference C-7 */ - DDP_SOCKET_INVALID_00 = 0x00, - DDP_SOCKET_RTMP = 0x01, - DDP_SOCKET_NIS = 0x02, - DDP_SOCKET_ECHO = 0x04, - DDP_SOCKET_ZIS = 0x06, - DDP_SOCKET_INVALID_FF = 0xFF, -}; - -enum DDP_TYPES { /* reference C-6 */ - DDP_TYPE_INVALID = 0x00, - DDP_TYPE_RTMP = 0x01, - DDP_TYPE_NBP = 0x02, - DDP_TYPE_ATP = 0x03, - DDP_TYPE_AEP = 0x04, - DDP_TYPE_RTMP_REQUEST = 0x05, - DDP_TYPE_ZIP = 0x06, - DDP_TYPE_ADSP = 0x07, - DDP_TYPE_RESERVED_08 = 0x08, - DDP_TYPE_RESERVED_09 = 0x09, - DDP_TYPE_RESERVED_0A = 0x0A, - DDP_TYPE_RESERVED_0B = 0x0B, - DDP_TYPE_RESERVED_0C = 0x0C, - DDP_TYPE_RESERVED_0D = 0x0D, - DDP_TYPE_RESERVED_0E = 0x0E, - DDP_TYPE_RESERVED_0F = 0x0F -}; - -#pragma pack(push, 1) -struct DDP_LONG -{ - byte length[2]; - word16 checksum; - at_network_t dest_net; - at_network_t source_net; - at_node_t dest_node; - at_node_t source_node; - byte dest_socket; - byte source_socket; - byte type; -}; - -struct DDP_SHORT -{ - byte length[2]; - byte dest_socket; - byte source_socket; - byte type; -}; - -enum RTMP_FUNCTIONS { /* reference C-8*/ - RTMP_FUNCTION_REQUEST = 0x01, - RTMP_FUNCTION_RDR_SPLIT = 0x02, - RTMP_FUNCTION_RDR_NO_SPLIT = 0x03 -}; - -struct rtmp_request_t -{ - byte function; -}; - -struct rtmp_nonextended_data_t -{ - at_network_t net; - byte id_length; - at_node_t node; - word16 zero; - byte delimiter; -}; - -struct rtmp_nonextended_response_t -{ - at_network_t net; - byte id_length; - at_node_t node; -}; - -struct rtmp_extended_data_t -{ - at_network_t net; - byte id_length; - at_node_t node; -}; - -struct rtmp_nonextended_tuple_t -{ - at_network_t net; - byte distance; -}; - -struct rtmp_extended_tuple_t -{ - at_network_t range_start; - byte distance; - at_network_t range_end; - byte delimiter; -}; - -static const byte RTMP_TUPLE_DELIMITER = 0x82; -#pragma pack(pop) \ No newline at end of file diff --git a/.svn/pristine/c7/c75c751589cbcc1ad4ab4f63676af7abadd86f5b.svn-base b/.svn/pristine/c7/c75c751589cbcc1ad4ab4f63676af7abadd86f5b.svn-base deleted file mode 100644 index 78360afc21ad57386a1315066fcf4ff5584665db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmb2xVByi_F~ftSLLuV+t_&bpacWkE#;OSxdv~x3NY2o#_cS=kHNpC1#Rg4J+YgE} zH0RH?V4G04cL$q+$WoQN7VH~%PYQ0}Hb_d%8CeOyXJJ>D+ zFW{=RVC}f@Ywiw~xfZMz8=Q}-Ot8vWk+CYn=fmF#|2F)a*>GTjxhMMyPcE(tY&%+2 z=31}=jrS^G+MvwEwNib<`MnnGe|NB){4s$!Q+>@!hE^4cx*e=w6A~t 0,arg3,brk_testing_SYM - extru kpc,31,16,arg0 - addi 1,arg2,arg2 - bb,>= psr,23,brk_native_SYM - stw arg2,r%g_num_brk(arg1) - - bl push_16,link - nop - - bl push_8,link - extru psr,31,8,arg0 ;B bit already on in PSR - - ldil l%0xfffe,arg0 - bl get_mem_long_16,link - ldo r%0xfffe(arg0),arg0 - - zdep ret0,31,16,kpc ;set kbank to 0 - -#if 0 - bl set_halt_act,link - ldi 3,arg0 -#endif - - - ldi 0,dbank ;clear dbank in emul mode - b dispatch - depi 1,29,2,psr ;ints masked, decimal off - - -brk_native_SYM - stw arg0,STACK_SAVE_COP_ARG0(sp) - bl push_8,link - extru kpc,15,8,arg0 - - bl push_16,link - ldw STACK_SAVE_COP_ARG0(sp),arg0 - - bl push_8,link - extru psr,31,8,arg0 - - ldil l%0xffe6,arg0 - bl get_mem_long_16,link - ldo r%0xffe6(arg0),arg0 - - zdep ret0,31,16,kpc ;zero kbank in kpc - -#if 0 -#endif - bl set_halt_act,link - ldi 3,arg0 - - b dispatch - depi 1,29,2,psr ;ints masked, decimal off - -brk_testing_SYM - DEC_KPC2; - CYCLES_PLUS_2 - b dispatch_done - depi RET_BREAK,3,4,ret0 - -#else - GET_1BYTE_ARG; - if(g_testing) { - CYCLES_PLUS_2; - FINISH(RET_BREAK, arg); - } - g_num_brk++; - INC_KPC_2; - if(psr & 0x100) { - PUSH16(kpc & 0xffff); - PUSH8(psr & 0xff); - GET_MEMORY16(0xfffe, kpc, 0); - dbank = 0; - } else { - PUSH8(kpc >> 16); - PUSH16(kpc); - PUSH8(psr & 0xff); - GET_MEMORY16(0xffe6, kpc, 0); - halt_printf("Halting for native break!\n"); - } - kpc = kpc & 0xffff; - psr |= 0x4; - psr &= ~(0x8); -#endif - -inst01_SYM /* ORA (Dloc,X) */ -/* called with arg = val to ORA in */ - GET_DLOC_X_IND_RD(); - ORA_INST(); - -inst02_SYM /* COP */ -#ifdef ASM - ldil l%g_num_cop,arg1 - INC_KPC_2; - ldw r%g_num_cop(arg1),arg2 - extru kpc,31,16,arg0 - addi 1,arg2,arg2 - bb,>= psr,23,cop_native_SYM - stw arg2,r%g_num_cop(arg1) - - bl push_16,link - nop - - bl push_8,link - extru psr,31,8,arg0 - - ldil l%0xfff4,arg0 - bl get_mem_long_16,link - ldo r%0xfff4(arg0),arg0 - - ldi 0,dbank ;clear dbank in emul mode - zdep ret0,31,16,kpc ;clear kbank - - bl set_halt_act,link - ldi 3,arg0 - - b dispatch - depi 1,29,2,psr ;ints masked, decimal off - -cop_native_SYM - stw arg0,STACK_SAVE_COP_ARG0(sp) - bl push_8,link - extru kpc,15,8,arg0 - - bl push_16,link - ldw STACK_SAVE_COP_ARG0(sp),arg0 - - bl push_8,link - extru psr,31,8,arg0 - - ldil l%0xffe4,arg0 - bl get_mem_long_16,link - ldo r%0xffe4(arg0),arg0 - - zdep ret0,31,16,kpc ;clear kbank - b dispatch - depi 1,29,2,psr ;ints masked, decimal off - - -#else - g_num_cop++; - INC_KPC_2; - if(psr & 0x100) { - halt_printf("Halting for emul COP at %04x\n", kpc); - PUSH16(kpc & 0xffff); - PUSH8(psr & 0xff); - GET_MEMORY16(0xfff4, kpc, 0); - dbank = 0; - } else { - PUSH8(kpc >> 16); - PUSH16(kpc & 0xffff); - PUSH8(psr & 0xff); - GET_MEMORY16(0xffe4, kpc, 0); - } - kpc = kpc & 0xffff; - psr |= 4; - psr &= ~(0x8); -#endif - -inst03_SYM /* ORA Disp8,S */ - GET_DISP8_S_RD(); - ORA_INST(); - -inst04_SYM /* TSB Dloc */ - GET_DLOC_RD(); - TSB_INST(1); - -inst05_SYM /* ORA Dloc */ - GET_DLOC_RD(); - ORA_INST(); - -inst06_SYM /* ASL Dloc */ - GET_DLOC_RD(); - ASL_INST(1); - -inst07_SYM /* ORA [Dloc] */ - GET_DLOC_L_IND_RD(); - ORA_INST(); - -inst08_SYM /* PHP */ -#ifdef ASM - dep neg,24,1,psr - ldil l%dispatch,link - INC_KPC_1 - depi 0,30,1,psr - comiclr,<> 0,zero,0 - depi 1,30,1,psr - ldo r%dispatch(link),link - b push_8 - extru psr,31,8,arg0 -#else - INC_KPC_1; - psr = (psr & ~0x82) | ((neg & 1) << 7) | ((!zero) << 1); - PUSH8(psr); -#endif - -inst09_SYM /* ORA #imm */ - GET_IMM_MEM(); - ORA_INST(); - -inst0a_SYM /* ASL a */ -#ifdef ASM -# ifdef ACC8 - ldi 0xff,scratch1 - sh1add acc,0,scratch3 - INC_KPC_1 - extru scratch3,24,1,neg - and scratch3,scratch1,zero - extru scratch3,23,1,scratch2 - dep zero,31,8,acc - b dispatch - dep scratch2,31,1,psr /* set carry */ -# else - zdepi -1,31,16,scratch1 - sh1add acc,0,scratch3 - INC_KPC_1 - extru scratch3,16,1,neg - and scratch3,scratch1,zero - extru scratch3,15,1,scratch2 - dep scratch2,31,1,psr /* set carry */ - b dispatch - dep zero,31,16,acc -# endif -#else - INC_KPC_1; - tmp1 = acc + acc; -# ifdef ACC8 - SET_CARRY8(tmp1); - acc = (acc & 0xff00) + (tmp1 & 0xff); - SET_NEG_ZERO8(acc & 0xff); -# else - SET_CARRY16(tmp1); - acc = tmp1 & 0xffff; - SET_NEG_ZERO16(acc); -# endif -#endif - -inst0b_SYM /* PHD */ -#ifdef ASM - ldil l%dispatch,link - extru direct,31,16,arg0 - INC_KPC_1 - b push_16_unsafe - ldo r%dispatch(link),link -#else - INC_KPC_1; - PUSH16_UNSAFE(direct); -#endif - -inst0c_SYM /* TSB abs */ - GET_ABS_RD(); - TSB_INST(0); - -inst0d_SYM /* ORA abs */ - GET_ABS_RD(); - ORA_INST(); - -inst0e_SYM /* ASL abs */ - GET_ABS_RD(); - ASL_INST(0); - -inst0f_SYM /* ORA long */ - GET_LONG_RD(); - ORA_INST(); - - -inst10_SYM /* BPL disp8 */ -#ifdef ASM - COND_BR1 - comib,<> 0,neg,inst10_2_SYM - COND_BR2 - -inst10_2_SYM - COND_BR_UNTAKEN -#else - BRANCH_DISP8(neg == 0); -#endif - -inst11_SYM /* ORA (Dloc),y */ - GET_DLOC_IND_Y_RD(); - ORA_INST(); - -inst12_SYM /* ORA (Dloc) */ - GET_DLOC_IND_RD(); - ORA_INST(); - -inst13_SYM /* ORA (Disp8,s),y */ - GET_DISP8_S_IND_Y_RD(); - ORA_INST(); - -inst14_SYM /* TRB Dloc */ - GET_DLOC_RD(); - TRB_INST(1); - -inst15_SYM /* ORA Dloc,x */ - GET_DLOC_X_RD(); - ORA_INST(); - -inst16_SYM /* ASL Dloc,X */ - GET_DLOC_X_RD(); - ASL_INST(1); - -inst17_SYM /* ORA [Dloc],Y */ - GET_DLOC_L_IND_Y_RD(); - ORA_INST(); - -inst18_SYM /* CLC */ -#ifdef ASM - INC_KPC_1 - b dispatch - depi 0,31,1,psr /* clear carry */ -#else - psr = psr & (~1); - INC_KPC_1; -#endif - -inst19_SYM /* ORA abs,y */ - GET_ABS_Y_RD(); - ORA_INST(); - - -inst1a_SYM /* INC a */ -#ifdef ASM -# ifdef ACC8 - ldi 0xff,scratch2 - addi 1,acc,scratch1 - extru scratch1,24,1,neg - INC_KPC_1 - extru scratch1,31,8,zero - b dispatch - dep zero,31,8,acc -# else - zdepi -1,31,16,scratch2 - addi 1,acc,scratch1 - extru scratch1,16,1,neg - INC_KPC_1 - extru scratch1,31,16,zero - b dispatch - dep zero,31,16,acc -# endif -#else - INC_KPC_1; -# ifdef ACC8 - acc = (acc & 0xff00) | ((acc + 1) & 0xff); - SET_NEG_ZERO8(acc & 0xff); -# else - acc = (acc + 1) & 0xffff; - SET_NEG_ZERO16(acc); -# endif -#endif - -inst1b_SYM /* TCS */ -#ifdef ASM - copy acc,stack - extru,= psr,23,1,0 /* in emulation mode, stack page 1 */ - depi 1,23,24,stack - INC_KPC_1 - b dispatch - nop -#else - stack = acc; - INC_KPC_1; - if(psr & 0x100) { - stack = (stack & 0xff) + 0x100; - } -#endif - -inst1c_SYM /* TRB Abs */ - GET_ABS_RD(); - TRB_INST(0); - -inst1d_SYM /* ORA Abs,X */ - GET_ABS_X_RD(); - ORA_INST(); - -inst1e_SYM /* ASL Abs,X */ - GET_ABS_X_RD_WR(); - ASL_INST(0); - -inst1f_SYM /* ORA Long,X */ - GET_LONG_X_RD(); - ORA_INST(); - - -inst20_SYM /* JSR abs */ -#ifdef ASM - addi 2,kpc,arg0 - ldb 1(scratch1),scratch2 - CYCLES_PLUS_2 - ldb 2(scratch1),scratch1 - ldil l%dispatch,link - extru arg0,31,16,arg0 - ldo r%dispatch(link),link - dep scratch2,31,8,kpc - b push_16 - dep scratch1,23,8,kpc -#else - GET_2BYTE_ARG; - INC_KPC_2; - PUSH16(kpc); - kpc = (kpc & 0xff0000) + arg; - CYCLES_PLUS_2; -#endif - -inst21_SYM /* AND (Dloc,X) */ -/* called with arg = val to AND in */ - GET_DLOC_X_IND_RD(); - AND_INST(); - -inst22_SYM /* JSL Long */ -#ifdef ASM - INC_KPC_3 - ldb 3(scratch1),scratch2 - copy kpc,arg0 - ldb 1(scratch1),kpc - ldb 2(scratch1),scratch1 - CYCLES_PLUS_3 - dep scratch2,15,8,kpc - stw scratch2,STACK_SAVE_INSTR_TMP1(sp) - bl push_24_unsafe,link - dep scratch1,23,8,kpc - - b dispatch - nop -#else - GET_3BYTE_ARG; - tmp1 = arg; - CYCLES_PLUS_3; - INC_KPC_3; - PUSH24_UNSAFE(kpc); - kpc = tmp1 & 0xffffff; -#endif - -inst23_SYM /* AND Disp8,S */ -/* called with arg = val to AND in */ - GET_DISP8_S_RD(); - AND_INST(); - -inst24_SYM /* BIT Dloc */ - GET_DLOC_RD(); - BIT_INST(); - -inst25_SYM /* AND Dloc */ -/* called with arg = val to AND in */ - GET_DLOC_RD(); - AND_INST(); - -inst26_SYM /* ROL Dloc */ - GET_DLOC_RD(); -/* save1 is now apple addr */ -/* ret0 is data */ - ROL_INST(1); - -inst27_SYM /* AND [Dloc] */ - GET_DLOC_L_IND_RD(); - AND_INST(); - -inst28_SYM /* PLP */ -#ifdef ASM - bl pull_8,link - ldi 0,zero - - extru psr,27,2,scratch2 /* save old x & m */ - dep ret0,31,8,psr - CYCLES_PLUS_1 - INC_KPC_1 - extru,<> ret0,30,1,0 - ldi 1,zero - copy scratch2,arg0 - b update_system_state - extru ret0,24,1,neg -#else - PULL8(tmp1); - tmp2 = psr; - CYCLES_PLUS_1; - INC_KPC_1; - psr = (psr & ~0xff) | (tmp1 & 0xff); - zero = !(psr & 2); - neg = (psr >> 7) & 1; - UPDATE_PSR(psr, tmp2); -#endif - - -inst29_SYM /* AND #imm */ - GET_IMM_MEM(); - AND_INST(); - -inst2a_SYM /* ROL a */ -#ifdef ASM -# ifdef ACC8 - extru psr,31,1,scratch2 - ldi 0xff,scratch1 - sh1add acc,scratch2,scratch3 - INC_KPC_1 - extru scratch3,24,1,neg - and scratch3,scratch1,zero - extru scratch3,23,1,scratch2 - dep zero,31,8,acc - b dispatch - dep scratch2,31,1,psr /* set carry */ -# else - extru psr,31,1,scratch2 - INC_KPC_1 - sh1add acc,scratch2,scratch3 - zdepi -1,31,16,scratch1 - extru scratch3,16,1,neg - and scratch3,scratch1,zero - extru scratch3,15,1,scratch2 - dep scratch2,31,1,psr /* set carry */ - b dispatch - dep zero,31,16,acc -# endif -#else - INC_KPC_1; -# ifdef ACC8 - tmp1 = ((acc & 0xff) << 1) + (psr & 1); - SET_CARRY8(tmp1); - acc = (acc & 0xff00) + (tmp1 & 0xff); - SET_NEG_ZERO8(tmp1 & 0xff); -# else - tmp1 = (acc << 1) + (psr & 1); - SET_CARRY16(tmp1); - acc = (tmp1 & 0xffff); - SET_NEG_ZERO16(acc); -# endif -#endif - -inst2b_SYM /* PLD */ -#ifdef ASM - INC_KPC_1 - bl pull_16_unsafe,link - CYCLES_PLUS_1 - extru ret0,31,16,direct - extru ret0,16,1,neg - b dispatch - copy direct,zero -#else - INC_KPC_1; - PULL16_UNSAFE(direct); - CYCLES_PLUS_1; - SET_NEG_ZERO16(direct); -#endif - -inst2c_SYM /* BIT abs */ - GET_ABS_RD(); - BIT_INST(); - -inst2d_SYM /* AND abs */ - GET_ABS_RD(); - AND_INST(); - -inst2e_SYM /* ROL abs */ - GET_ABS_RD(); - ROL_INST(0); - -inst2f_SYM /* AND long */ - GET_LONG_RD(); - AND_INST(); - - -inst30_SYM /* BMI disp8 */ -#ifdef ASM - COND_BR1 - comib,= 0,neg,inst30_2_SYM - COND_BR2 - -inst30_2_SYM - COND_BR_UNTAKEN -#else - BRANCH_DISP8(neg); -#endif - -inst31_SYM /* AND (Dloc),y */ - GET_DLOC_IND_Y_RD(); - AND_INST(); - -inst32_SYM /* AND (Dloc) */ - GET_DLOC_IND_RD(); - AND_INST(); - -inst33_SYM /* AND (Disp8,s),y */ - GET_DISP8_S_IND_Y_RD(); - AND_INST(); - -inst34_SYM /* BIT Dloc,x */ - GET_DLOC_X_RD(); - BIT_INST(); - -inst35_SYM /* AND Dloc,x */ - GET_DLOC_X_RD(); - AND_INST(); - -inst36_SYM /* ROL Dloc,X */ - GET_DLOC_X_RD(); - ROL_INST(1); - -inst37_SYM /* AND [Dloc],Y */ - GET_DLOC_L_IND_Y_RD(); - AND_INST(); - -inst38_SYM /* SEC */ -#ifdef ASM - INC_KPC_1 - b dispatch - depi 1,31,1,psr /* set carry */ -#else - psr = psr | 1; - INC_KPC_1; -#endif - -inst39_SYM /* AND abs,y */ - GET_ABS_Y_RD(); - AND_INST(); - -inst3a_SYM /* DEC a */ -#ifdef ASM -# ifdef ACC8 - addi -1,acc,scratch1 - extru scratch1,24,1,neg - INC_KPC_1 - extru scratch1,31,8,zero - b dispatch - dep zero,31,8,acc -# else - addi -1,acc,scratch1 - extru scratch1,16,1,neg - INC_KPC_1 - extru scratch1,31,16,zero - b dispatch - dep zero,31,16,acc -# endif -#else - INC_KPC_1; -# ifdef ACC8 - acc = (acc & 0xff00) | ((acc - 1) & 0xff); - SET_NEG_ZERO8(acc & 0xff); -# else - acc = (acc - 1) & 0xffff; - SET_NEG_ZERO16(acc); -# endif -#endif - -inst3b_SYM /* TSC */ -/* set N,Z according to 16 bit acc */ -#ifdef ASM - copy stack,acc - extru stack,16,1,neg - INC_KPC_1 - b dispatch - extru acc,31,16,zero -#else - INC_KPC_1; - acc = stack; - SET_NEG_ZERO16(acc); -#endif - -inst3c_SYM /* BIT Abs,x */ - GET_ABS_X_RD(); - BIT_INST(); - -inst3d_SYM /* AND Abs,X */ - GET_ABS_X_RD(); - AND_INST(); - -inst3e_SYM /* ROL Abs,X */ - GET_ABS_X_RD_WR(); - ROL_INST(0); - -inst3f_SYM /* AND Long,X */ - GET_LONG_X_RD(); - AND_INST(); - - -inst40_SYM /* RTI */ -#ifdef ASM - bb,>= psr,23,rti_native_SYM - CYCLES_PLUS_1 -/* emulation */ - bl pull_24,link - ldi 0,zero - - extru psr,27,2,scratch2 - extru ret0,23,16,scratch3 - copy scratch2,arg0 - extru,<> ret0,30,1,0 - ldi 1,zero - dep ret0,31,8,psr - - extru ret0,24,1,neg - b update_system_state - dep scratch3,31,16,kpc - -rti_native_SYM - bl pull_8,link - ldi 0,zero - - copy ret0,scratch1 - extru ret0,24,1,neg - dep ret0,31,8,scratch1 - bl pull_24,link - stw scratch1,STACK_SAVE_INSTR_TMP1(sp) - - extru psr,27,2,scratch2 - ldw STACK_SAVE_INSTR_TMP1(sp),psr - extru ret0,31,24,kpc - extru,<> psr,30,1,0 - ldi 1,zero - - b update_system_state_and_change_kbank - copy scratch2,arg0 -#else - CYCLES_PLUS_1 - if(psr & 0x100) { - PULL24(tmp1); - kpc = (kpc & 0xff0000) + ((tmp1 >> 8) & 0xffff); - tmp2 = psr; - psr = (psr & ~0xff) + (tmp1 & 0xff); - neg = (psr >> 7) & 1; - zero = !(psr & 2); - UPDATE_PSR(psr, tmp2); - } else { - PULL8(tmp1); - tmp2 = psr; - psr = (tmp1 & 0xff); - neg = (psr >> 7) & 1; - zero = !(psr & 2); - PULL24(kpc); - UPDATE_PSR(psr, tmp2); - } -#endif - - -inst41_SYM /* EOR (Dloc,X) */ -/* called with arg = val to EOR in */ - GET_DLOC_X_IND_RD(); - EOR_INST(); - -inst42_SYM /* WDM */ -#ifdef ASM - ldb 1(scratch1),ret0 - CYCLES_PLUS_5 - CYCLES_PLUS_2 - INC_KPC_2 - b dispatch_done - depi RET_WDM,3,4,ret0 -#else - GET_1BYTE_ARG; - INC_KPC_2; - CYCLES_PLUS_5; - CYCLES_PLUS_2; - FINISH(RET_WDM, arg & 0xff); -#endif - -inst43_SYM /* EOR Disp8,S */ -/* called with arg = val to EOR in */ - GET_DISP8_S_RD(); - EOR_INST(); - -inst44_SYM /* MVP */ -#ifdef ASM - ldb 2(scratch1),scratch2 /* src bank */ - bb,< psr,23,inst44_notnat_SYM - ldb 1(scratch1),dbank /* dest bank */ - bb,< psr,27,inst44_notnat_SYM - stw scratch2,STACK_SRC_BANK(sp) - -inst44_loop_SYM - CYCLES_PLUS_1 - ldw STACK_SRC_BANK(sp),scratch2 - copy xreg,arg0 - - bl get_mem_long_8,link - dep scratch2,15,8,arg0 -/* got byte */ - copy ret0,arg1 - copy yreg,arg0 - bl set_mem_long_8,link - dep dbank,15,8,arg0 -/* wrote byte, dec acc */ - CYCLES_PLUS_2 - fldds 0(fcycles_stop_ptr),fcycles_stop - addi -1,xreg,xreg - zdepi -1,31,16,scratch2 - addi -1,yreg,yreg - addi -1,acc,acc - fcmp,<,dbl fcycles,fcycles_stop - and xreg,scratch2,xreg - extrs acc,31,16,scratch1 - and yreg,scratch2,yreg - - comib,= -1,scratch1,inst44_done_SYM - and acc,scratch2,acc - - ftest - b inst44_out_of_time_SYM - - CYCLES_PLUS_2 - b inst44_loop_SYM - nop - -/* get here if done */ -inst44_done_SYM - INC_KPC_3 - b dispatch - nop - -inst44_notnat_SYM - copy dbank,ret0 - dep scratch2,23,8,ret0 - CYCLES_PLUS_3 - depi RET_MVP,3,4,ret0 - b dispatch_done - CYCLES_PLUS_2 - -inst44_out_of_time_SYM -/* cycle have gone positive, just get out, do not update kpc */ - b,n dispatch -#else - GET_2BYTE_ARG; - /* arg & 0xff = dest bank, arg & 0xff00 = src bank */ - if(psr & 0x110) { - halt_printf("MVP but not native m or x!\n"); - break; - } - CYCLES_MINUS_2 - dbank = arg & 0xff; - tmp1 = (arg >> 8) & 0xff; - while(1) { - CYCLES_PLUS_3; - GET_MEMORY8((tmp1 << 16) + xreg, arg); - SET_MEMORY8((dbank << 16) + yreg, arg); - CYCLES_PLUS_2; - xreg = (xreg - 1) & 0xffff; - yreg = (yreg - 1) & 0xffff; - acc = (acc - 1) & 0xffff; - if(acc == 0xffff) { - INC_KPC_3; - break; - } - if(fcycles >= g_fcycles_stop) { - break; - } - } -#endif - - -inst45_SYM /* EOR Dloc */ -/* called with arg = val to EOR in */ - GET_DLOC_RD(); - EOR_INST(); - -inst46_SYM /* LSR Dloc */ - GET_DLOC_RD(); -/* save1 is now apple addr */ -/* ret0 is data */ - LSR_INST(1); - -inst47_SYM /* EOR [Dloc] */ - GET_DLOC_L_IND_RD(); - EOR_INST(); - -inst48_SYM /* PHA */ -#ifdef ASM -# ifdef ACC8 - INC_KPC_1 - ldil l%dispatch,link - extru acc,31,8,arg0 - b push_8 - ldo r%dispatch(link),link -# else - INC_KPC_1 - ldil l%dispatch,link - extru acc,31,16,arg0 - b push_16 - ldo r%dispatch(link),link -# endif -#else - INC_KPC_1; -# ifdef ACC8 - PUSH8(acc); -# else - PUSH16(acc); -# endif -#endif - -inst49_SYM /* EOR #imm */ - GET_IMM_MEM(); - EOR_INST(); - -inst4a_SYM /* LSR a */ -#ifdef ASM -# ifdef ACC8 - extru acc,31,1,scratch2 - INC_KPC_1 - extru acc,30,7,zero - ldi 0,neg - dep scratch2,31,1,psr /* set carry */ - b dispatch - dep zero,31,8,acc -# else - extru acc,31,1,scratch2 - INC_KPC_1 - extru acc,30,15,zero - ldi 0,neg - dep scratch2,31,1,psr /* set carry */ - b dispatch - dep zero,31,16,acc -# endif -#else - INC_KPC_1; -# ifdef ACC8 - tmp1 = ((acc & 0xff) >> 1); - SET_CARRY8(acc << 8); - acc = (acc & 0xff00) + (tmp1 & 0xff); - SET_NEG_ZERO8(tmp1 & 0xff); -# else - tmp1 = (acc >> 1); - SET_CARRY8((acc << 8)); - acc = (tmp1 & 0xffff); - SET_NEG_ZERO16(acc); -# endif -#endif - -inst4b_SYM /* PHK */ -#ifdef ASM - ldil l%dispatch,link - extru kpc,15,8,arg0 - INC_KPC_1 - b push_8 - ldo r%dispatch(link),link -#else - PUSH8(kpc >> 16); - INC_KPC_1; -#endif - -inst4c_SYM /* JMP abs */ -#ifdef ASM - ldb 1(scratch1),scratch2 - CYCLES_PLUS_1 - ldb 2(scratch1),scratch1 - dep scratch2,31,8,kpc - b dispatch - dep scratch1,23,8,kpc -#else - GET_2BYTE_ARG; - CYCLES_PLUS_1; - kpc = (kpc & 0xff0000) + arg; -#endif - - -inst4d_SYM /* EOR abs */ - GET_ABS_RD(); - EOR_INST(); - -inst4e_SYM /* LSR abs */ - GET_ABS_RD(); - LSR_INST(0); - -inst4f_SYM /* EOR long */ - GET_LONG_RD(); - EOR_INST(); - - -inst50_SYM /* BVC disp8 */ -#ifdef ASM - COND_BR1 - bb,< psr,25,inst50_2_SYM - COND_BR2 - -inst50_2_SYM - COND_BR_UNTAKEN - -#else - BRANCH_DISP8((psr & 0x40) == 0); -#endif - -inst51_SYM /* EOR (Dloc),y */ - GET_DLOC_IND_Y_RD(); - EOR_INST(); - -inst52_SYM /* EOR (Dloc) */ - GET_DLOC_IND_RD(); - EOR_INST(); - -inst53_SYM /* EOR (Disp8,s),y */ - GET_DISP8_S_IND_Y_RD(); - EOR_INST(); - -inst54_SYM /* MVN */ -#ifdef ASM - ldb 2(scratch1),scratch2 /* src bank */ - bb,< psr,23,inst54_notnat_SYM - ldb 1(scratch1),dbank /* dest bank */ - bb,< psr,27,inst54_notnat_SYM - stw scratch2,STACK_SRC_BANK(sp) - -/* even in 8bit acc mode, use 16-bit accumulator! */ - -inst54_loop_SYM - CYCLES_PLUS_1 - ldw STACK_SRC_BANK(sp),scratch2 - copy xreg,arg0 - - bl get_mem_long_8,link - dep scratch2,15,8,arg0 -/* got byte */ - copy ret0,arg1 - copy yreg,arg0 - bl set_mem_long_8,link - dep dbank,15,8,arg0 -/* wrote byte, dec acc */ - CYCLES_PLUS_2 - fldds 0(fcycles_stop_ptr),fcycles_stop - addi 1,xreg,xreg - zdepi -1,31,16,scratch2 - addi 1,yreg,yreg - addi -1,acc,acc - fcmp,<,dbl fcycles,fcycles_stop - and xreg,scratch2,xreg - extrs acc,31,16,scratch1 - and yreg,scratch2,yreg - - comib,= -1,scratch1,inst54_done_SYM - and acc,scratch2,acc - ftest - b,n inst54_out_of_time_SYM - - CYCLES_PLUS_2 - b inst54_loop_SYM - nop - -/* get here if done */ -inst54_done_SYM - INC_KPC_3 - b dispatch - nop - -inst54_out_of_time_SYM -/* cycle have gone positive, just get out, don't update kpc */ - b,n dispatch - -inst54_notnat_SYM - copy dbank,ret0 - dep scratch2,23,8,ret0 - CYCLES_PLUS_3 - depi RET_MVN,3,4,ret0 - b dispatch_done - CYCLES_PLUS_3 -#else - GET_2BYTE_ARG; - /* arg & 0xff = dest bank, arg & 0xff00 = src bank */ - if(psr & 0x110) { - halt_printf("MVN but not native m or x!\n"); - break; - } - CYCLES_MINUS_2; - dbank = arg & 0xff; - tmp1 = (arg >> 8) & 0xff; - while(1) { - CYCLES_PLUS_3; - GET_MEMORY8((tmp1 << 16) + xreg, arg); - SET_MEMORY8((dbank << 16) + yreg, arg); - CYCLES_PLUS_2; - xreg = (xreg + 1) & 0xffff; - yreg = (yreg + 1) & 0xffff; - acc = (acc - 1) & 0xffff; - if(acc == 0xffff) { - INC_KPC_3; - break; - } - if(fcycles >= g_fcycles_stop) { - break; - } - } -#endif - -inst55_SYM /* EOR Dloc,x */ - GET_DLOC_X_RD(); - EOR_INST(); - -inst56_SYM /* LSR Dloc,X */ - GET_DLOC_X_RD(); - LSR_INST(1); - -inst57_SYM /* EOR [Dloc],Y */ - GET_DLOC_L_IND_Y_RD(); - EOR_INST(); - -inst58_SYM /* CLI */ -#ifdef ASM - INC_KPC_1 - b check_irqs_pending /* check for ints pending! */ - depi 0,29,1,psr /* clear int disable */ -#else - psr = psr & (~4); - INC_KPC_1; - if(((psr & 0x4) == 0) && g_irq_pending) { - FINISH(RET_IRQ, 0); - } -#endif - -inst59_SYM /* EOR abs,y */ - GET_ABS_Y_RD(); - EOR_INST(); - -inst5a_SYM /* PHY */ -#ifdef ASM - INC_KPC_1 - ldil l%dispatch,link - bb,>= psr,27,phy_16_SYM - ldo r%dispatch(link),link - - b push_8 - copy yreg,arg0 - -phy_16_SYM - b push_16 - copy yreg,arg0 -#else - INC_KPC_1; - if(psr & 0x10) { - PUSH8(yreg); - } else { - PUSH16(yreg); - } -#endif - -inst5b_SYM /* TCD */ -#ifdef ASM - extru acc,31,16,direct - INC_KPC_1 - copy acc,zero - b dispatch - extru acc,16,1,neg -#else - INC_KPC_1; - direct = acc; - SET_NEG_ZERO16(acc); -#endif - -inst5c_SYM /* JMP Long */ -#ifdef ASM - ldb 1(scratch1),kpc - ldb 2(scratch1),scratch2 - CYCLES_PLUS_1 - ldb 3(scratch1),arg0 /* new bank */ - dep scratch2,23,8,kpc - b dispatch - dep arg0,15,8,kpc -#else - GET_3BYTE_ARG; - CYCLES_PLUS_1; - kpc = arg; -#endif - -inst5d_SYM /* EOR Abs,X */ - GET_ABS_X_RD(); - EOR_INST(); - -inst5e_SYM /* LSR Abs,X */ - GET_ABS_X_RD_WR(); - LSR_INST(0); - -inst5f_SYM /* EOR Long,X */ - GET_LONG_X_RD(); - EOR_INST(); - - -inst60_SYM /* RTS */ -#ifdef ASM - bl pull_16,link - CYCLES_PLUS_2 -/* ret0 is new kpc-1 */ - addi 1,ret0,ret0 - b dispatch - dep ret0,31,16,kpc -#else - CYCLES_PLUS_2 - PULL16(tmp1); - kpc = (kpc & 0xff0000) + ((tmp1 + 1) & 0xffff); -#endif - - -inst61_SYM /* ADC (Dloc,X) */ -/* called with arg = val to ADC in */ - GET_DLOC_X_IND_RD(); - ADC_INST(); - -inst62_SYM /* PER */ -#ifdef ASM - ldb 1(scratch1),ret0 - INC_KPC_3 - ldb 2(scratch1),scratch1 - CYCLES_PLUS_2 - ldil l%dispatch,link - dep scratch1,23,8,ret0 - ldo r%dispatch(link),link - add kpc,ret0,arg0 - b push_16_unsafe - extru arg0,31,16,arg0 -#else - GET_2BYTE_ARG; - CYCLES_PLUS_2; - INC_KPC_3; - PUSH16_UNSAFE(kpc + arg); -#endif - -inst63_SYM /* ADC Disp8,S */ -/* called with arg = val to ADC in */ - GET_DISP8_S_RD(); - ADC_INST(); - -inst64_SYM /* STZ Dloc */ - GET_DLOC_ADDR(); - STZ_INST(1); - -inst65_SYM /* ADC Dloc */ -/* called with arg = val to ADC in */ - GET_DLOC_RD(); - ADC_INST(); - -inst66_SYM /* ROR Dloc */ - GET_DLOC_RD(); -/* save1 is now apple addr */ -/* ret0 is data */ - ROR_INST(1); - -inst67_SYM /* ADC [Dloc] */ - GET_DLOC_L_IND_RD(); - ADC_INST(); - -inst68_SYM /* PLA */ -#ifdef ASM -# ifdef ACC8 - INC_KPC_1 - bl pull_8,link - CYCLES_PLUS_1 - extru ret0,31,8,zero - extru ret0,24,1,neg - b dispatch - dep ret0,31,8,acc -# else - INC_KPC_1 - bl pull_16,link - CYCLES_PLUS_1 - - extru ret0,31,16,zero - extru ret0,16,1,neg - b dispatch - extru ret0,31,16,acc -# endif -#else - INC_KPC_1; - CYCLES_PLUS_1; -# ifdef ACC8 - PULL8(tmp1); - acc = (acc & 0xff00) + tmp1; - SET_NEG_ZERO8(tmp1); -# else - PULL16(tmp1); - acc = tmp1; - SET_NEG_ZERO16(tmp1); -# endif -#endif - - -inst69_SYM /* ADC #imm */ - GET_IMM_MEM(); - ADC_INST(); - -inst6a_SYM /* ROR a */ -#ifdef ASM -# ifdef ACC8 - extru psr,31,1,neg - INC_KPC_1 - extru acc,30,7,zero - dep neg,24,1,zero - dep acc,31,1,psr /* set carry */ - b dispatch - dep zero,31,8,acc -# else - extru psr,31,1,neg - INC_KPC_1 - extru acc,30,15,zero - dep neg,16,1,zero - dep acc,31,1,psr /* set carry */ - b dispatch - dep zero,31,16,acc -# endif -#else - INC_KPC_1; -# ifdef ACC8 - tmp1 = ((acc & 0xff) >> 1) + ((psr & 1) << 7); - SET_CARRY8((acc << 8)); - acc = (acc & 0xff00) + (tmp1 & 0xff); - SET_NEG_ZERO8(tmp1 & 0xff); -# else - tmp1 = (acc >> 1) + ((psr & 1) << 15); - SET_CARRY16((acc << 16)); - acc = (tmp1 & 0xffff); - SET_NEG_ZERO16(acc); -# endif -#endif - -inst6b_SYM /* RTL */ -#ifdef ASM - bl pull_24,link - CYCLES_PLUS_1 -/* ret0 is new kpc-1 */ - copy ret0,kpc - addi 1,ret0,scratch1 - b dispatch - dep scratch1,31,16,kpc - -#else - CYCLES_PLUS_1; - PULL24(tmp1); - kpc = (tmp1 & 0xff0000) + ((tmp1 + 1) & 0xffff); -#endif - -inst6c_SYM /* JMP (abs) */ -#ifdef ASM - ldb 1(scratch1),arg0 - CYCLES_PLUS_1 - ldb 2(scratch1),scratch1 - bl get_mem_long_16,link - dep scratch1,23,8,arg0 -/* ret0 is addr to jump to */ - b dispatch - dep ret0,31,16,kpc -#else - GET_2BYTE_ARG; - CYCLES_PLUS_1; - GET_MEMORY16(arg, tmp1, 1); - kpc = (kpc & 0xff0000) + tmp1; -#endif - -inst6d_SYM /* ADC abs */ - GET_ABS_RD(); - ADC_INST(); - -inst6e_SYM /* ROR abs */ - GET_ABS_RD(); - ROR_INST(0); - -inst6f_SYM /* ADC long */ - GET_LONG_RD(); - ADC_INST(); - - -inst70_SYM /* BVS disp8 */ -#ifdef ASM - COND_BR1 - bb,>= psr,25,inst70_2_SYM - COND_BR2 - -inst70_2_SYM - COND_BR_UNTAKEN -#else - BRANCH_DISP8((psr & 0x40)); -#endif - -inst71_SYM /* ADC (Dloc),y */ - GET_DLOC_IND_Y_RD(); - ADC_INST(); - -inst72_SYM /* ADC (Dloc) */ - GET_DLOC_IND_RD(); - ADC_INST(); - -inst73_SYM /* ADC (Disp8,s),y */ - GET_DISP8_S_IND_Y_RD(); - ADC_INST(); - -inst74_SYM /* STZ Dloc,x */ -#ifdef ASM - ldb 1(scratch1),arg0 - GET_DLOC_X_WR(); - STZ_INST(1); -#else - GET_1BYTE_ARG; - GET_DLOC_X_WR(); - STZ_INST(1); -#endif - -inst75_SYM /* ADC Dloc,x */ - GET_DLOC_X_RD(); - ADC_INST(); - -inst76_SYM /* ROR Dloc,X */ - GET_DLOC_X_RD(); - ROR_INST(1); - -inst77_SYM /* ADC [Dloc],Y */ - GET_DLOC_L_IND_Y_RD(); - ADC_INST(); - -inst78_SYM /* SEI */ -#ifdef ASM - INC_KPC_1 - b dispatch - depi 1,29,1,psr /* set int disable */ -#else - psr = psr | 4; - INC_KPC_1; -#endif - -inst79_SYM /* ADC abs,y */ - GET_ABS_Y_RD(); - ADC_INST(); - -inst7a_SYM /* PLY */ -#ifdef ASM - INC_KPC_1 - bb,>= psr,27,inst7a_16bit_SYM - nop - - bl pull_8,link - CYCLES_PLUS_1 - - extru ret0,31,8,zero - extru ret0,24,1,neg - b dispatch - copy zero,yreg - -inst7a_16bit_SYM - bl pull_16,link - CYCLES_PLUS_1 - - extru ret0,31,16,zero - extru ret0,16,1,neg - b dispatch - copy zero,yreg - -#else - INC_KPC_1; - CYCLES_PLUS_1 - if(psr & 0x10) { - PULL8(yreg); - SET_NEG_ZERO8(yreg); - } else { - PULL16(yreg); - SET_NEG_ZERO16(yreg); - } -#endif - -inst7b_SYM /* TDC */ -#ifdef ASM - extru direct,31,16,zero - copy direct,acc - INC_KPC_1 - b dispatch - extru direct,16,1,neg -#else - INC_KPC_1; - acc = direct; - SET_NEG_ZERO16(direct); -#endif - -inst7c_SYM /* JMP (Abs,x) */ -/* always access kbank, xreg cannot wrap into next bank */ -#ifdef ASM - ldb 1(scratch1),ret0 - copy kpc,scratch2 - ldb 2(scratch1),scratch1 - dep xreg,31,16,scratch2 - CYCLES_PLUS_2 - dep scratch1,23,8,ret0 - add ret0,scratch2,arg0 - bl get_mem_long_16,link - extru arg0,31,24,arg0 - b dispatch - dep ret0,31,16,kpc -#else - GET_2BYTE_ARG; - arg = (kpc & 0xff0000) + ((xreg + arg) & 0xffff); - CYCLES_PLUS_2; - GET_MEMORY16(arg, tmp1, 1); - kpc = (kpc & 0xff0000) + tmp1; -#endif - -inst7d_SYM /* ADC Abs,X */ - GET_ABS_X_RD(); - ADC_INST(); - -inst7e_SYM /* ROR Abs,X */ - GET_ABS_X_RD_WR(); - ROR_INST(0); - -inst7f_SYM /* ADC Long,X */ - GET_LONG_X_RD(); - ADC_INST(); - - -inst80_SYM /* BRA */ -#ifdef ASM - COND_BR1 - COND_BR2 -#else - BRANCH_DISP8(1); -#endif - - -inst81_SYM /* STA (Dloc,X) */ - GET_DLOC_X_IND_ADDR(); - STA_INST(0); - -inst82_SYM /* BRL disp16 */ -#ifdef ASM - ldb 1(scratch1),ret0 - CYCLES_PLUS_1 - ldb 2(scratch1),scratch1 - addi 3,kpc,scratch2 - dep scratch1,23,8,ret0 - add ret0,scratch2,scratch2 - b dispatch - dep scratch2,31,16,kpc -#else - GET_2BYTE_ARG; - CYCLES_PLUS_1; - kpc = (kpc & 0xff0000) + ((kpc + 3 + arg) & 0xffff); -#endif - -inst83_SYM /* STA Disp8,S */ - GET_DISP8_S_ADDR(); - STA_INST(1); - -inst84_SYM /* STY Dloc */ - GET_DLOC_ADDR(); - STY_INST(1); - - -inst85_SYM /* STA Dloc */ - GET_DLOC_ADDR(); - STA_INST(1); - -inst86_SYM /* STX Dloc */ - GET_DLOC_ADDR(); - STX_INST(1); - - -inst87_SYM /* STA [Dloc] */ - GET_DLOC_L_IND_ADDR(); - STA_INST(0); - -inst88_SYM /* DEY */ -#ifdef ASM - INC_KPC_1 - bb,< psr,27,inst88_8bit_SYM - addi -1,yreg,yreg -/* 16 bit */ - extru yreg,31,16,zero - extru yreg,16,1,neg - b dispatch - copy zero,yreg - -inst88_8bit_SYM - extru yreg,31,8,zero - extru yreg,24,1,neg - b dispatch - copy zero,yreg -#else - INC_KPC_1; - SET_INDEX_REG(yreg - 1, yreg); -#endif - -inst89_SYM /* BIT #imm */ -#ifdef ASM - GET_IMM_MEM(); -# ifdef ACC8 -/* Immediate BIT does not set condition flags */ - and acc,ret0,zero - b dispatch - extru zero,31,8,zero -# else - and acc,ret0,zero - b dispatch - extru zero,31,16,zero -# endif -#else - GET_IMM_MEM(); -# ifdef ACC8 - zero = (acc & arg) & 0xff; -# else - zero = (acc & arg) & 0xffff; -# endif -#endif - -inst8a_SYM /* TXA */ -#ifdef ASM -# ifdef ACC8 - extru xreg,31,8,zero - INC_KPC_1 - extru xreg,24,1,neg - b dispatch - dep zero,31,8,acc -# else - extru xreg,31,16,zero - INC_KPC_1 - extru xreg,16,1,neg - b dispatch - zdep zero,31,16,acc -# endif -#else - INC_KPC_1; - arg = xreg; - LDA_INST(); -#endif - -inst8b_SYM /* PHB */ -#ifdef ASM - ldil l%dispatch,link - extru dbank,31,8,arg0 - INC_KPC_1 - b push_8 - ldo r%dispatch(link),link -#else - INC_KPC_1; - PUSH8(dbank); -#endif - -inst8c_SYM /* STY abs */ - GET_ABS_ADDR(); - STY_INST(0); - -inst8d_SYM /* STA abs */ - GET_ABS_ADDR(); - STA_INST(0); - -inst8e_SYM /* STX abs */ - GET_ABS_ADDR(); - STX_INST(0); - - -inst8f_SYM /* STA long */ - GET_LONG_ADDR(); - STA_INST(0); - - -inst90_SYM /* BCC disp8 */ -#ifdef ASM - COND_BR1 - bb,< psr,31,inst90_2_SYM - COND_BR2 - -inst90_2_SYM - COND_BR_UNTAKEN -#else - BRANCH_DISP8((psr & 0x01) == 0); -#endif - - -inst91_SYM /* STA (Dloc),y */ - GET_DLOC_IND_Y_ADDR_FOR_WR(); - STA_INST(0); - -inst92_SYM /* STA (Dloc) */ - GET_DLOC_IND_ADDR(); - STA_INST(0); - -inst93_SYM /* STA (Disp8,s),y */ - GET_DISP8_S_IND_Y_ADDR(); - STA_INST(0); - -inst94_SYM /* STY Dloc,x */ - GET_DLOC_X_ADDR(); - STY_INST(1); - -inst95_SYM /* STA Dloc,x */ - GET_DLOC_X_ADDR(); - STA_INST(1); - -inst96_SYM /* STX Dloc,Y */ - GET_DLOC_Y_ADDR(); - STX_INST(1); - -inst97_SYM /* STA [Dloc],Y */ - GET_DLOC_L_IND_Y_ADDR(); - STA_INST(0); - -inst98_SYM /* TYA */ -#ifdef ASM -# ifdef ACC8 - extru yreg,31,8,zero - INC_KPC_1 - extru yreg,24,1,neg - b dispatch - dep zero,31,8,acc -# else - extru yreg,31,16,zero - INC_KPC_1 - extru yreg,16,1,neg - b dispatch - zdep zero,31,16,acc -# endif -#else - INC_KPC_1; - arg = yreg; - LDA_INST(); -#endif - -inst99_SYM /* STA abs,y */ - GET_ABS_INDEX_ADDR_FOR_WR(yreg) - STA_INST(0); - -inst9a_SYM /* TXS */ -#ifdef ASM - copy xreg,stack - extru,= psr,23,1,0 - depi 1,23,24,stack - INC_KPC_1 - b dispatch - nop -#else - stack = xreg; - if(psr & 0x100) { - stack = 0x100 | (stack & 0xff); - } - INC_KPC_1; -#endif - - -inst9b_SYM /* TXY */ -#ifdef ASM - extru xreg,24,1,neg - INC_KPC_1 - extru,<> psr,27,1,0 ;skip next if 8bit - extru xreg,16,1,neg - copy xreg,yreg - b dispatch - copy xreg,zero -#else - SET_INDEX_REG(xreg, yreg); - INC_KPC_1; -#endif - - -inst9c_SYM /* STZ Abs */ - GET_ABS_ADDR(); - STZ_INST(0); - -inst9d_SYM /* STA Abs,X */ - GET_ABS_INDEX_ADDR_FOR_WR(xreg); - STA_INST(0); - -inst9e_SYM /* STZ Abs,X */ - GET_ABS_INDEX_ADDR_FOR_WR(xreg); - STZ_INST(0); - -inst9f_SYM /* STA Long,X */ - GET_LONG_X_ADDR_FOR_WR(); - STA_INST(0); - - -insta0_SYM /* LDY #imm */ -#ifdef ASM - INC_KPC_2 - bb,>= psr,27,insta0_16bit_SYM - ldb 1(scratch1),zero - - extru zero,24,1,neg - b dispatch - copy zero,yreg -insta0_16bit_SYM - ldb 2(scratch1),scratch1 - INC_KPC_1 - CYCLES_PLUS_1 - extru scratch1,24,1,neg - dep scratch1,23,8,zero - b dispatch - copy zero,yreg -#else - INC_KPC_2; - if((psr & 0x10) == 0) { - GET_2BYTE_ARG; - CYCLES_PLUS_1 - INC_KPC_1; - } else { - GET_1BYTE_ARG; - } - SET_INDEX_REG(arg, yreg); -#endif - - -insta1_SYM /* LDA (Dloc,X) */ -/* called with arg = val to LDA in */ - GET_DLOC_X_IND_RD(); - LDA_INST(); - -insta2_SYM /* LDX #imm */ -#ifdef ASM - ldb 1(scratch1),zero - bb,>= psr,27,insta2_16bit_SYM - INC_KPC_2; - - extru zero,24,1,neg - b dispatch - copy zero,xreg -insta2_16bit_SYM - ldb 2(scratch1),scratch1 - INC_KPC_1 - CYCLES_PLUS_1 - extru scratch1,24,1,neg - dep scratch1,23,8,zero - b dispatch - copy zero,xreg -#else - INC_KPC_2; - if((psr & 0x10) == 0) { - GET_2BYTE_ARG; - CYCLES_PLUS_1 - INC_KPC_1; - } else { - GET_1BYTE_ARG; - } - SET_INDEX_REG(arg, xreg); -#endif - -insta3_SYM /* LDA Disp8,S */ -/* called with arg = val to LDA in */ - GET_DISP8_S_RD(); - LDA_INST(); - -insta4_SYM /* LDY Dloc */ -#ifdef ASM - ldb 1(scratch1),arg0 - GET_DLOC_WR() - b get_yreg_from_mem - nop -#else - C_LDY_DLOC(); -#endif - -insta5_SYM /* LDA Dloc */ -/* called with arg = val to LDA in */ - GET_DLOC_RD(); - LDA_INST(); - -insta6_SYM /* LDX Dloc */ -#ifdef ASM - ldb 1(scratch1),arg0 - GET_DLOC_WR() - b get_xreg_from_mem - nop -#else - C_LDX_DLOC(); -#endif - -insta7_SYM /* LDA [Dloc] */ - GET_DLOC_L_IND_RD(); - LDA_INST(); - -insta8_SYM /* TAY */ -#ifdef ASM - INC_KPC_1 - bb,>= psr,27,insta8_16bit_SYM - extru acc,31,8,zero - - extru acc,24,1,neg - b dispatch - copy zero,yreg - -insta8_16bit_SYM - extru acc,31,16,zero - extru acc,16,1,neg - b dispatch - copy zero,yreg -#else - INC_KPC_1; - SET_INDEX_REG(acc, yreg); -#endif - -insta9_SYM /* LDA #imm */ - GET_IMM_MEM(); - LDA_INST(); - -instaa_SYM /* TAX */ -#ifdef ASM - INC_KPC_1 - bb,>= psr,27,instaa_16bit_SYM - extru acc,31,8,zero - - extru acc,24,1,neg - b dispatch - copy zero,xreg - -instaa_16bit_SYM - extru acc,31,16,zero - extru acc,16,1,neg - b dispatch - copy zero,xreg -#else - INC_KPC_1; - SET_INDEX_REG(acc, xreg); -#endif - -instab_SYM /* PLB */ -#ifdef ASM - INC_KPC_1 - bl pull_8,link - CYCLES_PLUS_1 - - extru ret0,31,8,zero - extru ret0,24,1,neg - b dispatch - copy zero,dbank -#else - INC_KPC_1; - CYCLES_PLUS_1 - PULL8(dbank); - SET_NEG_ZERO8(dbank); -#endif - -instac_SYM /* LDY abs */ -#ifdef ASM - GET_ABS_ADDR() - b get_yreg_from_mem - nop -#else - C_LDY_ABS(); -#endif - - -instad_SYM /* LDA abs */ - GET_ABS_RD(); - LDA_INST(); - -instae_SYM /* LDX abs */ -#ifdef ASM - GET_ABS_ADDR() - b get_xreg_from_mem - nop -#else - C_LDX_ABS(); -#endif - -instaf_SYM /* LDA long */ - GET_LONG_RD(); - LDA_INST(); - - -instb0_SYM /* BCS disp8 */ -#ifdef ASM - COND_BR1 - bb,>= psr,31,instb0_2_SYM - COND_BR2 - -instb0_2_SYM - COND_BR_UNTAKEN -#else - BRANCH_DISP8((psr & 0x01)); -#endif - -instb1_SYM /* LDA (Dloc),y */ - GET_DLOC_IND_Y_RD(); - LDA_INST(); - -instb2_SYM /* LDA (Dloc) */ - GET_DLOC_IND_RD(); - LDA_INST(); - -instb3_SYM /* LDA (Disp8,s),y */ - GET_DISP8_S_IND_Y_RD(); - LDA_INST(); - -instb4_SYM /* LDY Dloc,x */ -#ifdef ASM - ldb 1(scratch1),arg0 - GET_DLOC_X_WR(); - b get_yreg_from_mem - nop -#else - C_LDY_DLOC_X(); -#endif - -instb5_SYM /* LDA Dloc,x */ - GET_DLOC_X_RD(); - LDA_INST(); - -instb6_SYM /* LDX Dloc,y */ -#ifdef ASM - ldb 1(scratch1),arg0 - GET_DLOC_Y_WR(); - b get_xreg_from_mem - nop -#else - C_LDX_DLOC_Y(); -#endif - -instb7_SYM /* LDA [Dloc],Y */ - GET_DLOC_L_IND_Y_RD(); - LDA_INST(); - -instb8_SYM /* CLV */ -#ifdef ASM - INC_KPC_1 - b dispatch - depi 0,25,1,psr /* clear overflow */ -#else - psr = psr & ~0x40; - INC_KPC_1; -#endif - -instb9_SYM /* LDA abs,y */ - GET_ABS_Y_RD(); - LDA_INST(); - -instba_SYM /* TSX */ -#ifdef ASM - INC_KPC_1 - bb,>= psr,27,instba_16bit_SYM - extru stack,31,8,zero - - extru stack,24,1,neg - b dispatch - copy zero,xreg -instba_16bit_SYM - copy stack,zero - extru stack,16,1,neg - b dispatch - copy zero,xreg -#else - INC_KPC_1; - SET_INDEX_REG(stack, xreg); -#endif - -instbb_SYM /* TYX */ -#ifdef ASM - INC_KPC_1 - bb,>= psr,27,instbb_16bit_SYM - copy yreg,xreg - -/* 8 bit */ - extru yreg,24,1,neg - b dispatch - copy yreg,zero -instbb_16bit_SYM - extru yreg,16,1,neg - b dispatch - copy yreg,zero -#else - INC_KPC_1; - SET_INDEX_REG(yreg, xreg); -#endif - -instbc_SYM /* LDY Abs,X */ -#ifdef ASM - GET_ABS_INDEX_ADDR_FOR_RD(xreg) - b get_yreg_from_mem - nop -#else - C_LDY_ABS_X(); -#endif - -instbd_SYM /* LDA Abs,X */ - GET_ABS_X_RD(); - LDA_INST(); - -instbe_SYM /* LDX Abs,y */ -#ifdef ASM - GET_ABS_INDEX_ADDR_FOR_RD(yreg) - b get_xreg_from_mem - nop -#else - C_LDX_ABS_Y(); -#endif - -instbf_SYM /* LDA Long,X */ - GET_LONG_X_RD(); - LDA_INST(); - - -instc0_SYM /* CPY #imm */ -#ifdef ASM - ldb 1(scratch1),ret0 - bb,>= psr,27,instc0_16bit_SYM - INC_KPC_2; - CMP_INDEX_REG_MEAT8(yreg) -instc0_16bit_SYM - ldb 2(scratch1),scratch1 - CYCLES_PLUS_1 - INC_KPC_1 - dep scratch1,23,8,ret0 - CMP_INDEX_REG_MEAT16(yreg) -#else - C_CPY_IMM(); -#endif - - -instc1_SYM /* CMP (Dloc,X) */ -/* called with arg = val to CMP in */ - GET_DLOC_X_IND_RD(); - CMP_INST(); - -instc2_SYM /* REP #imm */ -#ifdef ASM - ldb 1(scratch1),ret0 - extru psr,27,2,arg0 /* save old x & m */ - INC_KPC_2; - dep neg,24,1,psr - CYCLES_PLUS_1 - depi 0,30,1,psr - comiclr,<> 0,zero,0 - depi 1,30,1,psr - andcm psr,ret0,ret0 - ldi 0,zero - extru,<> ret0,30,1,0 - ldi 1,zero - dep ret0,31,8,psr - b update_system_state - extru ret0,24,1,neg -#else - GET_1BYTE_ARG; - tmp2 = psr; - CYCLES_PLUS_1; - INC_KPC_2; - psr = (psr & ~0x82) | ((neg & 1) << 7) | ((!zero) << 1); - psr = psr & ~(arg & 0xff); - zero = !(psr & 2); - neg = (psr >> 7) & 1; - UPDATE_PSR(psr, tmp2); -#endif - - -instc3_SYM /* CMP Disp8,S */ -/* called with arg = val to CMP in */ - GET_DISP8_S_RD(); - CMP_INST(); - -instc4_SYM /* CPY Dloc */ -#ifdef ASM - GET_DLOC_ADDR() - CMP_INDEX_REG_LOAD(instc4_16bit_SYM, yreg) -#else - C_CPY_DLOC(); -#endif - - -instc5_SYM /* CMP Dloc */ - GET_DLOC_RD(); - CMP_INST(); - -instc6_SYM /* DEC Dloc */ - GET_DLOC_RD(); - DEC_INST(1); - -instc7_SYM /* CMP [Dloc] */ - GET_DLOC_L_IND_RD(); - CMP_INST(); - -instc8_SYM /* INY */ -#ifdef ASM - INC_KPC_1 - addi 1,yreg,yreg - bb,>= psr,27,instc8_16bit_SYM - extru yreg,31,8,zero - - extru yreg,24,1,neg - b dispatch - copy zero,yreg - -instc8_16bit_SYM - extru yreg,31,16,zero - extru yreg,16,1,neg - b dispatch - copy zero,yreg -#else - INC_KPC_1; - SET_INDEX_REG(yreg + 1, yreg); -#endif - -instc9_SYM /* CMP #imm */ - GET_IMM_MEM(); - CMP_INST(); - -instca_SYM /* DEX */ -#ifdef ASM - INC_KPC_1 - addi -1,xreg,xreg - bb,>= psr,27,instca_16bit_SYM - extru xreg,31,8,zero - - extru xreg,24,1,neg - b dispatch - copy zero,xreg - -instca_16bit_SYM - extru xreg,31,16,zero - extru xreg,16,1,neg - b dispatch - copy zero,xreg -#else - INC_KPC_1; - SET_INDEX_REG(xreg - 1, xreg); -#endif - -instcb_SYM /* WAI */ -#ifdef ASM - ldil l%g_wait_pending,scratch1 - CYCLES_FINISH - ldi 1,scratch2 - b dispatch - stw scratch2,r%g_wait_pending(scratch1) -#else - g_wait_pending = 1; - CYCLES_FINISH -#endif - -instcc_SYM /* CPY abs */ -#ifdef ASM - GET_ABS_ADDR() - CMP_INDEX_REG_LOAD(instcc_16bit_SYM, yreg) -#else - C_CPY_ABS(); -#endif - - - - -instcd_SYM /* CMP abs */ - GET_ABS_RD(); - CMP_INST(); - -instce_SYM /* DEC abs */ - GET_ABS_RD(); - DEC_INST(0); - - -instcf_SYM /* CMP long */ - GET_LONG_RD(); - CMP_INST(); - - -instd0_SYM /* BNE disp8 */ -#ifdef ASM - COND_BR1 - comib,= 0,zero,instd0_2_SYM - COND_BR2 - -instd0_2_SYM - COND_BR_UNTAKEN -#else - BRANCH_DISP8(zero != 0); -#endif - -instd1_SYM /* CMP (Dloc),y */ - GET_DLOC_IND_Y_RD(); - CMP_INST(); - -instd2_SYM /* CMP (Dloc) */ - GET_DLOC_IND_RD(); - CMP_INST(); - -instd3_SYM /* CMP (Disp8,s),y */ - GET_DISP8_S_IND_Y_RD(); - CMP_INST(); - -instd4_SYM /* PEI Dloc */ -#ifdef ASM - GET_DLOC_ADDR() - bl get_mem_long_16,link - CYCLES_PLUS_1 - -/* push ret0 */ - extru ret0,31,16,arg0 - ldil l%dispatch,link - b push_16_unsafe - ldo r%dispatch(link),link -#else - GET_DLOC_ADDR() - GET_MEMORY16(arg, arg, 1); - CYCLES_PLUS_1; - PUSH16_UNSAFE(arg); -#endif - -instd5_SYM /* CMP Dloc,x */ - GET_DLOC_X_RD(); - CMP_INST(); - -instd6_SYM /* DEC Dloc,x */ - GET_DLOC_X_RD(); - DEC_INST(1); - -instd7_SYM /* CMP [Dloc],Y */ - GET_DLOC_L_IND_Y_RD(); - CMP_INST(); - -instd8_SYM /* CLD */ -#ifdef ASM - INC_KPC_1 - b dispatch - depi 0,28,1,psr /* clear decimal */ -#else - psr = psr & (~0x8); - INC_KPC_1; -#endif - -instd9_SYM /* CMP abs,y */ - GET_ABS_Y_RD(); - CMP_INST(); - -instda_SYM /* PHX */ -#ifdef ASM - INC_KPC_1 - bb,>= psr,27,instda_16bit_SYM - ldil l%dispatch,link - - extru xreg,31,8,arg0 - b push_8 - ldo r%dispatch(link),link - -instda_16bit_SYM - extru xreg,31,16,arg0 - b push_16 - ldo r%dispatch(link),link -#else - INC_KPC_1; - if(psr & 0x10) { - PUSH8(xreg); - } else { - PUSH16(xreg); - } -#endif - -instdb_SYM /* STP */ -#ifdef ASM - ldb 1(scratch1),ret0 - CYCLES_PLUS_1 - b dispatch_done - depi RET_STP,3,4,ret0 -#else - CYCLES_FINISH - FINISH(RET_STP, 0); -#endif - -instdc_SYM /* JML (Abs) */ -#ifdef ASM - ldb 1(scratch1),arg0 - ldb 2(scratch1),scratch1 - CYCLES_PLUS_1 - bl get_mem_long_24,link - dep scratch1,23,8,arg0 - - b dispatch - copy ret0,kpc -#else - GET_2BYTE_ARG; - CYCLES_PLUS_1; - GET_MEMORY24(arg, kpc, 1); -#endif - -instdd_SYM /* CMP Abs,X */ - GET_ABS_X_RD(); - CMP_INST(); - -instde_SYM /* DEC Abs,X */ - GET_ABS_X_RD_WR(); - DEC_INST(0); - -instdf_SYM /* CMP Long,X */ - GET_LONG_X_RD(); - CMP_INST(); - - -inste0_SYM /* CPX #imm */ -#ifdef ASM - ldb 1(scratch1),ret0 - bb,>= psr,27,inste0_16bit_SYM - INC_KPC_2; - CMP_INDEX_REG_MEAT8(xreg) -inste0_16bit_SYM - ldb 2(scratch1),scratch1 - CYCLES_PLUS_1 - INC_KPC_1 - dep scratch1,23,8,ret0 - CMP_INDEX_REG_MEAT16(xreg) -#else - C_CPX_IMM(); -#endif - - -inste1_SYM /* SBC (Dloc,X) */ -/* called with arg = val to SBC in */ - GET_DLOC_X_IND_RD(); - SBC_INST(); - -inste2_SYM /* SEP #imm */ -#ifdef ASM - ldb 1(scratch1),ret0 - extru psr,27,2,arg0 /* save old x & m */ - INC_KPC_2; - dep neg,24,1,psr - CYCLES_PLUS_1 - depi 0,30,1,psr - comiclr,<> 0,zero,0 - depi 1,30,1,psr - or psr,ret0,ret0 - ldi 0,zero - extru,<> ret0,30,1,0 - ldi 1,zero - dep ret0,31,8,psr - b update_system_state - extru ret0,24,1,neg -#else - GET_1BYTE_ARG; - tmp2 = psr; - CYCLES_PLUS_1; - INC_KPC_2; - psr = (psr & ~0x82) | ((neg & 1) << 7) | ((!zero) << 1); - psr = psr | (arg & 0xff); - zero = !(psr & 2); - neg = (psr >> 7) & 1; - UPDATE_PSR(psr, tmp2); -#endif - - -inste3_SYM /* SBC Disp8,S */ -/* called with arg = val to SBC in */ - GET_DISP8_S_RD(); - SBC_INST(); - -inste4_SYM /* CPX Dloc */ -#ifdef ASM - GET_DLOC_ADDR() - CMP_INDEX_REG_LOAD(inste4_16bit_SYM, xreg) -#else - C_CPX_DLOC(); -#endif - - -inste5_SYM /* SBC Dloc */ -/* called with arg = val to SBC in */ - GET_DLOC_RD(); - SBC_INST(); - -inste6_SYM /* INC Dloc */ - GET_DLOC_RD(); - INC_INST(1); - -inste7_SYM /* SBC [Dloc] */ - GET_DLOC_L_IND_RD(); - SBC_INST(); - -inste8_SYM /* INX */ -#ifdef ASM - INC_KPC_1 - addi 1,xreg,xreg - bb,>= psr,27,inste8_16bit_SYM - extru xreg,31,8,zero - - extru xreg,24,1,neg - b dispatch - copy zero,xreg - -inste8_16bit_SYM - extru xreg,31,16,zero - extru xreg,16,1,neg - b dispatch - copy zero,xreg -#else - INC_KPC_1; - SET_INDEX_REG(xreg + 1, xreg); -#endif - -inste9_SYM /* SBC #imm */ - GET_IMM_MEM(); - SBC_INST(); - -instea_SYM /* NOP */ -#ifdef ASM - INC_KPC_1 - b dispatch - nop -#else - INC_KPC_1; -#endif - -insteb_SYM /* XBA */ -#ifdef ASM - extru acc,16,1,neg /* Z and N reflect status of low 8 */ - CYCLES_PLUS_1 /* bits of final acc value! */ - copy acc,scratch1 /* regardlessof ACC 8 or 16 bit */ - extru acc,23,8,acc - INC_KPC_1 - copy acc,zero - b dispatch - dep scratch1,23,8,acc -#else - tmp1 = acc & 0xff; - CYCLES_PLUS_1 - acc = (tmp1 << 8) + (acc >> 8); - INC_KPC_1; - SET_NEG_ZERO8(acc & 0xff); -#endif - -instec_SYM /* CPX abs */ -#ifdef ASM - GET_ABS_ADDR() - CMP_INDEX_REG_LOAD(instec_16bit_SYM, xreg) -#else - C_CPX_ABS(); -#endif - - - - -insted_SYM /* SBC abs */ - GET_ABS_RD(); - SBC_INST(); - -instee_SYM /* INC abs */ - GET_ABS_RD(); - INC_INST(0); - - -instef_SYM /* SBC long */ - GET_LONG_RD(); - SBC_INST(); - - -instf0_SYM /* BEQ disp8 */ -#ifdef ASM - COND_BR1 - comib,<> 0,zero,instf0_2_SYM - COND_BR2 - -instf0_2_SYM - COND_BR_UNTAKEN -#else - BRANCH_DISP8(zero == 0); -#endif - -instf1_SYM /* SBC (Dloc),y */ - GET_DLOC_IND_Y_RD(); - SBC_INST(); - -instf2_SYM /* SBC (Dloc) */ - GET_DLOC_IND_RD(); - SBC_INST(); - -instf3_SYM /* SBC (Disp8,s),y */ - GET_DISP8_S_IND_Y_RD(); - SBC_INST(); - -instf4_SYM /* PEA Abs */ -#ifdef ASM - ldb 1(scratch1),arg0 - ldil l%dispatch,link - ldb 2(scratch1),scratch1 - INC_KPC_3 - CYCLES_PLUS_1 - ldo r%dispatch(link),link - b push_16_unsafe - dep scratch1,23,8,arg0 -#else - GET_2BYTE_ARG; - CYCLES_PLUS_1; - INC_KPC_3; - PUSH16_UNSAFE(arg); -#endif - -instf5_SYM /* SBC Dloc,x */ - GET_DLOC_X_RD(); - SBC_INST(); - -instf6_SYM /* INC Dloc,x */ - GET_DLOC_X_RD(); - INC_INST(1); - -instf7_SYM /* SBC [Dloc],Y */ - GET_DLOC_L_IND_Y_RD(); - SBC_INST(); - -instf8_SYM /* SED */ -#ifdef ASM - INC_KPC_1 - b dispatch - depi 1,28,1,psr /* set decimal */ -#else - INC_KPC_1; - psr |= 0x8; -#endif - -instf9_SYM /* SBC abs,y */ - GET_ABS_Y_RD(); - SBC_INST(); - -instfa_SYM /* PLX */ -#ifdef ASM - bb,< psr,27,instfa_8bit_SYM - CYCLES_PLUS_1 - - INC_KPC_1 - bl pull_16,link - nop - - extru ret0,31,16,zero - extru ret0,16,1,neg - b dispatch - copy zero,xreg - -instfa_8bit_SYM - INC_KPC_1 - bl pull_8,link - nop - - extru ret0,31,8,zero - extru ret0,24,1,neg - b dispatch - copy zero,xreg -#else - INC_KPC_1; - CYCLES_PLUS_1; - if(psr & 0x10) { - PULL8(xreg); - SET_NEG_ZERO8(xreg); - } else { - PULL16(xreg); - SET_NEG_ZERO16(xreg); - } -#endif - -instfb_SYM /* XCE */ -#ifdef ASM - extru psr,27,2,arg0 /* save old x & m */ - INC_KPC_1 - extru psr,23,1,scratch1 /* e bit */ - dep psr,23,1,psr /* copy carry to e bit */ - b update_system_state - dep scratch1,31,1,psr /* copy e bit to carry */ -#else - tmp2 = psr; - INC_KPC_1; - psr = (tmp2 & 0xfe) | ((tmp2 & 1) << 8) | ((tmp2 >> 8) & 1); - UPDATE_PSR(psr, tmp2); -#endif - -instfc_SYM /* JSR (Abs,X) */ -#ifdef ASM - ldb 1(scratch1),ret0 - extru kpc,15,8,scratch2 - ldb 2(scratch1),scratch1 - dep scratch2,15,16,ret0 - INC_KPC_2; - dep scratch1,23,8,ret0 - add xreg,ret0,arg0 - bl get_mem_long_16,link - extru arg0,31,24,arg0 - - CYCLES_PLUS_2 - extru kpc,31,16,arg0 - ldil l%dispatch,link - dep ret0,31,16,kpc - b push_16_unsafe - ldo r%dispatch(link),link -#else - GET_2BYTE_ARG; - INC_KPC_2; - tmp1 = kpc; - arg = (kpc & 0xff0000) + ((arg + xreg) & 0xffff); - GET_MEMORY16(arg, tmp2, 1); - kpc = (kpc & 0xff0000) + tmp2; - CYCLES_PLUS_2 - PUSH16_UNSAFE(tmp1); -#endif - -instfd_SYM /* SBC Abs,X */ - GET_ABS_X_RD(); - SBC_INST(); - -instfe_SYM /* INC Abs,X */ - GET_ABS_X_RD_WR(); - INC_INST(0); - -instff_SYM /* SBC Long,X */ - GET_LONG_X_RD(); - SBC_INST(); - diff --git a/.svn/pristine/ca/cacb6b23821907a4f238351738c7e31a56147ca9.svn-base b/.svn/pristine/ca/cacb6b23821907a4f238351738c7e31a56147ca9.svn-base deleted file mode 100644 index 291ba38b97de6b29a23c51c992179a3b8c88f277..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 758 zcma)2u}TCn5RD?_KoCE}Qiz>Jz}~}8IZzxHmLp&z2woZT9X1ECSWrk|{^Obht!xf1 zzGQMLYB+ay=4EEyyqWCT`TMRY&o%rJ>;iTO+Yx*4LKxJa57HM4=u*L1RE4>G}HYj^}>yvOsRhyhyP}pI+ULQY!c0Vnq7;+yF&P$p2X>g+>;E k0PFnFyG*MGnOSx1KJT69ZFqG*QtG&5t6uBAm9rH-0A@;PKL7v# diff --git a/.svn/pristine/cb/cb5a1d6934d52ab70912a377cd893d0bd21aa193.svn-base b/.svn/pristine/cb/cb5a1d6934d52ab70912a377cd893d0bd21aa193.svn-base deleted file mode 100644 index bdc3aef..0000000 --- a/.svn/pristine/cb/cb5a1d6934d52ab70912a377cd893d0bd21aa193.svn-base +++ /dev/null @@ -1,302 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2013-2014 by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/** This module implements AARP, a necessary protocol for ELAP communication. **/ - -#include -#include -#include "../defc.h" -#include "atbridge.h" -#include "elap.h" -#include "port.h" -#include "elap_defs.h" -#include "aarp.h" - -#ifdef WIN32 -#include -#elif __linux__ -#include -#endif - -struct amt_entry_t -{ - struct at_addr_t protocol; - struct ether_addr_t hardware; - - struct amt_entry_t* next; -}; - -typedef struct amt_entry_t* amt_t; - -static amt_t amt = 0; - -static unsigned int retry_count; -static clock_t retry_timer; - - -void aarp_init() -{ - aarp_retry_reset(); -} - -void aarp_shutdown() -{ - struct amt_entry_t* entry = amt; - while (entry) - { - struct amt_entry_t* next = entry->next; - free(entry); - entry = next; - } -} - -//// - -static void aarp_send_packet(enum AARP_FUNCTION function, const struct at_addr_t* source_at_addr, const struct at_addr_t* dest_at_addr, const struct ether_addr_t* dest_hw_addr) -{ - if (source_at_addr && dest_at_addr && dest_hw_addr) - { - struct aarp_header_t response; - response.hardware_type = htons(AARP_HARDWARE_ETHER); - response.protocol_type = htons(AARP_PROTOCOL_TYPE); - response.hw_addr_len = AARP_HW_ADDR_LEN; - response.protocol_addr_len = AARP_PROTOCOL_ADDR_LEN; - response.function = htons(function); - - memcpy(&response.source_proto_addr.addr, source_at_addr, sizeof(response.source_proto_addr.addr)); - response.source_proto_addr.addr.network = htons(response.source_proto_addr.addr.network); - response.source_proto_addr.zero = 0x00; - - memcpy(&response.dest_proto_addr.addr, dest_at_addr, sizeof(response.dest_proto_addr.addr)); - response.dest_proto_addr.addr.network = htons(response.dest_proto_addr.addr.network); - response.dest_proto_addr.zero = 0x00; - - memcpy(response.source_hw_addr.mac, elap_get_mac()->mac, sizeof(response.source_hw_addr.mac)); - - memcpy(response.dest_hw_addr.mac, &dest_hw_addr->mac, sizeof(response.dest_hw_addr.mac)); - - if (dest_hw_addr == &HW_ZERO) - elap_send(&HW_APPLETALK_BROADCAST, &SNAP_AARP, sizeof(struct aarp_header_t), (byte*)&response); - else - elap_send(&response.dest_hw_addr, &SNAP_AARP, sizeof(struct aarp_header_t), (byte*)&response); - } -} - -void aarp_probe(const struct at_addr_t* addr) -{ - if (addr) - { - aarp_send_packet(AARP_FUNCTION_PROBE, addr, addr, &HW_ZERO); - } -} - -static void aarp_request(const struct at_addr_t* addr) -{ - if (addr) - { - aarp_send_packet(AARP_FUNCTION_REQUEST, atbridge_get_addr(), addr, &HW_ZERO); - } -} - -//// - -static struct amt_entry_t* amt_lookup_entry_hardware(const struct ether_addr_t* hardware) -{ - if (hardware) - { - struct amt_entry_t* entry = amt; - while (entry) - { - if (memcmp(&entry->hardware, hardware, sizeof(entry->hardware)) == 0) - return entry; - entry = entry->next; - } - } - return 0; -} - -static struct amt_entry_t* amt_lookup_entry_protocol(const struct at_addr_t* protocol) -{ - if (protocol) - { - struct amt_entry_t* entry = amt; - while (entry) - { - if (memcmp(&entry->protocol, protocol, sizeof(entry->protocol)) == 0) - return entry; - entry = entry->next; - } - } - return 0; -} - -static void amt_delete_entry_protocol(const struct at_addr_t* protocol) -{ - if (protocol) - { - struct amt_entry_t* entry = amt; - struct amt_entry_t* previous = amt; - while (entry) - { - if (memcmp(&entry->protocol, protocol, sizeof(entry->protocol)) == 0) - { - previous->next = entry->next; - free(entry); - break; - } - previous = entry; - entry = entry->next; - } - } -} - -static void amt_add(const struct at_addr_t* protocol, const struct ether_addr_t* hardware) -{ - // Does an entry matching one of the protocol or hardware addresses exist? If so, update it. - struct amt_entry_t* entry = amt_lookup_entry_protocol(protocol); - if (entry) - { - memcpy(&entry->hardware, hardware, sizeof(entry->hardware)); - return; - } - - entry = amt_lookup_entry_hardware(hardware); - if (entry) - { - memcpy(&entry->protocol, protocol, sizeof(entry->protocol)); - return; - } - - // Otherwise, add a new entry. - entry = (struct amt_entry_t*)malloc(sizeof(struct amt_entry_t)); - memcpy(&entry->hardware, hardware, sizeof(entry->hardware)); - memcpy(&entry->protocol, protocol, sizeof(entry->protocol)); - entry->next = amt; - amt = entry; -} - -const struct ether_addr_t* aarp_request_hardware(const struct at_addr_t* protocol) -{ - struct amt_entry_t* entry = amt_lookup_entry_protocol(protocol); - if (entry) - { - aarp_retry_reset(); - return (const struct ether_addr_t*)&entry->hardware; - } - else - { - // The AMT doesn't have this protocol address so issue a request at no more than the AARP_PROBE_INTERVAL period. - if (((clock() - retry_timer) >= (AARP_REQUEST_INTERVAL * CLOCKS_PER_SEC / 1000)) && - (retry_count > 0)) - { - aarp_request(protocol); - - retry_count--; - retry_timer = clock(); - - //atbridge_printf("AARP request count %d timer %d.\n", retry_count, retry_timer); - } - - return 0; - } -} - -const struct at_addr_t* aarp_request_protocol(const struct ether_addr_t* hardware) -{ - struct amt_entry_t* entry = amt_lookup_entry_hardware(hardware); - if (entry) - return (const struct at_addr_t*)&entry->protocol; - else - return 0; -} - -bool aarp_retry() -{ - return retry_count > 0; -} - -void aarp_retry_reset() -{ - retry_count = AARP_REQUEST_COUNT; - retry_timer = clock(); -} - -void aarp_glean(const struct at_addr_t* protocol, const struct ether_addr_t* hardware) -{ - amt_add(protocol, hardware); -} - -bool aarp_address_used(const struct at_addr_t* protocol) -{ - // reference 2-8 - if (protocol) - { - // Check for reserved node numbers, per reference 3-9. - if (protocol->node == 0x00 || protocol->node == 0xfe || protocol->node == 0xff) - return true; - - // Look for the address in the AMT. If it's there, another node is using this address. - struct amt_entry_t* entry = amt_lookup_entry_protocol(protocol); - if (entry) - return true; - - // Try a probe. If this address is in use, another node will reply with an AARP RESPONSE packet. - // Return true to advise the caller that the address is not known to be in use. The caller should - // retry aarp_try_address() every 200 ms (AARP_PROBE_INTERVAL) and 10 times (AARP_PROBE_COUNT), - // per the AARP protocol definition, before choosing this address. - aarp_probe(protocol); - return false; - } - return false; -} - -//// - -void aarp_handle_packet(const struct aarp_header_t* aarp) -{ - if (aarp && - aarp->hardware_type == AARP_HARDWARE_ETHER && - aarp->protocol_type == AARP_PROTOCOL_TYPE && - aarp->hw_addr_len == AARP_HW_ADDR_LEN && - aarp->protocol_addr_len == AARP_PROTOCOL_ADDR_LEN) - { - switch (aarp->function) - { - case AARP_FUNCTION_REQUEST: - if (((aarp->dest_proto_addr.addr.network == atbridge_get_net()) || - (aarp->dest_proto_addr.addr.network == 0x00 /* reference 4-6 */)) && - (aarp->dest_proto_addr.addr.node == atbridge_get_node())) - { - // Generate a response for the AARP request. - aarp_send_packet(AARP_FUNCTION_RESPONSE, &aarp->dest_proto_addr.addr, &aarp->source_proto_addr.addr, &aarp->source_hw_addr); - } - break; - case AARP_FUNCTION_RESPONSE: - aarp_glean(&aarp->source_proto_addr.addr, &aarp->source_hw_addr); - aarp_glean(&aarp->dest_proto_addr.addr, &aarp->dest_hw_addr); - break; - case AARP_FUNCTION_PROBE: - // AMT entry aging, method 2, reference 2-11 - amt_delete_entry_protocol(&aarp->dest_proto_addr.addr); - break; - default: - break; - } - } -} diff --git a/.svn/pristine/cd/cd64844cbe25907b76bcf5360eb0eeaeba09329a.svn-base b/.svn/pristine/cd/cd64844cbe25907b76bcf5360eb0eeaeba09329a.svn-base deleted file mode 100644 index 092ec31..0000000 --- a/.svn/pristine/cd/cd64844cbe25907b76bcf5360eb0eeaeba09329a.svn-base +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -export PATH="/mingw/bin:${PATH}" -make diff --git a/.svn/pristine/cd/cdb3c039d8759aebf71fdb3149c932b67406e9fa.svn-base b/.svn/pristine/cd/cdb3c039d8759aebf71fdb3149c932b67406e9fa.svn-base deleted file mode 100644 index 9283d7e..0000000 --- a/.svn/pristine/cd/cdb3c039d8759aebf71fdb3149c932b67406e9fa.svn-base +++ /dev/null @@ -1,370 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defcomm.h" - -// OG redirect printf to console -#ifdef ACTIVEGS -#include -extern "C" int outputInfo(const char* format,...); -extern "C" int fOutputInfo(FILE*,const char* format,...); -#define printf outputInfo -#define fprintf fOutputInfo -#endif - -#define STRUCT(a) typedef struct _ ## a a; struct _ ## a - -typedef unsigned char byte; -typedef unsigned short word16; -typedef unsigned int word32; -#if _MSC_VER -typedef unsigned __int64 word64; -#else -typedef unsigned long long word64; -#endif - -void U_STACK_TRACE(); - -/* 28MHz crystal, plus every 65th 1MHz cycle is stretched 140ns */ -#define CYCS_28_MHZ (28636360) -#define DCYCS_28_MHZ (1.0*CYCS_28_MHZ) -#define CYCS_3_5_MHZ (CYCS_28_MHZ/8) -#define DCYCS_1_MHZ ((DCYCS_28_MHZ/28.0)*(65.0*7/(65.0*7+1.0))) -#define CYCS_1_MHZ ((int)DCYCS_1_MHZ) - -/* #define DCYCS_IN_16MS_RAW (DCYCS_1_MHZ / 60.0) */ -#define DCYCS_IN_16MS_RAW (262.0 * 65.0) -/* Use precisely 17030 instead of forcing 60 Hz since this is the number of */ -/* 1MHz cycles per screen */ -#define DCYCS_IN_16MS ((double)((int)DCYCS_IN_16MS_RAW)) -#define DRECIP_DCYCS_IN_16MS (1.0 / (DCYCS_IN_16MS)) - -#ifdef GSPORT_LITTLE_ENDIAN -# define BIGEND(a) ((((a) >> 24) & 0xff) + \ - (((a) >> 8) & 0xff00) + \ - (((a) << 8) & 0xff0000) + \ - (((a) << 24) & 0xff000000)) -# define GET_BE_WORD16(a) ((((a) >> 8) & 0xff) + (((a) << 8) & 0xff00)) -# define GET_BE_WORD32(a) (BIGEND(a)) -#else -# define BIGEND(a) (a) -# define GET_BE_WORD16(a) (a) -# define GET_BE_WORD32(a) (a) -#endif - -#define MAXNUM_HEX_PER_LINE 32 - -#ifdef __NeXT__ -# include -#endif - -#if !defined(_WIN32) && !defined (__OS2__) && !defined(UNDER_CE) // OG -# include -# include -# include -#endif - -#include -#include -#include - -#include -#include -#include - -#ifndef UNDER_CE // OG CE SPecific -#include -#include -#include -#include -// OG Adding support for open -#ifdef WIN32 -#include -#endif - -#else -extern int errno; -extern int open(const char* name,int,...); -extern int read(int,char*,int); -extern int close(int); -extern int write( int fd, const void *buffer, unsigned int count ); -extern int lseek(int,int,int); -struct stat { int st_size; }; -extern int stat(const char* name, struct stat*); -extern int fstat(int, struct stat*); -#define O_RDWR 1 -#define O_BINARY 2 -#define O_RDONLY 4 -#define O_WRONLY 8 -#define O_CREAT 16 -#define O_TRUNC 32 -#define EAGAIN 11 -#define EINTR 4 - -#endif - - -#ifdef HPUX -# include /* for GET_ITIMER */ -#endif - -#ifdef SOLARIS -# include -#endif - -#ifndef O_BINARY -/* work around some Windows junk */ -# define O_BINARY 0 -#endif - -STRUCT(Pc_log) { - double dcycs; - word32 dbank_kpc; - word32 instr; - word32 psr_acc; - word32 xreg_yreg; - word32 stack_direct; - word32 pad; -}; - -STRUCT(Data_log) { - double dcycs; - word32 addr; - word32 val; - word32 size; -}; - -STRUCT(Event) { - double dcycs; - int type; - Event *next; -}; - -STRUCT(Fplus) { - double plus_1; - double plus_2; - double plus_3; - double plus_x_minus_1; -}; - -STRUCT(Engine_reg) { - double fcycles; - word32 kpc; - word32 acc; - - word32 xreg; - word32 yreg; - - word32 stack; - word32 dbank; - - word32 direct; - word32 psr; - Fplus *fplus_ptr; -}; - -STRUCT(Kimage) { - void *dev_handle; - void *dev_handle2; - byte *data_ptr; - int width_req; - int width_act; - int height; - int depth; - int mdepth; - int aux_info; -}; - -typedef byte *Pg_info; -STRUCT(Page_info) { - Pg_info rd_wr; -}; - -STRUCT(Cfg_menu) { - const char *str; - void *ptr; - const char *name_str; - void *defptr; - int cfgtype; -}; - -STRUCT(Cfg_dirent) { - char *name; - int is_dir; - int size; - int image_start; - int part_num; -}; - -STRUCT(Cfg_listhdr) { - Cfg_dirent *direntptr; - int max; - int last; - int invalid; - - int curent; - int topent; - - int num_to_show; -}; - -STRUCT(Emustate_intlist) { - const char *str; - int *iptr; -}; - -STRUCT(Emustate_dbllist) { - const char *str; - double *dptr; -}; - -STRUCT(Emustate_word32list) { - const char *str; - word32 *wptr; -}; - -#ifdef __LP64__ -# define PTR2WORD(a) ((unsigned long)(a)) -#else -# define PTR2WORD(a) ((unsigned int)(a)) -#endif - - -#define ALTZP (g_c068_statereg & 0x80) -/* #define PAGE2 (g_c068_statereg & 0x40) */ -#define RAMRD (g_c068_statereg & 0x20) -#define RAMWRT (g_c068_statereg & 0x10) -#define RDROM (g_c068_statereg & 0x08) -#define LCBANK2 (g_c068_statereg & 0x04) -#define ROMB (g_c068_statereg & 0x02) -#define INTCX (g_c068_statereg & 0x01) - -#define C041_EN_25SEC_INTS 0x10 -#define C041_EN_VBL_INTS 0x08 -#define C041_EN_SWITCH_INTS 0x04 -#define C041_EN_MOVE_INTS 0x02 -#define C041_EN_MOUSE 0x01 - -/* WARNING: SCC1 and SCC0 interrupts must be in this order for scc.c */ -/* This order matches the SCC hardware */ -#define IRQ_PENDING_SCC1_ZEROCNT 0x00001 -#define IRQ_PENDING_SCC1_TX 0x00002 -#define IRQ_PENDING_SCC1_RX 0x00004 -#define IRQ_PENDING_SCC0_ZEROCNT 0x00008 -#define IRQ_PENDING_SCC0_TX 0x00010 -#define IRQ_PENDING_SCC0_RX 0x00020 -#define IRQ_PENDING_C023_SCAN 0x00100 -#define IRQ_PENDING_C023_1SEC 0x00200 -#define IRQ_PENDING_C046_25SEC 0x00400 -#define IRQ_PENDING_C046_VBL 0x00800 -#define IRQ_PENDING_ADB_KBD_SRQ 0x01000 -#define IRQ_PENDING_ADB_DATA 0x02000 -#define IRQ_PENDING_ADB_MOUSE 0x04000 -#define IRQ_PENDING_DOC 0x08000 - - -#define EXTRU(val, pos, len) \ - ( ( (len) >= (pos) + 1) ? ((val) >> (31-(pos))) : \ - (((val) >> (31-(pos)) ) & ( (1<<(len) ) - 1) ) ) - -#define DEP1(val, pos, old_val) \ - (((old_val) & ~(1 << (31 - (pos))) ) | \ - ( ((val) & 1) << (31 - (pos))) ) - -#define set_halt(val) \ - if(val) { set_halt_act(val); } - -#define clear_halt() \ - clr_halt_act() - -#define GET_PAGE_INFO_RD(page) \ - (page_info_rd_wr[page].rd_wr) - -#define GET_PAGE_INFO_WR(page) \ - (page_info_rd_wr[0x10000 + PAGE_INFO_PAD_SIZE + (page)].rd_wr) - -#define SET_PAGE_INFO_RD(page,val) \ - ;page_info_rd_wr[page].rd_wr = (Pg_info)val; - -#define SET_PAGE_INFO_WR(page,val) \ - ;page_info_rd_wr[0x10000 + PAGE_INFO_PAD_SIZE + (page)].rd_wr = \ - (Pg_info)val; - -#define VERBOSE_DISK 0x001 -#define VERBOSE_IRQ 0x002 -#define VERBOSE_CLK 0x004 -#define VERBOSE_SHADOW 0x008 -#define VERBOSE_IWM 0x010 -#define VERBOSE_DOC 0x020 -#define VERBOSE_ADB 0x040 -#define VERBOSE_SCC 0x080 -#define VERBOSE_TEST 0x100 -#define VERBOSE_VIDEO 0x200 -#define VERBOSE_MAC 0x400 - -#ifdef NO_VERB -# define DO_VERBOSE 0 -#else -# define DO_VERBOSE 1 -#endif - -#define disk_printf if(DO_VERBOSE && (Verbose & VERBOSE_DISK)) printf -#define irq_printf if(DO_VERBOSE && (Verbose & VERBOSE_IRQ)) printf -#define clk_printf if(DO_VERBOSE && (Verbose & VERBOSE_CLK)) printf -#define shadow_printf if(DO_VERBOSE && (Verbose & VERBOSE_SHADOW)) printf -#define iwm_printf if(DO_VERBOSE && (Verbose & VERBOSE_IWM)) printf -#define doc_printf if(DO_VERBOSE && (Verbose & VERBOSE_DOC)) printf -#define adb_printf if(DO_VERBOSE && (Verbose & VERBOSE_ADB)) printf -#define scc_printf if(DO_VERBOSE && (Verbose & VERBOSE_SCC)) printf -#define test_printf if(DO_VERBOSE && (Verbose & VERBOSE_TEST)) printf -#define vid_printf if(DO_VERBOSE && (Verbose & VERBOSE_VIDEO)) printf -#define mac_printf if(DO_VERBOSE && (Verbose & VERBOSE_MAC)) printf - - -#define HALT_ON_SCAN_INT 0x001 -#define HALT_ON_IRQ 0x002 -#define HALT_ON_SHADOW_REG 0x004 -#define HALT_ON_C70D_WRITES 0x008 - -#define HALT_ON(a, msg) \ - if(Halt_on & a) { \ - halt_printf(msg); \ - } - - -#ifndef MIN -# define MIN(a,b) (((a) < (b)) ? (a) : (b)) -#endif -#ifndef MAX -# define MAX(a,b) (((a) < (b)) ? (b) : (a)) -#endif - -#define GET_ITIMER(dest) dest = get_itimer(); - -#include "iwm.h" -#include "protos.h" -// OG Added define for joystick -#define JOYSTICK_TYPE_KEYPAD 0 -#define JOYSTICK_TYPE_MOUSE 1 -#define JOYSTICK_TYPE_NATIVE_1 2 -#define JOYSTICK_TYPE_NATIVE_2 3 -#define JOYSTICK_TYPE_NONE 4 // OG Added Joystick None -#define NB_JOYSTICK_TYPE 5 diff --git a/.svn/pristine/d4/d46895322a405253b1ccbda8560f48847a41b572.svn-base b/.svn/pristine/d4/d46895322a405253b1ccbda8560f48847a41b572.svn-base deleted file mode 100644 index 63cc700..0000000 --- a/.svn/pristine/d4/d46895322a405253b1ccbda8560f48847a41b572.svn-base +++ /dev/null @@ -1,26 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2013 by GSport contributors -Originally authored by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -void scc_llap_init(); -void scc_llap_shutdown(); -void scc_llap_update(); -void scc_llap_fill_readbuf(int port, int space_left, double dcycs); -void scc_llap_empty_writebuf(int port, double dcycs); -void scc_llap_set_node(byte val); \ No newline at end of file diff --git a/.svn/pristine/d6/d67be1ea814e8f4b03c84a250852725f721c8903.svn-base b/.svn/pristine/d6/d67be1ea814e8f4b03c84a250852725f721c8903.svn-base deleted file mode 100644 index 13fcc90..0000000 --- a/.svn/pristine/d6/d67be1ea814e8f4b03c84a250852725f721c8903.svn-base +++ /dev/null @@ -1,58 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by gsport32.rc -// -#define IDD_ABOUT_DIALOG 101 -#define IDC_GSPORT32 102 -#define IDR_TOOLBAR 103 -#define IDD_DLG_DISKCONF 104 -#define IDR_ACCEL 105 -#define IDD_GSPORT32_KEY 106 -#define IDD_SPEEDDIALOG 117 -#define IDC_SLOW 1007 -#define IDC_CUSTOM 1008 -#define IDC_EDITCUSTOM 1009 -#define IDC_NORMAL 1010 -#define IDC_FASTEST 1011 -#define ID_TOOLBAR 5000 -#define ID_STATUSBAR 5001 -#define IDC_EDIT_S5D1 10051 -#define IDC_EDIT_S5D2 10052 -#define IDC_EDIT_S6D1 10061 -#define IDC_EDIT_S6D2 10062 -#define IDC_EDIT_S7D1 10071 -#define IDC_EDIT_S7D2 10072 -#define IDC_BTN_S5D1 11051 -#define IDC_BTN_S5D2 11052 -#define IDC_BTN_S6D1 11061 -#define IDC_BTN_S6D2 11062 -#define IDC_BTN_S7D1 11071 -#define IDC_BTN_S7D2 11072 -#define ID_HELP_ABOUT 40001 -#define ID_FILE_EXIT 40002 -#define ID_FILE_DISK 40003 -#define ID_FILE_SENDRESET 40004 -#define ID_FILE_JOYSTICK 40005 -#define ID_FILE_DEBUGSTAT 40006 -#define ID_FILE_SENDREBOOT 40007 -#define ID_FILE_FULLSCREEN 40012 -#define ID_FILE_SPEED 40013 -#define ID_HELP_KEY 40014 -#define ID_FILE_SEND_REBOOT 40014 -#define ID_Menu 40015 -#define ID_EMULATOR_FLUSHPRINTER 40016 -#define ID_FILE_FLUSHPRINTER 40017 -#define ID_SPEED_1MHZ 50001 -#define ID_SPEED_2MHZ 50002 -#define ID_SPEED_FMHZ 50003 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 116 -#define _APS_NEXT_COMMAND_VALUE 40018 -#define _APS_NEXT_CONTROL_VALUE 1003 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/.svn/pristine/d8/d89e3b677871c228ccee946203458f87e811d8c4.svn-base b/.svn/pristine/d8/d89e3b677871c228ccee946203458f87e811d8c4.svn-base deleted file mode 100644 index e829584..0000000 --- a/.svn/pristine/d8/d89e3b677871c228ccee946203458f87e811d8c4.svn-base +++ /dev/null @@ -1,171 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" - -/* Format: a2code, ascii if no shift, ascii if shift, ascii if ctl */ -const int a2_key_to_ascii[][4] = { - { 0x00, 'a', 'A', 0x01 }, - { 0x01, 's', 'S', 0x13 }, - { 0x02, 'd', 'D', 0x04 }, - { 0x03, 'f', 'F', 0x06 }, - { 0x04, 'h', 'H', 0x08 }, - { 0x05, 'g', 'G', 0x07 }, - { 0x06, 'z', 'Z', 0x1a }, - { 0x07, 'x', 'X', 0x18 }, - - { 0x08, 'c', 'C', 0x03 }, - { 0x09, 'v', 'V', 0x16 }, - { 0x0a, -1, -1, -1 }, - { 0x0b, 'b', 'B', 0x02 }, - { 0x0c, 'q', 'Q', 0x11 }, - { 0x0d, 'w', 'W', 0x17 }, - { 0x0e, 'e', 'E', 0x05 }, - { 0x0f, 'r', 'R', 0x12 }, - - { 0x10, 'y', 'Y', 0x19 }, - { 0x11, 't', 'T', 0x14 }, - { 0x12, '1', '!', -1 }, - { 0x13, '2', '@', 0x00 }, - { 0x14, '3', '#', -1 }, - { 0x15, '4', '$', -1 }, - { 0x16, '6', '^', 0x1e }, - { 0x17, '5', '%', -1 }, - - { 0x18, '=', '+', -1 }, - { 0x19, '9', '(', -1 }, - { 0x1a, '7', '&', -1 }, - { 0x1b, '-', '_', 0x1f }, - { 0x1c, '8', '*', -1 }, - { 0x1d, '0', ')', -1 }, - { 0x1e, ']', '}', 0x1d }, - { 0x1f, 'o', 'O', 0x0f }, - - { 0x20, 'u', 'U', 0x15 }, - { 0x21, '[', '{', 0x1b }, - { 0x22, 'i', 'I', 0x09 }, - { 0x23, 'p', 'P', 0x10 }, - { 0x24, 0x0d, 0x0d, -1 }, /* return */ - { 0x25, 'l', 'L', 0x0c }, - { 0x26, 'j', 'J', 0x0a }, - { 0x27, 0x27, '"', -1 }, /* single quote */ - - { 0x28, 'k', 'K', 0x0b }, - { 0x29, ';', ':', -1 }, - { 0x2a, 0x5c, '|', 0x1c }, /* \, | */ - { 0x2b, ',', '<', -1 }, - { 0x2c, '/', '?', 0x7f }, - { 0x2d, 'n', 'N', 0x0e }, - { 0x2e, 'm', 'M', 0x0d }, - { 0x2f, '.', '>', -1 }, - - { 0x30, 0x09, 0x09, -1 }, /* tab */ - { 0x31, ' ', ' ', -1 }, - { 0x32, '`', '~', -1 }, - { 0x33, 0x7f, 0x7f, -1 }, /* Delete */ - { 0x34, -1, -1, -1 }, - { 0x35, 0x1b, 0x1b, -1 }, /* Esc */ - { 0x36, 0x0200, 0x0200, -1 }, /* control */ - { 0x37, 0x8000, 0x8000, -1 }, /* Command */ - - { 0x38, 0x0100, 0x0100, -1 }, /* shift */ - { 0x39, 0x0400, 0x0400, -1 }, /* caps lock */ - { 0x3a, 0x4000, 0x4000, -1 }, /* Option */ - { 0x3b, 0x08, 0x08, -1 }, /* left */ - { 0x3c, 0x15, 0x15, -1 }, /* right */ - { 0x3d, 0x0a, 0x0a, -1 }, /* down */ - { 0x3e, 0x0b, 0x0b, -1 }, /* up arrow */ - { 0x3f, -1, -1, -1 }, - - { 0x40, -1, -1, -1 }, - { 0x41, 0x102e, 0x102c, -1 }, /* keypad . */ - { 0x42, -1, -1, -1 }, - { 0x43, 0x102a, 0x102a, -1 }, /* keypad * */ - { 0x44, -1, -1, -1 }, - { 0x45, 0x102b, 0x102b, -1 }, /* keypad + */ - { 0x46, -1, -1, -1 }, - { 0x47, 0x1018, 0x1018, -1 }, /* keypad Clear */ - - { 0x48, -1, -1, -1 }, - { 0x49, -1, -1, -1 }, - { 0x4a, -1, -1, -1 }, - { 0x4b, 0x102f, 0x102f, -1 }, /* keypad / */ - { 0x4c, 0x100d, 0x100d, -1 }, /* keypad enter */ - { 0x4d, -1, -1, -1 }, - { 0x4e, 0x102d, 0x102d, -1 }, /* keypad - */ - { 0x4f, -1, -1, -1 }, - - { 0x50, -1, -1, -1 }, - { 0x51, 0x103d, 0x103d, -1 }, /* keypad = */ - { 0x52, 0x1030, 0x1030, -1 }, /* keypad 0 */ - { 0x53, 0x1031, 0x1031, -1 }, /* keypad 1 */ - { 0x54, 0x1032, 0x1032, -1 }, /* keypad 2 */ - { 0x55, 0x1033, 0x1033, -1 }, /* keypad 3 */ - { 0x56, 0x1034, 0x1034, -1 }, /* keypad 4 */ - { 0x57, 0x1035, 0x1035, -1 }, /* keypad 5 */ - - { 0x58, 0x1036, 0x1036, -1 }, /* keypad 6 */ - { 0x59, 0x1037, 0x1037, -1 }, /* keypad 7 */ - { 0x5a, 'a', 'A', 0x01 }, /* probably not necessary */ - { 0x5b, 0x1038, 0x1038, -1 }, /* keypad 8 */ - { 0x5c, 0x1039, 0x1039, -1 }, /* keypad 9 */ - { 0x5d, -1, -1, -1 }, - { 0x5e, -1, -1, -1 }, - { 0x5f, -1, -1, -1 }, - - { 0x60, 0x8005, 0x1060, -1 }, /* F5 */ - { 0x61, 0x8006, 0x1061, -1 }, /* F6 */ - { 0x62, 0x8007, 0x1062, -1 }, /* F7 */ - { 0x63, 0x8003, 0x1063, -1 }, /* F3 */ - { 0x64, 0x8008, 0x1064, -1 }, /* F8 */ - { 0x65, 0x8009, 0x1065, -1 }, /* F9 */ - { 0x66, -1, -1, -1 }, - { 0x67, 0x800b, 0x1067, -1 }, /* F11 */ - - { 0x68, -1, -1, -1 }, -// { 0x69, 0x800d, 0x1069, -1 }, /* F13 */ -// OG remap F13 to reset - { 0x69, 0x800c, 0x1069, -1 }, /* F13 */ - { 0x6a, -1, -1, -1 }, - { 0x6b, 0x800e, 0x106b, -1 }, /* F14 */ - { 0x6c, -1, -1, -1 }, - { 0x6d, 0x800a, 0x106d, -1 }, /* F10 */ - { 0x6e, 0x4000, 0x4000, -1 }, /* windows key alias to option */ - { 0x6f, 0x800c, 0x106f, -1 }, /* F12 */ - - { 0x70, -1, -1, -1 }, - { 0x71, 0x800f, 0x1071, -1 }, /* F15 */ - { 0x72, 0x1072, 0x1072, -1 }, /* Help, insert */ - { 0x73, 0x1073, 0x1073, -1 }, /* Home */ - { 0x74, 0x1074, 0x1074, -1 }, /* Page up */ - { 0x75, 0x1075, 0x1075, -1 }, /* keypad delete */ - { 0x76, 0x8004, 0x1076, -1 }, /* F4 */ - { 0x77, 0x1077, 0x1077, -1 }, /* keypad end */ - - { 0x78, 0x8002, 0x1078, -1 }, /* F2 */ - { 0x79, 0x1079, 0x1079, -1 }, /* keypad page down */ - { 0x7a, 0x8001, 0x107a, -1 }, /* F1 */ - { 0x7b, 0x08, 0x08, -1 }, /* left */ /* remapped to 0x3b */ - { 0x7c, 0x15, 0x15, -1 }, /* right */ /* remapped to 0x3c */ - { 0x7d, 0x0a, 0x0a, -1 }, /* down */ /* remapped to 0x3d */ - { 0x7e, 0x0b, 0x0b, -1 }, /* up arrow */ /* remapped to 0x3e */ - { 0x7f, -1, -1, -1 }, /* Reset */ -}; diff --git a/.svn/pristine/d9/d920ea0ede1cc0e7b3f2c25068d9d2389a5765e9.svn-base b/.svn/pristine/d9/d920ea0ede1cc0e7b3f2c25068d9d2389a5765e9.svn-base deleted file mode 100644 index 1c71181..0000000 --- a/.svn/pristine/d9/d920ea0ede1cc0e7b3f2c25068d9d2389a5765e9.svn-base +++ /dev/null @@ -1,180 +0,0 @@ -#include -#include "winresource.h" - -// $Id: $ - -#ifndef IDC_STATIC -#define IDC_STATIC (-1) -#endif - -///////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -IDC_GSPORT32 MENU DISCARDABLE -BEGIN - POPUP "&Emulator" - BEGIN - MENUITEM "&Set Disk Configuration", ID_FILE_DISK - MENUITEM "Send CTRL Reset\tCTRL-BREAK", ID_FILE_SENDRESET - MENUITEM "Reboot\tCTRL-ALT-BREAK", ID_FILE_SENDREBOOT - MENUITEM SEPARATOR - MENUITEM "Toggle &Joystick", ID_FILE_JOYSTICK - MENUITEM "Toggle Debug Statistics", ID_FILE_DEBUGSTAT - MENUITEM SEPARATOR - MENUITEM "E&xit", ID_FILE_EXIT - END - POPUP "&Help" - BEGIN - MENUITEM "Key Commands", ID_HELP_KEY - MENUITEM SEPARATOR - MENUITEM "&About", ID_HELP_ABOUT - END -END - -///////////////////////////////////////////////////////////////////////////// -// -// RT_MANIFEST -// - -// CREATEPROCESS_MANIFEST RT_MANIFEST "gsport.manifest" - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDC_GSPORT32 BITMAP DISCARDABLE "wintoolbar.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDR_ACCEL ACCELERATORS DISCARDABLE -BEGIN - VK_F1, ID_FILE_DISK, VIRTKEY, ALT, NOINVERT - VK_F4, ID_FILE_EXIT, VIRTKEY, ALT, NOINVERT -END - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDC_GSPORT32 ICON DISCARDABLE "win32.ico" -GSPORT32_ICON ICON DISCARDABLE "win32.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUT_DIALOG DIALOG DISCARDABLE 0, 0, 207, 82 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "About" -FONT 8, "MS Sans Serif" -BEGIN - DEFPUSHBUTTON "OK",IDOK,78,61,50,14 - LTEXT "GSport: GS Emulator.\nBased on KEGS by Kent Dickey\nWindows Port by Chea Chee Keong\n\nThis software is licensed under GNU GPL.", - IDC_STATIC,38,7,162,45,NOT WS_GROUP - ICON "GSPORT32_ICON",IDC_STATIC,7,7,21,20,0 -END - -IDD_DLG_DISKCONF DIALOGEX 0, 0, 268, 182 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Disk Configuration" -FONT 8, "MS Sans Serif", 0, 0, 0x1 -BEGIN - DEFPUSHBUTTON "OK",IDOK,150,161,50,14 - PUSHBUTTON "Cancel",IDCANCEL,203,161,50,14 - LTEXT "S5D1",IDC_STATIC,19,46,19,8 - EDITTEXT IDC_EDIT_S5D1,43,42,156,14,ES_AUTOHSCROLL, - WS_EX_ACCEPTFILES - PUSHBUTTON "Browse",IDC_BTN_S5D1,203,42,50,14 - LTEXT "S5D2",IDC_STATIC,19,62,19,8 - EDITTEXT IDC_EDIT_S5D2,43,60,155,14,ES_AUTOHSCROLL, - WS_EX_ACCEPTFILES - PUSHBUTTON "Browse",IDC_BTN_S5D2,203,60,50,14 - LTEXT "S6D1",IDC_STATIC,19,80,19,8 - EDITTEXT IDC_EDIT_S6D1,43,77,156,14,ES_AUTOHSCROLL, - WS_EX_ACCEPTFILES - PUSHBUTTON "Browse",IDC_BTN_S6D1,203,77,50,14 - LTEXT "S6D2",IDC_STATIC,19,98,19,8 - EDITTEXT IDC_EDIT_S6D2,43,95,156,14,ES_AUTOHSCROLL, - WS_EX_ACCEPTFILES - PUSHBUTTON "Browse",IDC_BTN_S6D2,203,96,50,14 - LTEXT "S7D1",IDC_STATIC,19,118,19,8 - EDITTEXT IDC_EDIT_S7D1,43,115,155,14,ES_AUTOHSCROLL, - WS_EX_ACCEPTFILES - PUSHBUTTON "Browse",IDC_BTN_S7D1,203,115,50,14 - LTEXT "S7D2",IDC_STATIC,19,137,19,8 - EDITTEXT IDC_EDIT_S7D2,43,135,155,14,ES_AUTOHSCROLL, - WS_EX_ACCEPTFILES - PUSHBUTTON "Browse",IDC_BTN_S7D2,203,135,50,14 - GROUPBOX "Disk settings",IDC_STATIC,7,7,254,148 - LTEXT "Configure your disk images for each drive. Disk image formats supported\nare *.2MG,*.PO and *.DSK. ", - IDC_STATIC,19,20,234,16 -END - -IDD_SPEEDDIALOG DIALOG 0, 0, 240, 129 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Speed Control" -FONT 8, "MS Sans Serif" -BEGIN - CONTROL "1 MHz",IDC_SLOW,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,45,41,51,13 - CONTROL "2.5 MHz",IDC_NORMAL,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,45,55,43,13 - CONTROL "As fast as possible",IDC_FASTEST,"Button", - BS_AUTORADIOBUTTON | WS_TABSTOP,45,69,74,13 - CONTROL "Custom (MHz)",IDC_CUSTOM,"Button",BS_AUTORADIOBUTTON | - WS_TABSTOP,45,83,69,13 - EDITTEXT IDC_EDITCUSTOM,117,83,79,13,ES_AUTOHSCROLL - DEFPUSHBUTTON "OK",IDOK,133,107,50,15 - PUSHBUTTON "Cancel",IDCANCEL,183,107,50,15 - GROUPBOX "Speed Control",IDC_STATIC,7,7,226,96,WS_GROUP - LTEXT "Adjust the speed of your emulator by selecting the appropriate speed control", - IDC_STATIC,46,19,181,19,NOT WS_GROUP - ICON IDC_GSPORT32,IDC_STATIC,14,19,21,20 -END - -IDD_GSPORT32_KEY DIALOG 0, 0, 186, 172 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Help About Key Commands" -FONT 8, "MS Sans Serif" -BEGIN - DEFPUSHBUTTON "OK",IDOK,65,151,50,14 - LTEXT "GSport Key Commands",IDC_STATIC,7,7,82,10 - LTEXT "Alt/F1\t\tOpen-Apple\nF2\t\tClose-Apple\nF7\t\tToggle Fast Disk Emulation\nF8\t\tToggle Mouse Pointer\n\t\tDisplay\n", - IDC_STATIC,21,25,151,42 - LTEXT "F11\t\tToggle Fullscreen Display\nF12\t\tReset\nCtrl-Alt-Break\tReboot Emulator\nCtrl-Alt-Esc\tControl-Panel\nCtrl-Break\tReset Emulator", - IDC_STATIC,21,66,141,50 - CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | WS_DISABLED | - WS_BORDER,7,17,172,1 - LTEXT "Please visit http://gsport.sourceforge.net", - IDC_STATIC,21,124,144,19 -END - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE -BEGIN - ID_FILE_DISK "Disk Configuration" -END - -STRINGTABLE -BEGIN - ID_SPEED_1MHZ "Set Speed to 1 Mhz" - ID_SPEED_2MHZ "Set Speed to 2.5 Mhz" - ID_SPEED_FMHZ "Set Speed to as fast as possible" -END - - - diff --git a/.svn/pristine/dd/dd95d21bc294072f6928ef9143cd2a71aa89b906.svn-base b/.svn/pristine/dd/dd95d21bc294072f6928ef9143cd2a71aa89b906.svn-base deleted file mode 100644 index 49f8aa008fbfe6722d8a9bf0824c72c6ed074197..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324096 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

iTPFfO@2SYZ>p~{8m9l~A_(mzb~L}c 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 E1GM)>4gdfE diff --git a/.svn/pristine/de/de4c6a413ee7d392db29830d73010fd307cc0c06.svn-base b/.svn/pristine/de/de4c6a413ee7d392db29830d73010fd307cc0c06.svn-base deleted file mode 100644 index ca058aea26b42ad98cc9878a6d2759a8cb225c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcmc&yJ5Iwu5PcD>kPwK_(!`?3HH;LRbO_0NfJokg3(!PjPrwz@=M+AG3m+jBB}z#V zF?lm4UYkz=4R8H+=grLS&a6C}UjZ0%Ja9cDGu&XrL5RpK#p!C}8KcJ*2V#t3i8SiE zhH&UUHE8LimU{jfR>Wbda3m2YEb8K&+>vkOHZi9?Q7v0?Lsn$`mJ|AO@`*X}oQpiJ zL~gk*d7o;lCJ8C|98R$cufj8UF-KV_K?ZDbpQYW diff --git a/.svn/pristine/df/df26a65819a132a1015d743d90a6c6f8f94e8317.svn-base b/.svn/pristine/df/df26a65819a132a1015d743d90a6c6f8f94e8317.svn-base deleted file mode 100644 index 2b6c137..0000000 --- a/.svn/pristine/df/df26a65819a132a1015d743d90a6c6f8f94e8317.svn-base +++ /dev/null @@ -1,36 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Express 2012 for Windows Desktop -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gsport", "gsport.vcxproj", "{0B4E527A-DB50-4B5F-9B08-303ABAF7356A}" - ProjectSection(ProjectDependencies) = postProject - {2C88133A-7CB8-4C03-AF4D-4ECFC6F8500B} = {2C88133A-7CB8-4C03-AF4D-4ECFC6F8500B} - {E810477A-E004-4308-A58A-21393213EF89} = {E810477A-E004-4308-A58A-21393213EF89} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tfe", "tfe\tfe.vcxproj", "{E810477A-E004-4308-A58A-21393213EF89}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "atbridge", "atbridge\atbridge.vcxproj", "{2C88133A-7CB8-4C03-AF4D-4ECFC6F8500B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0B4E527A-DB50-4B5F-9B08-303ABAF7356A}.Debug|Win32.ActiveCfg = Debug|Win32 - {0B4E527A-DB50-4B5F-9B08-303ABAF7356A}.Debug|Win32.Build.0 = Debug|Win32 - {0B4E527A-DB50-4B5F-9B08-303ABAF7356A}.Release|Win32.ActiveCfg = Release|Win32 - {0B4E527A-DB50-4B5F-9B08-303ABAF7356A}.Release|Win32.Build.0 = Release|Win32 - {E810477A-E004-4308-A58A-21393213EF89}.Debug|Win32.ActiveCfg = Debug|Win32 - {E810477A-E004-4308-A58A-21393213EF89}.Debug|Win32.Build.0 = Debug|Win32 - {E810477A-E004-4308-A58A-21393213EF89}.Release|Win32.ActiveCfg = Release|Win32 - {E810477A-E004-4308-A58A-21393213EF89}.Release|Win32.Build.0 = Release|Win32 - {2C88133A-7CB8-4C03-AF4D-4ECFC6F8500B}.Debug|Win32.ActiveCfg = Debug|Win32 - {2C88133A-7CB8-4C03-AF4D-4ECFC6F8500B}.Debug|Win32.Build.0 = Debug|Win32 - {2C88133A-7CB8-4C03-AF4D-4ECFC6F8500B}.Release|Win32.ActiveCfg = Release|Win32 - {2C88133A-7CB8-4C03-AF4D-4ECFC6F8500B}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/.svn/pristine/e0/e0a7e1ed77c808200667764673cc9f1324b93af3.svn-base b/.svn/pristine/e0/e0a7e1ed77c808200667764673cc9f1324b93af3.svn-base deleted file mode 100644 index b082bc054dded123a1369725c976702580e71f2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10258 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 -#endif - -#include - -#ifdef HAVE_SDL -#include "SDL.h" - -#include -#include FT_FREETYPE_H -#endif // HAVE_SDL - -#if defined (WIN32) -#include -#include -#endif - -#define STYLE_PROP 0x01 -#define STYLE_CONDENSED 0x02 -#define STYLE_BOLD 0x04 -#define STYLE_DOUBLESTRIKE 0x08 -#define STYLE_DOUBLEWIDTH 0x10 -#define STYLE_ITALICS 0x20 -#define STYLE_UNDERLINE 0x40 -#define STYLE_SUPERSCRIPT 0x80 -#define STYLE_SUBSCRIPT 0x100 -#define STYLE_HALFHEIGHT 0x200 - -#define SCORE_NONE 0x00 -#define SCORE_SINGLE 0x01 -#define SCORE_DOUBLE 0x02 -#define SCORE_SINGLEBROKEN 0x05 -#define SCORE_DOUBLEBROKEN 0x06 - -#define QUALITY_DRAFT 0x01 -#define QUALITY_LQ 0x02 - -#define COLOR_BLACK 7<<5 -typedef unsigned Bitu; -typedef signed Bits; -typedef unsigned char Bit8u; -typedef signed char Bit8s; -typedef unsigned short Bit16u; -typedef signed short Bit16s; -typedef unsigned long Bit32u; -typedef signed long Bit32s; -typedef double Real64; -#if defined(_MSC_VER) -typedef unsigned __int64 Bit64u; -typedef signed __int64 Bit64s; -#else -typedef unsigned long long int Bit64u; -typedef signed long long int Bit64s; -#endif -enum IWTypeface -{ - fixed = 0, - prop = 1 -}; - -typedef struct { - Bitu codepage; - const Bit16u* map; -} IWCHARMAP; - - -class Imagewriter { -public: - - Imagewriter (Bit16u dpi, Bit16u paperSize, Bit16u bannerSize, char* output, bool multipageOutput); - virtual ~Imagewriter(); - - // Process one character sent to virtual printer - void printChar(Bit8u ch); - - // Hard Reset (like switching printer off and on) - void resetPrinterHard(); - - // Set Autofeed value - void setAutofeed(bool feed); - - // Get Autofeed value - bool getAutofeed(); - - // True if printer is unable to process more data right now (do not use printChar) - bool isBusy(); - - // True if the last sent character was received - bool ack(); - - // Manual formfeed - void formFeed(); - -#ifdef HAVE_SDL - // Returns true if the current page is blank - bool isBlank(); -#endif // HAVE_SDL - -private: - - // Resets the printer to the factory settings - void resetPrinter(); - - // Clears page. If save is true, saves the current page to a bitmap - void newPage(bool save, bool resetx); - - // Closes a multipage document - void finishMultipage(); - - // Output current page - void outputPage(); - -#ifdef HAVE_SDL - // used to fill the color "sub-pallettes" - void FillPalette(Bit8u redmax, Bit8u greenmax, Bit8u bluemax, Bit8u colorID, - SDL_Palette* pal); - - // Checks if given char belongs to a command and process it. If false, the character - // should be printed - bool processCommandChar(Bit8u ch); - - // Reload font. Must be called after changing dpi, style or cpi - void updateFont(); - - // Reconfigures printer parameters after changing soft-switches with ESC Z and ESC D - void updateSwitch(); - - // Overprints a slash over zero if softswitch B-1 is set - void slashzero(Bit16u penX, Bit16u penY); - - // Blits the given glyph on the page surface. If add is true, the values of bitmap are - // added to the values of the pixels in the page - void blitGlyph(FT_Bitmap bitmap, Bit16u destx, Bit16u desty, bool add); - - // Draws an anti-aliased line from (fromx, y) to (tox, y). If broken is true, gaps are included - void drawLine(Bitu fromx, Bitu tox, Bitu y, bool broken); - - // Setup the bitGraph structure - void setupBitImage(Bit8u dens, Bit16u numCols); - - // Process a character that is part of bit image. Must be called iff bitGraph.remBytes > 0. - void printBitGraph(Bit8u ch); - - // Copies the codepage mapping from the constant array to CurMap - void selectCodepage(Bit16u cp); - - // Prints out a byte using ASCII85 encoding (only outputs something every four bytes). When b>255, closes the ASCII85 string - void fprintASCII85(FILE* f, Bit16u b); - - // Returns value of the num-th pixel (couting left-right, top-down) in a safe way - Bit8u getPixel(Bit32u num); - Bit8u getxyPixel(Bit32u x,Bit32u y); - - FT_Library FTlib; // FreeType2 library used to render the characters - - SDL_Surface* page; // Surface representing the current page - FT_Face curFont; // The font currently used to render characters - Bit8u color; - Bit8u switcha; //Imagewriter softswitch A - Bit8u switchb; //Imagewriter softswitch B - - Real64 curX, curY; // Position of the print head (in inch) - - Bit16u dpi; // dpi of the page - Bit16u ESCCmd; // ESC-command that is currently processed - bool ESCSeen; // True if last read character was an ESC (0x1B) - bool FSSeen; // True if last read character was an FS (0x1C) (IBM commands) - Bit8u numParam, neededParam; // Numbers of parameters already read/needed to process command - - Bit8u params[20]; // Buffer for the read params - Bit16u style; // Style of font (see STYLE_* constants) - Real64 cpi, actcpi; // CPI value set by program and the actual one (taking in account font types) - Bit8u score; // Score for lines (see SCORE_* constants) - Bit8u verticalDot; // Vertical dot shift for Imagewriter LQ modes - - Real64 topMargin, bottomMargin, rightMargin, leftMargin; // Margins of the page (in inch) - Real64 pageWidth, pageHeight; // Size of page (in inch) - Real64 defaultPageWidth, defaultPageHeight; // Default size of page (in inch) - Real64 lineSpacing; // Size of one line (in inch) - - Real64 horiztabs[32]; // Stores the set horizontal tabs (in inch) - Bit8u numHorizTabs; // Number of configured tabs - - Real64 verttabs[16]; // Stores the set vertical tabs (in inch) - Bit8u numVertTabs; // Number of configured tabs - - Bit8u curCharTable; // Currently used char table und charset - Bit8u printQuality; // Print quality (see QUALITY_* constants) - Bit8u printRes; // Graphics resolution - IWTypeface LQtypeFace; // Typeface used in LQ printing mode - - Real64 extraIntraSpace; // Extra space between two characters (set by program, in inch) - - bool charRead; // True if a character was read since the printer was last initialized - bool autoFeed; // True if a LF should automatically added after a CR - bool printUpperContr; // True if the upper command characters should be printed - - struct bitGraphicParams // Holds information about printing bit images - { - Bit16u horizDens, vertDens; // Density of image to print (in dpi) - bool adjacent; // Print adjacent pixels? (ignored) - Bit8u bytesColumn; // Bytes per column - Bit16u remBytes; // Bytes left to read before image is done - Bit8u column[6]; // Bytes of the current and last column - Bit8u readBytesColumn; // Bytes read so far for the current column - } bitGraph; - - Bit8u densk, densl, densy, densz; // Image density modes used in ESC K/L/Y/Z commands - - Bit16u curMap[256]; // Currently used ASCII => Unicode mapping - Bit16u charTables[4]; // Charactertables - - Real64 definedUnit; // Unit used by some ESC/P2 commands (negative => use default) - - bool multipoint; // If multipoint mode is enabled - Real64 multiPointSize; // Point size of font in multipoint mode - Real64 multicpi; // CPI used in multipoint mode - - Real64 hmi; // Horizontal motion index (in inch; overrides CPI settings) - - Bit16u numPrintAsChar; // Number of bytes to print as characters (even when normally control codes) - -#if defined (WIN32) - HDC printerDC; // Win32 printer device -#endif - int port; // SCC Port - -#endif // HAVE_SDL - Bit8u msb; // MSB mode - - char* output; // Output method selected by user - void* outputHandle; // If not null, additional pages will be appended to the given handle - bool multipageOutput; // If true, all pages are combined to one file/print job etc. until the "eject page" button is pressed - Bit16u multiPageCounter; // Current page (when printing multipages) - - Bit8u ASCII85Buffer[4]; // Buffer used in ASCII85 encoding - Bit8u ASCII85BufferPos; // Position in ASCII85 encode buffer - Bit8u ASCII85CurCol; // Columns printed so far in the current lines -}; - -#endif - -//Interfaces to C code -#ifdef __cplusplus -extern "C" -{ -#else -#include -typedef unsigned char Bit8u; -#endif - -void imagewriter_init(int pdpi, int ppaper, int banner, char* poutput, bool mpage); -void imagewriter_loop(Bit8u pchar); -void imagewriter_close(); -void imagewriter_feed(); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/.svn/pristine/e7/e7acd61eee82921e337118dafdf900dc7e2ded87.svn-base b/.svn/pristine/e7/e7acd61eee82921e337118dafdf900dc7e2ded87.svn-base deleted file mode 100644 index 77b18b3..0000000 --- a/.svn/pristine/e7/e7acd61eee82921e337118dafdf900dc7e2ded87.svn-base +++ /dev/null @@ -1,1206 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include -#include "defc.h" -#include - -#include "disas.h" - -#define LINE_SIZE 160 - -extern byte *g_memory_ptr; -extern byte *g_slow_memory_ptr; -extern int halt_sim; -extern int enter_debug; -extern int g_c068_statereg; -extern word32 stop_run_at; -extern int Verbose; -extern int Halt_on; - -extern int g_testing_enabled; -extern int g_fullscreen; -extern int g_config_control_panel; - -int g_num_breakpoints = 0; -word32 g_breakpts[MAX_BREAK_POINTS]; - -extern int g_irq_pending; - -extern Engine_reg engine; - -#define W_BUF_LEN 128 -char w_buff[W_BUF_LEN]; - -int g_stepping = 0; - -word32 list_kpc; -int hex_line_len; -word32 a1,a2,a3; -word32 g_a4, g_a4bank; -int a1bank, a2bank, a3bank; -char *line_ptr; -int mode,old_mode; -int got_num; - -// OG replaced by HALT_WANTTOQUIT -//int g_quit_sim_now = 0; - -int -get_num() -{ - int tmp1; - - a2 = 0; - got_num = 0; - while(1) { - if(mode == 0 && got_num != 0) { -/* - printf("In getnum, mode =0, setting a1,a3 = a2\n"); - printf("a2: %x\n", a2); -*/ - a3 = a2; - a3bank = a2bank; - a1 = a2; - a1bank = a2bank; - } - tmp1 = *line_ptr++ & 0x7f; - if(tmp1 >= '0' && tmp1 <= '9') { - a2 = (a2 << 4) + tmp1 - '0'; - got_num = 1; - continue; - } - if(tmp1 >= 'a' && tmp1 <= 'f') { - a2 = (a2 << 4) + tmp1 - 'a' + 10; - got_num = 1; - continue; - } - if(tmp1 == '/') { - a2bank = a2; - a2 = 0; - continue; - } - return tmp1; - } -} - -void -debugger_help() -{ - printf("GSport Debugger help (courtesy Fredric Devernay\n"); - printf("General command syntax: [bank]/[address][command]\n"); - printf("e.g. 'e1/0010B' to set a breakpoint at the interrupt jump pt\n"); - printf("Enter all addresses using lower-case\n"); - printf("As with the IIgs monitor, you can omit the bank number after\n"); - printf("having set it: 'e1/0010B' followed by '14B' will set\n"); - printf("breakpoints at e1/0010 and e1/0014\n"); - printf("\n"); - printf("g Go\n"); - printf("[bank]/[addr]g Go from [bank]/[address]\n"); - printf("s Step one instruction\n"); - printf("[bank]/[addr]s Step one instr at [bank]/[address]\n"); - printf("[bank]/[addr]B Set breakpoint at [bank]/[address]\n"); - printf("B Show all breakpoints\n"); - printf("[bank]/[addr]D Delete breakpoint at [bank]/[address]\n"); - printf("[bank]/[addr1].[addr2] View memory\n"); - printf("[bank]/[addr]L Disassemble memory\n"); - - printf("P Dump the trace to 'pc_log_out'\n"); - printf("Z Dump SCC state\n"); - printf("I Dump IWM state\n"); - printf("[drive].[track]I Dump IWM state\n"); - printf("E Dump Ensoniq state\n"); - printf("[osc]E Dump oscillator [osc] state\n"); - printf("R Dump dtime array and events\n"); - printf("T Show toolbox log\n"); - printf("[bank]/[addr]T Dump tools using ptr [bank]/[addr]\n"); - printf(" as 'tool_set_info'\n"); - printf("[mode]V XOR verbose with 1=DISK, 2=IRQ,\n"); - printf(" 4=CLK,8=SHADOW,10=IWM,20=DOC,\n"); - printf(" 40=ABD,80=SCC, 100=TEST, 200=VIDEO\n"); - printf("[mode]H XOR halt_on with 1=SCAN_INT,\n"); - printf(" 2=IRQ, 4=SHADOW_REG, 8=C70D_WRITES\n"); - printf("r Reset\n"); - printf("[0/1]=m Changes m bit for l listings\n"); - printf("[0/1]=x Changes x bit for l listings\n"); - printf("[t]=z Stops at absolute time t (obsolete)\n"); - printf("S show_bankptr_bank0 & smartport errs\n"); - printf("P show_pmhz\n"); - printf("A show_a2_line_stuff show_adb_log\n"); - printf("Ctrl-e Dump registers\n"); - printf("[bank]/[addr1].[addr2]us[file] Save mem area to [file]\n"); - printf("[bank]/[addr1].[addr2]ul[file] Load mem area from [file]\n"); - printf("v Show video information\n"); - printf("q Exit Debugger (and GSport)\n"); -} - -void -do_debug_intfc() -{ - char linebuf[LINE_SIZE]; - int slot_drive; - int track; - int osc; - int done; - int ret_val; - - g_config_control_panel = 1; - - hex_line_len = 0x10; - a1 = 0; a2 = 0; a3 = 0; g_a4 = 0; - a1bank = 0; a2bank = 0; a3bank = 0; g_a4bank = 0; - list_kpc = engine.kpc; - g_stepping = 0; - mode = 0; old_mode = 0; - done = 0; - stop_run_at = -1; - - x_auto_repeat_on(0); - g_fullscreen = 0; - x_full_screen(0); - - // OG use HALT_WANTTOQUIT instead of g_quit_sim_now - if (halt_sim&HALT_WANTTOQUIT) - { - printf("Exiting immediately\n"); - return; - } - - printf("Type 'h' for help\n"); - - while(!done) { - printf("> "); fflush(stdout); - if(read_line(linebuf,LINE_SIZE-1) <= 0) { - done = 1; - continue; - } - line_ptr = linebuf; - -/* - printf("input line: :%s:\n", linebuf); - printf("mode: %d\n", mode); -*/ - mode = 0; - - while(*line_ptr != 0) { - ret_val = get_num(); -/* - printf("ret_val: %x, got_num= %d\n", ret_val, - got_num); -*/ - old_mode = mode; - mode = 0; - switch(ret_val) { - case 'h': - debugger_help(); - break; - case 'R': - show_dtime_array(); - show_all_events(); - break; - case 'I': - slot_drive = -1; - track = -1; - if(got_num) { - if(old_mode == '.') { - slot_drive = a1; - } - track = a2; - } - iwm_show_track(slot_drive, track); - iwm_show_stats(); - break; - case 'E': - osc = -1; - if(got_num) { - osc = a2; - } - doc_show_ensoniq_state(osc); - break; - case 'T': - if(got_num) { - show_toolset_tables(a2bank, a2); - } else { - show_toolbox_log(); - } - break; - case 'v': - if(got_num) { - dis_do_compare(); - } else { - video_show_debug_info(); - } - break; - case 'V': - printf("g_irq_pending: %05x\n", g_irq_pending); - printf("Setting Verbose ^= %04x\n", a1); - Verbose ^= a1; - printf("Verbose is now: %04x\n", Verbose); - break; - case 'H': - printf("Setting Halt_on ^= %04x\n", a1); - Halt_on ^= a1; - printf("Halt_on is now: %04x\n", Halt_on); - break; - case 'r': - do_reset(); - list_kpc = engine.kpc; - break; - case 'm': - if(old_mode == '=') { - if(!a1) { - engine.psr &= ~0x20; - } else { - engine.psr |= 0x20; - } - if(engine.psr & 0x100) { - engine.psr |= 0x30; - } - } else { - dis_do_memmove(); - } - break; - case 'p': - dis_do_pattern_search(); - break; - case 'x': - if(old_mode == '=') { - if(!a1) { - engine.psr &= ~0x10; - } else { - engine.psr |= 0x10; - } - if(engine.psr & 0x100) { - engine.psr |= 0x30; - } - } - break; - case 'z': - if(old_mode == '=') { - stop_run_at = a1; - printf("Calling add_event for t:%08x\n", - a1); - add_event_stop((double)a1); - printf("set stop_run_at = %x\n", a1); - } - break; - case 'l': case 'L': - do_debug_list(); - break; - case 'Z': - show_scc_log(); - show_scc_state(); - break; - case 'S': - show_bankptrs_bank0rdwr(); - smartport_error(); - break; - case 'C': - show_xcolor_array(); - break; - case 'P': - show_pc_log(); - break; - case 'M': - show_pmhz(); - break; - case 'A': - show_a2_line_stuff(); - show_adb_log(); - break; - case 's': - g_stepping = 1; - if(got_num) { - engine.kpc = (a2bank<<16) + (a2&0xffff); - } - mode = 's'; - list_kpc = engine.kpc; - break; - case 'B': - if(got_num) { - printf("got_num: %d, a2bank: %x, a2: %x\n", got_num, a2bank, a2); - set_bp((a2bank << 16) + a2); - } else { - show_bp(); - } - break; - case 'D': - if(got_num) { - printf("got_num: %d, a2bank: %x, a2: %x\n", got_num, a2bank, a2); - delete_bp((a2bank << 16) + a2); - } - break; - case 'g': - case 'G': - printf("Going..\n"); - g_stepping = 0; - if(got_num) { - engine.kpc = (a2bank<<16) + (a2&0xffff); - } - if(ret_val == 'G' && g_testing_enabled) { - do_gen_test(got_num, a2); - } else { - do_go(); - } - list_kpc = engine.kpc; - break; - case 'q': - case 'Q': - printf("Exiting debugger\n"); - return; - break; - case 'u': - printf("Unix commands\n"); - do_debug_unix(); - break; - case ':': case '.': - case '+': case '-': - case '=': case ',': - mode = ret_val; - printf("Setting mode = %x\n", mode); - break; - case ' ': case '\t': - if(!got_num) { - mode = old_mode; - break; - } - do_blank(); - break; - case '<': - g_a4 = a2; - g_a4bank = a2bank; - break; - case 0x05: /* ctrl-e */ - show_regs(); - break; - case '\n': - case '\r': - *line_ptr = 0; - if(old_mode == 's') { - do_blank(); - break; - } - if(line_ptr == &linebuf[1]) { - a2 = a1 | (hex_line_len - 1); - show_hex_mem(a1bank,a1,a2bank,a2, -1); - a1 = a2 + 1; - } else { - if(got_num == 1 || mode == 's') { - do_blank(); - } - } - break; - case 'w': - read_line(w_buff, W_BUF_LEN); - break; - default: - printf("\nUnrecognized command: %s\n",linebuf); - *line_ptr = 0; - break; - } - } - - } - printf("Console closed.\n"); -} - -word32 -dis_get_memory_ptr(word32 addr) -{ - word32 tmp1, tmp2, tmp3; - - tmp1 = get_memory_c(addr, 0); - tmp2 = get_memory_c(addr + 1, 0); - tmp3 = get_memory_c(addr + 2, 0); - - return (tmp3 << 16) + (tmp2 << 8) + tmp1; -} - -void -show_one_toolset(FILE *toolfile, int toolnum, word32 addr) -{ - word32 rout_addr; - int num_routs; - int i; - - num_routs = dis_get_memory_ptr(addr); - fprintf(toolfile, "Tool 0x%02x, table: 0x%06x, num_routs:%03x\n", - toolnum, addr, num_routs); - - for(i = 1; i < num_routs; i++) { - rout_addr = dis_get_memory_ptr(addr + 4*i); - fprintf(toolfile, "%06x = %02x%02x\n", rout_addr, i, toolnum); - } -} - -void -show_toolset_tables(word32 a2bank, word32 addr) -{ - FILE *toolfile; - word32 tool_addr; - int num_tools; - int i; - - addr = (a2bank << 16) + (addr & 0xffff); - - toolfile = fopen("tool_set_info", "w"); - if(toolfile == 0) { - fprintf(stderr, "fopen of tool_set_info failed: %d\n", errno); - exit(2); - } - - num_tools = dis_get_memory_ptr(addr); - fprintf(toolfile, "There are 0x%02x tools using ptr at %06x\n", - num_tools, addr); - - for(i = 1; i < num_tools; i++) { - tool_addr = dis_get_memory_ptr(addr + 4*i); - show_one_toolset(toolfile, i, tool_addr); - } - - fclose(toolfile); -} - - -#ifndef TEST65 -void -do_gen_test(int got_num, int base_seed) -{ - /* dummy */ -} -#endif - -void -set_bp(word32 addr) -{ - int count; - - printf("About to set BP at %06x\n", addr); - count = g_num_breakpoints; - if(count >= MAX_BREAK_POINTS) { - printf("Too many (0x%02x) breakpoints set!\n", count); - return; - } - - g_breakpts[count] = addr; - g_num_breakpoints = count + 1; - fixup_brks(); -} - -void -show_bp() -{ - int i; - - printf("Showing breakpoints set\n"); - for(i = 0; i < g_num_breakpoints; i++) { - printf("bp:%02x: %06x\n", i, g_breakpts[i]); - } -} - -void -delete_bp(word32 addr) -{ - int count; - int hit; - int i; - - printf("About to delete BP at %06x\n", addr); - count = g_num_breakpoints; - - hit = -1; - for(i = 0; i < count; i++) { - if(g_breakpts[i] == addr) { - hit = i; - break; - } - } - - if(hit < 0) { - printf("Breakpoint not found!\n"); - } else { - printf("Deleting brkpoint #0x%02x\n", hit); - for(i = hit+1; i < count; i++) { - g_breakpts[i-1] = g_breakpts[i]; - } - g_num_breakpoints = count - 1; - setup_pageinfo(); - } - - show_bp(); -} - -void -do_blank() -{ - int tmp, i; - - switch(old_mode) { - case 's': - tmp = a2; - if(tmp == 0) tmp = 1; - enter_debug = 0; - for(i = 0; i < tmp; i++) { - g_stepping = 1; - do_step(); - if(enter_debug || halt_sim != 0) { - if(halt_sim != HALT_EVENT) { - break; - } - } - } - list_kpc = engine.kpc; - /* video_update_through_line(262); */ - break; - case ':': - set_memory_c(((a3bank << 16) + a3), a2, 0); - a3++; - mode = old_mode; - break; - case '.': - case 0: - xam_mem(-1); - break; - case ',': - xam_mem(16); - break; - case '+': - printf("%x\n", a1 + a2); - break; - case '-': - printf("%x\n", a1 - a2); - break; - default: - printf("Unknown mode at space: %d\n", old_mode); - break; - } -} - -void -do_go() -{ - /* also called by do_step */ - - g_config_control_panel = 0; - clear_halt(); - - run_prog(); - show_regs(); - g_config_control_panel = 1; -} - -void -do_step() -{ - int size; - int size_mem_imm, size_x_imm; - - do_go(); - - size_mem_imm = 2; - if(engine.psr & 0x20) { - size_mem_imm = 1; - } - size_x_imm = 2; - if(engine.psr & 0x10) { - size_x_imm = 1; - } - size = do_dis(stdout, engine.kpc, size_mem_imm, size_x_imm, 0, 0); -} - -void -xam_mem(int count) -{ - show_hex_mem(a1bank, a1, a2bank, a2, count); - a1 = a2 + 1; -} - -void -show_hex_mem(int startbank, word32 start, int endbank, word32 end, int count) -{ - char ascii[MAXNUM_HEX_PER_LINE]; - word32 i; - int val, offset; - - if(count < 0) { - count = 16 - (start & 0xf); - } - - offset = 0; - ascii[0] = 0; - printf("Showing hex mem: bank: %x, start: %x, end: %x\n", - startbank, start, end); - for(i = start; i <= end; i++) { - if( (i==start) || (count == 16) ) { - printf("%04x:",i); - } - printf(" %02x", get_memory_c((startbank <<16) + i, 0)); - val = get_memory_c((startbank << 16) + i, 0) & 0x7f; - if(val < 32 || val >= 0x7f) { - val = '.'; - } - ascii[offset++] = val; - ascii[offset] = 0; - count--; - if(count <= 0) { - printf(" %s\n", ascii); - offset = 0; - ascii[0] = 0; - count = 16; - } - } - if(offset > 0) { - printf(" %s\n", ascii); - } -} - - -int -read_line(char *buf, int len) -{ - int space_left; - int ret; -#if !defined(_WIN32) && !defined (__OS2__) - int flags, flags_save; - - /* Unix */ - flags = fcntl(0, F_GETFL, 0); - flags_save = flags; - if(flags == -1) { - return 0; - } - ret = fcntl(0, F_SETFL, flags | O_NONBLOCK); - if(ret == -1) { - return 0; - } -#endif - space_left = len; - - buf[0] = 0; - ret = 0; - while(space_left > 0) { -#ifdef _WIN32 - ret = win_nonblock_read_stdin(0, buf, 1); -#elif defined(__OS2__) - -#else - /* Unix */ - ret = read(0, buf, 1); -#endif - if(ret <= 0) { - micro_sleep(15.0/60.0); - if(errno == EAGAIN) { - /* it would block, so no chars--do update */ - video_update(); - ret = 0; - continue; - } - printf("read ret %d, errno: %d\n", ret, errno); - if(errno == EAGAIN || errno == EINTR) { - ret = 0; - continue; - } - break; - } - space_left -= ret; - if(buf[ret-1] == '\r' || buf[ret-1] == '\n') { - break; - } - buf = &buf[ret]; - } -#if !defined(_WIN32) && !defined (__OS2__) - (void)fcntl(0, F_SETFL, flags_save); -#endif - - return (len-space_left); -} - -void -do_debug_list() -{ - int i; - int size; - int size_mem_imm, size_x_imm; - - if(got_num) { - list_kpc = (a2bank << 16) + (a2 & 0xffff); - } - printf("%d=m %d=x %d=LCBANK\n", (engine.psr >> 5)&1, - (engine.psr >> 4) & 1, (g_c068_statereg & 0x4) >> 2); - - size_mem_imm = 2; - if(engine.psr & 0x20) { - size_mem_imm = 1; - } - size_x_imm = 2; - if(engine.psr & 0x10) { - size_x_imm = 1; - } - for(i=0;i<20;i++) { - size = do_dis(stdout, list_kpc, size_mem_imm, - size_x_imm, 0, 0); - list_kpc += size; - } -} - -void -dis_do_memmove() -{ - word32 val; - - printf("Memory move from %02x/%04x.%04x to %02x/%04x\n", a1bank, a1, a2, g_a4bank, g_a4); - while(a1 <= (a2 & 0xffff)) { - val = get_memory_c((a1bank << 16) + a1, 0); - set_memory_c((g_a4bank << 16) + g_a4, val, 0); - a1++; - g_a4++; - } - a1 = a1 & 0xffff; - g_a4 = g_a4 & 0xffff; -} - -void -dis_do_pattern_search() -{ - printf("Memory pattern search for %04x in %02x/%04x.%04x\n", g_a4, a1bank, a1, a2); -} - -void -dis_do_compare() -{ - word32 val1, val2; - - printf("Memory Compare from %02x/%04x.%04x with %02x/%04x\n", a1bank, a1, a2, g_a4bank, g_a4); - while(a1 <= (a2 & 0xffff)) { - val1 = get_memory_c((a1bank << 16) + a1, 0); - val2 = get_memory_c((g_a4bank << 16) + g_a4, 0); - if(val1 != val2) { - printf("%02x/%04x: %02x vs %02x\n", a1bank, a1, val1, val2); - } - a1++; - g_a4++; - } - a1 = a1 & 0xffff; - g_a4 = g_a4 & 0xffff; -} - -void -do_debug_unix() -{ -#ifndef __OS2__ - char localbuf[LINE_SIZE]; - word32 offset, len; - int fd, ret; - int load, save; - int i; - - load = 0; save = 0; - switch(*line_ptr++) { - case 'l': case 'L': - printf("Loading.."); - load = 1; - break; - case 's': case 'S': - printf("Saving..."); - save = 1; - break; - default: - printf("Unknown unix command: %c\n", *(line_ptr-1)); - *line_ptr = 0; - return; - } - while(*line_ptr == ' ' || *line_ptr == '\t') { - line_ptr++; - } - i = 0; - while(i < LINE_SIZE) { - localbuf[i++] = *line_ptr++; - if(*line_ptr==' ' || *line_ptr=='\t' || *line_ptr == '\n') { - break; - } - } - localbuf[i] = 0; - - - printf("About to open: %s,len: %d\n", localbuf, (int)strlen(localbuf)); - if(load) { - fd = open(localbuf,O_RDONLY | O_BINARY); - } else { - fd = open(localbuf,O_WRONLY | O_CREAT | O_BINARY, 0x1b6); - } - if(fd < 0) { - printf("Open %s failed: %d\n", localbuf, fd); - printf("errno: %d\n", errno); - return; - } - if(load) { - offset = a1 & 0xffff; - len = 0x20000 - offset; - } else { - if(old_mode == '.') { - len = a2 - a1 + 1; - } else { - len = 0x100; - } - } - if(load) { - if(a1bank >= 0xe0 && a1bank < 0xe2) { - ret = read(fd,(char*)&g_slow_memory_ptr[((a1bank & 1)<<16)+a1],len); - } else { - ret = read(fd,(char*)&g_memory_ptr[(a1bank << 16) + a1],len); - } - } else { - if(a1bank >= 0xe0 && a1bank < 0xe2) { - ret = write(fd,(char*)&g_slow_memory_ptr[((a1bank & 1)<<16)+a1],len); - } else { - ret = write(fd,(char*)&g_memory_ptr[(a1bank << 16) + a1],len); - } - } - printf("Read/write: addr %06x for %04x bytes, ret: %x bytes\n", - (a1bank << 16) + a1, len, ret); - if(ret < 0) { - printf("errno: %d\n", errno); - } - a1 = a1 + ret; -#endif -} - -void -do_debug_load() -{ - printf("Sorry, can't load now\n"); -} - - -int -do_dis(FILE *outfile, word32 kpc, int accsize, int xsize, - int op_provided, word32 instr) -{ - char buffer[150]; - const char *out; - int args, type; - int opcode; - word32 val; - word32 oldkpc; - word32 dtype; - int signed_val; - - oldkpc = kpc; - if(op_provided) { - opcode = (instr >> 24) & 0xff; - } else { - opcode = (int)get_memory_c(kpc, 0) & 0xff; - } - - kpc++; - - dtype = disas_types[opcode]; - out = disas_opcodes[opcode]; - type = dtype & 0xff; - args = dtype >> 8; - - if(args > 3) { - if(args == 4) { - args = accsize; - } else if(args == 5) { - args = xsize; - } - } - - val = -1; - switch(args) { - case 0: - val = 0; - break; - case 1: - if(op_provided) { - val = instr & 0xff; - } else { - val = get_memory_c(kpc, 0); - } - break; - case 2: - if(op_provided) { - val = instr & 0xffff; - } else { - val = get_memory16_c(kpc, 0); - } - break; - case 3: - if(op_provided) { - val = instr & 0xffffff; - } else { - val = get_memory24_c(kpc, 0); - } - break; - default: - fprintf(stderr, "args out of rang: %d, opcode: %08x\n", - args, opcode); - break; - } - kpc += args; - - if(!op_provided) { - instr = (opcode << 24) | (val & 0xffffff); - } - - switch(type) { - case ABS: - if(args != 2) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%04x",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case ABSX: - if(args != 2) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%04x,X",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case ABSY: - if(args != 2) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%04x,Y",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case ABSLONG: - if(args != 3) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%06x",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case ABSIND: - if(args != 2) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t($%04x)",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case ABSXIND: - if(args != 2) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t($%04x,X)",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case IMPLY: - if(args != 0) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s",out); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case ACCUM: - if(args != 0) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s",out); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case IMMED: - if(args == 1) { - sprintf(buffer,"%s\t#$%02x",out,val); - } else if(args == 2) { - sprintf(buffer,"%s\t#$%04x",out,val); - } else { - printf("arg # mismatch for opcode %x\n", opcode); - } - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case JUST8: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%02x",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DLOC: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%02x",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DLOCX: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%02x,X",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DLOCY: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%02x,Y",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case LONG: - if(args != 3) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%06x",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case LONGX: - if(args != 3) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%06x,X",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DLOCIND: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t($%02x)",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DLOCINDY: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t($%02x),Y",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DLOCXIND: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t($%02x,X)",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DLOCBRAK: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t[$%02x]",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DLOCBRAKY: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t[$%02x],y",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DISP8: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - signed_val = (signed char)val; - sprintf(buffer,"%s\t$%04x",out, - (word32)(kpc+(signed_val)) & 0xffff); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DISP8S: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%02x,S",out,(word32)(byte)(val)); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DISP8SINDY: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t($%02x,S),Y",out,(word32)(byte)(val)); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case DISP16: - if(args != 2) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%04x", out, - (word32)(kpc+(signed)(word16)(val)) & 0xffff); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case MVPMVN: - if(args != 2) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t$%02x,$%02x",out,val&0xff,val>>8); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - case SEPVAL: - case REPVAL: - if(args != 1) { - printf("arg # mismatch for opcode %x\n", opcode); - } - sprintf(buffer,"%s\t#$%02x",out,val); - show_line(outfile, oldkpc,instr,args+1,buffer); - break; - default: - printf("argument type: %d unexpected\n", type); - break; - } - - return(args+1); -} - -void -show_line(FILE *outfile, word32 kaddr, word32 operand, int size, - char *string) -{ - int i; - int opcode; - - fprintf(outfile, "%02x/%04x: ", kaddr >> 16, kaddr & 0xffff); - opcode = (operand >> 24) & 0xff; - fprintf(outfile,"%02x ", opcode); - - for(i=1;i> 8; - } - for(;i<5;i++) { - fprintf(outfile, " "); - } - fprintf(outfile,"%s\n", string); -} - -void -halt_printf(const char *fmt, ...) -{ - va_list args; - - va_start(args, fmt); - vprintf(fmt, args); - va_end(args); - - set_halt(1); -} - -void -halt2_printf(const char *fmt, ...) -{ - va_list args; - - va_start(args, fmt); - vprintf(fmt, args); - va_end(args); - - set_halt(2); -} diff --git a/.svn/pristine/eb/eb3779e0ab2ab02fc4c704353a82be36121c1e2b.svn-base b/.svn/pristine/eb/eb3779e0ab2ab02fc4c704353a82be36121c1e2b.svn-base deleted file mode 100644 index aa58b4b..0000000 --- a/.svn/pristine/eb/eb3779e0ab2ab02fc4c704353a82be36121c1e2b.svn-base +++ /dev/null @@ -1,18 +0,0 @@ -TARGET = gsportfb -OBJECTS = $(OBJECTS1) $(TFEOBJ) $(ATOBJ) $(PCAPOBJ) fbdriver.o -CC = gcc -CCOPTS = -O2 -Wall -fomit-frame-pointer -std=gnu99 -march=armv6 -OPTS = -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DHAVE_ATBRIDGE -SUFFIX = -NAME = gsportfb -LDFLAGS = -LDOPTS = -LD = g++ -EXTRA_LIBS = -ldl -EXTRA_SPECIALS = - -AS = cc -PERL = perl - -XOPTS = -I/usr/X11R6/include - diff --git a/.svn/pristine/ed/eda78687d24b4024a1d73ee733338d66543141ea.svn-base b/.svn/pristine/ed/eda78687d24b4024a1d73ee733338d66543141ea.svn-base deleted file mode 100644 index 4e258b3..0000000 --- a/.svn/pristine/ed/eda78687d24b4024a1d73ee733338d66543141ea.svn-base +++ /dev/null @@ -1,2120 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2011 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* - * Copyright (C) 2002-2004 The DOSBox Team - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -//Modified for the KEGS emulator by Christopher G. Mason 02/2010 -//Added support for configuring the built in printer fonts - -#include "printer.h" -#include -#include "support.h" -//#include "png.h" -//#pragma comment( lib, "libpng.lib" ) -//#pragma comment (lib, "zdll.lib" ) - -static CPrinter* defaultPrinter = NULL; - -static FILE *textPrinterFile = NULL; -#ifdef WIN32 -const char* const textPrinterFileName = ".\\printer.txt"; -#else -const char* const textPrinterFileName = "./printer.txt"; -#endif - -#define PARAM16(I) (params[I+1]*256+params[I]) -#define PIXX ((Bitu)floor(curX*dpi+0.5)) -#define PIXY ((Bitu)floor(curY*dpi+0.5)) - -static Bitu printer_timout; -static bool timeout_dirty; -static const char* document_path; -extern "C" char* g_printer_font_roman; -extern "C" char* g_printer_font_sans; -extern "C" char* g_printer_font_courier; -extern "C" char* g_printer_font_prestige; -extern "C" char* g_printer_font_script; -extern "C" char* g_printer_font_ocra; -Bit8u paramc = '0'; - -#include "printer_charmaps.h" - -#ifdef HAVE_SDL -void CPrinter::FillPalette(Bit8u redmax, Bit8u greenmax, Bit8u bluemax, Bit8u colorID, SDL_Palette* pal) -{ - float red=redmax/30.9; - float green=greenmax/30.9; - float blue=bluemax/30.9; - - Bit8u colormask=colorID<<=5; - - for(int i = 0; i < 32;i++) { - pal->colors[i+colormask].r=255-(red*(float)i); - pal->colors[i+colormask].g=255-(green*(float)i); - pal->colors[i+colormask].b=255-(blue*(float)i); - } -} -#endif // HAVE_SDL - -CPrinter::CPrinter(Bit16u dpi, Bit16u width, Bit16u height, char* output, bool multipageOutput) -{ -#ifdef HAVE_SDL - if (FT_Init_FreeType(&FTlib)) - { - page = NULL; - } - else - { - this->dpi = dpi; - this->output = output; - this->multipageOutput = multipageOutput; - - defaultPageWidth = (Real64)width/(Real64)10; - defaultPageHeight = (Real64)height/(Real64)10; - - // Create page - page = SDL_CreateRGBSurface( - SDL_SWSURFACE, - (Bitu)(defaultPageWidth*dpi), - (Bitu)(defaultPageHeight*dpi), - 8, - 0, - 0, - 0, - 0); - - // Set a grey palette - SDL_Palette* palette = page->format->palette; - - for (Bitu i=0; i<32; i++) - { - palette->colors[i].r =255; - palette->colors[i].g =255; - palette->colors[i].b =255; - } - // 0 = all white needed for logic 000 - FillPalette( 0, 0, 0, 1, palette); - // 1 = magenta* 001 - FillPalette( 0, 255, 0, 1, palette); - // 2 = cyan* 010 - FillPalette(255, 0, 0, 2, palette); - // 3 = "violet" 011 - FillPalette(255, 255, 0, 3, palette); - // 4 = yellow* 100 - FillPalette( 0, 0, 255, 4, palette); - // 5 = red 101 - FillPalette( 0, 255, 255, 5, palette); - // 6 = green 110 - FillPalette(255, 0, 255, 6, palette); - // 7 = black 111 - FillPalette(255, 255, 255, 7, palette); - - // yyyxxxxx bit pattern: yyy=color xxxxx = intensity: 31=max - // Printing colors on top of each other ORs them and gets the - // correct resulting color. - // i.e. magenta on blank page yyy=001 - // then yellow on magenta 001 | 100 = 101 = red - - color=COLOR_BLACK; - - curFont = NULL; - charRead = false; - autoFeed = false; - outputHandle = NULL; - - resetPrinter(); - - if (strcasecmp(output, "printer") == 0) - { -#if defined (WIN32) - // Show Print dialog to obtain a printer device context - - PRINTDLG pd; - pd.lStructSize = sizeof(PRINTDLG); - pd.hDevMode = (HANDLE) NULL; - pd.hDevNames = (HANDLE) NULL; - pd.Flags = PD_RETURNDC; - pd.hwndOwner = NULL; - pd.hDC = (HDC) NULL; - pd.nFromPage = 1; - pd.nToPage = 1; - pd.nMinPage = 0; - pd.nMaxPage = 0; - pd.nCopies = 1; - pd.hInstance = NULL; - pd.lCustData = 0L; - pd.lpfnPrintHook = (LPPRINTHOOKPROC) NULL; - pd.lpfnSetupHook = (LPSETUPHOOKPROC) NULL; - pd.lpPrintTemplateName = (LPCSTR) NULL; - pd.lpSetupTemplateName = (LPCSTR) NULL; - pd.hPrintTemplate = (HANDLE) NULL; - pd.hSetupTemplate = (HANDLE) NULL; - PrintDlg(&pd); - // TODO: what if user presses cancel? - printerDC = pd.hDC; -#endif // WIN32 - } - } -#endif // HAVE_SDL -#ifndef HAVE_SDL - this->output = output; - this->multipageOutput = multipageOutput; -#endif // !HAVE_SDL -}; - -void CPrinter::resetPrinterHard() -{ -#ifdef HAVE_SDL - charRead = false; - resetPrinter(); -#endif // HAVE_SDL -} - -void CPrinter::resetPrinter() -{ -#ifdef HAVE_SDL - color=COLOR_BLACK; - curX = curY = 0.0; - ESCSeen = false; - FSSeen = false; - ESCCmd = 0; - numParam = neededParam = 0; - topMargin = 0.0; - leftMargin = 0.0; - rightMargin = pageWidth = defaultPageWidth; - bottomMargin = pageHeight = defaultPageHeight; - lineSpacing = (Real64)1/6; - cpi = 10.0; - curCharTable = 1; - style = 0; - extraIntraSpace = 0.0; - printUpperContr = true; - bitGraph.remBytes = 0; - densk = 0; - densl = 1; - densy = 2; - densz = 3; - charTables[0] = 0; // Italics - charTables[1] = charTables[2] = charTables[3] = 437; - definedUnit = -1; - multipoint = false; - multiPointSize = 0.0; - multicpi = 0.0; - hmi = -1.0; - msb = 255; - numPrintAsChar = 0; - LQtypeFace = roman; - - selectCodepage(charTables[curCharTable]); - - updateFont(); - -#endif // HAVE_SDL - newPage(false,true); -#ifdef HAVE_SDL - - // Default tabs => Each eight characters - for (Bitu i=0;i<32;i++) - horiztabs[i] = i*8*(1/(Real64)cpi); - numHorizTabs = 32; - - numVertTabs = 255; -#endif // HAVE_SDL -} - - -CPrinter::~CPrinter(void) -{ -#ifdef HAVE_SDL - finishMultipage(); - if (page != NULL) - { - SDL_FreeSurface(page); - page = NULL; - FT_Done_FreeType(FTlib); - } -#if defined (WIN32) - DeleteDC(printerDC); -#endif -#endif // HAVE_SDL -}; - -#ifdef HAVE_SDL -void CPrinter::selectCodepage(Bit16u cp) -{ - Bit16u *mapToUse = NULL; - - switch(cp) - { - case 0: // Italics, use cp437 - case 437: - mapToUse = (Bit16u*)&cp437Map; - break; - case 737: - mapToUse = (Bit16u*)&cp737Map; - break; - case 775: - mapToUse = (Bit16u*)&cp775Map; - break; - case 850: - mapToUse = (Bit16u*)&cp850Map; - break; - case 852: - mapToUse = (Bit16u*)&cp852Map; - break; - case 855: - mapToUse = (Bit16u*)&cp855Map; - break; - case 857: - mapToUse = (Bit16u*)&cp857Map; - break; - case 860: - mapToUse = (Bit16u*)&cp860Map; - break; - case 861: - mapToUse = (Bit16u*)&cp861Map; - break; - case 863: - mapToUse = (Bit16u*)&cp863Map; - break; - case 864: - mapToUse = (Bit16u*)&cp864Map; - break; - case 865: - mapToUse = (Bit16u*)&cp865Map; - break; - case 866: - mapToUse = (Bit16u*)&cp866Map; - break; - default: - //LOG(LOG_MISC,LOG_WARN)("Unsupported codepage %i. Using CP437 instead.", cp); - mapToUse = (Bit16u*)&cp437Map; - } - - for (int i=0; i<256; i++) - curMap[i] = mapToUse[i]; -} -#endif // HAVE_SDL - -#ifdef HAVE_SDL -void CPrinter::updateFont() -{ - // char buffer[1000]; - if (curFont != NULL) - FT_Done_Face(curFont); - - char* fontName; - - switch (LQtypeFace) - { - case roman: - fontName = g_printer_font_roman; - break; - case sansserif: - fontName = g_printer_font_sans; - break; - case courier: - fontName = g_printer_font_courier; - break; - case prestige: - fontName = g_printer_font_prestige; - break; - case script: - fontName = g_printer_font_script; - break; - case ocra: - case ocrb: - fontName = g_printer_font_ocra; - break; - default: - fontName = g_printer_font_roman; - } - - if (FT_New_Face(FTlib, fontName, 0, &curFont)) - { - - printf("Unable to load font %s\n"); - //LOG_MSG("Unable to load font %s", fontName); - curFont = NULL; - } - - Real64 horizPoints = 10.5; - Real64 vertPoints = 10.5; - - if (!multipoint) { - actcpi = cpi; - /* - switch(style & (STYLE_CONDENSED|STYLE_PROP)) { - case STYLE_CONDENSED: // only condensed - if (cpi == 10.0) { - actcpi = 17.14; - horizPoints *= 10.0/17.14; - } else if(cpi == 12.0) { - actcpi = 20.0; - horizPoints *= 10.0/20.0; - vertPoints *= 10.0/12.0; - } else { - // ignored - } - break; - case STYLE_PROP|STYLE_CONDENSED: - horizPoints /= 2.0; - break; - case 0: // neither - case STYLE_PROP: // only proportional - horizPoints *= 10.0/cpi; - vertPoints *= 10.0/cpi; - break; - } - */ - if (!(style & STYLE_CONDENSED)) { - horizPoints *= 10.0/cpi; - vertPoints *= 10.0/cpi; - } - - if (!(style & STYLE_PROP)) { - if ((cpi == 10.0) && (style & STYLE_CONDENSED)) { - actcpi = 17.14; - horizPoints *= 10.0/17.14; - } - if ((cpi == 12.0) && (style & STYLE_CONDENSED)) { - actcpi = 20.0; - horizPoints *= 10.0/20.0; - vertPoints *= 10.0/12.0; - } - } else if (style & STYLE_CONDENSED) horizPoints /= 2.0; - - - if ((style & STYLE_DOUBLEWIDTH) || (style & STYLE_DOUBLEWIDTHONELINE)) { - actcpi /= 2.0; - horizPoints *= 2.0; - } - - if (style & STYLE_DOUBLEHEIGHT) vertPoints *= 2.0; - } else { // multipoint true - actcpi = multicpi; - horizPoints = vertPoints = multiPointSize; - } - - if ((style & STYLE_SUPERSCRIPT) || (style & STYLE_SUBSCRIPT)) { - horizPoints *= 2.0/3.0; - vertPoints *= 2.0/3.0; - actcpi /= 2.0/3.0; - } - - FT_Set_Char_Size(curFont, (Bit16u)horizPoints*64, (Bit16u)vertPoints*64, dpi, dpi); - - if (style & STYLE_ITALICS || charTables[curCharTable] == 0) - { - FT_Matrix matrix; - matrix.xx = 0x10000L; - matrix.xy = (FT_Fixed)(0.20 * 0x10000L); - matrix.yx = 0; - matrix.yy = 0x10000L; - FT_Set_Transform(curFont, &matrix, 0); - } -} -#endif // HAVE_SDL - -#ifdef HAVE_SDL -bool CPrinter::processCommandChar(Bit8u ch) -{ - if (ESCSeen || FSSeen) - { - ESCCmd = ch; - if(FSSeen) ESCCmd |= 0x800; - ESCSeen = FSSeen = false; - numParam = 0; - - switch (ESCCmd) { - case 0x02: // Undocumented - case 0x0a: // Reverse line feed (ESC LF) - case 0x0c: // Return to top of current page (ESC FF) - case 0x0e: // Select double-width printing (one line) (ESC SO) - case 0x0f: // Select condensed printing (ESC SI) - case 0x23: // Cancel MSB control (ESC #) - case 0x30: // Select 1/8-inch line spacing (ESC 0) - case 0x31: // Select 7/60-inch line spacing (ESC 1) - case 0x32: // Select 1/6-inch line spacing (ESC 2) - case 0x34: // Select italic font (ESC 4) - case 0x35: // Cancel italic font (ESC 5) - case 0x36: // Enable printing of upper control codes (ESC 6) - case 0x37: // Enable upper control codes (ESC 7) - case 0x38: // Disable paper-out detector (ESC 8) - case 0x39: // Enable paper-out detector (ESC 9) - case 0x3c: // Unidirectional mode (one line) (ESC <) - case 0x3d: // Set MSB to 0 (ESC =) - case 0x3e: // Set MSB to 1 (ESC >) - case 0x40: // Initialize printer (ESC @) - case 0x45: // Select bold font (ESC E) - case 0x46: // Cancel bold font (ESC F) - case 0x47: // Select double-strike printing (ESC G) - case 0x48: // Cancel double-strike printing (ESC H) - case 0x4d: // Select 10.5-point, 12-cpi (ESC M) - case 0x4f: // Cancel bottom margin [conflict] (ESC O) - case 0x50: // Select 10.5-point, 10-cpi (ESC P) - case 0x54: // Cancel superscript/subscript printing (ESC T) - case 0x5e: // Enable printing of all character codes on next character (ESC ^) - case 0x67: // Select 10.5-point, 15-cpi (ESC g) - - case 0x834: // Select italic font (FS 4) (= ESC 4) - case 0x835: // Cancel italic font (FS 5) (= ESC 5) - case 0x846: // Select forward feed mode (FS F) - case 0x852: // Select reverse feed mode (FS R) - neededParam = 0; - break; - case 0x19: // Control paper loading/ejecting (ESC EM) - case 0x20: // Set intercharacter space (ESC SP) - case 0x21: // Master select (ESC !) - case 0x2b: // Set n/360-inch line spacing (ESC +) - case 0x2d: // Turn underline on/off (ESC -) - case 0x2f: // Select vertical tab channel (ESC /) - case 0x33: // Set n/180-inch line spacing (ESC 3) - case 0x41: // Set n/60-inch line spacing (ESC A) - case 0x43: // Set page length in lines (ESC C) - case 0x49: // Select character type and print pitch (ESC I) - case 0x4a: // Advance print position vertically (ESC J) - case 0x4e: // Set bottom margin (ESC N) - case 0x51: // Set right margin (ESC Q) - case 0x52: // Select an international character set (ESC R) - case 0x53: // Select superscript/subscript printing (ESC S) - case 0x55: // Turn unidirectional mode on/off (ESC U) - //case 0x56: // Repeat data (ESC V) - case 0x57: // Turn double-width printing on/off (ESC W) - case 0x61: // Select justification (ESC a) - case 0x66: // Absolute horizontal tab in columns [conflict] (ESC f) - case 0x68: // Select double or quadruple size (ESC h) - case 0x69: // Immediate print (ESC i) - case 0x6a: // Reverse paper feed (ESC j) - case 0x6b: // Select typeface (ESC k) - case 0x6c: // Set left margin (ESC 1) - case 0x70: // Turn proportional mode on/off (ESC p) - case 0x72: // Select printing color (ESC r) - case 0x73: // Low-speed mode on/off (ESC s) - case 0x74: // Select character table (ESC t) - case 0x77: // Turn double-height printing on/off (ESC w) - case 0x78: // Select LQ or draft (ESC x) - case 0x7e: // Select/Deselect slash zero (ESC ~) - - case 0x832: // Select 1/6-inch line spacing (FS 2) (= ESC 2) - case 0x833: // Set n/360-inch line spacing (FS 3) (= ESC +) - case 0x841: // Set n/60-inch line spacing (FS A) (= ESC A) - case 0x843: // Select LQ type style (FS C) (= ESC k) - case 0x845: // Select character width (FS E) - case 0x849: // Select character table (FS I) (= ESC t) - case 0x853: // Select High Speed/High Density elite pitch (FS S) - case 0x856: // Turn double-height printing on/off (FS V) (= ESC w) - neededParam = 1; - break; - case 0x24: // Set absolute horizontal print position (ESC $) - case 0x3f: // Reassign bit-image mode (ESC ?) - case 0x4b: // Select 60-dpi graphics (ESC K) - case 0x4c: // Select 120-dpi graphics (ESC L) - case 0x59: // Select 120-dpi, double-speed graphics (ESC Y) - case 0x5a: // Select 240-dpi graphics (ESC Z) - case 0x5c: // Set relative horizontal print position (ESC \) - case 0x63: // Set horizontal motion index (HMI) [conflict] (ESC c) - case 0x65: // Set vertical tab stops every n lines (ESC e) - case 0x85a: // Print 24-bit hex-density graphics (FS Z) - neededParam = 2; - break; - case 0x2a: // Select bit image (ESC *) - case 0x58: // Select font by pitch and point [conflict] (ESC X) - neededParam = 3; - break; - case 0x5b: // Select character height, width, line spacing - neededParam = 7; - break; - case 0x62: // Set vertical tabs in VFU channels (ESC b) - case 0x42: // Set vertical tabs (ESC B) - numVertTabs = 0; - return true; - case 0x44: // Set horizontal tabs (ESC D) - numHorizTabs = 0; - return true; - case 0x25: // Select user-defined set (ESC %) - case 0x26: // Define user-defined characters (ESC &) - case 0x3a: // Copy ROM to RAM (ESC :) - //LOG(LOG_MISC,LOG_ERROR)("User-defined characters not supported!"); - return true; - case 0x28: // Two bytes sequence - return true; - default: - /*LOG_MSG("PRINTER: Unknown command %c (%02Xh) %c , unable to skip parameters.", - (ESCCmd & 0x800)?"FS":"ESC",ESCCmd, ESCCmd);*/ - - neededParam = 0; - ESCCmd = 0; - return true; - } - - if (neededParam > 0) - return true; - } - - // Two bytes sequence - if (ESCCmd == '(') - { - ESCCmd = 0x200 + ch; - - switch (ESCCmd) - { - case 0x242: // Bar code setup and print (ESC (B) - case 0x25e: // Print data as characters (ESC (^) - neededParam = 2; - break; - case 0x255: // Set unit (ESC (U) - neededParam = 3; - break; - case 0x243: // Set page length in defined unit (ESC (C) - case 0x256: // Set absolute vertical print position (ESC (V) - case 0x276: // Set relative vertical print position (ESC (v) - neededParam = 4; - break; - case 0x274: // Assign character table (ESC (t) - case 0x22d: // Select line/score (ESC (-) - neededParam = 5; - break; - case 0x263: // Set page format (ESC (c) - neededParam = 6; - break; - default: - // ESC ( commands are always followed by a "number of parameters" word parameter - //LOG(LOG_MISC,LOG_ERROR) - printf("PRINTER: Skipping unsupported command ESC ( %c (%02X).", ESCCmd, ESCCmd); - neededParam = 2; - ESCCmd = 0x101; - return true; - } - - if (neededParam > 0) - return true; - } - - // Ignore VFU channel setting - if (ESCCmd == 0x62) { - ESCCmd = 0x42; - return true; - } - - // Collect vertical tabs - if (ESCCmd == 0x42) { - if (ch == 0 || (numVertTabs>0 && verttabs[numVertTabs-1] > (Real64)ch*lineSpacing)) // Done - ESCCmd = 0; - else - if (numVertTabs < 16) - verttabs[numVertTabs++] = (Real64)ch*lineSpacing; - } - - // Collect horizontal tabs - if (ESCCmd == 0x44) - { - if (ch == 0 || (numHorizTabs>0 && horiztabs[numHorizTabs-1] > (Real64)ch*(1/(Real64)cpi))) // Done - ESCCmd = 0; - else - if (numHorizTabs < 32) - horiztabs[numHorizTabs++] = (Real64)ch*(1/(Real64)cpi); - } - - if (numParam < neededParam) - { - params[numParam++] = ch; - - if (numParam < neededParam) - return true; - } - - if (ESCCmd != 0) - { - switch (ESCCmd) - { - case 0x02: // Undocumented - // Ignore - break; - case 0x0e: // Select double-width printing (one line) (ESC SO) - if (!multipoint) - { - hmi = -1; - style |= STYLE_DOUBLEWIDTHONELINE; - updateFont(); - } - break; - case 0x0f: // Select condensed printing (ESC SI) - if (!multipoint && (cpi!=15.0)) { - hmi = -1; - style |= STYLE_CONDENSED; - updateFont(); - } - break; - case 0x19: // Control paper loading/ejecting (ESC EM) - // We are not really loading paper, so most commands can be ignored - if (params[0] == 'R') - newPage(true,false); // TODO resetx? - break; - case 0x20: // Set intercharacter space (ESC SP) - if (!multipoint) - { - extraIntraSpace = (Real64)params[0] / (printQuality==QUALITY_DRAFT?120:180); - hmi = -1; - updateFont(); - } - break; - case 0x21: // Master select (ESC !) - cpi = params[0] & 0x01 ? 12:10; - - // Reset first seven bits - style &= 0xFF80; - if (params[0] & 0x02) - style |= STYLE_PROP; - if (params[0] & 0x04) - style |= STYLE_CONDENSED; - if (params[0] & 0x08) - style |= STYLE_BOLD; - if (params[0] & 0x10) - style |= STYLE_DOUBLESTRIKE; - if (params[0] & 0x20) - style |= STYLE_DOUBLEWIDTH; - if (params[0] & 0x40) - style |= STYLE_ITALICS; - if (params[0] & 0x80) - { - score = SCORE_SINGLE; - style |= STYLE_UNDERLINE; - } - - hmi = -1; - multipoint = false; - updateFont(); - break; - case 0x23: // Cancel MSB control (ESC #) - msb = 255; - break; - case 0x24: // Set absolute horizontal print position (ESC $) - { - Real64 unitSize = definedUnit; - if (unitSize < 0) - unitSize = (Real64)60.0; - - Real64 newX = leftMargin + ((Real64)PARAM16(0)/unitSize); - if (newX <= rightMargin) - curX = newX; - } - break; - case 0x85a: // Print 24-bit hex-density graphics (FS Z) - setupBitImage(40, PARAM16(0)); - break; - case 0x2a: // Select bit image (ESC *) - setupBitImage(params[0], PARAM16(1)); - break; - case 0x2b: // Set n/360-inch line spacing (ESC +) - case 0x833: // Set n/360-inch line spacing (FS 3) - lineSpacing = (Real64)params[0]/360; - break; - case 0x2d: // Turn underline on/off (ESC -) - if (params[0] == 0 || params[0] == 48) - style &= ~STYLE_UNDERLINE; - if (params[0] == 1 || params[0] == 49) - { - style |= STYLE_UNDERLINE; - score = SCORE_SINGLE; - } - updateFont(); - break; - case 0x2f: // Select vertical tab channel (ESC /) - // Ignore - break; - case 0x30: // Select 1/8-inch line spacing (ESC 0) - lineSpacing = (Real64)1/8; - break; - case 0x32: // Select 1/6-inch line spacing (ESC 2) - lineSpacing = (Real64)1/6; - break; - case 0x33: // Set n/180-inch line spacing (ESC 3) - lineSpacing = (Real64)params[0]/180; - break; - case 0x34: // Select italic font (ESC 4) - style |= STYLE_ITALICS; - updateFont(); - break; - case 0x35: // Cancel italic font (ESC 5) - style &= ~STYLE_ITALICS; - updateFont(); - break; - case 0x36: // Enable printing of upper control codes (ESC 6) - printUpperContr = true; - break; - case 0x37: // Enable upper control codes (ESC 7) - printUpperContr = false; - break; - case 0x3c: // Unidirectional mode (one line) (ESC <) - // We don't have a print head, so just ignore this - break; - case 0x3d: // Set MSB to 0 (ESC =) - msb = 0; - break; - case 0x3e: // Set MSB to 1 (ESC >) - msb = 1; - break; - case 0x3f: // Reassign bit-image mode (ESC ?) - if (params[0] == 75) - densk = params[1]; - if (params[0] == 76) - densl = params[1]; - if (params[0] == 89) - densy = params[1]; - if (params[0] == 90) - densz = params[1]; - break; - case 0x40: // Initialize printer (ESC @) - resetPrinter(); - break; - case 0x41: // Set n/60-inch line spacing - case 0x841: - lineSpacing = (Real64)params[0]/60; - break; - case 0x43: // Set page length in lines (ESC C) - if (params[0] != 0) - pageHeight = bottomMargin = (Real64)params[0] * lineSpacing; - else // == 0 => Set page length in inches - { - neededParam = 1; - numParam = 0; - ESCCmd = 0x100; - return true; - } - break; - case 0x45: // Select bold font (ESC E) - style |= STYLE_BOLD; - updateFont(); - break; - case 0x46: // Cancel bold font (ESC F) - style &= ~STYLE_BOLD; - updateFont(); - break; - case 0x47: // Select dobule-strike printing (ESC G) - style |= STYLE_DOUBLESTRIKE; - break; - case 0x48: // Cancel double-strike printing (ESC H) - style &= ~STYLE_DOUBLESTRIKE; - break; - case 0x4a: // Advance print position vertically (ESC J n) - curY += (Real64)((Real64)params[0] / 180); - if (curY > bottomMargin) - newPage(true,false); - break; - case 0x4b: // Select 60-dpi graphics (ESC K) - setupBitImage(densk, PARAM16(0)); - break; - case 0x4c: // Select 120-dpi graphics (ESC L) - setupBitImage(densl, PARAM16(0)); - break; - case 0x4d: // Select 10.5-point, 12-cpi (ESC M) - cpi = 12; - hmi = -1; - multipoint = false; - updateFont(); - break; - case 0x4e: // Set bottom margin (ESC N) - topMargin = 0.0; - bottomMargin = (Real64)params[0] * lineSpacing; - break; - case 0x4f: // Cancel bottom (and top) margin - topMargin = 0.0; - bottomMargin = pageHeight; - break; - case 0x50: // Select 10.5-point, 10-cpi (ESC P) - cpi = 10; - hmi = -1; - multipoint = false; - updateFont(); - break; - case 0x51: // Set right margin - rightMargin = (Real64)(params[0]-1.0) / (Real64)cpi; - break; - case 0x52: // Select an international character set (ESC R) - if (params[0] <= 13 || params[0] == 64) - { - if (params[0] == 64) - params[0] = 14; - - curMap[0x23] = intCharSets[params[0]][0]; - curMap[0x24] = intCharSets[params[0]][1]; - curMap[0x40] = intCharSets[params[0]][2]; - curMap[0x5b] = intCharSets[params[0]][3]; - curMap[0x5c] = intCharSets[params[0]][4]; - curMap[0x5d] = intCharSets[params[0]][5]; - curMap[0x5e] = intCharSets[params[0]][6]; - curMap[0x60] = intCharSets[params[0]][7]; - curMap[0x7b] = intCharSets[params[0]][8]; - curMap[0x7c] = intCharSets[params[0]][9]; - curMap[0x7d] = intCharSets[params[0]][10]; - curMap[0x7e] = intCharSets[params[0]][11]; - } - break; - case 0x53: // Select superscript/subscript printing (ESC S) - if (params[0] == 0 || params[0] == 48) - style |= STYLE_SUBSCRIPT; - if (params[0] == 1 || params[1] == 49) - style |= STYLE_SUPERSCRIPT; - updateFont(); - break; - case 0x54: // Cancel superscript/subscript printing (ESC T) - style &= 0xFFFF - STYLE_SUPERSCRIPT - STYLE_SUBSCRIPT; - updateFont(); - break; - case 0x55: // Turn unidirectional mode on/off (ESC U) - // We don't have a print head, so just ignore this - break; - case 0x57: // Turn double-width printing on/off (ESC W) - if (!multipoint) - { - hmi = -1; - if (params[0] == 0 || params[0] == 48) - style &= ~STYLE_DOUBLEWIDTH; - if (params[0] == 1 || params[0] == 49) - style |= STYLE_DOUBLEWIDTH; - updateFont(); - } - break; - case 0x58: // Select font by pitch and point (ESC X) - multipoint = true; - // Copy currently non-multipoint CPI if no value was set so far - if (multicpi == 0) - multicpi = cpi; - if (params[0] > 0) // Set CPI - { - if (params[0] == 1) // Proportional spacing - style |= STYLE_PROP; - else if (params[0] >= 5) - multicpi = (Real64)360 / (Real64)params[0]; - } - if (multiPointSize == 0) - multiPointSize = (Real64)10.5; - if (PARAM16(1) > 0) // Set points - multiPointSize = ((Real64)PARAM16(1)) / 2; - updateFont(); - break; - case 0x59: // Select 120-dpi, double-speed graphics (ESC Y) - setupBitImage(densy, PARAM16(0)); - break; - case 0x5a: // Select 240-dpi graphics (ESC Z) - setupBitImage(densz, PARAM16(0)); - break; - case 0x5c: // Set relative horizontal print position (ESC \) - { - Bit16s toMove = PARAM16(0); - Real64 unitSize = definedUnit; - if (unitSize < 0) - unitSize = (Real64)(printQuality==QUALITY_DRAFT?120.0:180.0); - curX += (Real64)((Real64)toMove / unitSize); - } - break; - case 0x61: // Select justification (ESC a) - // Ignore - break; - case 0x63: // Set horizontal motion index (HMI) (ESC c) - hmi = (Real64)PARAM16(0) / (Real64)360.0; - extraIntraSpace = 0.0; - break; - case 0x67: // Select 10.5-point, 15-cpi (ESC g) - cpi = 15; - hmi = -1; - multipoint = false; - updateFont(); - break; - case 0x846: // Select forward feed mode (FS F) - set reverse not implemented yet - if(lineSpacing < 0) lineSpacing *= -1; - break; - case 0x6a: // Reverse paper feed (ESC j) - { - Real64 reverse = (Real64)PARAM16(0) / (Real64)216.0; - reverse = curY - reverse; - if(reverse < leftMargin) curY = leftMargin; - else curY = reverse; - break; - } - case 0x6b: // Select typeface (ESC k) - paramc = params[0]-'0'; - //if (params[0] <= 11 || params[0] == 30 || params[0] == 31) - if (paramc <= 11 || paramc == 30 || paramc == 31) - LQtypeFace = (Typeface)paramc; - updateFont(); - break; - case 0x6c: // Set left margin (ESC l) - leftMargin = (Real64)(params[0]-1.0) / (Real64)cpi; - if (curX < leftMargin) - curX = leftMargin; - break; - case 0x70: // Turn proportional mode on/off (ESC p) - if (params[0] == 0 || params[0] == 48) - style &= (0xffff - STYLE_PROP); - if (params[0] == 1 || params[0] == 49) - { - style |= STYLE_PROP; - printQuality = QUALITY_LQ; - } - multipoint = false; - hmi = -1; - updateFont(); - break; - case 0x72: // Select printing color (ESC r) - - if(params[0]==0 || params[0] > 6) color = COLOR_BLACK; - else color = params[0]<<5; - break; - case 0x73: // Select low-speed mode (ESC s) - // Ignore - break; - case 0x74: // Select character table (ESC t) - case 0x849: // Select character table (FS I) - if (params[0] < 4) - curCharTable = params[0]; - if (params[0] >= 48 && params[0] <= 51) - curCharTable = params[0] - 48; - selectCodepage(charTables[curCharTable]); - updateFont(); - break; - case 0x77: // Turn double-height printing on/off (ESC w) - if (!multipoint) - { - if (params[0] == 0 || params[0] == 48) - style &= ~STYLE_DOUBLEHEIGHT; - if (params[0] == 1 || params[0] == 49) - style |= STYLE_DOUBLEHEIGHT; - updateFont(); - } - break; - case 0x78: // Select LQ or draft (ESC x) - if (params[0] == 0 || params[0] == 48) { - printQuality = QUALITY_DRAFT; - style |= STYLE_CONDENSED; - } - if (params[0] == 1 || params[0] == 49) { - printQuality = QUALITY_LQ; - style &= ~STYLE_CONDENSED; - } - hmi = -1; - updateFont(); - break; - case 0x100: // Set page length in inches (ESC C NUL) - pageHeight = (Real64)params[0]; - bottomMargin = pageHeight; - topMargin = 0.0; - break; - case 0x101: // Skip unsupported ESC ( command - neededParam = PARAM16(0); - numParam = 0; - break; - case 0x274: // Assign character table (ESC (t) - if (params[2] < 4 && params[3] < 16) - { - charTables[params[2]] = codepages[params[3]]; - //LOG_MSG("curr table: %d, p2: %d, p3: %d",curCharTable,params[2],params[3]); - if (params[2] == curCharTable) - selectCodepage(charTables[curCharTable]); - } - break; - case 0x22d: // Select line/score (ESC (-) - style &= ~(STYLE_UNDERLINE | STYLE_STRIKETHROUGH | STYLE_OVERSCORE); - score = params[4]; - if (score) - { - if (params[3] == 1) - style |= STYLE_UNDERLINE; - if (params[3] == 2) - style |= STYLE_STRIKETHROUGH; - if (params[3] == 3) - style |= STYLE_OVERSCORE; - } - updateFont(); - break; - case 0x242: // Bar code setup and print (ESC (B) - //LOG(LOG_MISC,LOG_ERROR)("PRINTER: Bardcode printing not supported"); - // Find out how many bytes to skip - neededParam = PARAM16(0); - numParam = 0; - break; - case 0x243: // Set page length in defined unit (ESC (C) - if (params[0] != 0 && definedUnit > 0) - { - pageHeight = bottomMargin = ((Real64)PARAM16(2)) * definedUnit; - topMargin = 0.0; - } - break; - case 0x255: // Set unit (ESC (U) - definedUnit = (Real64)params[2] / (Real64)3600; - break; - case 0x256: // Set absolute vertical print position (ESC (V) - { - Real64 unitSize = definedUnit; - if (unitSize < 0) - unitSize = (Real64)360.0; - Real64 newPos = topMargin + (((Real64)PARAM16(2)) * unitSize); - if (newPos > bottomMargin) - newPage(true,false); - else - curY = newPos; - } - break; - case 0x25e: // Print data as characters (ESC (^) - numPrintAsChar = PARAM16(0); - break; - case 0x263: // Set page format (ESC (c) - if (definedUnit > 0) - { - Real64 newTop, newBottom; - newTop = ((Real64)PARAM16(2)) * definedUnit; - newBottom = ((Real64)PARAM16(4)) * definedUnit; - if(newTop >= newBottom) break; - if(newTop < pageHeight) topMargin = newTop; - if(newBottom < pageHeight) bottomMargin = newBottom; - if(topMargin > curY) curY = topMargin; - //LOG_MSG("du %d, p1 %d, p2 %d, newtop %f, newbott %f, nt %f, nb %f, ph %f", - // (Bitu)definedUnit,PARAM16(2),PARAM16(4),topMargin,bottomMargin, - // newTop,newBottom,pageHeight); - } - break; - case 0x276: // Set relative vertical print position (ESC (v) - { - Real64 unitSize = definedUnit; - if (unitSize < 0) - unitSize = (Real64)360.0; - Real64 newPos = curY + ((Real64)((Bit16s)PARAM16(2)) * unitSize); - if (newPos > topMargin) - { - if (newPos > bottomMargin) - newPage(true,false); - else - curY = newPos; - } - } - break; - default: - if (ESCCmd < 0x100); - //LOG(LOG_MISC,LOG_WARN) - //LOG_MSG("PRINTER: Skipped unsupported command ESC %c (%02X)", ESCCmd, ESCCmd); - else; - //LOG(LOG_MISC,LOG_WARN) - //LOG_MSG("PRINTER: Skipped unsupported command ESC ( %c (%02X)", ESCCmd-0x200, ESCCmd-0x200); - } - - ESCCmd = 0; - return true; - } - - switch (ch) - { - case 0x00: // NUL is ignored by the printer - return true; - case 0x07: // Beeper (BEL) - // BEEEP! - return true; - case 0x08: // Backspace (BS) - { - Real64 newX = curX - (1/(Real64)actcpi); - if (hmi > 0) - newX = curX - hmi; - if (newX >= leftMargin) - curX = newX; - } - return true; - case 0x09: // Tab horizontally (HT) - { - // Find tab right to current pos - Real64 moveTo = -1; - for (Bit8u i=0; i curX) - moveTo = horiztabs[i]; - // Nothing found => Ignore - if (moveTo > 0 && moveTo < rightMargin) - curX = moveTo; - } - return true; - case 0x0b: // Tab vertically (VT) - if (numVertTabs == 0) // All tabs cancelled => Act like CR - curX = leftMargin; - else if (numVertTabs == 255) // No tabs set since reset => Act like LF - { - curX = leftMargin; - curY += lineSpacing; - if (curY > bottomMargin) - newPage(true,false); - } - else - { - // Find tab below current pos - Real64 moveTo = -1; - for (Bit8u i=0; i curY) - moveTo = verttabs[i]; - - // Nothing found => Act like FF - if (moveTo > bottomMargin || moveTo < 0) - newPage(true,false); - else - curY = moveTo; - } - if (style & STYLE_DOUBLEWIDTHONELINE) - { - style &= 0xFFFF - STYLE_DOUBLEWIDTHONELINE; - updateFont(); - } - return true; - case 0x0c: // Form feed (FF) - if (style & STYLE_DOUBLEWIDTHONELINE) - { - style &= 0xFFFF - STYLE_DOUBLEWIDTHONELINE; - updateFont(); - } - newPage(true,true); - return true; - case 0x0d: // Carriage Return (CR) - curX = leftMargin; - if (!autoFeed) - return true; - case 0x0a: // Line feed - if (style & STYLE_DOUBLEWIDTHONELINE) - { - style &= 0xFFFF - STYLE_DOUBLEWIDTHONELINE; - updateFont(); - } - curX = leftMargin; - curY += lineSpacing; - if (curY > bottomMargin) - newPage(true,false); - return true; - case 0x0e: //Select Real64-width printing (one line) (SO) - if (!multipoint) - { - hmi = -1; - style |= STYLE_DOUBLEWIDTHONELINE; - updateFont(); - } - return true; - case 0x0f: // Select condensed printing (SI) - if (!multipoint && (cpi!=15.0)) { - hmi = -1; - style |= STYLE_CONDENSED; - updateFont(); - } - return true; - case 0x11: // Select printer (DC1) - // Ignore - return true; - case 0x12: // Cancel condensed printing (DC2) - hmi = -1; - style &= ~STYLE_CONDENSED; - updateFont(); - return true; - case 0x13: // Deselect printer (DC3) - // Ignore - return true; - case 0x14: // Cancel double-width printing (one line) (DC4) - hmi = -1; - style &= ~STYLE_DOUBLEWIDTHONELINE; - updateFont(); - return true; - case 0x18: // Cancel line (CAN) - return true; - case 0x1b: // ESC - ESCSeen = true; - return true; - case 0x1c: // FS (IBM commands) - FSSeen = true; - return true; - default: - return false; - } - - return false; -} -#endif // HAVE_SDL - -//static void PRINTER_EventHandler(Bitu param); - -void CPrinter::newPage(bool save, bool resetx) -{ - //PIC_RemoveEvents(PRINTER_EventHandler); - if(printer_timout) timeout_dirty=false; - -#ifdef HAVE_SDL - if (save) - outputPage(); - - if(resetx) curX=leftMargin; - curY = topMargin; - - SDL_Rect rect; - rect.x = 0; - rect.y = 0; - rect.w = page->w; - rect.h = page->h; - SDL_FillRect(page, &rect, SDL_MapRGB(page->format, 255, 255, 255)); - - /*for(int i = 0; i < 256; i++) - { - *((Bit8u*)page->pixels+i)=i; - }*/ -#endif // HAVE_SDL - if (strcasecmp(output, "text") == 0) { /* Text file */ - if (textPrinterFile) { - fclose(textPrinterFile); - textPrinterFile = NULL; - } - } -} - -void CPrinter::printChar(Bit8u ch) -{ -#ifdef HAVE_SDL - - charRead = true; - if (page == NULL) return; -#endif // HAVE_SDL - // Don't think that DOS programs uses this but well: Apply MSB if desired - if (msb != 255) { - if (msb == 0) ch &= 0x7F; - if (msb == 1) ch |= 0x80; - } - if (strcasecmp(output, "text") == 0) { - if (!textPrinterFile) { - textPrinterFile = fopen(textPrinterFileName,"ab"); - } - fprintf(textPrinterFile,"%c",ch); - fflush(textPrinterFile); - return; - } -#ifdef HAVE_SDL - - // Are we currently printing a bit graphic? - if (bitGraph.remBytes > 0) { - printBitGraph(ch); - return; - } - - // Print everything? - if (numPrintAsChar > 0) numPrintAsChar--; - else if (processCommandChar(ch)) return; - - // Do not print if no font is available - if (!curFont) return; - if(ch==0x1) ch=0x20; - - // Find the glyph for the char to render - FT_UInt index = FT_Get_Char_Index(curFont, curMap[ch]); - - // Load the glyph - FT_Load_Glyph(curFont, index, FT_LOAD_DEFAULT); - - // Render a high-quality bitmap - FT_Render_Glyph(curFont->glyph, FT_RENDER_MODE_NORMAL); - - Bit16u penX = PIXX + curFont->glyph->bitmap_left; - Bit16u penY = PIXY - curFont->glyph->bitmap_top + curFont->size->metrics.ascender/64; - - if (style & STYLE_SUBSCRIPT) penY += curFont->glyph->bitmap.rows / 2; - - // Copy bitmap into page - SDL_LockSurface(page); - - blitGlyph(curFont->glyph->bitmap, penX, penY, false); - blitGlyph(curFont->glyph->bitmap, penX+1, penY, true); - - // Doublestrike => Print the glyph a second time one pixel below - if (style & STYLE_DOUBLESTRIKE) { - blitGlyph(curFont->glyph->bitmap, penX, penY+1, true); - blitGlyph(curFont->glyph->bitmap, penX+1, penY+1, true); - } - - // Bold => Print the glyph a second time one pixel to the right - // or be a bit more bold... - if (style & STYLE_BOLD) { - blitGlyph(curFont->glyph->bitmap, penX+1, penY, true); - blitGlyph(curFont->glyph->bitmap, penX+2, penY, true); - blitGlyph(curFont->glyph->bitmap, penX+3, penY, true); - } - SDL_UnlockSurface(page); - - // For line printing - Bit16u lineStart = PIXX; - - // advance the cursor to the right - Real64 x_advance; - if (style & STYLE_PROP) - x_advance = (Real64)((Real64)(curFont->glyph->advance.x)/(Real64)(dpi*64)); - else { - if (hmi < 0) x_advance = 1/(Real64)actcpi; - else x_advance = hmi; - } - x_advance += extraIntraSpace; - curX += x_advance; - - // Draw lines if desired - if ((score != SCORE_NONE) && (style & - (STYLE_UNDERLINE|STYLE_STRIKETHROUGH|STYLE_OVERSCORE))) - { - // Find out where to put the line - Bit16u lineY = PIXY; - double height = (curFont->size->metrics.height>>6); // TODO height is fixed point madness... - - if (style & STYLE_UNDERLINE) lineY = PIXY + (Bit16u)(height*0.9); - else if (style & STYLE_STRIKETHROUGH) lineY = PIXY + (Bit16u)(height*0.45); - else if (style & STYLE_OVERSCORE) - lineY = PIXY - (((score == SCORE_DOUBLE)||(score == SCORE_DOUBLEBROKEN))?5:0); - - drawLine(lineStart, PIXX, lineY, score==SCORE_SINGLEBROKEN || score==SCORE_DOUBLEBROKEN); - - // draw second line if needed - if ((score == SCORE_DOUBLE)||(score == SCORE_DOUBLEBROKEN)) - drawLine(lineStart, PIXX, lineY + 5, score==SCORE_SINGLEBROKEN || score==SCORE_DOUBLEBROKEN); - } - // If the next character would go beyond the right margin, line-wrap. - if((curX + x_advance) > rightMargin) { - curX = leftMargin; - curY += lineSpacing; - if (curY > bottomMargin) newPage(true,false); - } -#endif // HAVE_SDL -} - -#ifdef HAVE_SDL -void CPrinter::blitGlyph(FT_Bitmap bitmap, Bit16u destx, Bit16u desty, bool add) { - for (Bitu y=0; y 0 && (destx+x < page->w) && (desty+y < page->h) ) { - Bit8u* target = (Bit8u*)page->pixels + (x+destx) + (y+desty)*page->pitch; - source>>=3; - - if (add) { - if (((*target)&0x1f )+ source > 31) *target |= (color|0x1f); - else { - *target += source; - *target |= color; - } - } - else *target = source|color; - } - } - } -} - -void CPrinter::drawLine(Bitu fromx, Bitu tox, Bitu y, bool broken) -{ - SDL_LockSurface(page); - - Bitu breakmod = dpi / 15; - Bitu gapstart = (breakmod * 4)/5; - - // Draw anti-aliased line - for (Bitu x=fromx; x<=tox; x++) - { - // Skip parts if broken line or going over the border - if ((!broken || (x%breakmod <= gapstart)) && (x < page->w)) - { - if (y > 0 && (y-1) < page->h) - *((Bit8u*)page->pixels + x + (y-1)*page->pitch) = 240; - if (y < page->h) - *((Bit8u*)page->pixels + x + y*page->pitch) = !broken?255:240; - if (y+1 < page->h) - *((Bit8u*)page->pixels + x + (y+1)*page->pitch) = 240; - } - } - SDL_UnlockSurface(page); -} - -void CPrinter::setAutofeed(bool feed) { - autoFeed = feed; -} - -bool CPrinter::getAutofeed() { - return autoFeed; -} - -bool CPrinter::isBusy() { - // We're never busy - return false; -} - -bool CPrinter::ack() { - // Acknowledge last char read - if(charRead) { - charRead=false; - return true; - } - return false; -} - -void CPrinter::setupBitImage(Bit8u dens, Bit16u numCols) { - switch (dens) - { - case 0: - bitGraph.horizDens = 60; - bitGraph.vertDens = 60; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 1: - bitGraph.horizDens = 120; - bitGraph.vertDens = 60; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 2: - bitGraph.horizDens = 120; - bitGraph.vertDens = 60; - bitGraph.adjacent = false; - bitGraph.bytesColumn = 1; - break; - case 3: - bitGraph.horizDens = 60; - bitGraph.vertDens = 240; - bitGraph.adjacent = false; - bitGraph.bytesColumn = 1; - break; - case 4: - bitGraph.horizDens = 80; - bitGraph.vertDens = 60; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 6: - bitGraph.horizDens = 90; - bitGraph.vertDens = 60; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 1; - break; - case 32: - bitGraph.horizDens = 60; - bitGraph.vertDens = 180; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 33: - bitGraph.horizDens = 120; - bitGraph.vertDens = 180; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 38: - bitGraph.horizDens = 90; - bitGraph.vertDens = 180; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 39: - bitGraph.horizDens = 180; - bitGraph.vertDens = 180; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 3; - break; - case 40: - bitGraph.horizDens = 360; - bitGraph.vertDens = 180; - bitGraph.adjacent = false; - bitGraph.bytesColumn = 3; - break; - case 71: - bitGraph.horizDens = 180; - bitGraph.vertDens = 360; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 6; - break; - case 72: - bitGraph.horizDens = 360; - bitGraph.vertDens = 360; - bitGraph.adjacent = false; - bitGraph.bytesColumn = 6; - break; - case 73: - bitGraph.horizDens = 360; - bitGraph.vertDens = 360; - bitGraph.adjacent = true; - bitGraph.bytesColumn = 6; - break; - default: - //break; - printf("PRINTER: Unsupported bit image density"); - } - - bitGraph.remBytes = numCols * bitGraph.bytesColumn; - bitGraph.readBytesColumn = 0; -} - -void CPrinter::printBitGraph(Bit8u ch) -{ - bitGraph.column[bitGraph.readBytesColumn++] = ch; - bitGraph.remBytes--; - - // Only print after reading a full column - if (bitGraph.readBytesColumn < bitGraph.bytesColumn) - return; - - Real64 oldY = curY; - - SDL_LockSurface(page); - - // When page dpi is greater than graphics dpi, the drawn pixels get "bigger" - Bitu pixsizeX=1; - Bitu pixsizeY=1; - if(bitGraph.adjacent) { - pixsizeX = dpi/bitGraph.horizDens > 0? dpi/bitGraph.horizDens : 1; - pixsizeY = dpi/bitGraph.vertDens > 0? dpi/bitGraph.vertDens : 1; - } - // TODO figure this out for 360dpi mode in windows - -// Bitu pixsizeX = dpi/bitGraph.horizDens > 0? dpi/bitGraph.horizDens : 1; -// Bitu pixsizeY = dpi/bitGraph.vertDens > 0? dpi/bitGraph.vertDens : 1; - - for (Bitu i=0; i>=1) { // for each bit - if (bitGraph.column[i] & j) { - for (Bitu xx=0; xxw) && ((PIXY + yy) < page->h)) - *((Bit8u*)page->pixels + (PIXX+xx) + (PIXY+yy)*page->pitch) |= (color|0x1F); - } - } // else white pixel - - curY += (Real64)1/(Real64)bitGraph.vertDens; // TODO line wrap? - } - } - SDL_UnlockSurface(page); - - curY = oldY; - - bitGraph.readBytesColumn = 0; - - // Advance to the left - curX += (Real64)1/(Real64)bitGraph.horizDens; -} -#endif // HAVE_SDL - -void CPrinter::formFeed() -{ -#ifdef HAVE_SDL - // Don't output blank pages - newPage(!isBlank(),true); - finishMultipage(); -#endif // HAVE_SDL -} - -#ifdef HAVE_SDL -static void findNextName(char* front, char* ext, char* fname) -{ - document_path = ""; - Bitu i = 1; - Bitu slen = strlen(document_path); - if(slen>(200-15)) { - fname[0]=0; - return; - } - FILE *test = NULL; - do - { - strcpy(fname, document_path); - printf(fname); -#ifdef WIN32 - const char* const pathstring = ".\\%s%d%s"; -#else - const char* const pathstring = "./%s%d%s"; -#endif - sprintf(fname+strlen(fname), pathstring, front,i++,ext); - test = fopen(fname, "rb"); - if (test != NULL) - fclose(test); - } - while (test != NULL ); -} - -void CPrinter::outputPage() -{ -/* SDL_Surface *screen; - -screen = SDL_SetVideoMode(1024, 768, 16, SDL_DOUBLEBUF | SDL_RESIZABLE); -if (screen == NULL) { - printf("Unable to set video mode: %s\n", SDL_GetError()); -} -SDL_Surface *image; -SDL_LockSurface(page); -image = SDL_DisplayFormat(page); -SDL_UnlockSurface(page); -SDL_Rect src, dest; - -src.x = 0; -src.y = 0; -src.w = image->w; -src.h = image->h; - -dest.x = 100; -dest.y = 100; -dest.w = image->w; -dest.h = image->h; - -SDL_BlitSurface(image, &src, screen, &dest); -SDL_Flip(screen); - -SDL_Delay(2000); -SDL_FreeSurface(image);*/ - - char fname[200]; - - if (strcasecmp(output, "printer") == 0) - { -#if defined (WIN32) - - Bit16u physW = GetDeviceCaps(printerDC, PHYSICALWIDTH); - Bit16u physH = GetDeviceCaps(printerDC, PHYSICALHEIGHT); - - Real64 scaleW, scaleH; - - if (page->w > physW) - scaleW = (Real64)page->w / (Real64)physW; - else - scaleW = (Real64)physW / (Real64)page->w; - - if (page->h > physH) - scaleH = (Real64)page->h / (Real64)physH; - else - scaleH = (Real64)physH / (Real64)page->h; - - HDC memHDC = CreateCompatibleDC(printerDC); - BITMAPINFO *BitmapInfo; - HBITMAP bitmap; - - // Start new printer job? - if (outputHandle == NULL) - { - DOCINFO docinfo; - docinfo.cbSize = sizeof(docinfo); - docinfo.lpszDocName = "GSport Virtual Printer"; - docinfo.lpszOutput = NULL; - docinfo.lpszDatatype = NULL; - docinfo.fwType = 0; - - StartDoc(printerDC, &docinfo); - multiPageCounter = 1; - } - SDL_LockSurface(page); - StartPage(printerDC); - DWORD TotalSize; - HGDIOBJ Prev; - void* Pixels; - BitmapInfo = (BITMAPINFO*) - malloc (sizeof (BITMAPINFO)+255*sizeof (RGBQUAD)); - memset (BitmapInfo,0,sizeof (bitmap)); - BitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); - BitmapInfo->bmiHeader.biWidth = page->w; - BitmapInfo->bmiHeader.biHeight = -page->h; - BitmapInfo->bmiHeader.biPlanes = 1; - BitmapInfo->bmiHeader.biBitCount = page->format->BitsPerPixel; - BitmapInfo->bmiHeader.biCompression = BI_RGB; - BitmapInfo->bmiHeader.biSizeImage = page->h * page->pitch; - BitmapInfo->bmiHeader.biXPelsPerMeter = 0; - BitmapInfo->bmiHeader.biYPelsPerMeter = 0; - BitmapInfo->bmiHeader.biClrUsed = page->format->palette->ncolors; - BitmapInfo->bmiHeader.biClrImportant = 0; - if (page->format->palette) { - for (int I=0; Iformat->palette->ncolors; I++) { - BitmapInfo->bmiColors[I].rgbRed = - (page->format->palette->colors+I)->r; - BitmapInfo->bmiColors[I].rgbGreen = - (page->format->palette->colors+I)->g; - BitmapInfo->bmiColors[I].rgbBlue = - (page->format->palette->colors+I)->b; - } - } - memHDC = CreateCompatibleDC(printerDC); - if (memHDC) { - bitmap = CreateDIBSection(memHDC, BitmapInfo, DIB_RGB_COLORS, - (&Pixels), NULL, 0); - if (bitmap) { - memcpy (Pixels, page->pixels, - BitmapInfo->bmiHeader.biSizeImage); - Prev = SelectObject (memHDC, bitmap); - StretchBlt(printerDC, 0, 0, physW, physH, memHDC, 0, 0, page->w, page->h, SRCCOPY); - SelectObject (memHDC,Prev); - DeleteObject (bitmap); - } - } - free (BitmapInfo); - SDL_UnlockSurface(page); - EndPage(printerDC); - - if (multipageOutput) - { - multiPageCounter++; - outputHandle = printerDC; - } - else - { - EndDoc(printerDC); - outputHandle = NULL; - } - DeleteObject(bitmap); - DeleteDC(memHDC); -#else - //LOG_MSG("PRINTER: Direct printing not supported under this OS"); -#endif - } -#ifdef C_LIBPNG - else if (strcasecmp(output, "png") == 0) - { - // Find a page that does not exists - findNextName("page", ".png", &fname[0]); - - png_structp png_ptr; - png_infop info_ptr; - png_bytep * row_pointers; - png_color palette[256]; - Bitu i; - - /* Open the actual file */ - FILE * fp=fopen(fname,"wb"); - if (!fp) - { - //LOG(LOG_MISC,LOG_ERROR)("PRINTER: Can't open file %s for printer output", fname); - return; - } - - /* First try to alloacte the png structures */ - png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL,NULL, NULL); - if (!png_ptr) return; - info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) { - png_destroy_write_struct(&png_ptr,(png_infopp)NULL); - return; - } - - /* Finalize the initing of png library */ - png_init_io(png_ptr, fp); - png_set_compression_level(png_ptr,Z_BEST_COMPRESSION); - - /* set other zlib parameters */ - png_set_compression_mem_level(png_ptr, 8); - png_set_compression_strategy(png_ptr,Z_DEFAULT_STRATEGY); - png_set_compression_window_bits(png_ptr, 15); - png_set_compression_method(png_ptr, 8); - png_set_compression_buffer_size(png_ptr, 8192); - - - png_set_IHDR(png_ptr, info_ptr, page->w, page->h, - 8, PNG_COLOR_TYPE_PALETTE, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); - for (i=0;i<256;i++) - { - palette[i].red = page->format->palette->colors[i].r; - palette[i].green = page->format->palette->colors[i].g; - palette[i].blue = page->format->palette->colors[i].b; - } - png_set_PLTE(png_ptr, info_ptr, palette,256); - png_set_packing(png_ptr); - SDL_LockSurface(page); - - // Allocate an array of scanline pointers - row_pointers = (png_bytep*)malloc(page->h*sizeof(png_bytep)); - for (i=0; ih; i++) - row_pointers[i] = ((Bit8u*)page->pixels+(i*page->pitch)); - - // tell the png library what to encode. - png_set_rows(png_ptr, info_ptr, row_pointers); - - // Write image to file - png_write_png(png_ptr, info_ptr, 0, NULL); - - - - - SDL_UnlockSurface(page); - - /*close file*/ - fclose(fp); - - /*Destroy PNG structs*/ - png_destroy_write_struct(&png_ptr, &info_ptr); - - /*clean up dynamically allocated RAM.*/ - free(row_pointers); - } -#endif - else if (strcasecmp(output, "ps") == 0) - { - FILE* psfile = NULL; - - // Continue postscript file? - if (outputHandle != NULL) - psfile = (FILE*)outputHandle; - - // Create new file? - if (psfile == NULL) - { - if (!multipageOutput) - findNextName("page", ".ps", &fname[0]); - else - findNextName("doc", ".ps", &fname[0]); - - psfile = fopen(fname, "wb"); - if (!psfile) - { - printf("PRINTER: Can't open file %s for printer output", fname); - return; - } - - // Print header - fprintf(psfile, "%%!PS-Adobe-3.0\n"); - fprintf(psfile, "%%%%Pages: (atend)\n"); - fprintf(psfile, "%%%%BoundingBox: 0 0 %i %i\n", (Bit16u)(defaultPageWidth*72), (Bit16u)(defaultPageHeight*72)); - fprintf(psfile, "%%%%Creator: GSport Virtual Printer\n"); - fprintf(psfile, "%%%%DocumentData: Clean7Bit\n"); - fprintf(psfile, "%%%%LanguageLevel: 2\n"); - fprintf(psfile, "%%%%EndComments\n"); - multiPageCounter = 1; - } - - fprintf(psfile, "%%%%Page: %i %i\n", multiPageCounter, multiPageCounter); - fprintf(psfile, "%i %i scale\n", (Bit16u)(defaultPageWidth*72), (Bit16u)(defaultPageHeight*72)); - fprintf(psfile, "%i %i 8 [%i 0 0 -%i 0 %i]\n", page->w, page->h, page->w, page->h, page->h); - fprintf(psfile, "currentfile\n"); - fprintf(psfile, "/ASCII85Decode filter\n"); - fprintf(psfile, "/RunLengthDecode filter\n"); - fprintf(psfile, "image\n"); - - SDL_LockSurface(page); - - Bit32u pix = 0; - Bit32u numpix = page->h*page->w; - ASCII85BufferPos = ASCII85CurCol = 0; - - while (pix < numpix) - { - // Compress data using RLE - - if ((pix < numpix-2) && (getPixel(pix) == getPixel(pix+1)) && (getPixel(pix) == getPixel(pix+2))) - { - // Found three or more pixels with the same color - Bit8u sameCount = 3; - Bit8u col = getPixel(pix); - while (sameCount < 128 && sameCount+pix < numpix && col == getPixel(pix+sameCount)) - sameCount++; - - fprintASCII85(psfile, 257-sameCount); - fprintASCII85(psfile, 255-col); - - // Skip ahead - pix += sameCount; - } - else - { - // Find end of heterogenous area - Bit8u diffCount = 1; - while (diffCount < 128 && diffCount+pix < numpix && - ( - (diffCount+pix < numpix-2) - || (getPixel(pix+diffCount) != getPixel(pix+diffCount+1)) - || (getPixel(pix+diffCount) != getPixel(pix+diffCount+2)) - )) - diffCount++; - - fprintASCII85(psfile, diffCount-1); - for (Bit8u i=0; i= 79) - { - ASCII85CurCol = 0; - fprintf(f, "\n"); - } - } - else - { - char buffer[5]; - for (Bit8s i=4; i>=0; i--) - { - buffer[i] = (Bit8u)((Bit32u)num % (Bit32u)85); - buffer[i] += 33; - num /= (Bit32u)85; - } - - // Make sure a line never starts with a % (which may be mistaken as start of a comment) - if (ASCII85CurCol == 0 && buffer[0] == '%') - fprintf(f, " "); - - for (int i=0; i<((b != 257)?5:ASCII85BufferPos+1); i++) - { - fprintf(f, "%c", buffer[i]); - if (++ASCII85CurCol >= 79) - { - ASCII85CurCol = 0; - fprintf(f, "\n"); - } - } - } - - ASCII85BufferPos = 0; - } - - } - else // Close string - { - // Partial tupel if there are still bytes in the buffer - if (ASCII85BufferPos > 0) - { - for (Bit8u i = ASCII85BufferPos; i < 4; i++) - ASCII85Buffer[i] = 0; - - fprintASCII85(f, 257); - } - - fprintf(f, "~"); - fprintf(f, ">\n"); - } -} - -void CPrinter::finishMultipage() -{ - if (outputHandle != NULL) - { - if (strcasecmp(output, "ps") == 0) - { - FILE* psfile = (FILE*)outputHandle; - fprintf(psfile, "%%%%Pages: %i\n", multiPageCounter); - fprintf(psfile, "%%%%EOF\n"); - fclose(psfile); - } - else if (strcasecmp(output, "printer") == 0) - { -#if defined (WIN32) - EndDoc(printerDC); -#endif - } - outputHandle = NULL; - } -} - -bool CPrinter::isBlank() { - bool blank = true; - SDL_LockSurface(page); - - for (Bit16u y=0; yh; y++) - for (Bit16u x=0; xw; x++) - if (*((Bit8u*)page->pixels + x + (y*page->pitch)) != 0) - blank = false; - - SDL_UnlockSurface(page); - return blank; -} - -Bit8u CPrinter::getPixel(Bit32u num) { - Bit32u pixel = *((Bit8u*)page->pixels + (num % page->w) + ((num / page->w) * page->pitch)); - return *((Bit8u*)page->pixels + (num % page->w) + ((num / page->w) * page->pitch)); -} -#endif // HAVE_SDL - -//Interfaces to C code - - -extern "C" void printer_init(int pdpi, int pwidth, int pheight, char* poutput, bool mpage) -{ - if (defaultPrinter != NULL) return; - defaultPrinter = new CPrinter(pdpi, pwidth,pheight, poutput, mpage); -} -extern "C" void printer_loop(Bit8u pchar) -{ - if (defaultPrinter == NULL) return; - defaultPrinter->printChar(pchar); -} - -extern "C" void printer_close() -{ - delete defaultPrinter; - defaultPrinter = NULL; -} -extern "C" void printer_feed() -{ - if(defaultPrinter == NULL) return; - defaultPrinter->formFeed(); -} diff --git a/.svn/pristine/ee/eea45e1298ca41fa94d993911d51399fcddb39ac.svn-base b/.svn/pristine/ee/eea45e1298ca41fa94d993911d51399fcddb39ac.svn-base deleted file mode 100644 index fff92d8..0000000 --- a/.svn/pristine/ee/eea45e1298ca41fa94d993911d51399fcddb39ac.svn-base +++ /dev/null @@ -1,170 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2014 by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include -#include "pcap_delay.h" - -#ifdef WIN32 -#include -static HMODULE module = NULL; -#elif __linux__ -#include -static void* module = 0; -#endif - - -bool pcapdelay_load() -{ - if (!pcapdelay_is_loaded()) - { -#ifdef WIN32 - module = LoadLibrary("wpcap.dll"); -#elif __linux__ - module = dlopen("libpcap.so", RTLD_LAZY); -#endif - } - return pcapdelay_is_loaded(); -} - -bool pcapdelay_is_loaded() -{ -#ifdef WIN32 - return module != NULL; -#elif __linux__ - return module != 0; -#endif -} - -void pcapdelay_unload() -{ - if (pcapdelay_is_loaded()) - { -#ifdef WIN32 - FreeLibrary(module); - module = NULL; -#elif __linux__ - dlclose(module); - module = 0; -#endif - } -} - -typedef void (*PFNVOID)(); - -static PFNVOID delay_load(const char* proc, PFNVOID* ppfn) -{ - if (pcapdelay_load() && proc && ppfn && !*ppfn) - { -#ifdef WIN32 - *ppfn = (PFNVOID)GetProcAddress(module, proc); -#elif __linux__ - *ppfn = (PFNVOID)dlsym(module, proc); -#endif - } - if (ppfn) - return *ppfn; - else - return 0; -} - -void pcapdelay_freealldevs(pcap_if_t* a0) -{ - typedef void (*PFN)(pcap_if_t*); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_freealldevs", (PFNVOID*)&pfn))) - (*pfn)(a0); -} - -pcap_t* pcapdelay_open_live(const char* a0, int a1, int a2, int a3, char* a4) -{ - typedef pcap_t* (*PFN)(const char*, int, int, int, char*); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_open_live", (PFNVOID*)&pfn))) - return (*pfn)(a0, a1, a2, a3, a4); - else - return 0; -} - -void pcapdelay_close(pcap_t* a0) -{ - typedef void (*PFN)(pcap_t*); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_close", (PFNVOID*)&pfn))) - (*pfn)(a0); -} - -int pcapdelay_findalldevs(pcap_if_t** a0, char* a1) -{ - typedef int (*PFN)(pcap_if_t**, char*); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_findalldevs", (PFNVOID*)&pfn))) - return (*pfn)(a0, a1); - else - return 0; -} - -int pcapdelay_datalink(pcap_t* a0) -{ - typedef int(*PFN)(pcap_t*); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_datalink", (PFNVOID*)&pfn))) - return (*pfn)(a0); - else - return 0; -} - -int pcapdelay_setnonblock(pcap_t* a0, int a1, char* a2) -{ - typedef int(*PFN)(pcap_t*, int, char*); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_setnonblock", (PFNVOID*)&pfn))) - return (*pfn)(a0, a1, a2); - else - return 0; -} - -int pcapdelay_sendpacket(pcap_t* a0, u_char* a1, int a2) -{ - typedef int(*PFN)(pcap_t*, u_char*, int); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_sendpacket", (PFNVOID*)&pfn))) - return (*pfn)(a0, a1, a2); - else - return 0; -} - -const u_char* pcapdelay_next(pcap_t* a0, struct pcap_pkthdr* a1) -{ - typedef const u_char*(*PFN)(pcap_t*, struct pcap_pkthdr*); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_next", (PFNVOID*)&pfn))) - return (*pfn)(a0, a1); - else - return 0; -} - -int pcapdelay_dispatch(pcap_t* a0, int a1, pcap_handler a2, u_char* a3) -{ - typedef const int(*PFN)(pcap_t *, int, pcap_handler, u_char *); - static PFN pfn = 0; - if ((pfn = (PFN)delay_load("pcap_dispatch", (PFNVOID*)&pfn))) - return (*pfn)(a0, a1, a2, a3); - else - return 0; -} \ No newline at end of file diff --git a/.svn/pristine/ef/ef0603e0dfedae5b98ae41a6269cf93572710282.svn-base b/.svn/pristine/ef/ef0603e0dfedae5b98ae41a6269cf93572710282.svn-base deleted file mode 100644 index 9702546..0000000 --- a/.svn/pristine/ef/ef0603e0dfedae5b98ae41a6269cf93572710282.svn-base +++ /dev/null @@ -1,119 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -typedef struct l2byte_st L2byte; -struct l2byte_st { - byte low; - byte hi; -}; - -typedef struct l3byte_st L3byte; -struct l3byte_st { - byte low; - byte hi; - byte higher; -}; - -typedef L2byte Block; - -typedef struct pro_time_st Pro_time; -struct pro_time_st { - byte times[4]; -}; - -typedef struct file_entry_st File_entry; -struct file_entry_st { - byte storage_type_name_len; - byte file_name[15]; -/* 0x10 */ - byte file_type; - Block key_pointer; -/* 0x13 */ - L2byte blocks_used; -/* 0x15 */ - L3byte eof; -/* 0x18 */ - Pro_time creation_time; -/* 0x1c */ - byte version; - byte min_version; -/* 0x1e */ - byte access; -/* 0x1f */ - L2byte aux_type; -/* 0x21 */ - Pro_time last_mod; -/* 0x25 */ - Block header_pointer; -}; - -STRUCT(Vol_hdr) { -/* 0x4 */ - byte storage_type_name_len; -/* 0x5 */ - byte vol_name[15]; -/* 0x14 */ - byte res1[8]; -/* 0x1c */ - Pro_time creation_time; -/* 0x20 */ - byte version; - byte min_version; - byte access; - byte entry_length; -/* 0x24 */ - byte entries_per_block; - L2byte file_count; -/* 0x27 */ - Block bit_map; -/* 0x29 */ - L2byte total_blocks; -}; - -typedef struct directory_st Directory; -struct directory_st { - Block prev_blk; - Block next_blk; - File_entry file_entries[13]; -}; - -STRUCT(ProDisk) { - int fd; - int total_blocks; - int size_bitmap_blocks; - int disk_bytes_left; - - int bitmap_bytes; - int bitmap_cur_pos; - byte *bitmap_ptr; - - int file_open; - File_entry *file_ptr; - int dir_blk_num; - int ind_blk_num; - int master_ind_blk_num; - byte dir_blk_data[512]; - byte ind_blk_data[512]; - byte master_ind_blk_data[512]; -}; - - -#include "prodos_protos.h" diff --git a/.svn/pristine/f1/f1ed9f4c8353063426e81ad475d4c480263f8c8d.svn-base b/.svn/pristine/f1/f1ed9f4c8353063426e81ad475d4c480263f8c8d.svn-base deleted file mode 100644 index 8f9a82a..0000000 --- a/.svn/pristine/f1/f1ed9f4c8353063426e81ad475d4c480263f8c8d.svn-base +++ /dev/null @@ -1,560 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2012 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* xdriver.c and macdriver.c and windriver.c */ -int x_show_alert(int is_fatal, const char *str); -int win_nonblock_read_stdin(int fd, char *bufptr, int len); -void x_dialog_create_gsport_conf(const char *str); -void update_color_array(int col_num, int a2_color); -void set_border_color(int val); -void x_update_physical_colormap(void); -void show_xcolor_array(void); -void x_auto_repeat_on(int must); -void install_text_colormap(void); -void set_border_color(int val); -void draw_status(int line_num, const char *string1); -void xdriver_end(void); -void dev_video_init(void); -void x_update_color(int col_num, int red, int green, int blue, word32 rgb); -void redraw_border(void); -void check_input_events(void); -void x_redraw_status_lines(void); -void x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy, int width, int height); -void x_push_done(); -void x_hide_pointer(int); -void x_get_kimage(Kimage *kimage_ptr); -void x_full_screen(int do_full); -void clipboard_paste(void); -int clipboard_get_char(void); - -/* test65.c */ -void do_gen_test(int got_num, int base_seed); - - -/* engine.s and engine_c.c */ -void fixed_memory_ptrs_init(); -void fixed_memory_ptrs_shut(); // OG Added shut to smoothly free up allocated memory -word32 get_itimer(void); - -word32 get_memory_c(word32 addr, int cycs); -word32 get_memory16_c(word32 addr, int cycs); -word32 get_memory24_c(word32 addr, int cycs); - -int get_memory_asm(word32 addr, int cycs); -int get_memory16_asm(word32 addr, int cycs); -int get_memory16_asm_fail(word32 addr, int cycs); -int get_memory_act_stub_asm(word32 addr, int cycs); -int get_memory16_act_stub_asm(word32 addr, int cycs); - -void set_memory_c(word32 addr, word32 val, int cycs); -void set_memory16_c(word32 addr, word32 val, int cycs); -void set_memory24_c(word32 addr, word32 val, int cycs); - -int enter_engine(Engine_reg *ptr); -void clr_halt_act(void); -void set_halt_act(int val); - -/* special scc_macdriver.c prototypes */ -int scc_serial_mac_init(int port); -void scc_serial_mac_change_params(int port); -void scc_serial_mac_fill_readbuf(int port, int space_left, double dcycs); -void scc_serial_mac_empty_writebuf(int port); - -/* special scc_windriver.c prototypes */ -int scc_serial_win_init(int port); -void scc_serial_win_change_params(int port); -void scc_serial_win_fill_readbuf(int port, int space_left, double dcycs); -void scc_serial_win_empty_writebuf(int port); - -/* special joystick_driver.c prototypes */ -void joystick_init(void); -void joystick_update(double dcycs); -void joystick_update_buttons(void); - - -/* END_HDR */ - -/* adb.c */ -void adb_init(void); -void adb_shut(); // OG Added adb_shut() -void adb_reset(void); -void adb_log(word32 addr, int val); -void show_adb_log(void); -void adb_error(void); -void adb_add_kbd_srq(void); -void adb_clear_kbd_srq(void); -void adb_add_data_int(void); -void adb_add_mouse_int(void); -void adb_clear_data_int(void); -void adb_clear_mouse_int(void); -void adb_send_bytes(int num_bytes, word32 val0, word32 val1, word32 val2); -void adb_send_1byte(word32 val); -void adb_response_packet(int num_bytes, word32 val); -void adb_kbd_reg0_data(int a2code, int is_up); -void adb_kbd_talk_reg0(void); -void adb_set_config(word32 val0, word32 val1, word32 val2); -void adb_set_new_mode(word32 val); -int adb_read_c026(void); -void adb_write_c026(int val); -void do_adb_cmd(void); -int adb_read_c027(void); -void adb_write_c027(int val); -int read_adb_ram(word32 addr); -void write_adb_ram(word32 addr, int val); -int adb_get_keypad_xy(int get_y); -int update_mouse(int x, int y, int button_states, int buttons_valid); -int mouse_read_c024(double dcycs); -void mouse_compress_fifo(double dcycs); -void adb_key_event(int a2code, int is_up); -word32 adb_read_c000(void); -word32 adb_access_c010(void); -word32 adb_read_c025(void); -int adb_is_cmd_key_down(void); -int adb_is_option_key_down(void); -void adb_increment_speed(void); -void adb_physical_key_update(int a2code, int is_up); -void adb_virtual_key_update(int a2code, int is_up); -void adb_all_keys_up(void); -void adb_kbd_repeat_off(void); - - -/* clock.c */ -double get_dtime(void); -int micro_sleep(double dtime); -void clk_bram_zero(void); -void clk_bram_set(int bram_num, int offset, int val); -void clk_calculate_bram_checksum(void); -void clk_setup_bram_version(void); -void clk_write_bram(FILE *fconf); -void update_cur_time(void); -void clock_update(void); -void clock_update_if_needed(void); -void clock_write_c034(word32 val); -void do_clock_data(void); - - -/* compile_time.c */ - - -/* config.c */ -void config_init_menus(Cfg_menu *menuptr); -void config_init(void); -void cfg_exit(void); -void cfg_toggle_config_panel(void); -void cfg_text_screen_dump(void); -void cfg_iwreset(void); -void cfg_get_tfe_name(void); -void cfg_inspect_maybe_insert_file(char *filename, int should_boot); -int cfg_guess_image_size(char *filename); -void config_vbl_update(int doit_3_persec); -void config_parse_option(char *buf, int pos, int len, int line); -void config_parse_bram(char *buf, int pos, int len); -void config_load_roms(void); -void config_parse_config_gsport_file(void); -Disk *cfg_get_dsk_from_slot_drive(int slot, int drive); -void config_generate_config_gsport_name(char *outstr, int maxlen, Disk *dsk, int with_extras); -void config_write_config_gsport_file(void); -void insert_disk(int slot, int drive, const char *name, int ejected, int force_size, const char *partition_name, int part_num); -void eject_named_disk(Disk *dsk, const char *name, const char *partition_name); -void eject_disk_by_num(int slot, int drive); -void eject_disk(Disk *dsk); -int cfg_get_fd_size(char *filename); -int cfg_partition_read_block(FILE *file, void *buf, int blk, int blk_size); -int cfg_partition_find_by_name_or_num(FILE *file, const char *partnamestr, int part_num, Disk *dsk); -int cfg_maybe_insert_disk(int slot, int drive, const char *namestr); -int cfg_stat(char *path, struct stat *sb); -int cfg_partition_make_list(char *filename, FILE *file); -void cfg_htab_vtab(int x, int y); -void cfg_home(void); -void cfg_cleol(void); -void cfg_putchar(int c); -void cfg_printf(const char *fmt, ...); -void cfg_print_num(int num, int max_len); -void cfg_get_disk_name(char *outstr, int maxlen, int type_ext, int with_extras); -void cfg_parse_menu(Cfg_menu *menuptr, int menu_pos, int highlight_pos, int change); -void cfg_get_base_path(char *pathptr, const char *inptr, int go_up); -void cfg_file_init(void); -void cfg_free_alldirents(Cfg_listhdr *listhdrptr); -void cfg_file_add_dirent(Cfg_listhdr *listhdrptr, const char *nameptr, int is_dir, int size, int image_start, int part_num); -int cfg_dirent_sortfn(const void *obj1, const void *obj2); -int cfg_str_match(const char *str1, const char *str2, int len); -void cfg_file_readdir(const char *pathptr); -char *cfg_shorten_filename(const char *in_ptr, int maxlen); -void cfg_fix_topent(Cfg_listhdr *listhdrptr); -void cfg_file_draw(void); -void cfg_partition_selected(void); -void cfg_file_update_ptr(char *str); -void cfg_file_selected(void); -void cfg_file_handle_key(int key); -void config_control_panel(void); - - -/* dis.c */ -int get_num(void); -void debugger_help(void); -void do_debug_intfc(void); -word32 dis_get_memory_ptr(word32 addr); -void show_one_toolset(FILE *toolfile, int toolnum, word32 addr); -void show_toolset_tables(word32 a2bank, word32 addr); -void set_bp(word32 addr); -void show_bp(void); -void delete_bp(word32 addr); -void do_blank(void); -void do_go(void); -void do_step(void); -void xam_mem(int count); -void show_hex_mem(int startbank, word32 start, int endbank, word32 end, int count); -int read_line(char *buf, int len); -void do_debug_list(void); -void dis_do_memmove(void); -void dis_do_pattern_search(void); -void dis_do_compare(void); -void do_debug_unix(void); -void do_debug_load(void); -int do_dis(FILE *outfile, word32 kpc, int accsize, int xsize, int op_provided, word32 instr); -void show_line(FILE *outfile, word32 kaddr, word32 operand, int size, char *string); -void halt_printf(const char *fmt, ...); -void halt2_printf(const char *fmt, ...); - - -/* scc.c */ -void scc_init(void); -void scc_reset(void); -void scc_hard_reset_port(int port); -void scc_reset_port(int port); -void scc_regen_clocks(int port); -void scc_port_init(int port); -void scc_try_to_empty_writebuf(int port, double dcycs); -void scc_try_fill_readbuf(int port, double dcycs); -void scc_update(double dcycs); -void do_scc_event(int type, double dcycs); -void show_scc_state(void); -void scc_log(int regnum, word32 val, double dcycs); -void show_scc_log(void); -word32 scc_read_reg(int port, double dcycs); -word16 scc_read_lad(int port); -void scc_write_reg(int port, word32 val, double dcycs); -void scc_maybe_br_event(int port, double dcycs); -void scc_evaluate_ints(int port); -void scc_maybe_rx_event(int port, double dcycs); -void scc_maybe_rx_int(int port, double dcycs); -void scc_clr_rx_int(int port); -void scc_handle_tx_event(int port, double dcycs); -void scc_maybe_tx_event(int port, double dcycs); -void scc_clr_tx_int(int port); -void scc_set_zerocnt_int(int port); -void scc_clr_zerocnt_int(int port); -void scc_add_to_readbuf(int port, word32 val, double dcycs); -void scc_add_to_readbufv(int port, double dcycs, const char *fmt, ...); -void scc_transmit(int port, word32 val, double dcycs); -void scc_add_to_writebuf(int port, word32 val, double dcycs); -word32 scc_read_data(int port, double dcycs); -void scc_write_data(int port, word32 val, double dcycs); - - -/* scc_socket_driver.c */ -void scc_socket_init(int port); -void scc_socket_maybe_open_incoming(int port, double dcycs); -void scc_socket_open_outgoing(int port, double dcycs); -void scc_socket_make_nonblock(int port, double dcycs); -void scc_socket_change_params(int port); -void scc_socket_close(int port, int full_close, double dcycs); -void scc_accept_socket(int port, double dcycs); -void scc_socket_telnet_reqs(int port, double dcycs); -void scc_socket_fill_readbuf(int port, int space_left, double dcycs); -void scc_socket_recvd_char(int port, int c, double dcycs); -void scc_socket_empty_writebuf(int port, double dcycs); -void scc_socket_modem_write(int port, int c, double dcycs); -void scc_socket_do_cmd_str(int port, double dcycs); -void scc_socket_send_modem_code(int port, int code, double dcycs); -void scc_socket_modem_hangup(int port, double dcycs); -void scc_socket_modem_connect(int port, double dcycs); -void scc_socket_modem_do_ring(int port, double dcycs); -void scc_socket_do_answer(int port, double dcycs); - -/* scc_imagewriter.c*/ -int scc_imagewriter_init(int port); -void scc_imagewriter_fill_readbuf(int port, int space_left, double dcycs); -void scc_imagewriter_empty_writebuf(int port, double dcycs); -void imagewriter_update(); - -/* scc_windriver.c */ - - -/* scc_macdriver.c */ - - -/* iwm.c */ -void iwm_init_drive(Disk *dsk, int smartport, int drive, int disk_525); -void disk_set_num_tracks(Disk *dsk, int num_tracks); -void iwm_init(void); -void iwm_shut(void); //OG -void iwm_reset(void); -void draw_iwm_status(int line, char *buf); -void iwm_flush_disk_to_unix(Disk *dsk); -void iwm_vbl_update(int doit_3_persec); -void iwm_show_stats(void); -void iwm_touch_switches(int loc, double dcycs); -void iwm_move_to_track(Disk *dsk, int new_track); -void iwm525_phase_change(int drive, int phase); -int iwm_read_status35(double dcycs); -void iwm_do_action35(double dcycs); -int iwm_read_c0ec(double dcycs); -int read_iwm(int loc, double dcycs); -void write_iwm(int loc, int val, double dcycs); -int iwm_read_enable2(double dcycs); -int iwm_read_enable2_handshake(double dcycs); -void iwm_write_enable2(int val, double dcycs); -int iwm_read_data(Disk *dsk, int fast_disk_emul, double dcycs); -void iwm_write_data(Disk *dsk, word32 val, int fast_disk_emul, double dcycs); -void sector_to_partial_nib(byte *in, byte *nib_ptr); -int disk_unnib_4x4(Disk *dsk); -int iwm_denib_track525(Disk *dsk, Trk *trk, int qtr_track, byte *outbuf); -int iwm_denib_track35(Disk *dsk, Trk *trk, int qtr_track, byte *outbuf); -int disk_track_to_unix(Disk *dsk, int qtr_track, byte *outbuf); -void show_hex_data(byte *buf, int count); -void disk_check_nibblization(Disk *dsk, int qtr_track, byte *buf, int size); -void disk_unix_to_nib(Disk *dsk, int qtr_track, int unix_pos, int unix_len, int nib_len); -void iwm_nibblize_track_nib525(Disk *dsk, Trk *trk, byte *track_buf, int qtr_track); -void iwm_nibblize_track_525(Disk *dsk, Trk *trk, byte *track_buf, int qtr_track); -void iwm_nibblize_track_35(Disk *dsk, Trk *trk, byte *track_buf, int qtr_track); -void disk_4x4_nib_out(Disk *dsk, word32 val); -void disk_nib_out(Disk *dsk, byte val, int size); -void disk_nib_end_track(Disk *dsk); -void iwm_show_track(int slot_drive, int track); -void iwm_show_a_track(Trk *trk); - - -/* joystick_driver.c */ - - -/* moremem.c */ -void moremem_init(); // OG Added moremem_init() -void fixup_brks(void); -void fixup_hires_on(void); -void fixup_bank0_2000_4000(void); -void fixup_bank0_0400_0800(void); -void fixup_any_bank_any_page(int start_page, int num_pages, byte *mem0rd, byte *mem0wr); -void fixup_intcx(void); -void fixup_wrdefram(int new_wrdefram); -void fixup_st80col(double dcycs); -void fixup_altzp(void); -void fixup_page2(double dcycs); -void fixup_ramrd(void); -void fixup_ramwrt(void); -void fixup_lcbank2(void); -void fixup_rdrom(void); -void set_statereg(double dcycs, int val); -void fixup_shadow_txt1(void); -void fixup_shadow_txt2(void); -void fixup_shadow_hires1(void); -void fixup_shadow_hires2(void); -void fixup_shadow_shr(void); -void fixup_shadow_iolc(void); -void update_shadow_reg(int val); -void fixup_shadow_all_banks(void); -void setup_pageinfo(void); -void show_bankptrs_bank0rdwr(void); -void show_bankptrs(int bnk); -void show_addr(byte *ptr); -int io_read(word32 loc, double *cyc_ptr); -void io_write(word32 loc, int val, double *cyc_ptr); -word32 get_lines_since_vbl(double dcycs); -int in_vblank(double dcycs); -int read_vid_counters(int loc, double dcycs); - - -/* paddles.c */ -void paddle_fixup_joystick_type(void); -void paddle_trigger(double dcycs); -void paddle_trigger_mouse(double dcycs); -void paddle_trigger_keypad(double dcycs); -void paddle_update_trigger_dcycs(double dcycs); -int read_paddles(double dcycs, int paddle); -void paddle_update_buttons(void); - - -/* sim65816.c */ -void show_pc_log(void); -word32 toolbox_debug_4byte(word32 addr); -void toolbox_debug_c(word32 xreg, word32 stack, double *cyc_ptr); -void show_toolbox_log(void); -word32 get_memory_io(word32 loc, double *cyc_ptr); -void set_memory_io(word32 loc, int val, double *cyc_ptr); -void show_regs_act(Engine_reg *eptr); -void show_regs(void); -void my_exit(int ret); -void do_reset(void); -void check_engine_asm_defines(void); -byte *memalloc_align(int size, int skip_amt, void **alloc_ptr); -void memory_ptr_init(void); -void memory_ptr_shut(void); // OG Added shut -int gsportmain(int argc, char **argv); -void load_roms_init_memory(void); -void load_roms_shut_memory(void); // OG Added shut -void gsport_expand_path(char *out_ptr, const char *in_ptr, int maxlen); -void setup_gsport_file(char *outname, int maxlen, int ok_if_missing, int can_create_file, const char **name_ptr); -void initialize_events(void); -void check_for_one_event_type(int type); -void add_event_entry(double dcycs, int type); -double remove_event_entry(int type); -void add_event_stop(double dcycs); -void add_event_doc(double dcycs, int osc); -void add_event_scc(double dcycs, int type); -void add_event_vbl(void); -void add_event_vid_upd(int line); -double remove_event_doc(int osc); -double remove_event_scc(int type); -void show_all_events(void); -void show_pmhz(void); -void setup_zip_speeds(void); -void run_prog(void); -void add_irq(word32 irq_mask); -void remove_irq(word32 irq_mask); -void take_irq(int is_it_brk); -void show_dtime_array(void); -void update_60hz(double dcycs, double dtime_now); -void do_vbl_int(void); -void do_scan_int(double dcycs, int line); -void check_scan_line_int(double dcycs, int cur_video_line); -void check_for_new_scan_int(double dcycs); -void init_reg(void); -void handle_action(word32 ret); -void do_break(word32 ret); -void do_cop(word32 ret); -void do_wdm(word32 arg); -void do_wai(void); -void do_stp(void); -void size_fail(int val, word32 v1, word32 v2); -int fatal_printf(const char *fmt, ...); -int gsport_vprintf(const char *fmt, va_list ap); -void must_write(int fd, char *bufptr, int len); -void clear_fatal_logs(void); -char *gsport_malloc_str(char *in_str); - - -/* smartport.c */ -void smartport_error(void); -void smartport_log(word32 start_addr, int cmd, int rts_addr, int cmd_list); -void do_c70d(word32 arg0); -void do_c70a(word32 arg0); -int do_read_c7(int unit_num, word32 buf, int blk); -int do_write_c7(int unit_num, word32 buf, int blk); -int do_format_c7(int unit_num); -void do_c700(word32 ret); - - -/* sound.c */ -void doc_log_rout(char *msg, int osc, double dsamps, int etc); -void show_doc_log(void); -void sound_init(void); -void sound_init_general(void); -void parent_sound_get_sample_rate(int read_fd); -void set_audio_rate(int rate); -void sound_reset(double dcycs); -void sound_shutdown(void); -void sound_update(double dcycs); -void open_sound_file(void); -void close_sound_file(void); -void check_for_range(word32 *addr, int num_samps, int offset); -void send_sound_to_file(word32 *addr, int shm_pos, int num_samps); -void send_sound(int real_samps, int size); -void show_c030_state(void); -void show_c030_samps(int *outptr, int num); -void sound_play(double dsamps); -void doc_handle_event(int osc, double dcycs); -void doc_sound_end(int osc, int can_repeat, double eff_dsamps, double dsamps); -void add_sound_irq(int osc); -void remove_sound_irq(int osc, int must); -void start_sound(int osc, double eff_dsamps, double dsamps); -void wave_end_estimate(int osc, double eff_dsamps, double dsamps); -void remove_sound_event(int osc); -void doc_write_ctl_reg(int osc, int val, double dsamps); -void doc_recalc_sound_parms(int osc, double eff_dcycs, double dsamps); -int doc_read_c030(double dcycs); -int doc_read_c03c(double dcycs); -int doc_read_c03d(double dcycs); -void doc_write_c03c(int val, double dcycs); -void doc_write_c03d(int val, double dcycs); -void doc_show_ensoniq_state(int osc); - - -/* sound_driver.c */ -void reliable_buf_write(word32 *shm_addr, int pos, int size); -void reliable_zero_write(int amt); -void child_sound_loop(int read_fd, int write_fd, word32 *shm_addr); -void child_sound_playit(word32 tmp); - - -/* video.c */ -void video_init(void); -void show_a2_line_stuff(void); -void video_reset(void); -void video_update(void); -int video_all_stat_to_line_stat(int line, int new_all_stat); -int *video_update_kimage_ptr(int line, int new_stat); -void change_a2vid_palette(int new_palette); -void check_a2vid_palette(void); -void change_display_mode(double dcycs); -void video_update_all_stat_through_line(int line); -void change_border_color(double dcycs, int val); -void update_border_info(void); -void update_border_line(int st_line_offset, int end_line_offset, int color); -void video_border_pixel_write(Kimage *kimage_ptr, int starty, int num_lines, word32 val, int st_off, int end_off); -void redraw_changed_text_40(int start_offset, int start_line, int num_lines, int reparse, byte *screen_data, int altcharset, int bg_val, int fg_val, int pixels_per_line); -void redraw_changed_text_80(int start_offset, int start_line, int num_lines, int reparse, byte *screen_data, int altcharset, int bg_val, int fg_val, int pixels_per_line); -void redraw_changed_gr(int start_offset, int start_line, int num_lines, int reparse, byte *screen_data, int pixels_per_line); -void redraw_changed_dbl_gr(int start_offset, int start_line, int num_lines, int reparse, byte *screen_data, int pixels_per_line); -void redraw_changed_hires(int start_offset, int start_line, int num_lines, int color, int reparse, byte *screen_data, int pixels_per_line); -void redraw_changed_hires_bw(int start_offset, int start_line, int num_lines, int reparse, byte *screen_data, int pixels_per_line); -void redraw_changed_hires_color(int start_offset, int start_line, int num_lines, int reparse, byte *screen_data, int pixels_per_line); -void redraw_changed_dbl_hires(int start_offset, int start_line, int num_lines, int color, int reparse, byte *screen_data, int pixels_per_line); -void redraw_changed_dbl_hires_bw(int start_offset, int start_line, int num_lines, int reparse, byte *screen_data, int pixels_per_line); -void redraw_changed_dbl_hires_color(int start_offset, int start_line, int num_lines, int reparse, byte *screen_data, int pixels_per_line); -int video_rebuild_super_hires_palette(word32 scan_info, int line, int reparse); -void redraw_changed_super_hires(int start_offset, int start_line, int num_lines, int in_reparse, byte *screen_data); -void display_screen(void); -void video_update_event_line(int line); -void video_check_input_events(void); -void video_update_through_line(int line); -void video_refresh_lines(int st_line, int num_lines, int must_reparse); -void refresh_border(void); -void end_screen(void); -void read_a2_font(void); -void video_get_kimage(Kimage *kimage_ptr, int extend_info, int depth, int mdepth); -void video_get_kimages(void); -void video_convert_kimage_depth(Kimage *kim_in, Kimage *kim_out, int startx, int starty, int width, int height); -void video_push_lines(Kimage *kimage_ptr, int start_line, int end_line, int left_pix, int right_pix); -void video_push_border_sides_lines(int src_x, int dest_x, int width, int start_line, int end_line); -void video_push_border_sides(void); -void video_push_border_special(void); -void video_push_kimages(void); -void video_update_color_raw(int col_num, int a2_color); -void video_update_color_array(int col_num, int a2_color); -void video_update_colormap(void); -void video_update_status_line(int line, const char *string); -void video_show_debug_info(void); -word32 float_bus(double dcycs); - -/*parallel.c*/ -byte parallel_read(word16 paddr); -void parallel_write(word16 paddr, byte pvar); -void printer_update(); diff --git a/.svn/pristine/f3/f331807d1a0471d21b960d01683808527a53c958.svn-base b/.svn/pristine/f3/f331807d1a0471d21b960d01683808527a53c958.svn-base deleted file mode 100644 index 650b743..0000000 --- a/.svn/pristine/f3/f331807d1a0471d21b960d01683808527a53c958.svn-base +++ /dev/null @@ -1,58 +0,0 @@ -/* -GSport - an Apple //gs Emulator -Copyright (C) 2013-2014 by Peter Neubauer - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2 of the License, or (at your -option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with this program; if not, write to the Free Software Foundation, Inc., -59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -struct packet_t -{ - struct at_addr_t dest; - struct at_addr_t source; - byte type; - size_t size; - byte* data; - struct packet_t* next; -}; - -struct packet_queue_t -{ - struct packet_t* head; - struct packet_t* tail; -}; - -void queue_init(struct packet_queue_t* queue); -void queue_shutdown(struct packet_queue_t* queue); - -void enqueue(struct packet_queue_t* queue, struct at_addr_t dest, struct at_addr_t source, byte type, size_t size, byte data[]); -void enqueue_packet(struct packet_queue_t* queue, struct packet_t* packet); - -struct packet_t* dequeue(struct packet_queue_t* queue); -struct packet_t* queue_peek(struct packet_queue_t* queue); - -// Insert the packet at the head of the queue, contrary to normal FIFO operation. -void insert(struct packet_queue_t* queue, struct at_addr_t dest, struct at_addr_t source, byte type, size_t size, byte data[]); -void insert_packet(struct packet_queue_t* queue, struct packet_t* packet); - - - -struct packet_port_t -{ - struct packet_queue_t in; - struct packet_queue_t out; -}; - -void port_init(struct packet_port_t* port); -void port_shutdown(struct packet_port_t* port); \ No newline at end of file diff --git a/.svn/pristine/f3/f34693314bc52a030d6308b9b2b6d51bb76a2940.svn-base b/.svn/pristine/f3/f34693314bc52a030d6308b9b2b6d51bb76a2940.svn-base deleted file mode 100644 index 210281a757f465a3fe19dbb9fb26dbc680ae8d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77838 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%0D5^S05L!K7R3vd3`Uq3_fz&Q+wL#`z9&$d#fZe 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 -#include -#include -#else -#include -#include -#include -#define ENABLEQD -#endif - -#include "defc.h" -#include "protos_macdriver.h" - -pascal OSStatus quit_event_handler(EventHandlerCallRef call_ref, EventRef event, void *ignore); -pascal OSStatus my_cmd_handler(EventHandlerCallRef handlerRef, EventRef event, void *userdata); -pascal OSStatus my_win_handler(EventHandlerCallRef handlerRef, EventRef event, void *userdata); -pascal OSStatus dummy_event_handler(EventHandlerCallRef call_ref, EventRef in_event, void *ignore); - - -int g_quit_seen = 0; - -#define MAX_STATUS_LINES 7 -#define X_LINE_LENGTH 88 -#define MAX_MAC_ARGS 128 - -int g_mac_argc = 0; -char *g_mac_argv[MAX_MAC_ARGS]; - -extern char g_argv0_path[]; -extern char *g_status_ptrs[MAX_STATUS_LINES]; -extern const char g_gsport_version_str[]; - -extern int g_warp_pointer; - -extern WindowRef g_main_window; -WindowRef g_main_window_saved; -EventHandlerUPP g_quit_handler_UPP; -EventHandlerUPP g_dummy_event_handler_UPP; -RgnHandle g_event_rgnhandle = 0; -FMFontFamily g_status_font_family; - - -extern word32 g_red_mask; -extern word32 g_green_mask; -extern word32 g_blue_mask; -extern int g_red_left_shift; -extern int g_green_left_shift; -extern int g_blue_left_shift; -extern int g_red_right_shift; -extern int g_green_right_shift; -extern int g_blue_right_shift; - - -int g_ignore_next_click = 0; - -int g_mainwin_active = 0; -int g_mac_mouse_x = 0; -int g_mac_mouse_y = 0; - -extern int g_video_act_width; -extern int g_video_act_height; -extern int g_video_act_margin_left; -extern int g_video_act_margin_right; -extern int g_video_act_margin_top; -extern int g_video_act_margin_bottom; -extern int g_screen_depth; -extern int g_force_depth; - -extern int g_screen_mdepth; - -Ptr g_mac_fullscreen_state = 0; -Rect g_main_window_saved_rect; - -extern char *g_fatal_log_strs[]; -extern int g_fatal_log; - -int -x_show_alert(int is_fatal, const char *str) -{ - DialogRef alert; - DialogItemIndex out_item_hit; - CFStringRef cfstrref, cfstrref2; - CFStringRef okstrref; - AlertStdCFStringAlertParamRec alert_param; - OSStatus osstat; - char *bufptr, *buf2ptr; - int sum, len; - int i; - - /* The dialog eats all events--including key-up events */ - /* Call adb_all_keys_up() to prevent annoying key-repeat problems */ - /* for instance, a key-down causes a dialog to appear--and the */ - /* eats the key-up event...then as soon as the dialog goes, adb.c */ - /* auto-repeat will repeat the key, and the dialog re-appears...*/ - adb_all_keys_up(); - - sum = 20; - for(i = 0; i < g_fatal_log; i++) { - sum += strlen(g_fatal_log_strs[i]); - } - bufptr = (char*)malloc(sum); - buf2ptr = bufptr; - for(i = 0; i < g_fatal_log; i++) { - len = strlen(g_fatal_log_strs[i]); - len = MIN(len, sum); - len = MAX(len, 0); - memcpy(bufptr, g_fatal_log_strs[i], MIN(len, sum)); - bufptr += len; - bufptr[0] = 0; - sum = sum - len; - } - - cfstrref = CFStringCreateWithCString(NULL, buf2ptr, - kCFStringEncodingMacRoman); - - printf("buf2ptr: :%s:\n", buf2ptr); - - osstat = GetStandardAlertDefaultParams(&alert_param, - kStdCFStringAlertVersionOne); - - if(str) { - // Provide an extra option--create a file - cfstrref2 = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, - CFSTR("Create ./%s"), str); - alert_param.otherText = cfstrref2; - } - okstrref = CFSTR("Click OK to continue"); - if(is_fatal) { - okstrref = CFSTR("Click OK to exit GSport"); - } - CreateStandardAlert(kAlertStopAlert, cfstrref, okstrref, - &alert_param, &alert); - out_item_hit = -1; - RunStandardAlert(alert, NULL, &out_item_hit); - printf("out_item_hit: %d\n", out_item_hit); - free(buf2ptr); - - clear_fatal_logs(); /* free the fatal_log string memory */ - return (out_item_hit >= 3); - -} - - - -pascal OSStatus -quit_event_handler(EventHandlerCallRef call_ref, EventRef event, void *ignore) -{ - OSStatus err; - - err = CallNextEventHandler(call_ref, event); - if(err == noErr) { - g_quit_seen = 1; - } - return err; -} - -void -show_simple_alert(char *str1, char *str2, char *str3, int num) -{ - char buf[256]; - - g_fatal_log_strs[0] = gsport_malloc_str(str1); - g_fatal_log_strs[1] = gsport_malloc_str(str2); - g_fatal_log_strs[2] = gsport_malloc_str(str3); - g_fatal_log = 3; - if(num != 0) { - snprintf(buf, 250, ": %d", num); - g_fatal_log_strs[g_fatal_log++] = gsport_malloc_str(buf); - } - x_show_alert(0, 0); -} - -void -x_dialog_create_gsport_conf(const char *str) -{ - char *path; - char tmp_buf[512]; - int ret; - - ret = x_show_alert(1, str); - if(ret) { - config_write_config_gsport_file(); - } -} - - -pascal OSStatus -my_cmd_handler( EventHandlerCallRef handlerRef, EventRef event, void *userdata) -{ - OSStatus osresult; - HICommand command; - word32 command_id; - - osresult = eventNotHandledErr; - - GetEventParameter(event, kEventParamDirectObject, typeHICommand, NULL, - sizeof(HICommand), NULL, &command); - - command_id = (word32)command.commandID; - switch(command_id) { - case 'Kbep': - SysBeep(10); - osresult = noErr; - break; - case 'abou': - show_simple_alert("GSport v", (char *)g_gsport_version_str, - "\nCopyright 2010 - 2011 GSport Contributors\n" - "Latest version at http://gsport.sourceforge.net/\n", 0); - osresult = noErr; - break; - case 'KCFG': -#ifdef ACTIVEGS -#else - cfg_toggle_config_panel(); -#endif - osresult = noErr; - break; - case 'quit': - break; - case 'swin': - /* not sure what this is, but Panther sends it */ - break; - default: - printf("commandID %08x unknown\n", command_id); - SysBeep(90); - break; - } - return osresult; -} - - - -pascal OSStatus -my_win_handler(EventHandlerCallRef handlerRef, EventRef event, void *userdata) -{ - OSStatus os_result; - UInt32 event_kind; - - os_result = eventNotHandledErr; - - // SysBeep(1); - - event_kind = GetEventKind(event); - // show_alert("win handler", event_kind); - if(event_kind == kEventWindowDrawContent) - { - update_window(); - } if(event_kind == kEventWindowClose) { - - // OG Use HALT_WANTTOQUIT pardigme - //g_quit_sim_now = 1; - set_halt_act(HALT_WANTTOQUIT); - -#ifndef ACTIVEGS - g_quit_seen = 1; - my_exit(0); -#endif - } else { - //show_event(GetEventClass(event), event_kind, 0); - update_window(); - } - - return os_result; -} - - -pascal OSStatus -dummy_event_handler(EventHandlerCallRef call_ref, EventRef in_event, - void *ignore) -{ - OSStatus err; - EventHandlerRef installed_handler; - EventTypeSpec event_spec = { kEventClassApplication, kEventAppQuit }; - - // From http://developer.apple.com/qa/qa2001/qa1061.html - // Trick to move main event queue to use ReceiveNextEvent in an event - // handler called by RunApplicationEventLoop - - err = InstallApplicationEventHandler(g_quit_handler_UPP, 1, &event_spec, - NULL, &installed_handler); - - gsportmain(g_mac_argc, g_mac_argv); - - return noErr; -} - - - -void -check_input_events() -{ - OSStatus err; - EventTargetRef target; - EventRef event; - UInt32 event_class, event_kind; - byte mac_keycode; - UInt32 keycode; - UInt32 modifiers; - Point mouse_point, mouse_delta_point; - WindowRef window_ref; - int button, button_state; - EventMouseButton mouse_button; - int handled; - int mouse_events; - int is_up; - int in_win; - int ignore; - - if(g_quit_seen) { - exit(0); - } - - SetPortWindowPort(g_main_window); - - mouse_events = 0; - target = GetEventDispatcherTarget(); - while(1) { - err = ReceiveNextEvent(0, NULL, kEventDurationNoWait, - true, &event); - - if(err == eventLoopTimedOutErr) { - break; - } - if(err != noErr) { - printf("ReceiveNextEvent err: %d\n", (int)err); - break; - } - - event_class = GetEventClass(event); - event_kind = GetEventKind(event); - handled = 0; - switch(event_class) { - case kEventClassKeyboard: - handled = 1; - keycode = 0; - modifiers = 0; - GetEventParameter(event, kEventParamKeyMacCharCodes, - typeChar, NULL, sizeof(byte), NULL, - &mac_keycode); - GetEventParameter(event, kEventParamKeyCode, - typeUInt32, NULL, sizeof(UInt32), NULL, - &keycode); - GetEventParameter(event, kEventParamKeyModifiers, - typeUInt32, NULL, sizeof(UInt32), NULL, - &modifiers); - - mac_update_modifiers((word32)modifiers); - - // Key up/down event - is_up = -1; - switch(event_kind) { - case kEventRawKeyDown: - is_up = 0; - //printf("key down: %02x, %08x\n", - // (int)mac_keycode, (int)keycode); - break; - case kEventRawKeyUp: - is_up = 1; - //printf("key up: %02x, %08x\n", - // (int)mac_keycode, (int)keycode); - break; - case kEventRawKeyModifiersChanged: - is_up = -1; - //printf("key xxx: %08x\n", (int)modifiers); - break; - } - if(is_up >= 0) { - adb_physical_key_update((int)keycode, is_up); - } - break; - case kEventClassMouse: - handled = 2; - mouse_events++; - GetEventParameter(event, kEventParamMouseLocation, - typeQDPoint, NULL, sizeof(Point), NULL, - &mouse_point); - GetWindowRegion(g_main_window, kWindowContentRgn, - g_event_rgnhandle); - in_win = PtInRgn(mouse_point, g_event_rgnhandle); - // in_win = 1 if it was in the contect region of window - err = GetEventParameter(event, kEventParamMouseDelta, - typeQDPoint, NULL, sizeof(Point), NULL, - &mouse_delta_point); - button = 0; - button_state = -1; - switch(event_kind) { - case kEventMouseDown: - button_state = 7; - handled = 3; - break; - case kEventMouseUp: - button_state = 0; - handled = 3; - break; - } - if(button_state >= 0) { - GetEventParameter(event, kEventParamMouseButton, - typeMouseButton, NULL, - sizeof(EventMouseButton), NULL, - &mouse_button); - button = mouse_button; - if(button > 1) { - button = 4 - button; - button = 1 << button; - } - ignore = (button_state != 0) && - (!in_win || g_ignore_next_click); - ignore = ignore || !g_mainwin_active; - if(ignore) { - // Outside of A2 window, ignore clicks - button = 0; - } - if(button_state == 0) { - g_ignore_next_click = 0; - } - } - - GlobalToLocal(&mouse_point); - - if(g_warp_pointer) { - if(err == 0) { - g_mac_mouse_x += mouse_delta_point.h; - g_mac_mouse_y += mouse_delta_point.v; - } - mac_warp_mouse(); - } else { - g_mac_mouse_x = mouse_point.h - - g_video_act_margin_left; - g_mac_mouse_y = mouse_point.v - - g_video_act_margin_top; - } - -#if 0 - printf("Mouse %d at: %d,%d button:%d, button_st:%d\n", - mouse_events, g_mac_mouse_x, g_mac_mouse_y, - button, button_state); - printf("Mouse deltas: err:%d, %d,%d\n", (int)err, - mouse_delta_point.h, mouse_delta_point.v); -#endif - - update_mouse(g_mac_mouse_x, g_mac_mouse_y, - button_state, button & 7); - if(g_warp_pointer) { - g_mac_mouse_x = A2_WINDOW_WIDTH/2; - g_mac_mouse_y = A2_WINDOW_HEIGHT/2; - update_mouse(g_mac_mouse_x, g_mac_mouse_y,0,-1); - } - break; - case kEventClassApplication: - switch(event_kind) { - case kEventAppActivated: - handled = 1; - g_mainwin_active = 1; - window_ref = 0; - GetEventParameter(event, kEventParamWindowRef, - typeWindowRef, NULL, sizeof(WindowRef), - NULL, &window_ref); - if(window_ref == g_main_window) { - g_ignore_next_click = 1; - } - break; - case kEventAppDeactivated: - handled = 1; - g_mainwin_active = 0; - g_ignore_next_click = 1; - break; - } - break; - } - // show_event(event_class, event_kind, handled); - if(handled != 1) { - (void)SendEventToEventTarget(event, target); - } - ReleaseEvent(event); - } - - return; -} - -void -temp_run_application_event_loop(void) -{ - OSStatus err; - EventRef dummy_event; - EventHandlerRef install_handler; - EventTypeSpec event_spec = { 'KWIN', 'KWIN' }; - - // Create UPP for dummy_event_handler and for quit_event_handler - err = noErr; - dummy_event = 0; - - g_dummy_event_handler_UPP = NewEventHandlerUPP(dummy_event_handler); - g_quit_handler_UPP = NewEventHandlerUPP(quit_event_handler); - if((g_dummy_event_handler_UPP == 0) || (g_quit_handler_UPP == 0)) { - err = memFullErr; - } - - if(err == noErr) { - err = InstallApplicationEventHandler(g_dummy_event_handler_UPP, - 1, &event_spec, 0, &install_handler); - if(err == noErr) { - err = MacCreateEvent(NULL, 'KWIN', 'KWIN', - GetCurrentEventTime(), kEventAttributeNone, - &dummy_event); - if(err == noErr) { - err = PostEventToQueue(GetMainEventQueue(), - dummy_event, kEventPriorityHigh); - } - if(err == noErr) { - RunApplicationEventLoop(); - } - - (void)RemoveEventHandler(install_handler); - } - } - - if(dummy_event != NULL) { - ReleaseEvent(dummy_event); - } -} - - - -int -#ifdef ACTIVEGS -macmain -#else -main -#endif -(int argc, char* argv[]) -{ - ProcessSerialNumber my_psn; - - IBNibRef nibRef; - EventHandlerUPP handlerUPP; - EventTypeSpec cmd_event[3]; - GDHandle g_gdhandle ; - Rect win_rect; - OSStatus err; - char *argptr; - int slash_cnt; - int i; - -#ifndef ACTIVEGS - /* Prepare argv0 */ - slash_cnt = 0; - argptr = argv[0]; - for(i = strlen(argptr); i >= 0; i--) { - if(argptr[i] == '/') { - slash_cnt++; - if(slash_cnt == 3) { - strncpy(&(g_argv0_path[0]), argptr, i); - g_argv0_path[i] = 0; - } - } - } - - printf("g_argv0_path is %s\n", g_argv0_path); - - g_mac_argv[0] = argv[0]; - g_mac_argc = 1; - i = 1; - while((i < argc) && (g_mac_argc < MAX_MAC_ARGS)) { - if(!strncmp(argv[i], "-psn", 4)) { - /* skip this argument */ - } else { - g_mac_argv[g_mac_argc++] = argv[i]; - } - i++; - } -#endif - - InitCursor(); - g_event_rgnhandle = NewRgn(); - g_status_font_family = FMGetFontFamilyFromName("\pCourier"); - - SetRect(&win_rect, 0, 0, X_A2_WINDOW_WIDTH, X_A2_WINDOW_HEIGHT - // OG Remove status line from ActiveGS window -#ifndef ACTIVEGS - + MAX_STATUS_LINES*16 + 8 -#endif - ); - OffsetRect(&win_rect, 64, 50); - - - // Create a Nib reference passing the name of the nib file - // CreateNibReference only searches into the application bundle. - err = CreateNibReference(CFSTR("main"), &nibRef); - require_noerr( err, CantGetNibRef ); - // Once the nib reference is created, set the menu bar. - err = SetMenuBarFromNib(nibRef, CFSTR("MenuBar")); - require_noerr( err, CantSetMenuBar ); - - -#ifndef ACTIVEGS - err = CreateNewWindow(kDocumentWindowClass, - kWindowStandardDocumentAttributes | - kWindowStandardHandlerAttribute, - &win_rect, &g_main_window); - - err = SetWindowTitleWithCFString(g_main_window, CFSTR("GSport")); -#else - err = CreateNewWindow(kDocumentWindowClass, - (kWindowCloseBoxAttribute /*| kWindowFullZoomAttribute */| kWindowCollapseBoxAttribute /*| kWindowResizableAttribute*/) /*kWindowStandardDocumentAttributes*/ | - kWindowStandardHandlerAttribute, - &win_rect, &g_main_window); - extern CFStringRef activeGSversionSTR; - err = SetWindowTitleWithCFString(g_main_window, activeGSversionSTR); -#endif - - //printf("CreateNewWindow ret: %d, g_main_window: %p\n", (int)err, g_main_window); - - - // We don't need the nib reference anymore. - DisposeNibReference(nibRef); - - SysBeep(120); - - handlerUPP = NewEventHandlerUPP( my_cmd_handler ); - - cmd_event[0].eventClass = kEventClassCommand; - cmd_event[0].eventKind = kEventProcessCommand; - InstallWindowEventHandler(g_main_window, handlerUPP, 1, &cmd_event[0], - (void *)g_main_window, NULL); - - handlerUPP = NewEventHandlerUPP(my_win_handler); - cmd_event[0].eventClass = kEventClassWindow; - cmd_event[0].eventKind = kEventWindowDrawContent; - cmd_event[1].eventClass = kEventClassWindow; - cmd_event[1].eventKind = kEventWindowUpdate; - cmd_event[2].eventClass = kEventClassWindow; - cmd_event[2].eventKind = kEventWindowClose; - err = InstallWindowEventHandler(g_main_window, handlerUPP, 3, - &cmd_event[0], (void *)g_main_window, NULL); - require_noerr(err, CantCreateWindow); - - // Get screen depth - g_gdhandle = GetGDevice(); - g_screen_mdepth = (**((**g_gdhandle).gdPMap)).pixelSize; - - g_screen_depth = g_screen_mdepth; - - if(g_screen_depth > 16) { - /* 32-bit display */ - g_red_mask = 0xff; - g_green_mask = 0xff; - g_blue_mask = 0xff; - - /* - if (macUsingCoreGraphics) - { - g_red_left_shift = 0; - g_green_left_shift = 8; - g_blue_left_shift = 16; - } - else - */ - { - g_red_left_shift = 16; - g_green_left_shift = 8; - g_blue_left_shift = 0; - - } - - g_red_right_shift = 0; - g_green_right_shift = 0; - g_blue_right_shift = 0; - } else if(g_screen_depth > 8) { - /* 16-bit display */ - g_red_mask = 0x1f; - g_green_mask = 0x1f; - g_blue_mask = 0x1f; - g_red_left_shift = 10; - g_green_left_shift = 5; - g_blue_left_shift = 0; - g_red_right_shift = 3; - g_green_right_shift = 3; - g_blue_right_shift = 3; - } - - // show_alert("About to show window", (int)g_main_window); - update_main_window_size(); - - update_window(); - - - // The window was created hidden so show it. - ShowWindow( g_main_window ); - BringToFront( g_main_window ); - - update_window(); - - // Make us pop to the front a different way - err = GetCurrentProcess(&my_psn); - if(err == noErr) { - (void)SetFrontProcess(&my_psn); - } - - // Call the event loop - temp_run_application_event_loop(); - - -CantCreateWindow: -CantSetMenuBar: -CantGetNibRef: - show_simple_alert("ending", "", "error code", err); - return err; -} - -void -xdriver_end() -{ - - printf("xdriver_end\n"); - - if(g_fatal_log >= 0) { - x_show_alert(1, 0); - } -} - - -void -x_redraw_status_lines() -{ - // OG Disable status line -#ifndef ACTIVEGS - Rect rect; - Pattern white_pattern; - char tmp_buf[256]; - char *buf; - int len; - int line; - int height; - int margin; - - SetPortWindowPort(g_main_window); - PenNormal(); - height = 16; - margin = 0; - TextFont(g_status_font_family); - TextFace(normal); - TextSize(12); - - SetRect(&rect, 0, X_A2_WINDOW_HEIGHT + margin, X_A2_WINDOW_WIDTH, - X_A2_WINDOW_HEIGHT + margin + MAX_STATUS_LINES*height); - GetQDGlobalsWhite(&white_pattern); - FillRect(&rect, &white_pattern); - - for(line = 0; line < MAX_STATUS_LINES; line++) { - buf = g_status_ptrs[line]; - if(buf == 0) { - /* skip it */ - continue; - } - MoveTo(10, X_A2_WINDOW_HEIGHT + height*line + margin + height); - len = MIN(250, strlen(buf)); - strncpy(&tmp_buf[1], buf, len); - tmp_buf[0] = len; - DrawString((const unsigned char*)&tmp_buf[0]); - } -#endif -} - -void -x_full_screen(int do_full) -{ - -#if 0 - WindowRef new_window; - short width, height; - OSErr ret; - - width = 640; - height = 480; - if(do_full && (g_mac_fullscreen_state == 0)) { - g_main_window_saved = g_main_window; - - GetWindowBounds(g_main_window, kWindowContentRgn, - &g_main_window_saved_rect); - ret = BeginFullScreen(&g_mac_fullscreen_state, 0, - &width, &height, &new_window, 0, 0); - printf("Ret beginfullscreen: %d\n", (int)ret); - printf("New width: %d, new height: %d\n", width, height); - if(ret == noErr) { - g_main_window = new_window; - } else { - g_mac_fullscreen_state = 0; - } - } else if(!do_full && (g_mac_fullscreen_state != 0)) { - ret = EndFullScreen(g_mac_fullscreen_state, 0); - printf("ret endfullscreen: %d\n", (int)ret); - g_main_window = g_main_window_saved; - g_mac_fullscreen_state = 0; - //InitCursor(); - SetWindowBounds(g_main_window, kWindowContentRgn, - &g_main_window_saved_rect); - } - - update_main_window_size(); - - ShowWindow(g_main_window); - BringToFront(g_main_window); - update_window(); -#endif -} - - -void -x_push_done() -{ - - CGrafPtr window_port; - - SetPortWindowPort(g_main_window); - window_port = GetWindowPort(g_main_window); - - QDFlushPortBuffer(window_port, 0); - -} - -void -mac_warp_mouse() -{ -#ifndef ACTIVEGS - Rect port_rect; - Point win_origin_pt; - CGPoint cgpoint; - CGDisplayErr cg_err; - - GetPortBounds(GetWindowPort(g_main_window), &port_rect); - SetPt(&win_origin_pt, port_rect.left, port_rect.top); - LocalToGlobal(&win_origin_pt); - - cgpoint = CGPointMake( (float)(win_origin_pt.h + X_A2_WINDOW_WIDTH/2), - (float)(win_origin_pt.v + X_A2_WINDOW_HEIGHT/2)); - cg_err = CGDisplayMoveCursorToPoint(kCGDirectMainDisplay, cgpoint); -#endif -} diff --git a/.svn/pristine/f8/f84aba256d5e3010a44054e29096f7b6f3044600.svn-base b/.svn/pristine/f8/f84aba256d5e3010a44054e29096f7b6f3044600.svn-base deleted file mode 100644 index 0bba913df36cba12bdebb27eccf70ccea2a208f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 RcmZSdVR*nW3Px-Q003Ds0WJUl diff --git a/.svn/pristine/fa/fa482e6c28fb8dfcdaaf201592e770e7b73578ea.svn-base b/.svn/pristine/fa/fa482e6c28fb8dfcdaaf201592e770e7b73578ea.svn-base deleted file mode 100644 index 86c99a5..0000000 --- a/.svn/pristine/fa/fa482e6c28fb8dfcdaaf201592e770e7b73578ea.svn-base +++ /dev/null @@ -1,1922 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2013 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* adb_mode bit 3 and bit 2 (faster repeats for arrows and space/del) not done*/ - -#include "adb.h" - -int g_fullscreen = 0; - -extern int Verbose; -extern word32 g_vbl_count; -extern int g_num_lines_prev_superhires640; -extern int g_num_lines_prev_superhires; -extern int g_rom_version; -extern int g_fast_disk_emul; -extern int g_limit_speed; -extern int g_irq_pending; -extern int g_swap_paddles; -extern int g_invert_paddles; -extern int g_joystick_type; -extern int g_a2vid_palette; -extern int g_config_control_panel; -extern word32 g_cfg_vbl_count; -extern double g_cur_dcycs; - -extern byte *g_slow_memory_ptr; -extern byte *g_memory_ptr; -extern word32 g_mem_size_total; - -enum { - ADB_IDLE = 0, - ADB_IN_CMD, - ADB_SENDING_DATA, -}; - -#define ADB_C027_MOUSE_DATA 0x80 -#define ADB_C027_MOUSE_INT 0x40 -#define ADB_C027_DATA_VALID 0x20 -#define ADB_C027_DATA_INT 0x10 -#define ADB_C027_KBD_VALID 0x08 -#define ADB_C027_KBD_INT 0x04 -#define ADB_C027_MOUSE_COORD 0x02 -#define ADB_C027_CMD_FULL 0x01 - -#define ADB_C027_NEG_MASK ( ~ ( \ - ADB_C027_MOUSE_DATA | ADB_C027_DATA_VALID | \ - ADB_C027_KBD_VALID | ADB_C027_MOUSE_COORD | \ - ADB_C027_CMD_FULL)) - - -int halt_on_all_c027 = 0; - -word32 g_adb_repeat_delay = 45; -word32 g_adb_repeat_rate = 3; -word32 g_adb_repeat_info = 0x23; -word32 g_adb_char_set = 0x0; -word32 g_adb_layout_lang = 0x0; - -word32 g_adb_interrupt_byte = 0; -int g_adb_state = ADB_IDLE; - -word32 g_adb_cmd = (word32)-1; -int g_adb_cmd_len = 0; -int g_adb_cmd_so_far = 0; -word32 g_adb_cmd_data[16]; - -#define MAX_ADB_DATA_PEND 16 - -word32 g_adb_data[MAX_ADB_DATA_PEND]; -int g_adb_data_pending = 0; - -word32 g_c027_val = 0; -word32 g_c025_val = 0; - -byte adb_memory[256]; - -word32 g_adb_mode = 0; /* mode set via set_modes, clear_modes */ - -int g_warp_pointer = 0; -int g_hide_pointer = 0; -int g_unhide_pointer = 0; - -int g_mouse_a2_x = 0; -int g_mouse_a2_y = 0; -int g_mouse_a2_button = 0; -int g_mouse_fifo_pos = 0; -int g_mouse_raw_x = 0; -int g_mouse_raw_y = 0; - -#define ADB_MOUSE_FIFO 8 - -STRUCT(Mouse_fifo) { - double dcycs; - int x; - int y; - int buttons; -}; - -Mouse_fifo g_mouse_fifo[ADB_MOUSE_FIFO] = { { 0, 0, 0, 0 } }; - -int g_mouse_warp_x = 0; -int g_mouse_warp_y = 0; - -int g_adb_mouse_valid_data = 0; -int g_adb_mouse_coord = 0; - -#define MAX_KBD_BUF 8 - -int g_key_down = 0; -int g_hard_key_down = 0; -int g_a2code_down = 0; -int g_kbd_read_no_update = 0; -int g_kbd_chars_buffered = 0; -int g_kbd_buf[MAX_KBD_BUF]; -word32 g_adb_repeat_vbl = 0; - -int g_kbd_dev_addr = 2; /* ADB physical kbd addr */ -int g_mouse_dev_addr = 3; /* ADB physical mouse addr */ - -int g_kbd_ctl_addr = 2; /* ADB microcontroller's kbd addr */ -int g_mouse_ctl_addr = 3; /* ADB ucontroller's mouse addr*/ - /* above are ucontroller's VIEW of where mouse/kbd */ - /* are...if they are moved, mouse/keyboard funcs */ - /* should stop (c025, c000, c024, etc). */ - -word32 g_virtual_key_up[4]; /* bitmask of all possible 128 a2codes */ - /* indicates which keys are up=1 by bit */ - -int g_keypad_key_is_down[10] = { 0 };/* List from 0-9 of which keypad */ - /* keys are currently pressed */ - - -#define SHIFT_DOWN ( (g_c025_val & 0x01) ) -#define CTRL_DOWN ( (g_c025_val & 0x02) ) -#define CAPS_LOCK_DOWN ( (g_c025_val & 0x04) ) -#define OPTION_DOWN ( (g_c025_val & 0x40) ) -#define CMD_DOWN ( (g_c025_val & 0x80) ) - - -#define MAX_ADB_KBD_REG3 16 - -int g_kbd_reg0_pos = 0; -int g_kbd_reg0_data[MAX_ADB_KBD_REG3]; -int g_kbd_reg3_16bit = 0x602; /* also set in adb_reset()! */ - - -int g_adb_init = 0; - -void -adb_init() -{ - int keycode; - int i; - - if(g_adb_init) { - halt_printf("g_adb_init = %d!\n", g_adb_init); - } - g_adb_init = 1; - - for(i = 0; i < 128; i++) { - keycode = a2_key_to_ascii[i][0]; - if(keycode != i) { - printf("ADB keycode lost/skipped: i=%x: keycode=%x\n", - i, keycode); - my_exit(1); - } - } - - g_c025_val = 0; - - for(i = 0; i < 4; i++) { - g_virtual_key_up[i] = -1; - } - - for(i = 0; i < 10; i++) { - g_keypad_key_is_down[i] = 0; - } - - adb_reset(); -} - -// OG Added adb_shut() -void adb_shut() -{ - g_adb_init = 0; -} - -void -adb_reset() -{ - - g_c027_val = 0; - - g_key_down = 0; - - g_kbd_dev_addr = 2; - g_mouse_dev_addr = 3; - - g_kbd_ctl_addr = 2; - g_mouse_ctl_addr = 3; - - adb_clear_data_int(); - adb_clear_mouse_int(); - adb_clear_kbd_srq(); - - g_adb_data_pending = 0; - g_adb_interrupt_byte = 0; - g_adb_state = ADB_IDLE; - g_adb_mouse_coord = 0; - g_adb_mouse_valid_data = 0; - - g_kbd_reg0_pos = 0; - g_kbd_reg3_16bit = 0x602; - -} - - -#define LEN_ADB_LOG 16 -STRUCT(Adb_log) { - word32 addr; - int val; - int state; -}; - -Adb_log g_adb_log[LEN_ADB_LOG]; -int g_adb_log_pos = 0; - -void -adb_log(word32 addr, int val) -{ - int pos; - - pos = g_adb_log_pos; - g_adb_log[pos].addr = addr; - g_adb_log[pos].val = val; - g_adb_log[pos].state = g_adb_state; - pos++; - if(pos >= LEN_ADB_LOG) { - pos = 0; - } - g_adb_log_pos = pos; -} - -void -show_adb_log(void) -{ - int pos; - int i; - - pos = g_adb_log_pos; - printf("ADB log pos: %d\n", pos); - for(i = 0; i < LEN_ADB_LOG; i++) { - pos--; - if(pos < 0) { - pos = LEN_ADB_LOG - 1; - } - printf("%d:%d: addr:%04x = %02x, st:%d\n", i, pos, - g_adb_log[pos].addr, g_adb_log[pos].val, - g_adb_log[pos].state); - } - printf("kbd: dev: %x, ctl: %x; mouse: dev: %x, ctl: %x\n", - g_kbd_dev_addr, g_kbd_ctl_addr, - g_mouse_dev_addr, g_mouse_ctl_addr); - printf("g_adb_state: %d, g_adb_interrupt_byte: %02x\n", - g_adb_state, g_adb_interrupt_byte); -} - -void -adb_error(void) -{ - halt_printf("Adb Error\n"); - - show_adb_log(); -} - - - -void -adb_add_kbd_srq() -{ - if(g_kbd_reg3_16bit & 0x200) { - /* generate SRQ */ - g_adb_interrupt_byte |= 0x08; - add_irq(IRQ_PENDING_ADB_KBD_SRQ); - } else { - printf("Got keycode but no kbd SRQ!\n"); - } -} - -void -adb_clear_kbd_srq() -{ - remove_irq(IRQ_PENDING_ADB_KBD_SRQ); - - /* kbd SRQ's are the only ones to handle now, so just clean it out */ - g_adb_interrupt_byte &= (~(0x08)); -} - -void -adb_add_data_int() -{ - if(g_c027_val & ADB_C027_DATA_INT) { - add_irq(IRQ_PENDING_ADB_DATA); - } -} - -void -adb_add_mouse_int() -{ - if(g_c027_val & ADB_C027_MOUSE_INT) { - add_irq(IRQ_PENDING_ADB_MOUSE); - } -} - -void -adb_clear_data_int() -{ - remove_irq(IRQ_PENDING_ADB_DATA); -} - -void -adb_clear_mouse_int() -{ - remove_irq(IRQ_PENDING_ADB_MOUSE); -} - - -void -adb_send_bytes(int num_bytes, word32 val0, word32 val1, word32 val2) -{ - word32 val; - int shift_amount; - int i; - - if((num_bytes >= 12) || (num_bytes >= MAX_ADB_DATA_PEND)) { - halt_printf("adb_send_bytes: %d is too many!\n", num_bytes); - } - - g_adb_state = ADB_SENDING_DATA; - g_adb_data_pending = num_bytes; - adb_add_data_int(); - - for(i = 0; i < num_bytes; i++) { - if(i < 4) { - val = val0; - } else if(i < 8) { - val = val1; - } else { - val = val2; - } - - shift_amount = 8*(3 - i); - g_adb_data[i] = (val >> shift_amount) & 0xff; - adb_printf("adb_send_bytes[%d] = %02x\n", i, g_adb_data[i]); - } -} - - -void -adb_send_1byte(word32 val) -{ - - if(g_adb_data_pending != 0) { - halt_printf("g_adb_data_pending: %d\n", g_adb_data_pending); - } - - adb_send_bytes(1, val << 24, 0, 0); -} - - - -void -adb_response_packet(int num_bytes, word32 val) -{ - - if(g_adb_data_pending != 0) { - halt_printf("adb_response_packet, but pending: %d\n", - g_adb_data_pending); - } - - g_adb_state = ADB_IDLE; - g_adb_data_pending = num_bytes; - g_adb_data[0] = val & 0xff; - g_adb_data[1] = (val >> 8) & 0xff; - g_adb_data[2] = (val >> 16) & 0xff; - g_adb_data[3] = (val >> 24) & 0xff; - if(num_bytes) { - g_adb_interrupt_byte |= 0x80 + num_bytes - 1; - } else { - g_adb_interrupt_byte |= 0x80; - } - - adb_printf("adb_response packet: %d: %08x\n", - num_bytes, val); - - adb_add_data_int(); -} - - -void -adb_kbd_reg0_data(int a2code, int is_up) -{ - if(g_kbd_reg0_pos >= MAX_ADB_KBD_REG3) { - /* too many keys, toss */ - halt_printf("Had to toss key: %02x, %d\n", a2code, is_up); - return; - } - - g_kbd_reg0_data[g_kbd_reg0_pos] = a2code + (is_up << 7); - - adb_printf("g_kbd_reg0_data[%d] = %02x\n", g_kbd_reg0_pos, - g_kbd_reg0_data[g_kbd_reg0_pos]); - - g_kbd_reg0_pos++; - - adb_add_kbd_srq(); -} - -void -adb_kbd_talk_reg0() -{ - word32 val0, val1; - word32 reg; - int num_bytes; - int num; - int i; - - num = 0; - val0 = g_kbd_reg0_data[0]; - val1 = g_kbd_reg0_data[1]; - - num_bytes = 0; - if(g_kbd_reg0_pos > 0) { - num_bytes = 2; - num = 1; - if((val0 & 0x7f) == 0x7f) { - /* reset */ - val1 = val0; - } else if(g_kbd_reg0_pos > 1) { - num = 2; - if((val1 & 0x7f) == 0x7f) { - /* If first byte some other key, don't */ - /* put RESET next! */ - num = 1; - val1 = 0xff; - } - } else { - val1 = 0xff; - } - } - - if(num) { - for(i = num; i < g_kbd_reg0_pos; i++) { - g_kbd_reg0_data[i-1] = g_kbd_reg0_data[i]; - } - g_kbd_reg0_pos -= num; - } - - reg = (val0 << 8) + val1; - - adb_printf("adb_kbd_talk0: %04x\n", reg); - - adb_response_packet(num_bytes, reg); - if(g_kbd_reg0_pos == 0) { - adb_clear_kbd_srq(); - } -} - -void -adb_set_config(word32 val0, word32 val1, word32 val2) -{ - int new_mouse; - int new_kbd; - int tmp1; - - new_mouse = val0 >> 4; - new_kbd = val0 & 0xf; - if(new_mouse != g_mouse_ctl_addr) { - printf("ADB config: mouse from %x to %x!\n", - g_mouse_ctl_addr, new_mouse); - adb_error(); - g_mouse_ctl_addr = new_mouse; - } - if(new_kbd != g_kbd_ctl_addr) { - printf("ADB config: kbd from %x to %x!\n", - g_kbd_ctl_addr, new_kbd); - adb_error(); - g_kbd_ctl_addr = new_kbd; - } - - - tmp1 = val2 >> 4; - if(tmp1 == 4) { - g_adb_repeat_delay = 0; - } else if(tmp1 < 4) { - g_adb_repeat_delay = (tmp1 + 1) * 15; - } else { - halt_printf("Bad ADB repeat delay: %02x\n", tmp1); - } - - tmp1 = val2 & 0xf; - if(g_rom_version >= 3) { - tmp1 = 9 - tmp1; - } - - switch(tmp1) { - case 0: - g_adb_repeat_rate = 1; - break; - case 1: - g_adb_repeat_rate = 2; - break; - case 2: - g_adb_repeat_rate = 3; - break; - case 3: - g_adb_repeat_rate = 3; - break; - case 4: - g_adb_repeat_rate = 4; - break; - case 5: - g_adb_repeat_rate = 5; - break; - case 6: - g_adb_repeat_rate = 7; - break; - case 7: - g_adb_repeat_rate = 15; - break; - case 8: - /* I don't know what this should be, ROM 03 uses it */ - g_adb_repeat_rate = 30; - break; - case 9: - /* I don't know what this should be, ROM 03 uses it */ - g_adb_repeat_rate = 60; - break; - default: - halt_printf("Bad repeat rate: %02x\n", tmp1); - } - -} - -void -adb_set_new_mode(word32 val) -{ - if(val & 0x03) { - printf("Disabling keyboard/mouse:%02x!\n", val); - } - - if(val & 0xa2) { - halt_printf("ADB set mode: %02x!\n", val); - adb_error(); - } - - g_adb_mode = val; -} - - -int -adb_read_c026() -{ - word32 ret; - int i; - - ret = 0; - switch(g_adb_state) { - case ADB_IDLE: - ret = g_adb_interrupt_byte; - g_adb_interrupt_byte = 0; - if(g_irq_pending & IRQ_PENDING_ADB_KBD_SRQ) { - g_adb_interrupt_byte |= 0x08; - } - if(g_adb_data_pending == 0) { - if(ret & 0x80) { - halt_printf("read_c026: ret:%02x, pend:%d\n", - ret, g_adb_data_pending); - } - adb_clear_data_int(); - } - if(g_adb_data_pending) { - if(g_adb_state != ADB_IN_CMD) { - g_adb_state = ADB_SENDING_DATA; - } - } - break; - case ADB_IN_CMD: - ret = 0; - break; - case ADB_SENDING_DATA: - ret = g_adb_data[0]; - for(i = 1; i < g_adb_data_pending; i++) { - g_adb_data[i-1] = g_adb_data[i]; - } - g_adb_data_pending--; - if(g_adb_data_pending <= 0) { - g_adb_data_pending = 0; - g_adb_state = ADB_IDLE; - adb_clear_data_int(); - } - break; - default: - halt_printf("Bad ADB state: %d!\n", g_adb_state); - adb_clear_data_int(); - break; - } - - adb_printf("Reading c026. Returning %02x, st: %02x, pend: %d\n", - ret, g_adb_state, g_adb_data_pending); - - adb_log(0xc026, ret); - return (ret & 0xff); -} - - -void -adb_write_c026(int val) -{ - word32 tmp; - int dev; - - adb_printf("Writing c026 with %02x\n", val); - adb_log(0x1c026, val); - - - switch(g_adb_state) { - case ADB_IDLE: - g_adb_cmd = val; - g_adb_cmd_so_far = 0; - g_adb_cmd_len = 0; - - dev = val & 0xf; - switch(val) { - case 0x01: /* Abort */ - adb_printf("Performing adb abort\n"); - /* adb_abort() */ - break; - case 0x03: /* Flush keyboard buffer */ - adb_printf("Flushing adb keyboard buffer\n"); - /* Do nothing */ - break; - case 0x04: /* Set modes */ - adb_printf("ADB set modes\n"); - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 1; - break; - case 0x05: /* Clear modes */ - adb_printf("ADB clear modes\n"); - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 1; - break; - case 0x06: /* Set config */ - adb_printf("ADB set config\n"); - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 3; - break; - case 0x07: /* Sync */ - adb_printf("Performing sync cmd!\n"); - g_adb_state = ADB_IN_CMD; - if(g_rom_version == 1) { - g_adb_cmd_len = 4; - } else { - g_adb_cmd_len = 8; - } - break; - case 0x08: /* Write mem */ - adb_printf("Starting write_mem cmd\n"); - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 2; - break; - case 0x09: /* Read mem */ - adb_printf("Performing read_mem cmd!\n"); - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 2; - break; - case 0x0a: /* Read modes byte */ - printf("Performing read_modes cmd!\n"); - /* set_halt(1); */ - adb_send_1byte(g_adb_mode); - break; - case 0x0b: /* Read config bytes */ - printf("Performing read_configs cmd!\n"); - tmp = (g_mouse_ctl_addr << 20) + - (g_kbd_ctl_addr << 16) + - (g_adb_char_set << 12) + - (g_adb_layout_lang << 8) + - (g_adb_repeat_info << 0); - tmp = (0x82U << 24) + tmp; - adb_send_bytes(4, tmp, 0, 0); - break; - case 0x0d: /* Get Version */ - adb_printf("Performing get_version cmd!\n"); - val = 0; - if(g_rom_version == 1) { - /* ROM 01 = revision 5 */ - val = 5; - } else { - /* ROM 03 checks for rev >= 6 */ - val = 6; - } - adb_send_1byte(val); - break; - case 0x0e: /* Read avail char sets */ - adb_printf("Performing read avail char sets cmd!\n"); - adb_send_bytes(2, /* just 2 bytes */ - 0x08000000, /* number of ch sets=0x8 */ - 0, 0); - /* set_halt(1); */ - break; - case 0x0f: /* Read avail kbd layouts */ - adb_printf("Performing read avail kbd layouts cmd!\n"); - adb_send_bytes(0x2, /* number of kbd layouts=0xa */ - 0x0a000000, 0, 0); - /* set_halt(1); */ - break; - case 0x10: /* Reset */ - printf("ADB reset, cmd 0x10\n"); - do_reset(); - break; - case 0x11: /* Send ADB keycodes */ - adb_printf("Sending ADB keycodes\n"); - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 1; - break; - case 0x12: /* ADB cmd 12: ROM 03 only! */ - if(g_rom_version >= 3) { - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 2; - } else { - printf("ADB cmd 12, but not ROM 3!\n"); - adb_error(); - } - break; - case 0x13: /* ADB cmd 13: ROM 03 only! */ - if(g_rom_version >= 3) { - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 2; - } else { - printf("ADB cmd 13, but not ROM 3!\n"); - adb_error(); - } - break; - case 0x73: /* Disable SRQ device 3: mouse */ - adb_printf("Disabling Mouse SRQ's (device 3)\n"); - /* HACK HACK...should deal with SRQs on mouse */ - break; - case 0xb0: case 0xb1: case 0xb2: case 0xb3: - case 0xb4: case 0xb5: case 0xb6: case 0xb7: - case 0xb8: case 0xb9: case 0xba: case 0xbb: - case 0xbc: case 0xbd: case 0xbe: case 0xbf: - /* Listen dev x reg 3 */ - adb_printf("Sending data to dev %x reg 3\n", dev); - g_adb_state = ADB_IN_CMD; - g_adb_cmd_len = 2; - break; - case 0xc0: case 0xc1: case 0xc2: case 0xc3: - case 0xc4: case 0xc5: case 0xc6: case 0xc7: - case 0xc8: case 0xc9: case 0xca: case 0xcb: - case 0xcc: case 0xcd: case 0xce: case 0xcf: - /* Talk dev x reg 0 */ - adb_printf("Performing talk dev %x reg 0\n", dev); - if(dev == g_kbd_dev_addr) { - adb_kbd_talk_reg0(); - } else { - printf("Unknown talk dev %x reg 0!\n", dev); - /* send no data, on SRQ, system polls devs */ - /* so we don't want to send anything */ - adb_error(); - } - break; - case 0xf0: case 0xf1: case 0xf2: case 0xf3: - case 0xf4: case 0xf5: case 0xf6: case 0xf7: - case 0xf8: case 0xf9: case 0xfa: case 0xfb: - case 0xfc: case 0xfd: case 0xfe: case 0xff: - /* Talk dev x reg 3 */ - adb_printf("Performing talk dev %x reg 3\n", dev); - if(dev == g_kbd_dev_addr) { - adb_response_packet(2, g_kbd_reg3_16bit); - } else { - printf("Performing talk dev %x reg 3!!\n", dev); - adb_error(); - } - break; - default: - /* The Gog's says ACS Demo 2 has a bug and writes to */ - /* c026 */ - // OG - if (val==0x84) - printf("ACS Demo2 (3: Colum& Music scroll) : discarding unknown controller command\n"); - else - halt_printf("ADB ucontroller cmd %02x unknown!\n", val); - - break; - } - break; - case ADB_IN_CMD: - adb_printf("Setting byte %d of cmd %02x to %02x\n", - g_adb_cmd_so_far, g_adb_cmd, val); - - g_adb_cmd_data[g_adb_cmd_so_far] = val; - g_adb_cmd_so_far++; - if(g_adb_cmd_so_far >= g_adb_cmd_len) { - adb_printf("Finished cmd %02x\n", g_adb_cmd); - do_adb_cmd(); - } - - break; - default: - printf("adb_state: %02x is unknown! Setting it to ADB_IDLE\n", - g_adb_state); - g_adb_state = ADB_IDLE; - adb_error(); - halt_on_all_c027 = 1; - break; - } - return; -} - -void -do_adb_cmd() -{ - int dev; - int new_kbd; - int addr; - int val; - - dev = g_adb_cmd & 0xf; - - g_adb_state = ADB_IDLE; - - switch(g_adb_cmd) { - case 0x04: /* Set modes */ - adb_printf("Performing ADB set mode: OR'ing in %02x\n", - g_adb_cmd_data[0]); - - val = g_adb_cmd_data[0] | g_adb_mode; - adb_set_new_mode(val); - - break; - case 0x05: /* clear modes */ - adb_printf("Performing ADB clear mode: AND'ing in ~%02x\n", - g_adb_cmd_data[0]); - - val = g_adb_cmd_data[0]; - val = g_adb_mode & (~val); - adb_set_new_mode(val); - break; - case 0x06: /* Set config */ - adb_printf("Set ADB config to %02x %02x %02x\n", - g_adb_cmd_data[0], g_adb_cmd_data[1],g_adb_cmd_data[2]); - - adb_set_config(g_adb_cmd_data[0], g_adb_cmd_data[1], - g_adb_cmd_data[2]); - - break; - case 0x07: /* SYNC */ - adb_printf("Performing ADB SYNC\n"); - adb_printf("data: %02x %02x %02x %02x\n", - g_adb_cmd_data[0], g_adb_cmd_data[1], g_adb_cmd_data[2], - g_adb_cmd_data[3]); - - adb_set_new_mode(g_adb_cmd_data[0]); - adb_set_config(g_adb_cmd_data[1], g_adb_cmd_data[2], - g_adb_cmd_data[3]); - - if(g_rom_version >= 3) { - adb_printf(" and cmd12:%02x %02x cmd13:%02x %02x\n", - g_adb_cmd_data[4], g_adb_cmd_data[5], - g_adb_cmd_data[6], g_adb_cmd_data[7]); - } - break; - case 0x08: /* Write mem */ - addr = g_adb_cmd_data[0]; - val = g_adb_cmd_data[1]; - write_adb_ram(addr, val); - break; - case 0x09: /* Read mem */ - addr = (g_adb_cmd_data[1] << 8) + g_adb_cmd_data[0]; - adb_printf("Performing mem read to addr %04x\n", addr); - adb_send_1byte(read_adb_ram(addr)); - break; - case 0x11: /* Send ADB keycodes */ - val = g_adb_cmd_data[0]; - adb_printf("Performing send ADB keycodes: %02x\n", val); - adb_virtual_key_update(val & 0x7f, val >> 7); - break; - case 0x12: /* ADB cmd12 */ - adb_printf("Performing ADB cmd 12\n"); - adb_printf("data: %02x %02x\n", g_adb_cmd_data[0], - g_adb_cmd_data[1]); - break; - case 0x13: /* ADB cmd13 */ - adb_printf("Performing ADB cmd 13\n"); - adb_printf("data: %02x %02x\n", g_adb_cmd_data[0], - g_adb_cmd_data[1]); - break; - case 0xb0: case 0xb1: case 0xb2: case 0xb3: - case 0xb4: case 0xb5: case 0xb6: case 0xb7: - case 0xb8: case 0xb9: case 0xba: case 0xbb: - case 0xbc: case 0xbd: case 0xbe: case 0xbf: - /* Listen dev x reg 3 */ - if(dev == g_kbd_dev_addr) { - if(g_adb_cmd_data[1] == 0xfe) { - /* change keyboard addr? */ - new_kbd = g_adb_cmd_data[0] & 0xf; - if(new_kbd != dev) { - printf("Moving kbd to dev %x!\n", - new_kbd); - adb_error(); - } - g_kbd_dev_addr = new_kbd; - } else if(g_adb_cmd_data[1] != 1) { - /* see what new device handler id is */ - printf("KBD listen to dev %x reg 3: 1:%02x\n", - dev, g_adb_cmd_data[1]); - adb_error(); - } - if(g_adb_cmd_data[0] != (word32)g_kbd_dev_addr) { - /* see if app is trying to change addr */ - printf("KBD listen to dev %x reg 3: 0:%02x!\n", - dev, g_adb_cmd_data[0]); - adb_error(); - } - g_kbd_reg3_16bit = ((g_adb_cmd_data[0] & 0xf) << 12) + - (g_kbd_reg3_16bit & 0x0fff); - } else if(dev == g_mouse_dev_addr) { - if(g_adb_cmd_data[0] != (word32)dev) { - /* see if app is trying to change mouse addr */ - printf("MOUS listen to dev %x reg3: 0:%02x!\n", - dev, g_adb_cmd_data[0]); - adb_error(); - } - if(g_adb_cmd_data[1] != 1 && g_adb_cmd_data[1] != 2) { - /* see what new device handler id is */ - printf("MOUS listen to dev %x reg 3: 1:%02x\n", - dev, g_adb_cmd_data[1]); - adb_error(); - } - } else { - printf("Listen cmd to dev %x reg3????\n", dev); - printf("data0: %02x, data1: %02x ????\n", - g_adb_cmd_data[0], g_adb_cmd_data[1]); - adb_error(); - } - break; - default: - printf("Doing adb_cmd %02x: UNKNOWN!\n", g_adb_cmd); - break; - } -} - - -int -adb_read_c027() -{ - word32 ret; - - if(halt_on_all_c027) { - halt_printf("halting on all c027 reads!\n"); - } - - if(g_c027_val & (~ADB_C027_NEG_MASK)) { - halt_printf("read_c027: g_c027_val: %02x\n", g_c027_val); - } - - ret = (g_c027_val & ADB_C027_NEG_MASK); - - if(g_adb_mouse_valid_data) { - ret |= ADB_C027_MOUSE_DATA; - } - - if(g_adb_interrupt_byte != 0) { - ret |= ADB_C027_DATA_VALID; - } else if(g_adb_data_pending > 0) { - if((g_adb_state != ADB_IN_CMD)) { - ret |= ADB_C027_DATA_VALID; - } - } - - if(g_adb_mouse_coord) { - ret |= ADB_C027_MOUSE_COORD; - } - -#if 0 - adb_printf("Read c027: %02x, int_byte: %02x, d_pend: %d\n", - ret, g_adb_interrupt_byte, g_adb_data_pending); -#endif - -#if 0 - adb_log(0xc027, ret); -#endif - return ret; -} - -void -adb_write_c027(int val) -{ - word32 old_val; - word32 new_int; - word32 old_int; - - adb_printf("Writing c027 with %02x\n", val); - adb_log(0x1c027, val); - - - old_val = g_c027_val; - - g_c027_val = (val & ADB_C027_NEG_MASK); - new_int = g_c027_val & ADB_C027_MOUSE_INT; - old_int = old_val & ADB_C027_MOUSE_INT; - if(!new_int && old_int) { - adb_clear_mouse_int(); - } - - new_int = g_c027_val & ADB_C027_DATA_INT; - old_int = old_val & ADB_C027_DATA_INT; - if(!new_int && old_int) { - /* ints were on, now off */ - adb_clear_data_int(); - } - - if(g_c027_val & ADB_C027_KBD_INT) { - halt_printf("Can't support kbd interrupts!\n"); - } - - return; -} - -int -read_adb_ram(word32 addr) -{ - int val; - - adb_printf("Reading adb ram addr: %02x\n", addr); - - if(addr >= 0x100) { - if(addr >= 0x1000 && addr < 0x2000) { - /* ROM self-test checksum */ - if(addr == 0x1400) { - val = 0x72; - } else if(addr == 0x1401) { - val = 0xf7; - } else { - val = 0; - } - } else { - printf("adb ram addr out of range: %04x!\n", addr); - val = 0; - } - } else { - val = adb_memory[addr]; - if((addr == 0xb) && (g_rom_version == 1)) { - // read special key state byte for Out of This World - val = (g_c025_val >> 1) & 0x43; - val |= (g_c025_val << 2) & 0x4; - val |= (g_c025_val >> 2) & 0x10; - } - if((addr == 0xc) && (g_rom_version >= 3)) { - // read special key state byte for Out of This World - val = g_c025_val & 0xc7; - printf("val is %02x\n", val); - } - } - - adb_printf("adb_ram returning %02x\n", val); - return val; -} - -void -write_adb_ram(word32 addr, int val) -{ - - adb_printf("Writing adb_ram addr: %02x: %02x\n", addr, val); - - if(addr >= 0x100) { - printf("write adb_ram addr: %02x: %02x!\n", addr, val); - adb_error(); - } else { - adb_memory[addr] = val; - } -} - -int -adb_get_keypad_xy(int get_y) -{ - int x, y; - int key; - int num_keys; - int i, j; - - key = 1; - num_keys = 0; - x = 0; - y = 0; - for(i = 0; i < 3; i++) { - for(j = 0; j < 3; j++) { - if(g_keypad_key_is_down[key]) { - num_keys++; - x = x + (j - 1)*32768; - y = y + (1 - i)*32768; - } - key++; - } - } - if(num_keys == 0) { - num_keys = 1; - } - - adb_printf("get_xy=%d, num_keys: %d, x:%d, y:%d\n", get_y, - num_keys, x, y); - - if(get_y) { - return y / num_keys; - } else { - return x / num_keys; - } -} - -int -update_mouse(int x, int y, int button_states, int buttons_valid) -{ - double dcycs; - int button1_changed; - int mouse_moved; - int unhide; - int pos; - int i; - - dcycs = g_cur_dcycs; - - g_mouse_raw_x = x; - g_mouse_raw_y = y; - - unhide = 0; - if(x < 0) { - x = 0; - unhide = 1; - } - if(x >= 640) { - x = 639; - unhide = 1; - } - if(y < 0) { - y = 0; - unhide = 1; - } - if(y >= 400) { - y = 399; - unhide = 1; - } - - - g_unhide_pointer = unhide && !g_warp_pointer; - - if(!g_warp_pointer) { - if(g_hide_pointer && g_unhide_pointer) { - /* cursor has left a2 window, show it */ - g_hide_pointer = 0; - x_hide_pointer(0); - } - if((g_num_lines_prev_superhires == 200) && - (g_num_lines_prev_superhires640 == 0) && - ((g_slow_memory_ptr[0x19d00] & 0x80) == 0)) { - // In 320-mode superhires, cut mouse range in half - x = x >> 1; - } - y = y >> 1; - } - - mouse_compress_fifo(dcycs); - -#if 0 - printf("Update Mouse called with buttons:%d x,y:%d,%d, fifo:%d,%d, " - " a2: %d,%d\n", buttons_valid, x, y, - g_mouse_fifo[0].x, g_mouse_fifo[0].y, - g_mouse_a2_x, g_mouse_a2_y); -#endif - - if((buttons_valid < 0) && g_warp_pointer) { - /* Warping the pointer causes it to jump here...this is not */ - /* real motion, just update info and get out */ - g_mouse_a2_x += (x - g_mouse_fifo[0].x); - g_mouse_a2_y += (y - g_mouse_fifo[0].y); - g_mouse_fifo[0].x = x; - g_mouse_fifo[0].y = y; - return 0; - } - -#if 0 - printf("...real move, warp: %d, %d, new x: %d, %d, a2:%d,%d\n", - g_mouse_warp_x, g_mouse_warp_y, g_mouse_fifo[0].x, - g_mouse_fifo[0].y, g_mouse_a2_x, g_mouse_a2_y); -#endif - - mouse_moved = (g_mouse_fifo[0].x != x) || (g_mouse_fifo[0].y != y); - - g_mouse_a2_x += g_mouse_warp_x; - g_mouse_a2_y += g_mouse_warp_y; - g_mouse_fifo[0].x = x; - g_mouse_fifo[0].y = y; - g_mouse_fifo[0].dcycs = dcycs; - g_mouse_warp_x = 0; - g_mouse_warp_y = 0; - - button1_changed = (buttons_valid & 1) && - ((button_states & 1) != (g_mouse_fifo[0].buttons & 1)); - - if((button_states & 4) && !(g_mouse_fifo[0].buttons & 4) && - (buttons_valid & 4)) { - /* right button pressed */ - adb_increment_speed(); - } - if((button_states & 2) && !(g_mouse_fifo[0].buttons & 2) && - (buttons_valid & 2)) { - /* middle button pressed */ - halt2_printf("Middle button pressed\n"); - } - - pos = g_mouse_fifo_pos; - if((pos < (ADB_MOUSE_FIFO - 2)) && button1_changed) { - /* copy delta to overflow, set overflow */ - /* overflow ensures the mouse button state is precise at */ - /* button up/down times. Using a mouse event list where */ - /* deltas accumulate until a button change would work, too */ - for(i = pos; i >= 0; i--) { - g_mouse_fifo[i + 1] = g_mouse_fifo[i]; /* copy struct*/ - } - g_mouse_fifo_pos = pos + 1; - } - - g_mouse_fifo[0].buttons = (button_states & buttons_valid) | - (g_mouse_fifo[0].buttons & ~buttons_valid); - - if(mouse_moved || button1_changed) { - if( (g_mouse_ctl_addr == g_mouse_dev_addr) && - ((g_adb_mode & 0x2) == 0)) { - g_adb_mouse_valid_data = 1; - adb_add_mouse_int(); - } - } - - return mouse_moved; -} - -int -mouse_read_c024(double dcycs) -{ - word32 ret; - word32 tool_start; - int em_active; - int target_x, target_y; - int delta_x, delta_y; - int a2_x, a2_y; - int mouse_button; - int clamped; - int pos; - - if(((g_adb_mode & 0x2) != 0) || (g_mouse_dev_addr != g_mouse_ctl_addr)){ - /* mouse is off, return 0, or mouse is not autopoll */ - g_adb_mouse_valid_data = 0; - adb_clear_mouse_int(); - return 0; - } - - mouse_compress_fifo(dcycs); - - pos = g_mouse_fifo_pos; - target_x = g_mouse_fifo[pos].x; - target_y = g_mouse_fifo[pos].y; - mouse_button = (g_mouse_fifo[pos].buttons & 1); - delta_x = target_x - g_mouse_a2_x; - delta_y = target_y - g_mouse_a2_y; - - clamped = 0; - if(delta_x > 0x3f) { - delta_x = 0x3f; - clamped = 1; - } else if(delta_x < -0x3f) { - delta_x = -0x3f; - clamped = 1; - } - if(delta_y > 0x3f) { - delta_y = 0x3f; - clamped = 1; - } else if(delta_y < -0x3f) { - delta_y = -0x3f; - clamped = 1; - } - - if(pos > 0) { - /* peek into next entry's button info if we are not clamped */ - /* and we're returning the y-coord */ - if(!clamped && g_adb_mouse_coord) { - mouse_button = g_mouse_fifo[pos - 1].buttons & 1; - } - } - - if(g_adb_mouse_coord) { - /* y coord */ - delta_x = 0; /* clear unneeded x delta */ - } else { - delta_y = 0; /* clear unneeded y delta */ - } - - - adb_printf(" pre a2_x:%02x,%02x,%02x,%02x\n", - g_slow_memory_ptr[0x100e9], g_slow_memory_ptr[0x100ea], - g_slow_memory_ptr[0x100eb], g_slow_memory_ptr[0x100ec]); - adb_printf(" pre a2_x:%02x,%02x,%02x,%02x\n", - g_slow_memory_ptr[0x10190], g_slow_memory_ptr[0x10192], - g_slow_memory_ptr[0x10191], g_slow_memory_ptr[0x10193]); - - /* Update event manager internal state */ - tool_start = (g_slow_memory_ptr[0x103ca] << 16) + - (g_slow_memory_ptr[0x103c9] << 8) + - g_slow_memory_ptr[0x103c8]; - - em_active = 0; - if((tool_start >= 0x20000) && (tool_start < (g_mem_size_total - 28)) ) { - /* seems to be valid ptr to addr of mem space for tools */ - /* see if event manager appears to be active */ - em_active = g_memory_ptr[tool_start + 6*4] + - (g_memory_ptr[tool_start + 6*4 + 1] << 8); - if(g_warp_pointer) { - em_active = 0; - } - } - - a2_x = g_mouse_a2_x; - a2_y = g_mouse_a2_y; - - if(em_active) { - if((!g_hide_pointer) && (g_num_lines_prev_superhires == 200) && - !g_unhide_pointer) { - /* if super-hires and forcing tracking, then hide */ - g_hide_pointer = 1; - x_hide_pointer(1); - } - if(g_adb_mouse_coord == 0) { - /* update x coord values */ - g_slow_memory_ptr[0x47c] = a2_x & 0xff; - g_slow_memory_ptr[0x57c] = a2_x >> 8; - g_memory_ptr[0x47c] = a2_x & 0xff; - g_memory_ptr[0x57c] = a2_x >> 8; - - g_slow_memory_ptr[0x10190] = a2_x & 0xff; - g_slow_memory_ptr[0x10192] = a2_x >> 8; - } else { - g_slow_memory_ptr[0x4fc] = a2_y & 0xff; - g_slow_memory_ptr[0x5fc] = a2_y >> 8; - g_memory_ptr[0x4fc] = a2_y & 0xff; - g_memory_ptr[0x5fc] = a2_y >> 8; - - g_slow_memory_ptr[0x10191] = a2_y & 0xff; - g_slow_memory_ptr[0x10193] = a2_y >> 8; - } - } else { - if(g_hide_pointer && !g_warp_pointer) { - g_hide_pointer = 0; - x_hide_pointer(0); - } - } - - ret = ((!mouse_button) << 7) + ((delta_x | delta_y) & 0x7f); - if(g_adb_mouse_coord) { - g_mouse_a2_button = mouse_button; /* y coord has button*/ - } else { - ret |= 0x80; /* mouse button not down on x coord rd */ - } - - a2_x += delta_x; - a2_y += delta_y; - g_mouse_a2_x = a2_x; - g_mouse_a2_y = a2_y; - if(g_mouse_fifo_pos) { - if((target_x == a2_x) && (target_y == a2_y) && - (g_mouse_a2_button == mouse_button)) { - g_mouse_fifo_pos--; - } - } - - - adb_printf("Read c024, mouse is_y:%d, %02x, vbl:%08x, dcyc:%f, em:%d\n", - g_adb_mouse_coord, ret, g_vbl_count, dcycs, em_active); - adb_printf("...mouse targ_x:%d,%d delta_x,y:%d,%d fifo:%d, a2:%d,%d\n", - target_x, target_y, delta_x, delta_y, g_mouse_fifo_pos, - a2_x, a2_y); - adb_printf(" post a2_x:%02x,%02x,%02x,%02x\n", - g_slow_memory_ptr[0x10190], g_slow_memory_ptr[0x10192], - g_slow_memory_ptr[0x10191], g_slow_memory_ptr[0x10193]); - - if((g_mouse_fifo_pos == 0) && (g_mouse_fifo[0].x == a2_x) && - (g_mouse_fifo[0].y == a2_y) && - ((g_mouse_fifo[0].buttons & 1) == g_mouse_a2_button)) { - g_adb_mouse_valid_data = 0; - adb_clear_mouse_int(); - } - - g_adb_mouse_coord = !g_adb_mouse_coord; - return ret; -} - -void -mouse_compress_fifo(double dcycs) -{ - int pos; - - /* The mouse fifo exists so that fast button changes don't get lost */ - /* if the emulator lags behind the mouse events */ - /* But the FIFO means really old mouse events are saved if */ - /* the emulated code isn't looking at the mouse registers */ - /* This routine compresses all mouse events > 0.5 seconds old */ - - for(pos = g_mouse_fifo_pos; pos >= 1; pos--) { - if(g_mouse_fifo[pos].dcycs < (dcycs - 500*1000.0)) { - /* Remove this entry */ - adb_printf("Old mouse FIFO pos %d removed\n", pos); - g_mouse_fifo_pos = pos - 1; - continue; - } - /* Else, stop searching the FIFO */ - break; - } -} - -void -adb_key_event(int a2code, int is_up) -{ - word32 special; - word32 vbl_count; - int key; - int hard_key; - int pos; - int tmp_ascii; - int ascii; - - if(is_up) { - adb_printf("adb_key_event, key:%02x, is up, g_key_down: %02x\n", - a2code, g_key_down); - } - - if(a2code < 0 || a2code > 0x7f) { - halt_printf("add_key_event: a2code: %04x!\n", a2code); - return; - } - - if(!is_up && a2code == 0x35) { - /* ESC pressed, see if ctrl & cmd key down */ - if(CTRL_DOWN && CMD_DOWN) { - /* Desk mgr int */ - printf("Desk mgr int!\n"); - - g_adb_interrupt_byte |= 0x20; - adb_add_data_int(); - } - } - - /* convert key to ascii, if possible */ - hard_key = 0; - if(a2_key_to_ascii[a2code][1] & 0xef00) { - /* special key */ - } else { - /* we have ascii */ - hard_key = 1; - } - - pos = 1; - ascii = a2_key_to_ascii[a2code][1]; - if(CAPS_LOCK_DOWN && (ascii >= 'a' && ascii <= 'z')) { - pos = 2; - if(SHIFT_DOWN && (g_adb_mode & 0x40)) { - /* xor shift mode--capslock and shift == lowercase */ - pos = 1; - } - } else if(SHIFT_DOWN) { - pos = 2; - } - - ascii = a2_key_to_ascii[a2code][pos]; - if(CTRL_DOWN) { - tmp_ascii = a2_key_to_ascii[a2code][3]; - if(tmp_ascii >= 0) { - ascii = tmp_ascii; - } - } - key = (ascii & 0x7f) + 0x80; - - special = (ascii >> 8) & 0xff; - if(ascii < 0) { - printf("ascii1: %d, a2code: %02x, pos: %d\n", ascii,a2code,pos); - ascii = 0; - special = 0; - } - - - if(!is_up) { - if(hard_key) { - g_kbd_buf[g_kbd_chars_buffered] = key; - g_kbd_chars_buffered++; - if(g_kbd_chars_buffered >= MAX_KBD_BUF) { - g_kbd_chars_buffered = MAX_KBD_BUF - 1; - } - g_key_down = 1; - g_a2code_down = a2code; - - /* first key down, set up autorepeat */ - vbl_count = g_vbl_count; - if(g_config_control_panel) { - vbl_count = g_cfg_vbl_count; - } - g_adb_repeat_vbl = vbl_count + g_adb_repeat_delay; - if(g_adb_repeat_delay == 0) { - g_key_down = 0; - } - g_hard_key_down = 1; - } - - g_c025_val = g_c025_val | special; - adb_printf("new c025_or: %02x\n", g_c025_val); - } else { - if(hard_key && (a2code == g_a2code_down)) { - g_hard_key_down = 0; - /* Turn off repeat */ - g_key_down = 0; - } - - g_c025_val = g_c025_val & (~ special); - adb_printf("new c025_and: %02x\n", g_c025_val); - } - - if(g_key_down) { - g_c025_val = g_c025_val & (~0x20); - } else { - /* If no hard key down, set update mod latch */ - g_c025_val = g_c025_val | 0x20; - } - -} - -word32 -adb_read_c000() -{ - word32 vbl_count; - - if( ((g_kbd_buf[0] & 0x80) == 0) && (g_key_down == 0)) { - /* nothing happening, check clipboard */ - int c = clipboard_get_char(); - if(c) { - /* inject clipboard char into keyboard buffer */ - g_kbd_buf[0] = c; - } - /* just get out */ - return g_kbd_buf[0]; - } - if(g_kbd_buf[0] & 0x80) { - /* got one */ - if((g_kbd_read_no_update++ > 5) && (g_kbd_chars_buffered > 1)) { - /* read 5 times, keys pending, let's move it along */ - printf("Read %02x %d times, tossing\n", g_kbd_buf[0], - g_kbd_read_no_update); - adb_access_c010(); - } - } else { - vbl_count = g_vbl_count; - if(g_config_control_panel) { - vbl_count = g_cfg_vbl_count; - } - if(g_key_down && vbl_count >= g_adb_repeat_vbl) { - /* repeat the g_key_down */ - g_c025_val |= 0x8; - adb_key_event(g_a2code_down, 0); - g_adb_repeat_vbl = vbl_count + g_adb_repeat_rate; - } - } - - return g_kbd_buf[0]; -} - -word32 -adb_access_c010() -{ - int tmp; - int i; - - g_kbd_read_no_update = 0; - - tmp = g_kbd_buf[0] & 0x7f; - g_kbd_buf[0] = tmp; - - tmp = tmp | (g_hard_key_down << 7); - if(g_kbd_chars_buffered) { - for(i = 1; i < g_kbd_chars_buffered; i++) { - g_kbd_buf[i - 1] = g_kbd_buf[i]; - } - g_kbd_chars_buffered--; - } - - g_c025_val = g_c025_val & (~ (0x08)); - - return tmp; -} - -word32 -adb_read_c025() -{ - return g_c025_val; -} - -int -adb_is_cmd_key_down() -{ - return CMD_DOWN; -} - -int -adb_is_option_key_down() -{ - return OPTION_DOWN; -} - -void -adb_increment_speed() -{ - const char *str; - - g_limit_speed++; - if(g_limit_speed > 3) { - g_limit_speed = 0; - } - - str = ""; - switch(g_limit_speed) { - case 0: - str = "...as fast as possible!"; - break; - case 1: - str = "...1.024MHz!"; - break; - case 2: - str = "...2.8MHz!"; - break; - case 3: - str = "...8.0MHz!"; - break; - } - printf("Toggling g_limit_speed to %d%s\n", g_limit_speed, str); -} - -void -adb_physical_key_update(int a2code, int is_up) -{ - int autopoll; - int special; - int ascii_and_type; - int ascii; - - /* this routine called by xdriver to pass raw codes--handle */ - /* ucontroller and ADB bus protocol issues here */ - /* if autopoll on, pass it on through to c025,c000 regs */ - /* else only put it in kbd reg 3, and pull SRQ if needed */ - - adb_printf("adb_phys_key_update: %02x, %d\n", a2code, is_up); - - adb_printf("Handle a2code: %02x, is_up: %d\n", a2code, is_up); - - if(a2code < 0 || a2code > 0x7f) { - halt_printf("a2code: %04x!\n", a2code); - return; - } - - /* Remap 0x7b-0x7e to 0x3b-0x3e (arrow keys on new mac keyboards) */ - if(a2code >= 0x7b && a2code <= 0x7e) { - a2code = a2code - 0x40; - } - - /* Now check for special keys (function keys, etc) */ - ascii_and_type = a2_key_to_ascii[a2code][1]; - special = 0; - if((ascii_and_type & 0xf000) == 0x8000) { - /* special function key */ - special = ascii_and_type & 0xff; - switch(special) { - case 0x01: /* F1 - remap to cmd */ - a2code = 0x37; - special = 0; - break; - case 0x02: /* F2 - remap to option */ - a2code = 0x3a; - special = 0; - break; - case 0x03: /* F3 - remap to escape for OS/2 */ - a2code = 0x35; - special = 0; - break; - case 0x0c: /* F12 - remap to reset */ - a2code = 0x7f; - special = 0; - break; - default: - break; - } - } - - /* CUA clipboard paste - for those that remember ctrl-insert/shift-insert */ - if(is_up == 0 && a2code == 0x72 && SHIFT_DOWN) { - clipboard_paste(); - } - - /* Only process reset requests here */ - if(is_up == 0 && a2code == 0x7f && CTRL_DOWN) { - /* Reset pressed! */ - printf("Reset pressed since CTRL_DOWN: %d\n", CTRL_DOWN); - do_reset(); - return; - } - - if(special && !is_up) { - switch(special) { -// OG Disabled special keys (but warp) -#ifndef ACTIVEGS - case 0x04: /* F4 - emulator config panel */ - if (CMD_DOWN) - { - printf("Quit!\n"); - iwm_shut(); - my_exit(1); - } - else - { - cfg_toggle_config_panel(); - } - break; - case 0x05: /* F5 - emulator clipboard paste */ - clipboard_paste(); - break; - case 0x06: /* F6 - emulator speed */ - if(SHIFT_DOWN) { - halt2_printf("Shift-F6 pressed\n"); - } else { - adb_increment_speed(); - } - break; - case 0x07: /* F7 - fast disk emul */ - g_fast_disk_emul = !g_fast_disk_emul; - printf("g_fast_disk_emul is now %d\n", - g_fast_disk_emul); - break; -#endif - case 0x08: /* F8 - warp pointer */ - g_warp_pointer = !g_warp_pointer; - if(g_hide_pointer != g_warp_pointer) { - g_hide_pointer = g_warp_pointer; - x_hide_pointer(g_hide_pointer); - } - break; -#ifndef ACTIVEGS - case 0x09: /* F9 - swap paddles */ - if(SHIFT_DOWN) { - g_swap_paddles = !g_swap_paddles; - printf("Swap paddles is now: %d\n", - g_swap_paddles); - } else { - g_invert_paddles = !g_invert_paddles; - printf("Invert paddles is now: %d\n", - g_invert_paddles); - } - break; - case 0x0a: /* F10 - change a2vid paletter */ - if (SHIFT_DOWN) { -#ifdef TOGGLE_STATUS - extern void x_toggle_status_lines(); - x_toggle_status_lines(); -#endif - } else if (CMD_DOWN) { - do_reset(); - return; - } else { - change_a2vid_palette((g_a2vid_palette + 1) & 0xf); - } - break; - case 0x0b: /* F11 - full screen */ - g_fullscreen = !g_fullscreen; - x_full_screen(g_fullscreen); - break; -#endif - } - - return; - } - /* Handle Keypad Joystick here partly...if keypad key pressed */ - /* while in Keypad Joystick mode, do not pass it on as a key press */ - if((ascii_and_type & 0xff00) == 0x1000) { - /* Keep track of keypad number keys being up or down even */ - /* if joystick mode isn't keypad. This avoid funny cases */ - /* if joystick mode is changed while a key is pressed */ - ascii = ascii_and_type & 0xff; - if(ascii > 0x30 && ascii <= 0x39) { - g_keypad_key_is_down[ascii - 0x30] = !is_up; - } - if(g_joystick_type == JOYSTICK_TYPE_KEYPAD) { - /* If Joystick type is keypad, then do not let these */ - /* keypress pass on further, except for cmd/opt */ - if(ascii == 0x30) { - /* remap '0' to cmd */ - a2code = 0x37; - } else if(ascii == 0x2e || ascii == 0x2c) { - /* remap '.' and ',' to option */ - a2code = 0x3a; - } else { - /* Just ignore it in this mode */ - return; - } - } - } - - autopoll = 1; - if(g_adb_mode & 1) { - /* autopoll is explicitly off */ - autopoll = 0; - } - if(g_kbd_dev_addr != g_kbd_ctl_addr) { - /* autopoll is off because ucontroller doesn't know kbd moved */ - autopoll = 0; - } - if(g_config_control_panel) { - /* always do autopoll */ - autopoll = 1; - } - - - if(is_up) { - if(!autopoll) { - /* no auto keys, generate SRQ! */ - adb_kbd_reg0_data(a2code, is_up); - } else { - adb_virtual_key_update(a2code, is_up); - } - } else { - if(!autopoll) { - /* no auto keys, generate SRQ! */ - adb_kbd_reg0_data(a2code, is_up); - } else { - /* was up, now down */ - adb_virtual_key_update(a2code, is_up); - } - } -} - -void -adb_virtual_key_update(int a2code, int is_up) -{ - int i; - int bitpos; - word32 mask; - - adb_printf("Virtual handle a2code: %02x, is_up: %d\n", a2code, is_up); - - if(a2code < 0 || a2code > 0x7f) { - halt_printf("a2code: %04x!\n", a2code); - return; - } - - i = (a2code >> 5) & 3; - bitpos = a2code & 0x1f; - mask = (1 << bitpos); - - if(is_up) { - if(g_virtual_key_up[i] & mask) { - /* already up, do nothing */ - } else { - g_virtual_key_up[i] |= mask; - adb_key_event(a2code, is_up); - } - } else { - if(g_virtual_key_up[i] & mask) { - g_virtual_key_up[i] &= (~mask); - adb_key_event(a2code, is_up); - } - } -} - -void -adb_all_keys_up() -{ - word32 mask; - int i, j; - - for(i = 0; i < 4; i++) { - for(j = 0; j < 32; j++) { - mask = 1 << j; - if((g_virtual_key_up[i] & mask) == 0) { - /* create key-up event */ - adb_physical_key_update(i*32 + j, 1); - } - } - } -} - -void -adb_kbd_repeat_off() -{ - g_key_down = 0; -} diff --git a/.svn/pristine/fa/fa74cf90ce1273d7c8ecce4f5b675969ff7a0f20.svn-base b/.svn/pristine/fa/fa74cf90ce1273d7c8ecce4f5b675969ff7a0f20.svn-base deleted file mode 100644 index bf96cf9..0000000 --- a/.svn/pristine/fa/fa74cf90ce1273d7c8ecce4f5b675969ff7a0f20.svn-base +++ /dev/null @@ -1,218 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -enum { - ABS = 1, - ABSX, - ABSY, - ABSLONG, - ABSIND, - ABSXIND, - IMPLY, - ACCUM, - IMMED, - JUST8, - DLOC, - DLOCX, - DLOCY, - LONG, - LONGX, - DLOCIND, - DLOCINDY, - DLOCXIND, - DLOCBRAK, - DLOCBRAKY, - DISP8, - DISP8S, - DISP8SINDY, - DISP16, - MVPMVN, - REPVAL, - SEPVAL -}; - - -const char * const disas_opcodes[256] = { - "BRK", "ORA", "COP", "ORA", "TSB", "ORA", "ASL", "ORA", /* 00-07 */ - "PHP", "ORA", "ASL", "PHD", "TSB", "ORA", "ASL", "ORA", /* 08-0f */ - "BPL", "ORA", "ORA", "ORA", "TRB", "ORA", "ASL", "ORA", /* 10-17 */ - "CLC", "ORA", "INC", "TCS", "TRB", "ORA", "ASL", "ORA", /* 18-1f */ - "JSR", "AND", "JSL", "AND", "BIT", "AND", "ROL", "AND", /* 20-27 */ - "PLP", "AND", "ROL", "PLD", "BIT", "AND", "ROL", "AND", /* 28-2f */ - "BMI", "AND", "AND", "AND", "BIT", "AND", "ROL", "AND", /* 30-37 */ - "SEC", "AND", "DEC", "TSC", "BIT", "AND", "ROL", "AND", /* 38-3f */ - "RTI", "EOR", "WDM", "EOR", "MVP", "EOR", "LSR", "EOR", /* 40-47 */ - "PHA", "EOR", "LSR", "PHK", "JMP", "EOR", "LSR", "EOR", /* 48-4f */ - "BVC", "EOR", "EOR", "EOR", "MVN", "EOR", "LSR", "EOR", /* 50-57 */ - "CLI", "EOR", "PHY", "TCD", "JMP", "EOR", "LSR", "EOR", /* 58-5f */ - "RTS", "ADC", "PER", "ADC", "STZ", "ADC", "ROR", "ADC", /* 60-67 */ - "PLA", "ADC", "ROR", "RTL", "JMP", "ADC", "ROR", "ADC", /* 68-6f */ - "BVS", "ADC", "ADC", "ADC", "STZ", "ADC", "ROR", "ADC", /* 70-77 */ - "SEI", "ADC", "PLY", "TDC", "JMP", "ADC", "ROR", "ADC", /* 78-7f */ - "BRA", "STA", "BRL", "STA", "STY", "STA", "STX", "STA", /* 80-87 */ - "DEY", "BIT", "TXA", "PHB", "STY", "STA", "STX", "STA", /* 88-8f */ - "BCC", "STA", "STA", "STA", "STY", "STA", "STX", "STA", /* 90-97 */ - "TYA", "STA", "TXS", "TXY", "STZ", "STA", "STZ", "STA", /* 98-9f */ - "LDY", "LDA", "LDX", "LDA", "LDY", "LDA", "LDX", "LDA", /* a0-a7 */ - "TAY", "LDA", "TAX", "PLB", "LDY", "LDA", "LDX", "LDA", /* a8-af */ - "BCS", "LDA", "LDA", "LDA", "LDY", "LDA", "LDX", "LDA", /* b0-b7 */ - "CLV", "LDA", "TSX", "TYX", "LDY", "LDA", "LDX", "LDA", /* b8-bf */ - "CPY", "CMP", "REP", "CMP", "CPY", "CMP", "DEC", "CMP", /* c0-c7 */ - "INY", "CMP", "DEX", "WAI", "CPY", "CMP", "DEC", "CMP", /* c8-cf */ - "BNE", "CMP", "CMP", "CMP", "PEI", "CMP", "DEC", "CMP", /* d0-d7 */ - "CLD", "CMP", "PHX", "STP", "JML", "CMP", "DEC", "CMP", /* d8-df */ - "CPX", "SBC", "SEP", "SBC", "CPX", "SBC", "INC", "SBC", /* e0-e7 */ - "INX", "SBC", "NOP", "XBA", "CPX", "SBC", "INC", "SBC", /* e8-ef */ - "BEQ", "SBC", "SBC", "SBC", "PEA", "SBC", "INC", "SBC", /* f0-f7 */ - "SED", "SBC", "PLX", "XCE", "JSR", "SBC", "INC", "SBC", /* f8-ff */ -}; - - -const word32 disas_types[256] = { - JUST8+0x100, DLOCXIND+0x100, /* 00-01 */ - JUST8+0x100, DISP8S+0x100, /* 02-03 */ - DLOC+0x100, DLOC+0x100, /* 04-05 */ - DLOC+0x100, DLOCBRAK+0x100, /* 06-07 */ - IMPLY+0x000, IMMED+0x400, /* 08-9 */ - ACCUM+0x000, IMPLY+0x000, /* 0a-b */ - ABS+0x200, ABS+0x200, /* c-d */ - ABS+0x200, LONG+0x300, /* e-f */ - DISP8+0x100, DLOCINDY+0x100, /* 10-11 */ - DLOCIND+0x100, DISP8SINDY+0x100, /* 12-13 */ - DLOC+0x100, DLOCX+0x100, /* 14-15 */ - DLOCX+0x100, DLOCBRAKY+0x100, /* 16-17 */ - IMPLY+0x000, ABSY+0x200, /* 18-19 */ - ACCUM+0x000, IMPLY+0x000, /* 1a-1b */ - ABS+0x200, ABSX+0x200, /* 1c-1d */ - ABSX+0x200, LONGX+0x300, /* 1e-1f */ - ABS+0x200, DLOCXIND+0x100, /* 20-21 */ - ABSLONG+0x300, DISP8S+0x100, /* 22-23 */ - DLOC+0x100, DLOC+0x100, /* 24-25 */ - DLOC+0x100, DLOCBRAK+0x100, /* 26-27 */ - IMPLY+0x000, IMMED+0x400, /* 28-29 */ - ACCUM+0x000, IMPLY+0x000, /* 2a-2b */ - ABS+0x200, ABS+0x200, /* 2c-2d */ - ABS+0x200, LONG+0x300, /* 2e-2f */ - DISP8+0x100, DLOCINDY+0x100, /* 30-31 */ - DLOCIND+0x100, DISP8SINDY+0x100, /* 32-33 */ - DLOCX+0x100, DLOCX+0x100, /* 34-35 */ - DLOCX+0x100, DLOCBRAKY+0x100, /* 36-37 */ - IMPLY+0x000, ABSY+0x200, /* 38-39 */ - ACCUM+0x000, IMPLY+0x000, /* 3a-3b */ - ABSX+0x200, ABSX+0x200, /* 3c-3d */ - ABSX+0x200, LONGX+0x300, /* 3e-3f */ - IMPLY+0x000, DLOCXIND+0x100, /* 40-41 */ - JUST8+0x100, DISP8S+0x100, /* 42-43 */ - MVPMVN+0x200, DLOC+0x100, /* 44-45 */ - DLOC+0x100, DLOCBRAK+0x100, /* 46-47 */ - IMPLY+0x000, IMMED+0x400, /* 48-49 */ - ACCUM+0x000, IMPLY+0x000, /* 4a-4b */ - ABS+0x200, ABS+0x200, /* 4c-4d */ - ABS+0x200, LONG+0x300, /* 4e-4f */ - DISP8+0x100, DLOCINDY+0x100, /* 50-51 */ - DLOCIND+0x100, DISP8SINDY+0x100, /* 52-53 */ - MVPMVN+0x200, DLOCX+0x100, /* 54-55 */ - DLOCX+0x100, DLOCBRAKY+0x100, /* 56-57 */ - IMPLY+0x000, ABSY+0x200, /* 58-59 */ - IMPLY+0x000, IMPLY+0x000, /* 5a-5b */ - LONG+0x300, ABSX+0x200, /* 5c-5d */ - ABSX+0x200, LONGX+0x300, /* 5e-5f */ - IMPLY+0x000, DLOCXIND+0x100, /* 60-61 */ - DISP16+0x200, DISP8S+0x100, /* 62-63 */ - DLOC+0x100, DLOC+0x100, /* 64-65 */ - DLOC+0x100, DLOCBRAK+0x100, /* 66-67 */ - IMPLY+0x000, IMMED+0x400, /* 68-69 */ - ACCUM+0x000, IMPLY+0x000, /* 6a-6b */ - ABSIND+0x200, ABS+0x200, /* 6c-6d */ - ABS+0x200, LONG+0x300, /* 6e-6f */ - DISP8+0x100, DLOCINDY+0x100, /* 70-71 */ - DLOCIND+0x100, DISP8SINDY+0x100, /* 72-73 */ - DLOCX+0x100, DLOCX+0x100, /* 74-75 */ - DLOCX+0x100, DLOCBRAKY+0x100, /* 76-77 */ - IMPLY+0x000, ABSY+0x200, /* 78-79 */ - IMPLY+0x000, IMPLY+0x000, /* 7a-7b */ - ABSXIND+0x200, ABSX+0x200, /* 7c-7d */ - ABSX+0x200, LONGX+0x300, /* 7e-7f */ - DISP8+0x100, DLOCXIND+0x100, /* 80-81 */ - DISP16+0x200, DISP8S+0x100, /* 82-83 */ - DLOC+0x100, DLOC+0x100, /* 84-85 */ - DLOC+0x100, DLOCBRAK+0x100, /* 86-87 */ - IMPLY+0x000, IMMED+0x400, /* 88-89 */ - IMPLY+0x000, IMPLY+0x000, /* 8a-8b */ - ABS+0x200, ABS+0x200, /* 8c-8d */ - ABS+0x200, LONG+0x300, /* 8e-8f */ - DISP8+0x100, DLOCINDY+0x100, /* 90-91 */ - DLOCIND+0x100, DISP8SINDY+0x100, /* 92-93 */ - DLOCX+0x100, DLOCX+0x100, /* 94-95 */ - DLOCY+0x100, DLOCBRAKY+0x100, /* 96-97 */ - IMPLY+0x000, ABSY+0x200, /* 98-99 */ - IMPLY+0x000, IMPLY+0x000, /* 9a-9b */ - ABS+0x200, ABSX+0x200, /* 9c-9d */ - ABSX+0x200, LONGX+0x300, /* 9e-9f */ - IMMED+0x500, DLOCXIND+0x100, /* a0-a1 */ - IMMED+0x500, DISP8S+0x100, /* a2-a3 */ - DLOC+0x100, DLOC+0x100, /* a4-a5 */ - DLOC+0x100, DLOCBRAK+0x100, /* a6-a7 */ - IMPLY+0x000, IMMED+0x400, /* a8-a9 */ - IMPLY+0x000, IMPLY+0x000, /* aa-ab */ - ABS+0x200, ABS+0x200, /* ac-ad */ - ABS+0x200, LONG+0x300, /* ae-af */ - DISP8+0x100, DLOCINDY+0x100, /* b0-b1 */ - DLOCIND+0x100, DISP8SINDY+0x100, /* b2-b3 */ - DLOCX+0x100, DLOCX+0x100, /* b4-b5 */ - DLOCY+0x100, DLOCBRAKY+0x100, /* b6-b7 */ - IMPLY+0x000, ABSY+0x200, /* b8-b9 */ - IMPLY+0x000, IMPLY+0x000, /* ba-bb */ - ABSX+0x200, ABSX+0x200, /* bc-bd */ - ABSY+0x200, LONGX+0x300, /* be-bf */ - IMMED+0x500, DLOCXIND+0x100, /* c0-c1 */ - REPVAL+0x100, DISP8S+0x100, /* c2-c3 */ - DLOC+0x100, DLOC+0x100, /* c4-c5 */ - DLOC+0x100, DLOCBRAK+0x100, /* c6-c7 */ - IMPLY+0x000, IMMED+0x400, /* c8-c9 */ - IMPLY+0x000, IMPLY+0x000, /* ca-cb */ - ABS+0x200, ABS+0x200, /* cc-cd */ - ABS+0x200, LONG+0x300, /* ce-cf */ - DISP8+0x100, DLOCINDY+0x100, /* d0-d1 */ - DLOCIND+0x100, DISP8SINDY+0x100, /* d2-d3 */ - DLOC+0x100, DLOCX+0x100, /* d4-d5 */ - DLOCX+0x100, DLOCBRAKY+0x100, /* d6-d7 */ - IMPLY+0x000, ABSY+0x200, /* d8-d9 */ - IMPLY+0x000, IMPLY+0x000, /* da-db */ - ABSIND+0x200, ABSX+0x200, /* dc-dd */ - ABSX+0x200, LONGX+0x300, /* de-df */ - IMMED+0x500, DLOCXIND+0x100, /* e0-e1 */ - SEPVAL+0x100, DISP8S+0x100, /* e2-e3 */ - DLOC+0x100, DLOC+0x100, /* e4-e5 */ - DLOC+0x100, DLOCBRAK+0x100, /* e6-e7 */ - IMPLY+0x000, IMMED+0x400, /* e8-e9 */ - IMPLY+0x000, IMPLY+0x000, /* ea-eb */ - ABS+0x200, ABS+0x200, /* ec-ed */ - ABS+0x200, LONG+0x300, /* ee-ef */ - DISP8+0x100, DLOCINDY+0x100, /* f0-f1 */ - DLOCIND+0x100, DISP8SINDY+0x100, /* f2-f3 */ - IMMED+0x200, DLOCX+0x100, /* f4-f5 */ - DLOCX+0x100, DLOCBRAKY+0x100, /* f6-f7 */ - IMPLY+0x000, ABSY+0x200, /* f8-f9 */ - IMPLY+0x000, IMPLY+0x000, /* fa-fb */ - ABSXIND+0x200, ABSX+0x200, /* fc-fd */ - ABSX+0x200, LONGX+0x300, /* fe-ff */ -}; diff --git a/.svn/pristine/fa/faedf222016957d38a7f5879b45af5ac6efc3669.svn-base b/.svn/pristine/fa/faedf222016957d38a7f5879b45af5ac6efc3669.svn-base deleted file mode 100644 index 913506b..0000000 --- a/.svn/pristine/fa/faedf222016957d38a7f5879b45af5ac6efc3669.svn-base +++ /dev/null @@ -1,124 +0,0 @@ -/* this table is used to search for the Windows VK_* in col 1 or 2 */ -/* flags bit 8 is or'ed into the VK, so we can distinguish keypad keys */ -/* regardless of numlock */ -int g_a2_key_to_wsym[][3] = { - { 0x35, VK_ESCAPE, 0 }, - { 0x7a, VK_F1, 0 }, - { 0x78, VK_F2, 0 }, // OG Was 7B but F2 is defined has 0x78 in a2_key_to_ascii - { 0x63, VK_F3, 0 }, - { 0x76, VK_F4, 0 }, - { 0x60, VK_F5, 0 }, - { 0x61, VK_F6, 0 }, - { 0x62, VK_F7, 0 }, - { 0x64, VK_F8, 0 }, - { 0x65, VK_F9, 0 }, - { 0x6d, VK_F10, 0 }, - { 0x67, VK_F11, 0 }, - { 0x6f, VK_F12, 0 }, - { 0x69, VK_F13, 0 }, - { 0x6b, VK_F14, 0 }, - { 0x71, VK_F15, 0 }, - { 0x7f, VK_PAUSE, VK_CANCEL+0x100 }, - - { 0x32, 0xc0, 0 }, /* '`' */ - { 0x12, '1', 0 }, - { 0x13, '2', 0 }, - { 0x14, '3', 0 }, - { 0x15, '4', 0 }, - { 0x17, '5', 0 }, - { 0x16, '6', 0 }, - { 0x1a, '7', 0 }, - { 0x1c, '8', 0 }, - { 0x19, '9', 0 }, - { 0x1d, '0', 0 }, - { 0x1b, 0xbd, 0 }, /* '-' */ - { 0x18, 0xbb, 0 }, /* '=' */ - { 0x33, VK_BACK, 0 }, /* backspace */ - { 0x72, VK_INSERT+0x100, 0 }, /* Insert key */ -/* { 0x73, XK_Home, 0 }, alias VK_HOME to be KP_Equal! */ - { 0x74, VK_PRIOR+0x100, 0 }, /* pageup */ - { 0x47, VK_NUMLOCK, VK_NUMLOCK+0x100 }, /* clear */ - { 0x51, VK_HOME+0x100, 0 }, /* KP_equal is HOME key */ - { 0x4b, VK_DIVIDE, VK_DIVIDE+0x100 }, - { 0x43, VK_MULTIPLY, VK_MULTIPLY+0x100 }, - - { 0x30, VK_TAB, 0 }, - { 0x0c, 'Q', 0 }, - { 0x0d, 'W', 0 }, - { 0x0e, 'E', 0 }, - { 0x0f, 'R', 0 }, - { 0x11, 'T', 0 }, - { 0x10, 'Y', 0 }, - { 0x20, 'U', 0 }, - { 0x22, 'I', 0 }, - { 0x1f, 'O', 0 }, - { 0x23, 'P', 0 }, - { 0x21, 0xdb, 0 }, /* [ */ - { 0x1e, 0xdd, 0 }, /* ] */ - { 0x2a, 0xdc, 0 }, /* backslash, bar */ - { 0x75, VK_DELETE+0x100, 0 }, - { 0x77, VK_END+0x100, VK_END }, - { 0x79, VK_NEXT+0x100, 0 }, - { 0x59, VK_NUMPAD7, VK_HOME }, - { 0x5b, VK_NUMPAD8, VK_UP }, - { 0x5c, VK_NUMPAD9, VK_PRIOR }, - { 0x4e, VK_SUBTRACT, VK_SUBTRACT+0x100 }, - - // { 0x39, VK_CAPITAL, 0 }, // Handled specially! - { 0x00, 'A', 0 }, - { 0x01, 'S', 0 }, - { 0x02, 'D', 0 }, - { 0x03, 'F', 0 }, - { 0x05, 'G', 0 }, - { 0x04, 'H', 0 }, - { 0x26, 'J', 0 }, - { 0x28, 'K', 0 }, - { 0x25, 'L', 0 }, - { 0x29, 0xba, 0 }, /* ; */ - { 0x27, 0xde, 0 }, /* single quote */ - { 0x24, VK_RETURN, 0 }, - { 0x56, VK_NUMPAD4, VK_LEFT }, - { 0x57, VK_NUMPAD5, VK_CLEAR }, - { 0x58, VK_NUMPAD6, VK_RIGHT }, - { 0x45, VK_ADD, 0 }, - - { 0x38, VK_SHIFT, 0 }, - { 0x06, 'Z', 0 }, - { 0x07, 'X', 0 }, - { 0x08, 'C', 0 }, - { 0x09, 'V', 0 }, - { 0x0b, 'B', 0 }, - { 0x2d, 'N', 0 }, - { 0x2e, 'M', 0 }, - { 0x2b, 0xbc, 0 }, /* , */ - { 0x2f, 0xbe, 0 }, /* . */ - { 0x2c, 0xbf, 0 }, /* / */ - { 0x3e, VK_UP+0x100, 0 }, - { 0x53, VK_NUMPAD1, VK_END }, - { 0x54, VK_NUMPAD2, VK_DOWN }, - { 0x55, VK_NUMPAD3, VK_NEXT }, - - { 0x36, VK_CONTROL, VK_CONTROL+0x100 }, - { 0x3a, VK_SNAPSHOT+0x100, VK_MENU+0x100 },/* Opt=prntscrn or alt-r */ - -// OG ActiveGS map OA-CA to Win & AltKey -#ifndef ACTIVEGS - { 0x37, VK_SCROLL, VK_MENU }, /* Command=scr_lock or alt-l */ -#else - { 0x7f, VK_CANCEL, 0 }, - { 0x3A, VK_LWIN+0x100, VK_LWIN }, - { 0x37, VK_MENU, 0 }, /* Command=alt-l */ - { 0x37, VK_LMENU, 0 }, /* Command=alt-l */ - { 0x7F, VK_SCROLL,0 }, /* RESET */ - { 0x36, VK_LCONTROL, 0 }, // CTRL -#endif - - { 0x31, ' ', 0 }, - { 0x3b, VK_LEFT+0x100, 0 }, - { 0x3d, VK_DOWN+0x100, 0 }, - { 0x3c, VK_RIGHT+0x100, 0 }, - { 0x52, VK_NUMPAD0, VK_INSERT }, - { 0x41, VK_DECIMAL, VK_DECIMAL }, - { 0x4c, VK_RETURN+0x100, 0 }, - { -1, -1, -1 } -}; \ No newline at end of file diff --git a/.svn/pristine/fb/fb916bb180d7a4c1b3ba2a46d8f648326bf37755.svn-base b/.svn/pristine/fb/fb916bb180d7a4c1b3ba2a46d8f648326bf37755.svn-base deleted file mode 100644 index 6a1cc9a8d3090439e99232833ca50c881e01567a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17766 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 diff --git a/.svn/pristine/fb/fb9e61a6656692e2bc165c8bb97a9215c89c7d83.svn-base b/.svn/pristine/fb/fb9e61a6656692e2bc165c8bb97a9215c89c7d83.svn-base deleted file mode 100644 index b9ffa5b..0000000 --- a/.svn/pristine/fb/fb9e61a6656692e2bc165c8bb97a9215c89c7d83.svn-base +++ /dev/null @@ -1,18 +0,0 @@ -TARGET = gsportx -OBJECTS = $(OBJECTS1) $(TFEOBJ) $(ATOBJ) $(PCAPOBJ) xdriver.o -CC = gcc -CCOPTS = -O2 -Wall -fomit-frame-pointer -std=gnu99 -march=i686 -DHAVE_SDL -DHAVE_TFE -DHAVE_ATBRIDGE -DTOGGLE_STATUS -I/usr/include/SDL -I/usr/include/freetype2 -CPPOPTS = -O2 -DHAVE_TFE -DHAVE_SDL -DTOGGLE_STATUS -DHAVE_ATBRIDGE -I/usr/include/freetype2 -I/usr/include/SDL -OPTS = -DGSPORT_LITTLE_ENDIAN -SUFFIX = -NAME = gsportx -LDFLAGS = -LDOPTS = -LD = g++ -EXTRA_LIBS = -lXext -lfreetype -lSDL -EXTRA_SPECIALS = - -AS = cc -PERL = perl - -XOPTS = -I/usr/X11R6/include diff --git a/.svn/pristine/fd/fd2f27ae732cebaefd73faad262008557eba884f.svn-base b/.svn/pristine/fd/fd2f27ae732cebaefd73faad262008557eba884f.svn-base deleted file mode 100644 index 6401ea0..0000000 --- a/.svn/pristine/fd/fd2f27ae732cebaefd73faad262008557eba884f.svn-base +++ /dev/null @@ -1,22 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -int g_preferred_rate = 48000; \ No newline at end of file diff --git a/.svn/pristine/fe/fec481825ecf89a223b2ef031eb700bbb482fada.svn-base b/.svn/pristine/fe/fec481825ecf89a223b2ef031eb700bbb482fada.svn-base deleted file mode 100644 index 7195676..0000000 --- a/.svn/pristine/fe/fec481825ecf89a223b2ef031eb700bbb482fada.svn-base +++ /dev/null @@ -1,2395 +0,0 @@ -/* - GSport - an Apple //gs Emulator - Copyright (C) 2010 - 2012 by GSport contributors - - Based on the KEGS emulator written by and Copyright (C) 2003 Kent Dickey - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include "defc.h" - -extern int Verbose; -extern word32 g_vbl_count; // OG change int to word32 -extern int g_c036_val_speed; - -const byte phys_to_dos_sec[] = { - 0x00, 0x07, 0x0e, 0x06, 0x0d, 0x05, 0x0c, 0x04, - 0x0b, 0x03, 0x0a, 0x02, 0x09, 0x01, 0x08, 0x0f -}; - -const byte phys_to_prodos_sec[] = { - 0x00, 0x08, 0x01, 0x09, 0x02, 0x0a, 0x03, 0x0b, - 0x04, 0x0c, 0x05, 0x0d, 0x06, 0x0e, 0x07, 0x0f -}; - - -const byte to_disk_byte[] = { - 0x96, 0x97, 0x9a, 0x9b, 0x9d, 0x9e, 0x9f, 0xa6, - 0xa7, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb2, 0xb3, -/* 0x10 */ - 0xb4, 0xb5, 0xb6, 0xb7, 0xb9, 0xba, 0xbb, 0xbc, - 0xbd, 0xbe, 0xbf, 0xcb, 0xcd, 0xce, 0xcf, 0xd3, -/* 0x20 */ - 0xd6, 0xd7, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, - 0xdf, 0xe5, 0xe6, 0xe7, 0xe9, 0xea, 0xeb, 0xec, -/* 0x30 */ - 0xed, 0xee, 0xef, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, - 0xf7, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff -}; - -int g_track_bytes_35[] = { - 0x200*12, - 0x200*11, - 0x200*10, - 0x200*9, - 0x200*8 -}; - -int g_track_nibs_35[] = { - 816*12, - 816*11, - 816*10, - 816*9, - 816*8 -}; - - - -int g_fast_disk_emul = 1; -int g_slow_525_emul_wr = 0; -double g_dcycs_end_emul_wr = 0.0; -int g_fast_disk_unnib = 0; -int g_iwm_fake_fast = 0; - - -int from_disk_byte[256]; -int from_disk_byte_valid = 0; - -Iwm iwm; - -extern int g_c031_disk35; - -int g_iwm_motor_on = 0; - -int g_check_nibblization = 0; - -/* prototypes for IWM special routs */ -int iwm_read_data_35(Disk *dsk, int fast_disk_emul, double dcycs); -int iwm_read_data_525(Disk *dsk, int fast_disk_emul, double dcycs); -void iwm_write_data_35(Disk *dsk, word32 val, int fast_disk_emul, double dcycs); -void iwm_write_data_525(Disk *dsk, word32 val, int fast_disk_emul,double dcycs); - -void -iwm_init_drive(Disk *dsk, int smartport, int drive, int disk_525) -{ - dsk->dcycs_last_read = 0.0; - dsk->name_ptr = 0; - dsk->partition_name = 0; - dsk->partition_num = -1; - dsk->file = 0; - dsk->force_size = 0; - dsk->image_start = 0; - dsk->image_size = 0; - dsk->smartport = smartport; - dsk->disk_525 = disk_525; - dsk->drive = drive; - dsk->cur_qtr_track = 0; - dsk->image_type = 0; - dsk->vol_num = 254; - dsk->write_prot = 1; - dsk->write_through_to_unix = 0; - dsk->disk_dirty = 0; - dsk->just_ejected = 0; - dsk->last_phase = 0; - dsk->nib_pos = 0; - dsk->num_tracks = 0; - dsk->trks = 0; - -} - -void -disk_set_num_tracks(Disk *dsk, int num_tracks) -{ - int i; - - if(dsk->trks != 0) { - /* This should not be necessary! */ - free(dsk->trks); - halt_printf("Needed to free dsk->trks: %p\n", dsk->trks); - } - dsk->num_tracks = num_tracks; - dsk->trks = (Trk *)malloc(num_tracks * sizeof(Trk)); - - for(i = 0; i < num_tracks; i++) { - dsk->trks[i].dsk = dsk; - dsk->trks[i].nib_area = 0; - dsk->trks[i].track_dirty = 0; - dsk->trks[i].overflow_size = 0; - dsk->trks[i].track_len = 0; - dsk->trks[i].unix_pos = -1; - dsk->trks[i].unix_len = -1; - } -} - -void -iwm_init() -{ - int val; - int i; - - for(i = 0; i < 2; i++) { - iwm_init_drive(&(iwm.drive525[i]), 0, i, 1); - iwm_init_drive(&(iwm.drive35[i]), 0, i, 0); - } - - for(i = 0; i < MAX_C7_DISKS; i++) { - iwm_init_drive(&(iwm.smartport[i]), 1, i, 0); - } - - if(from_disk_byte_valid == 0) { - for(i = 0; i < 256; i++) { - from_disk_byte[i] = -1; - } - for(i = 0; i < 64; i++) { - val = to_disk_byte[i]; - from_disk_byte[val] = i; - } - from_disk_byte_valid = 1; - } else { - halt_printf("iwm_init called twice!\n"); - } - - iwm_reset(); -} - -// OG Added shut function to IWM -// Free the memory, and more important free the open handle onto the disk -void -iwm_shut() -{ - int i; - for(i = 0; i < 2; i++) { - eject_disk(&iwm.drive525[i]); - eject_disk(&iwm.drive35[i]); - } - - for(i = 0; i < MAX_C7_DISKS; i++) { - eject_disk(&iwm.smartport[i]); - } - - from_disk_byte_valid = 0; -} - -void -iwm_reset() -{ - iwm.q6 = 0; - iwm.q7 = 0; - iwm.motor_on = 0; - iwm.motor_on35 = 0; - iwm.motor_off = 0; - iwm.motor_off_vbl_count = 0; - iwm.step_direction35 = 0; - iwm.head35 = 0; - iwm.drive_select = 0; - iwm.iwm_mode = 0; - iwm.enable2 = 0; - iwm.reset = 0; - iwm.iwm_phase[0] = 0; - iwm.iwm_phase[1] = 0; - iwm.iwm_phase[2] = 0; - iwm.iwm_phase[3] = 0; - iwm.previous_write_val = 0; - iwm.previous_write_bits = 0; - - g_iwm_motor_on = 0; - g_c031_disk35 = 0; -} - -void -draw_iwm_status(int line, char *buf) -{ - char *flag[2][2]; - int apple35_sel; - - flag[0][0] = " "; - flag[0][1] = " "; - flag[1][0] = " "; - flag[1][1] = " "; - - apple35_sel = (g_c031_disk35 >> 6) & 1; - if(g_iwm_motor_on) { - flag[apple35_sel][iwm.drive_select] = "*"; - } - - #ifdef ACTIVEGS // OG Pass monitoring info - { - extern void ki_loading(int _motorOn,int _slot,int _drive, int _curtrack); - int curtrack=0; - if (apple35_sel) - curtrack = iwm.drive35[iwm.drive_select].cur_qtr_track ; - else - curtrack = iwm.drive525[iwm.drive_select].cur_qtr_track >> 2 ; - - ki_loading(g_iwm_motor_on,apple35_sel?5:6,iwm.drive_select+1,curtrack); - } - #endif - - sprintf(buf, "s6d1:%2d%s s6d2:%2d%s s5d1:%2d/%d%s " - "s5d2:%2d/%d%s fast_disk_emul:%d,%d c036:%02x", - iwm.drive525[0].cur_qtr_track >> 2, flag[0][0], - iwm.drive525[1].cur_qtr_track >> 2, flag[0][1], - iwm.drive35[0].cur_qtr_track >> 1, - iwm.drive35[0].cur_qtr_track & 1, flag[1][0], - iwm.drive35[1].cur_qtr_track >> 1, - iwm.drive35[1].cur_qtr_track & 1, flag[1][1], - g_fast_disk_emul, g_slow_525_emul_wr, g_c036_val_speed); - - video_update_status_line(line, buf); -} - - -void -iwm_flush_disk_to_unix(Disk *dsk) -{ - byte buffer[0x4000]; - int num_dirty; - int j; - int ret; - int unix_pos; - int unix_len; - - if(dsk->disk_dirty == 0 || dsk->write_through_to_unix == 0) { - return; - } - - printf("Writing disk %s to Unix\n", dsk->name_ptr); - dsk->disk_dirty = 0; - num_dirty = 0; - - /* Dirty data! */ - for(j = 0; j < dsk->num_tracks; j++) { - - ret = disk_track_to_unix(dsk, j, &(buffer[0])); - - if(ret != 1 && ret != 0) { - printf("iwm_flush_disk_to_unix ret: %d, cannot write " - "image to unix\n", ret); - halt_printf("Adjusting image not to write through!\n"); - dsk->write_through_to_unix = 0; - break; - } - - if(ret != 1) { - /* not at an even track, or not dirty */ - continue; - } - if((j & 3) != 0 && dsk->disk_525) { - halt_printf("Valid data on a non-whole trk: %03x\n", j); - continue; - } - - num_dirty++; - - /* Write it out */ - unix_pos = dsk->trks[j].unix_pos; - unix_len = dsk->trks[j].unix_len; - if(unix_pos < 0 || unix_len < 0x1000) { - halt_printf("Disk:%s trk:%d, unix_pos:%08x, len:%08x\n", - dsk->name_ptr, j, unix_pos, unix_len); - break; - } - - ret = fseek(dsk->file, unix_pos, SEEK_SET); - if(ret != 0) { - halt_printf("fseek 525: errno: %d\n", errno); - } - - ret = fwrite(&(buffer[0]), 1, unix_len, dsk->file); - if(ret != unix_len) { - printf("fwrite: %08x, errno:%d, qtrk: %02x, disk: %s\n", - ret, errno, j, dsk->name_ptr); - } - } - - if(num_dirty == 0) { - halt_printf("Drive %s was dirty, but no track was dirty!\n", - dsk->name_ptr); - } - -} - -/* Check for dirty disk 3 times a second */ - -extern byte g_bram[2][256]; -extern byte* g_bram_ptr; -extern byte g_temp_boot_slot; -extern byte g_orig_boot_slot; -extern int g_config_gsport_update_needed; -void -iwm_vbl_update(int doit_3_persec) -{ - Disk *dsk; - int motor_on; - int i; - - if(iwm.motor_on && iwm.motor_off) { - if((word32)iwm.motor_off_vbl_count <= g_vbl_count) { - printf("Disk timer expired, drive off: %08x\n", - g_vbl_count); - iwm.motor_on = 0; - iwm.motor_off = 0; - if (g_temp_boot_slot != 254) { - // Drive is off, now's a good time to turn off the temp boot slot if it was on. - g_temp_boot_slot = 254; - g_bram_ptr[40] = g_orig_boot_slot; - clk_calculate_bram_checksum(); - g_config_gsport_update_needed = 1; - } - } - } - - if(!doit_3_persec) { - return; - } - - motor_on = iwm.motor_on; - if(g_c031_disk35 & 0x40) { - motor_on = iwm.motor_on35; - if (g_temp_boot_slot != 254) { - // Now's a good time to turn off the temp boot slot if it was on. - g_temp_boot_slot = 254; - g_bram_ptr[40] = g_orig_boot_slot; - clk_calculate_bram_checksum(); - g_config_gsport_update_needed = 1; - } - - } - - if(motor_on == 0 || iwm.motor_off) { - /* Disk not spinning, see if any dirty tracks to flush */ - /* out to Unix */ - for(i = 0; i < 2; i++) { - dsk = &(iwm.drive525[i]); - iwm_flush_disk_to_unix(dsk); - } - for(i = 0; i < 2; i++) { - dsk = &(iwm.drive35[i]); - iwm_flush_disk_to_unix(dsk); - } - } -} - - -void -iwm_show_stats() -{ - printf("IWM stats: q7,q6: %d, %d, reset,enable2: %d,%d, mode: %02x\n", - iwm.q7, iwm.q6, iwm.reset, iwm.enable2, iwm.iwm_mode); - printf("motor: %d,%d, motor35:%d drive: %d, c031:%02x " - "phs: %d %d %d %d\n", - iwm.motor_on, iwm.motor_off, g_iwm_motor_on, - iwm.drive_select, g_c031_disk35, - iwm.iwm_phase[0], iwm.iwm_phase[1], iwm.iwm_phase[2], - iwm.iwm_phase[3]); - printf("iwm.drive525[0].file: %p, [1].file: %p\n", - iwm.drive525[0].file, iwm.drive525[1].file); - printf("iwm.drive525[0].last_phase: %d, [1].last_phase: %d\n", - iwm.drive525[0].last_phase, iwm.drive525[1].last_phase); -} - -void -iwm_touch_switches(int loc, double dcycs) -{ - Disk *dsk; - int phase; - int on; - int drive; - - if(iwm.reset) { - iwm_printf("IWM under reset: %d, enable2: %d\n", iwm.reset, - iwm.enable2); - } - - on = loc & 1; - drive = iwm.drive_select; - phase = loc >> 1; - if(g_c031_disk35 & 0x40) { - dsk = &(iwm.drive35[drive]); - } else { - dsk = &(iwm.drive525[drive]); - } - - - if(loc < 8) { - /* phase adjustments. See if motor is on */ - - iwm.iwm_phase[phase] = on; - iwm_printf("Iwm phase %d=%d, all phases: %d %d %d %d (%f)\n", - phase, on, iwm.iwm_phase[0], iwm.iwm_phase[1], - iwm.iwm_phase[2], iwm.iwm_phase[3], dcycs); - - if(iwm.motor_on) { - if(g_c031_disk35 & 0x40) { - if(phase == 3 && on) { - iwm_do_action35(dcycs); - } - } else if(on) { - /* Move apple525 head */ - iwm525_phase_change(drive, phase); - } - } - /* See if enable or reset is asserted */ - if(iwm.iwm_phase[0] && iwm.iwm_phase[2]) { - iwm.reset = 1; - iwm_printf("IWM reset active\n"); - } else { - iwm.reset = 0; - } - if(iwm.iwm_phase[1] && iwm.iwm_phase[3]) { - iwm.enable2 = 1; - iwm_printf("IWM ENABLE2 active\n"); - } else { - iwm.enable2 = 0; - } - } else { - /* loc >= 8 */ - switch(loc) { - case 0x8: - iwm_printf("Turning IWM motor off!\n"); - if(iwm.iwm_mode & 0x04) { - /* Turn off immediately */ - iwm.motor_off = 0; - iwm.motor_on = 0; - } else { - /* 1 second delay */ - if(iwm.motor_on && !iwm.motor_off) { - iwm.motor_off = 1; - iwm.motor_off_vbl_count = g_vbl_count - + 60; - } - } - - if(g_iwm_motor_on || g_slow_525_emul_wr) { - /* recalc current speed */ - set_halt(HALT_EVENT); - } - - g_iwm_motor_on = 0; - g_slow_525_emul_wr = 0; - break; - case 0x9: - iwm_printf("Turning IWM motor on!\n"); - iwm.motor_on = 1; - iwm.motor_off = 0; - - if(g_iwm_motor_on == 0) { - /* recalc current speed */ - set_halt(HALT_EVENT); - } - g_iwm_motor_on = 1; - - break; - case 0xa: - case 0xb: - iwm.drive_select = on; - break; - case 0xc: - case 0xd: - iwm.q6 = on; - break; - case 0xe: - case 0xf: - iwm.q7 = on; - break; - default: - printf("iwm_touch_switches: loc: %02x unknown!\n", loc); - exit(2); - } - } - - if(!iwm.q7) { - iwm.previous_write_bits = 0; - } - - if((dcycs > g_dcycs_end_emul_wr) && g_slow_525_emul_wr) { - set_halt(HALT_EVENT); - g_slow_525_emul_wr = 0; - } -} - -void -iwm_move_to_track(Disk *dsk, int new_track) -{ - int disk_525; - int dr; - - disk_525 = dsk->disk_525; - - if(new_track < 0) { - new_track = 0; - } - if(new_track >= dsk->num_tracks) { - if(disk_525) { - new_track = dsk->num_tracks - 4; - } else { - new_track = dsk->num_tracks - 2 + iwm.head35; - } - - if(new_track <= 0) { - new_track = 0; - } - } - - if(dsk->cur_qtr_track != new_track) { - dr = dsk->drive + 1; - if(disk_525) { - iwm_printf("s6d%d Track: %d.%02d\n", dr, - new_track >> 2, 25* (new_track & 3)); - } else { - iwm_printf("s5d%d Track: %d Side: %d\n", dr, - new_track >> 1, new_track & 1); - } - - dsk->cur_qtr_track = new_track; - } -} - -void -iwm525_phase_change(int drive, int phase) -{ - Disk *dsk; - int qtr_track; - int delta; - - dsk = &(iwm.drive525[drive]); - - qtr_track = dsk->cur_qtr_track; - int half_track = qtr_track >> 1; - - delta = 0; - if (iwm.iwm_phase[(half_track + 1) & 3]) - delta += 2; - if (iwm.iwm_phase[(half_track + 3) & 3]) - delta -= 2; - - qtr_track += delta; - if(qtr_track < 0) { - printf("GRIND..."); - qtr_track = 0; - } - if(qtr_track > 4*34) { - printf("Disk arm moved past track 34, moving it back\n"); - qtr_track = 4*34; - } - - iwm_move_to_track(dsk, qtr_track); - - iwm_printf("Moving drive to qtr track: %04x (trk:%d.%02d), %d, %d, " - "%d %d %d %d\n", qtr_track, qtr_track>>2, 25*(qtr_track & 3), - phase, delta, iwm.iwm_phase[0], - iwm.iwm_phase[1], iwm.iwm_phase[2], iwm.iwm_phase[3]); -} - -int -iwm_read_status35(double dcycs) -{ - Disk *dsk; - int drive; - int state; - int tmp; - - drive = iwm.drive_select; - dsk = &(iwm.drive35[drive]); - - if(iwm.motor_on) { - /* Read status */ - state = (iwm.iwm_phase[1] << 3) + (iwm.iwm_phase[0] << 2) + - ((g_c031_disk35 >> 6) & 2) + iwm.iwm_phase[2]; - - iwm_printf("Iwm status read state: %02x\n", state); - - switch(state) { - case 0x00: /* step direction */ - return iwm.step_direction35; - break; - case 0x01: /* lower head activate */ - /* also return instantaneous data from head */ - iwm.head35 = 0; - iwm_move_to_track(dsk, (dsk->cur_qtr_track & (-2))); - return (((int)dcycs) & 1); - break; - case 0x02: /* disk in place */ - /* 1 = no disk, 0 = disk */ - iwm_printf("read disk in place, num_tracks: %d\n", - dsk->num_tracks); - tmp = (dsk->num_tracks <= 0); - return tmp; - break; - case 0x03: /* upper head activate */ - /* also return instantaneous data from head */ - iwm.head35 = 1; - iwm_move_to_track(dsk, (dsk->cur_qtr_track | 1)); - return (((int)dcycs) & 1); - break; - case 0x04: /* disk is stepping? */ - /* 1 = not stepping, 0 = stepping */ - return 1; - break; - case 0x05: /* Unknown function of ROM 03? */ - /* 1 = or $20 into 0xe1/f24+drive, 0 = don't */ - return 1; - break; - case 0x06: /* disk is locked */ - /* 0 = locked, 1 = unlocked */ - return (!dsk->write_prot); - break; - case 0x08: /* motor on */ - /* 0 = on, 1 = off */ - return !iwm.motor_on35; - break; - case 0x09: /* number of sides */ - /* 1 = 2 sides, 0 = 1 side */ - return 1; - break; - case 0x0a: /* at track 0 */ - /* 1 = not at track 0, 0 = there */ - tmp = (dsk->cur_qtr_track != 0); - iwm_printf("Read at track0_35: %d\n", tmp); - return tmp; - break; - case 0x0b: /* disk ready??? */ - /* 0 = ready, 1 = not ready? */ - tmp = !iwm.motor_on35; - iwm_printf("Read disk ready, ret: %d\n", tmp); - return tmp; - break; - case 0x0c: /* disk switched?? */ - /* 0 = not switched, 1 = switched? */ - tmp = (dsk->just_ejected != 0); - iwm_printf("Read disk switched: %d\n", tmp); - return tmp; - break; - case 0x0d: /* false read when ejecting disk */ - return 1; - case 0x0e: /* tachometer */ - halt_printf("Reading tachometer!\n"); - return (((int)dcycs) & 1); - break; - case 0x0f: /* drive installed? */ - /* 0 = drive exists, 1 = no drive */ - if(drive) { - /* pretend no drive 1 */ - return 1; - } - return 0; - break; - default: - halt_printf("Read 3.5 status, state: %02x\n", state); - return 1; - } - } else { - iwm_printf("Read 3.5 status with drive off!\n"); - return 1; - } -} - -void -iwm_do_action35(double dcycs) -{ - Disk *dsk; - int drive; - int state; - - drive = iwm.drive_select; - dsk = &(iwm.drive35[drive]); - - if(iwm.motor_on) { - /* Perform action */ - state = (iwm.iwm_phase[1] << 3) + (iwm.iwm_phase[0] << 2) + - ((g_c031_disk35 >> 6) & 2) + iwm.iwm_phase[2]; - switch(state) { - case 0x00: /* Set step direction inward */ - /* towards higher tracks */ - iwm.step_direction35 = 0; - iwm_printf("Iwm set step dir35 = 0\n"); - break; - case 0x01: /* Set step direction outward */ - /* towards lower tracks */ - iwm.step_direction35 = 1; - iwm_printf("Iwm set step dir35 = 1\n"); - break; - case 0x03: /* reset disk-switched flag? */ - iwm_printf("Iwm reset disk switch\n"); - dsk->just_ejected = 0; - /* set_halt(1); */ - break; - case 0x04: /* step disk */ - if(iwm.step_direction35) { - iwm_move_to_track(dsk, dsk->cur_qtr_track - 2); - } else { - iwm_move_to_track(dsk, dsk->cur_qtr_track + 2); - } - break; - case 0x08: /* turn motor on */ - iwm_printf("Iwm set motor_on35 = 1\n"); - iwm.motor_on35 = 1; - break; - case 0x09: /* turn motor off */ - iwm_printf("Iwm set motor_on35 = 0\n"); - iwm.motor_on35 = 0; - break; - case 0x0d: /* eject disk */ - eject_disk(dsk); - #ifdef ACTIVEGS // OG : pass eject info to the Control (ActiveX specific) - { - extern void ejectDisk(int slot,int disk); - ejectDisk(dsk->disk_525?6:5,dsk->drive+1); - } - #endif - break; - case 0x02: - case 0x07: - case 0x0b: /* hacks to allow AE 1.6MB driver to not crash me */ - break; - default: - halt_printf("Do 3.5 action, state: %02x\n", state); - return; - } - } else { - halt_printf("Set 3.5 status with drive off!\n"); - return; - } -} - -int -iwm_read_c0ec(double dcycs) -{ - Disk *dsk; - int drive; - - iwm.q6 = 0; - - if(iwm.q7 == 0 && iwm.enable2 == 0 && iwm.motor_on) { - drive = iwm.drive_select; - if(g_c031_disk35 & 0x40) { - dsk = &(iwm.drive35[drive]); - return iwm_read_data_35(dsk, g_fast_disk_emul, dcycs); - } else { - dsk = &(iwm.drive525[drive]); - return iwm_read_data_525(dsk, g_fast_disk_emul, dcycs); - } - - } - - return read_iwm(0xc, dcycs); -} - - -int -read_iwm(int loc, double dcycs) -{ - Disk *dsk; - word32 status; - double diff_dcycs; - double dcmp; - int on; - int state; - int drive; - int val; - - loc = loc & 0xf; - on = loc & 1; - - if(loc == 0xc) { - iwm.q6 = 0; - } else { - iwm_touch_switches(loc, dcycs); - } - - state = (iwm.q7 << 1) + iwm.q6; - drive = iwm.drive_select; - if(g_c031_disk35 & 0x40) { - dsk = &(iwm.drive35[drive]); - } else { - dsk = &(iwm.drive525[drive]); - } - - if(on) { - /* odd address, return 0 */ - return 0; - } else { - /* even address */ - switch(state) { - case 0x00: /* q7 = 0, q6 = 0 */ - if(iwm.enable2) { - return iwm_read_enable2(dcycs); - } else { - if(iwm.motor_on) { - return iwm_read_data(dsk, - g_fast_disk_emul, dcycs); - } else { - iwm_printf("read iwm st 0, m off!\n"); -/* HACK!!!! */ - return 0xff; - //return (((int)dcycs) & 0x7f) + 0x80; - } - } - break; - case 0x01: /* q7 = 0, q6 = 1 */ - /* read IWM status reg */ - if(iwm.enable2) { - iwm_printf("Read status under enable2: 1\n"); - status = 1; - } else { - if(g_c031_disk35 & 0x40) { - status = iwm_read_status35(dcycs); - } else { - status = dsk->write_prot; - } - } - - val = (status << 7) + (iwm.motor_on << 5) + - iwm.iwm_mode; - iwm_printf("Read status: %02x\n", val); - - return val; - break; - case 0x02: /* q7 = 1, q6 = 0 */ - /* read handshake register */ - if(iwm.enable2) { - return iwm_read_enable2_handshake(dcycs); - } else { - status = 0xc0; - diff_dcycs = dcycs - dsk->dcycs_last_read; - dcmp = 16.0; - if(dsk->disk_525 == 0) { - dcmp = 32.0; - } - if(diff_dcycs > dcmp) { - iwm_printf("Write underrun!\n"); - iwm_printf("cur: %f, dc_last: %f\n", - dcycs, dsk->dcycs_last_read); - status = status & 0xbf; - } - return status; - } - break; - case 0x03: /* q7 = 1, q6 = 1 */ - halt_printf("read iwm state 3!\n"); - return 0; - break; - } - - } - halt_printf("Got to end of read_iwm, loc: %02x!\n", loc); - - return 0; -} - -void -write_iwm(int loc, int val, double dcycs) -{ - Disk *dsk; - int on; - int state; - int drive; - int fast_writes; - - loc = loc & 0xf; - on = loc & 1; - - iwm_touch_switches(loc, dcycs); - - state = (iwm.q7 << 1) + iwm.q6; - drive = iwm.drive_select; - fast_writes = g_fast_disk_emul; - if(g_c031_disk35 & 0x40) { - dsk = &(iwm.drive35[drive]); - } else { - dsk = &(iwm.drive525[drive]); - fast_writes = !g_slow_525_emul_wr && fast_writes; - } - - if(on) { - /* odd address, write something */ - if(state == 0x03) { - /* q7, q6 = 1,1 */ - if(iwm.motor_on) { - if(iwm.enable2) { - iwm_write_enable2(val, dcycs); - } else { - iwm_write_data(dsk, val, - fast_writes, dcycs); - } - } else { - /* write mode register */ - val = val & 0x1f; - iwm.iwm_mode = val; - if(val != 0 && val != 0x0f && val != 0x07 && - val != 0x04 && val != 0x0b) { - halt_printf("set iwm_mode:%02x!\n",val); - } - } - } else { - if(iwm.enable2) { - iwm_write_enable2(val, dcycs); - } else { -#if 0 -// Flobynoid writes to 0xc0e9 causing these messages... - printf("Write iwm1, st: %02x, loc: %x: %02x\n", - state, loc, val); -#endif - } - } - return; - } else { - /* even address */ - if(iwm.enable2) { - iwm_write_enable2(val, dcycs); - } else { - iwm_printf("Write iwm2, st: %02x, loc: %x: %02x\n", - state, loc, val); - } - return; - } - - return; -} - - - -int -iwm_read_enable2(double dcycs) -{ - iwm_printf("Read under enable2!\n"); - return 0xff; -} - -int g_cnt_enable2_handshake = 0; - -int -iwm_read_enable2_handshake(double dcycs) -{ - int val; - - iwm_printf("Read handshake under enable2!\n"); - - val = 0xc0; - g_cnt_enable2_handshake++; - if(g_cnt_enable2_handshake > 3) { - g_cnt_enable2_handshake = 0; - val = 0x80; - } - - return val; -} - -void -iwm_write_enable2(int val, double dcycs) -{ - iwm_printf("Write under enable2: %02x!\n", val); - - return; -} - -int -iwm_read_data(Disk *dsk, int fast_disk_emul, double dcycs) -{ - if(dsk->disk_525) { - return iwm_read_data_525(dsk, fast_disk_emul, dcycs); - } else { - return iwm_read_data_35(dsk, fast_disk_emul, dcycs); - } -} - -void -iwm_write_data(Disk *dsk, word32 val, int fast_disk_emul, double dcycs) -{ - if(dsk->disk_525) { - iwm_write_data_525(dsk, val, fast_disk_emul, dcycs); - } else { - iwm_write_data_35(dsk, val, fast_disk_emul, dcycs); - } -} - -#undef IWM_READ_ROUT -#undef IWM_WRITE_ROUT -#undef IWM_CYC_MULT -#undef IWM_DISK_525 - -#define IWM_READ_ROUT iwm_read_data_35 -#define IWM_WRITE_ROUT iwm_write_data_35 -#define IWM_CYC_MULT 1 -#define IWM_DISK_525 0 - -#include "iwm_35_525.h" - -#undef IWM_READ_ROUT -#undef IWM_WRITE_ROUT -#undef IWM_CYC_MULT -#undef IWM_DISK_525 - -#define IWM_READ_ROUT iwm_read_data_525 -#define IWM_WRITE_ROUT iwm_write_data_525 -#define IWM_CYC_MULT 2 -#define IWM_DISK_525 1 -#include "iwm_35_525.h" - -#undef IWM_READ_ROUT -#undef IWM_WRITE_ROUT -#undef IWM_CYC_MULT -#undef IWM_DISK_525 - - - - - -/* c600 */ -void -sector_to_partial_nib(byte *in, byte *nib_ptr) -{ - byte *aux_buf; - byte *nib_out; - int val; - int val2; - int x; - int i; - - /* Convert 256(+1) data bytes to 342+1 disk nibbles */ - - aux_buf = nib_ptr; - nib_out = nib_ptr + 0x56; - - for(i = 0; i < 0x56; i++) { - aux_buf[i] = 0; - } - - x = 0x55; - for(i = 0x101; i >= 0; i--) { - val = in[i]; - if(i >= 0x100) { - val = 0; - } - val2 = (aux_buf[x] << 1) + (val & 1); - val = val >> 1; - val2 = (val2 << 1) + (val & 1); - val = val >> 1; - nib_out[i] = val; - aux_buf[x] = val2; - x--; - if(x < 0) { - x = 0x55; - } - } -} - - -int -disk_unnib_4x4(Disk *dsk) -{ - int val1; - int val2; - - val1 = iwm_read_data(dsk, 1, 0); - val2 = iwm_read_data(dsk, 1, 0); - - return ((val1 << 1) + 1) & val2; -} - -int -iwm_denib_track525(Disk *dsk, Trk *trk, int qtr_track, byte *outbuf) -{ - byte aux_buf[0x80]; - byte *buf; - int sector_done[16]; - int num_sectors_done; - int track_len; - int vol, track, phys_sec, log_sec, cksum; - int val; - int val2; - int prev_val; - int x; - int my_nib_cnt; - int save_qtr_track; - int save_nib_pos; - int tmp_nib_pos; - int status; - int i; - - save_qtr_track = dsk->cur_qtr_track; - save_nib_pos = dsk->nib_pos; - - iwm_move_to_track(dsk, qtr_track); - - dsk->nib_pos = 0; - g_fast_disk_unnib = 1; - - track_len = trk->track_len; - - for(i = 0; i < 16; i++) { - sector_done[i] = 0; - } - - num_sectors_done = 0; - - val = 0; - status = -1; - my_nib_cnt = 0; - while(my_nib_cnt++ < 2*track_len) { - /* look for start of a sector */ - if(val != 0xd5) { - val = iwm_read_data(dsk, 1, 0); - continue; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0xaa) { - continue; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0x96) { - continue; - } - - /* It's a sector start */ - vol = disk_unnib_4x4(dsk); - track = disk_unnib_4x4(dsk); - phys_sec = disk_unnib_4x4(dsk); - if(phys_sec < 0 || phys_sec > 15) { - printf("Track %02x, read sec as %02x\n", qtr_track>>2, - phys_sec); - break; - } - if(dsk->image_type == DSK_TYPE_DOS33) { - log_sec = phys_to_dos_sec[phys_sec]; - } else { - log_sec = phys_to_prodos_sec[phys_sec]; - } - cksum = disk_unnib_4x4(dsk); - if((vol ^ track ^ phys_sec ^ cksum) != 0) { - /* not correct format */ - printf("Track %02x not DOS 3.3 since hdr cksum, %02x " - "%02x %02x %02x\n", - qtr_track>>2, vol, track, phys_sec, cksum); - break; - } - - /* see what sector it is */ - if(track != (qtr_track>>2) || (phys_sec < 0)||(phys_sec > 15)) { - printf("Track %02x bad since track: %02x, sec: %02x\n", - qtr_track>>2, track, phys_sec); - break; - } - - if(sector_done[phys_sec]) { - printf("Already done sector %02x on track %02x!\n", - phys_sec, qtr_track>>2); - break; - } - - /* So far so good, let's do it! */ - val = 0; - i = 0; - while(i < NIBS_FROM_ADDR_TO_DATA) { - i++; - if(val != 0xd5) { - val = iwm_read_data(dsk, 1, 0); - continue; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0xaa) { - continue; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0xad) { - continue; - } - - /* got it, just break */ - break; - } - - if(i >= NIBS_FROM_ADDR_TO_DATA) { - printf("No data header, track %02x, sec %02x\n", - qtr_track>>2, phys_sec); - printf("nib_pos: %08x\n", dsk->nib_pos); - break; - } - - buf = outbuf + 0x100*log_sec; - - /* Data start! */ - prev_val = 0; - for(i = 0x55; i >= 0; i--) { - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val]; - if(val2 < 0) { - printf("Bad data area1, val:%02x,val2:%02x\n", - val, val2); - printf(" i:%03x,n_pos:%04x\n", i, dsk->nib_pos); - break; - } - prev_val = val2 ^ prev_val; - aux_buf[i] = prev_val; - } - - /* rest of data area */ - for(i = 0; i < 0x100; i++) { - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val]; - if(val2 < 0) { - printf("Bad data area2, read: %02x\n", val); - printf(" nib_pos: %04x\n", dsk->nib_pos); - break; - } - prev_val = val2 ^ prev_val; - buf[i] = prev_val; - } - - /* checksum */ - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val]; - if(val2 < 0) { - printf("Bad data area3, read: %02x\n", val); - printf(" nib_pos: %04x\n", dsk->nib_pos); - break; - } - if(val2 != prev_val) { - printf("Bad data cksum, got %02x, wanted: %02x\n", - val2, prev_val); - printf(" nib_pos: %04x\n", dsk->nib_pos); - break; - } - - /* Got this far, data is good, merge aux_buf into buf */ - x = 0x55; - for(i = 0; i < 0x100; i++) { - val = aux_buf[x]; - val2 = (buf[i] << 1) + (val & 1); - val = val >> 1; - val2 = (val2 << 1) + (val & 1); - buf[i] = val2; - val = val >> 1; - aux_buf[x] = val; - x--; - if(x < 0) { - x = 0x55; - } - } - sector_done[phys_sec] = 1; - num_sectors_done++; - if(num_sectors_done >= 16) { - status = 0; - break; - } - } - - tmp_nib_pos = dsk->nib_pos; - iwm_move_to_track(dsk, save_qtr_track); - dsk->nib_pos = save_nib_pos; - g_fast_disk_unnib = 0; - - if(status == 0) { - return 1; - } - - printf("Nibblization not done, %02x sectors found on track %02x\n", - num_sectors_done, qtr_track>>2); - printf("my_nib_cnt: %04x, nib_pos: %04x, trk_len: %04x\n", my_nib_cnt, - tmp_nib_pos, track_len); - for(i = 0; i < 16; i++) { - printf("sector_done[%d] = %d\n", i, sector_done[i]); - } - return -1; -} - -int -iwm_denib_track35(Disk *dsk, Trk *trk, int qtr_track, byte *outbuf) -{ - word32 buf_c00[0x100]; - word32 buf_d00[0x100]; - word32 buf_e00[0x100]; - byte *buf; - word32 tmp_5c, tmp_5d, tmp_5e; - word32 tmp_66, tmp_67; - int sector_done[16]; - int num_sectors_done; - int track_len; - int phys_track, phys_sec, phys_side, phys_capacity, cksum; - int tmp; - int track, side; - int num_sectors; - int val; - int val2; - int x, y; - int carry; - int my_nib_cnt; - int save_qtr_track; - int save_nib_pos; - int status; - int i; - - save_qtr_track = dsk->cur_qtr_track; - save_nib_pos = dsk->nib_pos; - - iwm_move_to_track(dsk, qtr_track); - - dsk->nib_pos = 0; - g_fast_disk_unnib = 1; - - track_len = trk->track_len; - - num_sectors = g_track_bytes_35[qtr_track >> 5] >> 9; - - for(i = 0; i < num_sectors; i++) { - sector_done[i] = 0; - } - - num_sectors_done = 0; - - val = 0; - status = -1; - my_nib_cnt = 0; - - track = qtr_track >> 1; - side = qtr_track & 1; - - while(my_nib_cnt++ < 2*track_len) { - /* look for start of a sector */ - if(val != 0xd5) { - val = iwm_read_data(dsk, 1, 0); - continue; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0xaa) { - continue; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0x96) { - continue; - } - - /* It's a sector start */ - val = iwm_read_data(dsk, 1, 0); - phys_track = from_disk_byte[val]; - if(phys_track != (track & 0x3f)) { - printf("Track %02x.%d, read track %02x, %02x\n", - track, side, phys_track, val); - break; - } - - phys_sec = from_disk_byte[iwm_read_data(dsk, 1, 0)]; - if(phys_sec < 0 || phys_sec >= num_sectors) { - printf("Track %02x.%d, read sector %02x??\n", - track, side, phys_sec); - break; - } - phys_side = from_disk_byte[iwm_read_data(dsk, 1, 0)]; - - if(phys_side != ((side << 5) + (track >> 6))) { - printf("Track %02x.%d, read side %02x??\n", - track, side, phys_side); - break; - } - phys_capacity = from_disk_byte[iwm_read_data(dsk, 1, 0)]; - if(phys_capacity != 0x24 && phys_capacity != 0x22) { - printf("Track %02x.%x capacity: %02x != 0x24/22\n", - track, side, phys_capacity); - } - cksum = from_disk_byte[iwm_read_data(dsk, 1, 0)]; - - tmp = phys_track ^ phys_sec ^ phys_side ^ phys_capacity; - if(cksum != tmp) { - printf("Track %02x.%d, sector %02x, cksum: %02x.%02x\n", - track, side, phys_sec, cksum, tmp); - break; - } - - - if(sector_done[phys_sec]) { - printf("Already done sector %02x on track %02x.%x!\n", - phys_sec, track, side); - break; - } - - /* So far so good, let's do it! */ - val = 0; - for(i = 0; i < 38; i++) { - val = iwm_read_data(dsk, 1, 0); - if(val == 0xd5) { - break; - } - } - if(val != 0xd5) { - printf("No data header, track %02x.%x, sec %02x\n", - track, side, phys_sec); - break; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0xaa) { - printf("Bad data hdr1,val:%02x trk %02x.%x, sec %02x\n", - val, track, side, phys_sec); - printf("nib_pos: %08x\n", dsk->nib_pos); - break; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0xad) { - printf("Bad data hdr2,val:%02x trk %02x.%x, sec %02x\n", - val, track, side, phys_sec); - break; - } - - buf = outbuf + (phys_sec << 9); - - /* check sector again */ - val = from_disk_byte[iwm_read_data(dsk, 1, 0)]; - if(val != phys_sec) { - printf("Bad data hdr3,val:%02x trk %02x.%x, sec %02x\n", - val, track, side, phys_sec); - break; - } - - /* Data start! */ - tmp_5c = 0; - tmp_5d = 0; - tmp_5e = 0; - y = 0xaf; - carry = 0; - - while(y > 0) { -/* 626f */ - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val]; - if(val2 < 0) { - printf("Bad data area1b, read: %02x\n", val); - printf(" i:%03x,n_pos:%04x\n", i, dsk->nib_pos); - break; - } - tmp_66 = val2; - - tmp_5c = tmp_5c << 1; - carry = (tmp_5c >> 8); - tmp_5c = (tmp_5c + carry) & 0xff; - - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val]; - if(val2 < 0) { - printf("Bad data area2, read: %02x\n", val); - break; - } - - val2 = val2 + ((tmp_66 << 2) & 0xc0); - - val2 = val2 ^ tmp_5c; - buf_c00[y] = val2; - - tmp_5e = val2 + tmp_5e + carry; - carry = (tmp_5e >> 8); - tmp_5e = tmp_5e & 0xff; -/* 62b8 */ - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val]; - val2 = val2 + ((tmp_66 << 4) & 0xc0); - val2 = val2 ^ tmp_5e; - buf_d00[y] = val2; - tmp_5d = val2 + tmp_5d + carry; - - carry = (tmp_5d >> 8); - tmp_5d = tmp_5d & 0xff; - - y--; - if(y <= 0) { - break; - } - -/* 6274 */ - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val]; - val2 = val2 + ((tmp_66 << 6) & 0xc0); - val2 = val2 ^ tmp_5d; - buf_e00[y+1] = val2; - - tmp_5c = val2 + tmp_5c + carry; - carry = (tmp_5c >> 8); - tmp_5c = tmp_5c & 0xff; - } - -/* 62d0 */ - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val]; - - tmp_66 = (val2 << 6) & 0xc0; - tmp_67 = (val2 << 4) & 0xc0; - val2 = (val2 << 2) & 0xc0; - - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val] + val2; - if(tmp_5e != (word32)val2) { - printf("Checksum 5e bad: %02x vs %02x\n", tmp_5e, val2); - printf("val:%02x trk %02x.%x, sec %02x\n", - val, track, side, phys_sec); - break; - } - - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val] + tmp_67; - if(tmp_5d != (word32)val2) { - printf("Checksum 5d bad: %02x vs %02x\n", tmp_5e, val2); - printf("val:%02x trk %02x.%x, sec %02x\n", - val, track, side, phys_sec); - break; - } - - val = iwm_read_data(dsk, 1, 0); - val2 = from_disk_byte[val] + tmp_66; - if(tmp_5c != (word32)val2) { - printf("Checksum 5c bad: %02x vs %02x\n", tmp_5e, val2); - printf("val:%02x trk %02x.%x, sec %02x\n", - val, track, side, phys_sec); - break; - } - - /* Whew, got it!...check for DE AA */ - val = iwm_read_data(dsk, 1, 0); - if(val != 0xde) { - printf("Bad data epi1,val:%02x trk %02x.%x, sec %02x\n", - val, track, side, phys_sec); - printf("nib_pos: %08x\n", dsk->nib_pos); - break; - } - - val = iwm_read_data(dsk, 1, 0); - if(val != 0xaa) { - printf("Bad data epi2,val:%02x trk %02x.%x, sec %02x\n", - val, track, side, phys_sec); - break; - } - - /* Now, convert buf_c/d/e to output */ -/* 6459 */ - y = 0; - for(x = 0xab; x >= 0; x--) { - *buf++ = buf_c00[x]; - y++; - if(y >= 0x200) { - break; - } - - *buf++ = buf_d00[x]; - y++; - if(y >= 0x200) { - break; - } - - *buf++ = buf_e00[x]; - y++; - if(y >= 0x200) { - break; - } - } - - sector_done[phys_sec] = 1; - num_sectors_done++; - if(num_sectors_done >= num_sectors) { - status = 0; - break; - } - val = 0; - } - - if(status < 0) { - printf("dsk->nib_pos: %04x, status: %d\n", dsk->nib_pos, - status); - for(i = 0; i < num_sectors; i++) { - printf("sector done[%d] = %d\n", i, sector_done[i]); - } - } - - iwm_move_to_track(dsk, save_qtr_track); - dsk->nib_pos = save_nib_pos; - g_fast_disk_unnib = 0; - - if(status == 0) { - return 1; - } - - printf("Nibblization not done, %02x sectors found on track %02x\n", - num_sectors_done, qtr_track>>2); - return -1; - - - -} - -/* ret = 1 -> dirty data written out */ -/* ret = 0 -> not dirty, no error */ -/* ret < 0 -> error */ -int -disk_track_to_unix(Disk *dsk, int qtr_track, byte *outbuf) -{ - int i; - Trk *trk; - int disk_525; - - disk_525 = dsk->disk_525; - - trk = &(dsk->trks[qtr_track]); - - if(trk->track_len == 0 || trk->track_dirty == 0) { - return 0; - } - - trk->track_dirty = 0; - - if((qtr_track & 3) && disk_525) { - halt_printf("You wrote to phase %02x! Can't wr bk to unix!\n", - qtr_track); - dsk->write_through_to_unix = 0; - return -1; - } - - if(disk_525) - { - // OG - // Add support for .nib file - if (dsk->image_type!=DSK_TYPE_NIB) - return iwm_denib_track525(dsk, trk, qtr_track, outbuf); - else - { - int len = trk->track_len; - byte* trk_ptr = trk->nib_area+1; - byte* nib_ptr = outbuf; - for(i = 0; i < len; i += 2) - { - *nib_ptr++ = *trk_ptr; - trk_ptr+=2; - } - return 1; - } - } else { - return iwm_denib_track35(dsk, trk, qtr_track, outbuf); - } -} - - -void -show_hex_data(byte *buf, int count) -{ - int i; - - for(i = 0; i < count; i += 16) { - printf("%04x: %02x %02x %02x %02x %02x %02x %02x %02x " - "%02x %02x %02x %02x %02x %02x %02x %02x\n", i, - buf[i+0], buf[i+1], buf[i+2], buf[i+3], - buf[i+4], buf[i+5], buf[i+6], buf[i+7], - buf[i+8], buf[i+9], buf[i+10], buf[i+11], - buf[i+12], buf[i+13], buf[i+14], buf[i+15]); - } - -} - -void -disk_check_nibblization(Disk *dsk, int qtr_track, byte *buf, int size) -{ - byte buffer[0x3000]; - Trk *trk; - int ret, ret2; - int i; - - if(size > 0x3000) { - printf("size %08x is > 0x3000, disk_check_nibblization\n",size); - exit(3); - } - - for(i = 0; i < size; i++) { - buffer[i] = 0; - } - - trk = &(dsk->trks[qtr_track]); - - if(dsk->disk_525) { - ret = iwm_denib_track525(dsk, trk, qtr_track, &(buffer[0])); - } else { - ret = iwm_denib_track35(dsk, trk, qtr_track, &(buffer[0])); - } - - ret2 = -1; - for(i = 0; i < size; i++) { - if(buffer[i] != buf[i]) { - printf("buffer[%04x]: %02x != %02x\n", i, buffer[i], - buf[i]); - ret2 = i; - break; - } - } - - if(ret != 1 || ret2 >= 0) { - printf("disk_check_nib ret:%d, ret2:%d for q_track %03x\n", - ret, ret2, qtr_track); - show_hex_data(buf, 0x1000); - show_hex_data(buffer, 0x1000); - iwm_show_a_track(&(dsk->trks[qtr_track])); - - exit(2); - } -} - - -#define TRACK_BUF_LEN 0x2000 - -void -disk_unix_to_nib(Disk *dsk, int qtr_track, int unix_pos, int unix_len, - int nib_len) -{ - byte track_buf[TRACK_BUF_LEN]; - Trk *trk; - int must_clear_track; - int ret; - int len; - int i; - - /* Read track from dsk int track_buf */ - - must_clear_track = 0; - - if(unix_len > TRACK_BUF_LEN) { - printf("diks_unix_to_nib: requested len of image %s = %05x\n", - dsk->name_ptr, unix_len); - } - - if(unix_pos >= 0) { - ret = fseek(dsk->file, unix_pos, SEEK_SET); - if(ret != 0) { - printf("fseek of disk %s len 0x%x errno: %d\n", - dsk->name_ptr, unix_pos, errno); - must_clear_track = 1; - } - - len = fread(track_buf, 1, unix_len, dsk->file); - if(len != unix_len) { - printf("read of disk %s q_trk %d ret: %d, errno: %d\n", - dsk->name_ptr, qtr_track, ret, errno); - must_clear_track = 1; - } - } - - if(must_clear_track) { - for(i = 0; i < TRACK_BUF_LEN; i++) { - track_buf[i] = 0; - } - } - -#if 0 - printf("Q_track %02x dumped out\n", qtr_track); - - for(i = 0; i < 4096; i += 32) { - printf("%04x: %02x%02x%02x%02x%02x%02x%02x%02x " - "%02x%02x%02x%02x%02x%02x%02x%02x " - "%02x%02x%02x%02x%02x%02x%02x%02x " - "%02x%02x%02x%02x%02x%02x%02x%02x\n", i, - track_buf[i+0], track_buf[i+1], track_buf[i+2], - track_buf[i+3], track_buf[i+4], track_buf[i+5], - track_buf[i+6], track_buf[i+7], track_buf[i+8], - track_buf[i+9], track_buf[i+10], track_buf[i+11], - track_buf[i+12], track_buf[i+13], track_buf[i+14], - track_buf[i+15], track_buf[i+16], track_buf[i+17], - track_buf[i+18], track_buf[i+19], track_buf[i+20], - track_buf[i+21], track_buf[i+22], track_buf[i+23], - track_buf[i+24], track_buf[i+25], track_buf[i+26], - track_buf[i+27], track_buf[i+28], track_buf[i+29], - track_buf[i+30], track_buf[i+31]); - } -#endif - - dsk->nib_pos = 0; /* for consistency */ - - trk = &(dsk->trks[qtr_track]); - trk->track_dirty = 0; - trk->overflow_size = 0; - trk->track_len = 2*nib_len; - trk->unix_pos = unix_pos; - trk->unix_len = unix_len; - trk->dsk = dsk; - trk->nib_area = (byte *)malloc(trk->track_len); - - /* create nibblized image */ - - if(dsk->disk_525 && dsk->image_type == DSK_TYPE_NIB) { - iwm_nibblize_track_nib525(dsk, trk, track_buf, qtr_track); - } else if(dsk->disk_525) { - iwm_nibblize_track_525(dsk, trk, track_buf, qtr_track); - } else { - iwm_nibblize_track_35(dsk, trk, track_buf, qtr_track); - } -} - -void -iwm_nibblize_track_nib525(Disk *dsk, Trk *trk, byte *track_buf, int qtr_track) -{ - byte *nib_ptr; - byte *trk_ptr; - int len; - int i; - - len = trk->track_len; - trk_ptr = track_buf; - nib_ptr = &(trk->nib_area[0]); - for(i = 0; i < len; i += 2) { - nib_ptr[i] = 8; - nib_ptr[i+1] = *trk_ptr++;; - } - - iwm_printf("Nibblized q_track %02x\n", qtr_track); -} - -void -iwm_nibblize_track_525(Disk *dsk, Trk *trk, byte *track_buf, int qtr_track) -{ - byte partial_nib_buf[0x300]; - word32 *word_ptr; - word32 val; - word32 last_val; - int phys_sec; - int log_sec; - int num_sync; - int i; - - - word_ptr = (word32 *)&(trk->nib_area[0]); -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) // OSX needs to calculate endianness mid-compilation, can't be passed on compile command - val = 0xff08ff08; -#else - val = 0x08ff08ff; -#endif - for(i = 0; i < trk->track_len; i += 4) { - *word_ptr++ = val; - } - - - for(phys_sec = 0; phys_sec < 16; phys_sec++) { - if(dsk->image_type == DSK_TYPE_DOS33) { - log_sec = phys_to_dos_sec[phys_sec]; - } else { - log_sec = phys_to_prodos_sec[phys_sec]; - } - - /* Create sync headers */ - if(phys_sec == 0) { - num_sync = 70; - } else { - num_sync = 14; - } - - for(i = 0; i < num_sync; i++) { - disk_nib_out(dsk, 0xff, 10); - } - disk_nib_out(dsk, 0xd5, 10); /* prolog */ - disk_nib_out(dsk, 0xaa, 8); /* prolog */ - disk_nib_out(dsk, 0x96, 8); /* prolog */ - disk_4x4_nib_out(dsk, dsk->vol_num); - disk_4x4_nib_out(dsk, qtr_track >> 2); - disk_4x4_nib_out(dsk, phys_sec); - disk_4x4_nib_out(dsk, dsk->vol_num ^ (qtr_track>>2) ^ phys_sec); - disk_nib_out(dsk, 0xde, 8); /* epi */ - disk_nib_out(dsk, 0xaa, 8); /* epi */ - disk_nib_out(dsk, 0xeb, 8); /* epi */ - - /* Inter sync */ - disk_nib_out(dsk, 0xff, 8); - for(i = 0; i < 5; i++) { - disk_nib_out(dsk, 0xff, 10); - } - disk_nib_out(dsk, 0xd5, 10); /* data prolog */ - disk_nib_out(dsk, 0xaa, 8); /* data prolog */ - disk_nib_out(dsk, 0xad, 8); /* data prolog */ - - sector_to_partial_nib( &(track_buf[log_sec*256]), - &(partial_nib_buf[0])); - - last_val = 0; - for(i = 0; i < 0x156; i++) { - val = partial_nib_buf[i]; - disk_nib_out(dsk, to_disk_byte[last_val ^ val], 8); - last_val = val; - } - disk_nib_out(dsk, to_disk_byte[last_val], 8); - - /* data epilog */ - disk_nib_out(dsk, 0xde, 8); /* epi */ - disk_nib_out(dsk, 0xaa, 8); /* epi */ - disk_nib_out(dsk, 0xeb, 8); /* epi */ - disk_nib_out(dsk, 0xff, 8); - for(i = 0; i < 6; i++) { - disk_nib_out(dsk, 0xff, 10); - } - } - - /* finish nibblization */ - disk_nib_end_track(dsk); - - iwm_printf("Nibblized q_track %02x\n", qtr_track); - - if(g_check_nibblization) { - disk_check_nibblization(dsk, qtr_track, &(track_buf[0]),0x1000); - } -} - -void -iwm_nibblize_track_35(Disk *dsk, Trk *trk, byte *track_buf, int qtr_track) -{ - int phys_to_log_sec[16]; - word32 buf_c00[0x100]; - word32 buf_d00[0x100]; - word32 buf_e00[0x100]; - byte *buf; - word32 *word_ptr; - word32 val; - int num_sectors; - int unix_len; - int log_sec; - int phys_sec; - int track; - int side; - int interleave; - int num_sync; - word32 phys_track, phys_side, capacity, cksum; - word32 tmp_5c, tmp_5d, tmp_5e, tmp_5f; - word32 tmp_63, tmp_64, tmp_65; - word32 acc_hi; - int carry; - int x, y; - int i; - - word_ptr = (word32 *)&(trk->nib_area[0]); -#if defined(GSPORT_LITTLE_ENDIAN) || defined (__LITTLE_ENDIAN__) - val = 0xff08ff08; -#else - val = 0x08ff08ff; -#endif - if(trk->track_len & 3) { - halt_printf("track_len: %08x is not a multiple of 4\n", - trk->track_len); - } - - for(i = 0; i < trk->track_len; i += 4) { - *word_ptr++ = val; - } - - unix_len = trk->unix_len; - - num_sectors = (unix_len >> 9); - - for(i = 0; i < num_sectors; i++) { - phys_to_log_sec[i] = -1; - } - - phys_sec = 0; - interleave = 2; - for(log_sec = 0; log_sec < num_sectors; log_sec++) { - while(phys_to_log_sec[phys_sec] >= 0) { - phys_sec++; - if(phys_sec >= num_sectors) { - phys_sec = 0; - } - } - phys_to_log_sec[phys_sec] = log_sec; - phys_sec += interleave; - if(phys_sec >= num_sectors) { - phys_sec -= num_sectors; - } - } - - track = qtr_track >> 1; - side = qtr_track & 1; - for(phys_sec = 0; phys_sec < num_sectors; phys_sec++) { - - log_sec = phys_to_log_sec[phys_sec]; - if(log_sec < 0) { - printf("Track: %02x.%x phys_sec: %02x = %d!\n", - track, side, phys_sec, log_sec); - exit(2); - } - - /* Create sync headers */ - if(phys_sec == 0) { - num_sync = 400; - } else { - num_sync = 54; - } - - for(i = 0; i < num_sync; i++) { - disk_nib_out(dsk, 0xff, 10); - } - - disk_nib_out(dsk, 0xd5, 10); /* prolog */ - disk_nib_out(dsk, 0xaa, 8); /* prolog */ - disk_nib_out(dsk, 0x96, 8); /* prolog */ - - phys_track = track & 0x3f; - phys_side = (side << 5) + (track >> 6); - capacity = 0x22; - disk_nib_out(dsk, to_disk_byte[phys_track], 8); /* trk */ - disk_nib_out(dsk, to_disk_byte[log_sec], 8); /* sec */ - disk_nib_out(dsk, to_disk_byte[phys_side], 8); /* sides+trk */ - disk_nib_out(dsk, to_disk_byte[capacity], 8); /* capacity*/ - - cksum = (phys_track ^ log_sec ^ phys_side ^ capacity) & 0x3f; - disk_nib_out(dsk, to_disk_byte[cksum], 8); /* cksum*/ - - disk_nib_out(dsk, 0xde, 8); /* epi */ - disk_nib_out(dsk, 0xaa, 8); /* epi */ - - /* Inter sync */ - for(i = 0; i < 5; i++) { - disk_nib_out(dsk, 0xff, 10); - } - disk_nib_out(dsk, 0xd5, 10); /* data prolog */ - disk_nib_out(dsk, 0xaa, 8); /* data prolog */ - disk_nib_out(dsk, 0xad, 8); /* data prolog */ - disk_nib_out(dsk, to_disk_byte[log_sec], 8); /* sec again */ - - /* do nibblizing! */ - buf = track_buf + (log_sec << 9); - -/* 6320 */ - tmp_5e = 0; - tmp_5d = 0; - tmp_5c = 0; - y = 0; - x = 0xaf; - buf_c00[0] = 0; - buf_d00[0] = 0; - buf_e00[0] = 0; - buf_e00[1] = 0; - for(y = 0x4; y > 0; y--) { - buf_c00[x] = 0; - buf_d00[x] = 0; - buf_e00[x] = 0; - x--; - } - - while(x >= 0) { -/* 6338 */ - tmp_5c = tmp_5c << 1; - carry = (tmp_5c >> 8); - tmp_5c = (tmp_5c + carry) & 0xff; - - val = buf[y]; - tmp_5e = val + tmp_5e + carry; - carry = (tmp_5e >> 8); - tmp_5e = tmp_5e & 0xff; - - val = val ^ tmp_5c; - buf_c00[x] = val; - y++; -/* 634c */ - val = buf[y]; - tmp_5d = tmp_5d + val + carry; - carry = (tmp_5d >> 8); - tmp_5d = tmp_5d & 0xff; - val = val ^ tmp_5e; - buf_d00[x] = val; - y++; - x--; - if(x <= 0) { - break; - } - -/* 632a */ - val = buf[y]; - tmp_5c = tmp_5c + val + carry; - carry = (tmp_5c >> 8); - tmp_5c = tmp_5c & 0xff; - - val = val ^ tmp_5d; - buf_e00[x+1] = val; - y++; - } - -/* 635f */ - val = ((tmp_5c >> 2) ^ tmp_5d) & 0x3f; -/* 6367 */ - val = (val ^ tmp_5d) >> 2; -/* 636b */ - val = (val ^ tmp_5e) & 0x3f; -/* 636f */ - val = (val ^ tmp_5e) >> 2; -/* 6373 */ - tmp_5f = val; -/* 6375 */ - tmp_63 = 0; - tmp_64 = 0; - tmp_65 = 0; - acc_hi = 0; - - - y = 0xae; - while(y >= 0) { -/* 63e4 */ - /* write out acc_hi */ - val = to_disk_byte[acc_hi & 0x3f]; - disk_nib_out(dsk, val, 8); - -/* 63f2 */ - val = to_disk_byte[tmp_63 & 0x3f]; - tmp_63 = buf_c00[y]; - acc_hi = tmp_63 >> 6; - disk_nib_out(dsk, val, 8); -/* 640b */ - val = to_disk_byte[tmp_64 & 0x3f]; - tmp_64 = buf_d00[y]; - acc_hi = (acc_hi << 2) + (tmp_64 >> 6); - disk_nib_out(dsk, val, 8); - y--; - if(y < 0) { - break; - } - -/* 63cb */ - val = to_disk_byte[tmp_65 & 0x3f]; - tmp_65 = buf_e00[y+1]; - acc_hi = (acc_hi << 2) + (tmp_65 >> 6); - disk_nib_out(dsk, val, 8); - } -/* 6429 */ - val = to_disk_byte[tmp_5f & 0x3f]; - disk_nib_out(dsk, val, 8); - - val = to_disk_byte[tmp_5e & 0x3f]; - disk_nib_out(dsk, val, 8); - - val = to_disk_byte[tmp_5d & 0x3f]; - disk_nib_out(dsk, val, 8); - - val = to_disk_byte[tmp_5c & 0x3f]; - disk_nib_out(dsk, val, 8); - -/* 6440 */ - /* data epilog */ - disk_nib_out(dsk, 0xde, 8); /* epi */ - disk_nib_out(dsk, 0xaa, 8); /* epi */ - disk_nib_out(dsk, 0xff, 8); - } - - - disk_nib_end_track(dsk); - - if(g_check_nibblization) { - disk_check_nibblization(dsk, qtr_track, &(track_buf[0]), - unix_len); - } -} - -void -disk_4x4_nib_out(Disk *dsk, word32 val) -{ - disk_nib_out(dsk, 0xaa | (val >> 1), 8); - disk_nib_out(dsk, 0xaa | val, 8); -} - -void -disk_nib_out(Disk *dsk, byte val, int size) -{ - Trk *trk; - int pos; - int old_size; - int track_len; - int overflow_size; - int qtr_track; - - - qtr_track = dsk->cur_qtr_track; - - track_len = 0; - trk = 0; - if(dsk->trks != 0) { - trk = &(dsk->trks[qtr_track]); - track_len = trk->track_len; - } - - if(track_len <= 10) { - printf("Writing to an invalid qtr track: %02x!\n", qtr_track); - printf("name: %s, track_len: %08x, val: %08x, size: %d\n", - dsk->name_ptr, track_len, val, size); - exit(1); - return; - } - - trk->track_dirty = 1; - dsk->disk_dirty = 1; - - pos = trk->dsk->nib_pos; - overflow_size = trk->overflow_size; - if(pos >= track_len) { - pos = 0; - } - - old_size = trk->nib_area[pos]; - - - while(size >= (10 + old_size)) { - size = size - old_size; - pos += 2; - if(pos >= track_len) { - pos = 0; - } - old_size = trk->nib_area[pos]; - } - - if(size > 10) { - size = 10; - } - - if((val & 0x80) == 0) { - val |= 0x80; - } - - trk->nib_area[pos++] = size; - trk->nib_area[pos++] = val; - if(pos >= track_len) { - pos = 0; - } - - overflow_size += (size - old_size); - if((overflow_size > 8) && (size > 8)) { - overflow_size -= trk->nib_area[pos]; - trk->nib_area[pos++] = 0; - trk->nib_area[pos++] = 0; - if(pos >= track_len) { - pos = 0; - } - } else if(overflow_size < -64) { - halt_printf("overflow_sz:%03x, pos:%02x\n",overflow_size,pos); - } - - trk->dsk->nib_pos = pos; - trk->overflow_size = overflow_size; - - if((val & 0x80) == 0 || size < 8) { - halt_printf("disk_nib_out, wrote %02x, size: %d\n", val, size); - } -} - -void -disk_nib_end_track(Disk *dsk) -{ - int qtr_track; - - dsk->nib_pos = 0; - qtr_track = dsk->cur_qtr_track; - dsk->trks[qtr_track].track_dirty = 0; - - dsk->disk_dirty = 0; -} - -void -iwm_show_track(int slot_drive, int track) -{ - Disk *dsk; - Trk *trk; - int drive; - int sel35; - int qtr_track; - - if(slot_drive < 0) { - drive = iwm.drive_select; - sel35 = (g_c031_disk35 >> 6) & 1; - } else { - drive = slot_drive & 1; - sel35 = !((slot_drive >> 1) & 1); - } - - if(sel35) { - dsk = &(iwm.drive35[drive]); - } else { - dsk = &(iwm.drive525[drive]); - } - - if(track < 0) { - qtr_track = dsk->cur_qtr_track; - } else { - qtr_track = track; - } - if(dsk->trks == 0) { - return; - } - trk = &(dsk->trks[qtr_track]); - - if(trk->track_len <= 0) { - printf("Track_len: %d\n", trk->track_len); - printf("No track for type: %d, drive: %d, qtrk: 0x%02x\n", - sel35, drive, qtr_track); - return; - } - - printf("Current drive: %d, q_track: 0x%02x\n", drive, qtr_track); - - iwm_show_a_track(trk); -} - -void -iwm_show_a_track(Trk *trk) -{ - int sum; - int len; - int pos; - int i; - - printf(" Showtrack:dirty: %d, pos: %04x, ovfl: %04x, len: %04x\n", - trk->track_dirty, trk->dsk->nib_pos, - trk->overflow_size, trk->track_len); - - len = trk->track_len; - printf("Track len in bytes: %04x\n", len); - if(len >= 2*15000) { - len = 2*15000; - printf("len too big, using %04x\n", len); - } - - pos = 0; - for(i = 0; i < len; i += 16) { - printf("%04x: %2d,%02x %2d,%02x %2d,%02x %2d,%02x " - "%2d,%02x %2d,%02x %2d,%02x %2d,%02x\n", pos, - trk->nib_area[pos], trk->nib_area[pos+1], - trk->nib_area[pos+2], trk->nib_area[pos+3], - trk->nib_area[pos+4], trk->nib_area[pos+5], - trk->nib_area[pos+6], trk->nib_area[pos+7], - trk->nib_area[pos+8], trk->nib_area[pos+9], - trk->nib_area[pos+10], trk->nib_area[pos+11], - trk->nib_area[pos+12], trk->nib_area[pos+13], - trk->nib_area[pos+14], trk->nib_area[pos+15]); - pos += 16; - if(pos >= len) { - pos -= len; - } - } - - sum = 0; - for(i = 0; i < len; i += 2) { - sum += trk->nib_area[i]; - } - - printf("bit_sum: %d, expected: %d, overflow_size: %d\n", - sum, len*8/2, trk->overflow_size); -} diff --git a/.svn/pristine/ff/ff745a23fa7d5413373f192adaeb1e38a259d2c9.svn-base b/.svn/pristine/ff/ff745a23fa7d5413373f192adaeb1e38a259d2c9.svn-base deleted file mode 100644 index 4a25aad164c7651195325007423cac2180acd536..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58798 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 LNkvXXu0mjfJpcfV diff --git a/.svn/wc.db b/.svn/wc.db deleted file mode 100644 index b393639a1d006c92cb0883e663d65171abcc7ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229376 zcmeFa37i~9eJ|d#bMG~>C3#ntWsNM^+OeeFz7N~7y^_}Q+R{qa;R8kt)z#IzW9{y& zXGe#PF|1?*&m@E^2YDpn2!!MTfdmrp<8cR)5P~0f5|a=T2oU}`;6q}9`SAbN^vrbk z?#y~5Ltb!NwpO*(RllzK*6*rc9ewnU1LYdayOru3spS=6jS!0oH|O($5T6tT!NlL@ zpUaR)G=IUrG5p;W_`OXMG z=E?L&GoMNCO^v13#cxd|dcGR_V(h*)1b_Ck=x}=dmMxj3^{311%+#TM6GuyX#*a?; zsl7)g#*a$f1Mz`HI69k$cyz6GtZUm4%YS z7HTv3-Ffj`dMLeq`}WNFJN&ooJ$~fK#MCj5WaF2W?`k~g{5rH_9`9`P){#c*4vybF z(rip2*iv3quGd}p!|TJmJbH$f$`1N4-$<=2>g9}2?E|&Z*$O4Ir7D|UAoZ@#hjR+< zW$B^9P;6;KdEQ}XCre)U50AH?7;0cJIkj)%?tHjF{?L>+1o@GAvv%eeNR`dkn(y1$ z0=@8vwJtq0G!%REjvBFNS^YKjAL|?RkB#p+FwvxjE_nUSPfi`1*gtUu502%hjvqLX zKQeI(MssTK#L@g+dygDK_DI<&>_m-lSM$dv?naeHHU7Mb`3jo+VYuP>dTpLxWeb%> zj(Dq9paDlF4j(!?dF;@Uds>a~%GbdT&^TRQELXr5jo#E>SY?ZBo-*%Mp@z;?PBW)8 z!>V`~sNrSTDt_ZmV$j;uU#M0VShZH>%)jTrp*{R{9_zQ7L}wU1xp-=>Q9ID5!$&5M z9-Ew+$d5G3)WKc6e{Qxsf3j2~)oE7qn?PsC{4`oyWo`P{eCQCU(E6W1cbX5$soG4X z%AfKP<87@~$^7Ch>Nusv@&jQIX31i$G*@v-weno}i9=48C_$tBPP^qE`!lTizlGI47d*LPNp)FftOA{U> zhmPD{y5so7@rk=ysY}DawDRlN1Z6MS#PQ?D4oyy>=0Rv}-u^R{>Pc_xThhcw?_6&# zJ+yv(?EIPf`}uhAziUG8@Xt(5mBpuw@|DELi9Tj%9gGkELxSd?m&lMHHLg=(rl ztelx=kb|Za)bnU%ZVn1{S*|Bf0a*&-GSckA&W7@8v)zQ|HJ{Ph(-oy`&c zko>f>2zBAn`cp%bTRRC)fKy6R;Fp1=gW2@ZrcJSPb9Jt3_P6_zTr z70#y8LmTjd+dT_YcMH9e=@7Wh+UR4~RweYN2KP2v2`qM`Q$sgx=!Av$K5hxQqng>5 zObu<=5;#B-LnXv+H%&7CrV$e9m&lKt zIt7RMa6C1%V@K?sI${lK#DDVBjp7v0f$RvTLwn_gU~RBK~AQ#4#^5Z&IzERpU~6 zz35jg_hkY9M}Hy&A_O7?A_O7?A_O7?A_O7?A_O7?A_O7?A_RWM5ZE3+p6w<^z}Nrd zxi1L0f6aXZ|3rTx1R?|?1R?|?1R?|?1R?|?1R?|?1R?|?1R?}}RuIU=<6CmLG$*8hK21~qDDgg}Hqgg}Hqgg}Hqgg}Hqgg}Hqgg}HqguqG! z`1*ge|9>SeQBH(Fgg}Hqgg}Hqgg}Hqgg}Hqgg}Hqgg}JAvk8F<+5gY)=J&4We>Ncy z^(8_eLLfpQLLfpQLLfpQLLfpQLLfpQLLfpQLI4QFV{t+7_WwU6Tt}8Db4*RKiiIF`S(06sF=EQ1s1T;(07Ikz}w`3~Gx@|DSGDJgoMZzQRn1-XPmPsw9=tQ?H(GV4rS(0U;HOqA7aT@n@QQil=~!+heZAbAzciUA=+A`%!)(jH4y-yQ#unZ2WPhXrWs+cu!PST@-s7Z11?1ra=%57q~bYSXgDu z1+p?asS>?-WstgJIErQ~5=Ig1sER}ZAfhEv$<|B^13=a(QOxTL4Yq_v!24aaRa7m| z#OM>*#CSUvKC?=Sn}XCO(?yFF$d&_OAgbsqq!C)pGGyY2sta^9s>fdGQ5OwBC@X*l z9H%kalyy}#iEI-Ms1m7oMUc9!+YoQbR;Z+@vO^rra8wzTZO3*sRe?T(ut6g*kGiRw zU@=#hm`E^K5ExaG3|EKLh!_r|xG_jw$6IAhq!@Y~ZMUgJRR(F4Gzb<1o#~P#YbJ}m z#-pxSx(ZIf57E>$RWt#dA~I3Zp$?c~7B3G`M{h)31(V|?CW0(pC($!t)PMbogROk+)xFJX#no0y3vIJQm2Bgq7R1BFcyOL=@ z8$eM?s^++Rp65|_WU!ViNjiakwq;EMF19QYMr7GkWmX&xQil?-91Y6ehE~!X2WpEt z%!FD)yCDQR;aCx8F6BP7+_MESR4vc$KV)Df-Wb zx^5Uc`k-JaTuG5t+rrQ)BbPR)i(o!t8Ipw_i5gKQ0y(!dW>8s#)D|xbQWr&N6=)XJo? zWfNOc0DvLcs0iVLT?X_r_*7()2K%X8zTTtGEsMca0zDv8-Ws${Rt*sYFFGP&#dSgI zE=Ena>(Af>fF%`hD3qH6S3xzQ0&Q1;9@i#ZkGf+Uh7BQBCDkPg1s7;CtclOp3l8YzcNr|!H81z5YZ!J* z*Jbb-q3~y1$ew7MHUvqw@VA%?Qn$eGB6JYEI|p8nNtuQ&f}3rX3%I428eBP5-S{Ps zx}-uO+2}5;nrpzlfz4w8Kq3xU*Og8Tf_lp-vqa|DP_mW+oht)QxO%V{qH2JJz@|14 zU6~O>c!}eYH{kNf;CLpvB4CHl1}4Bj!<<>@7%dJ28*fnNijOcTGgIRFQ zO$Ja*7;MdjYP6vwpi8)Ruw<2N+v!n9vt1R=1x2r5p%icozEv(kP)s;24l8DZ)HTBU z3Ac(8m`AwKmZlg`R+i2jhuV-wi5X~KYRsdqaeIK71U1keu$e=ki{M}BF8p*?w~Lt| zbr@*H5={p!vQ!5SrJ;c7py^E)tOQ>{lwp3ToPMH#jG^Fn8Twzvpunb4X2D&D1$RW5 z+Ile^q;8oQZwDY__$*jc0#gHFf%MB7cmXabd=cowP2cmV%eD&hPCN<`Rs%%U*iTk8P> z$CBG;COWDKWS}W*Ob@}zaC=-h48?e`>ELTsge)^S*|I1@?p;_1NfjlDpxKak5xP)u zgby@ehx1|p8)9qFE+!l;4gQS_9Br6C+bQ-0sZ+?Q1J_Mr&~T2)2xg=fyfNqwG)Kln zzyXJ{OrlS8b1X!_b0hm_g>fc z+0=dMFQ$9b3%QD~Qi@8^2o5ZfDD)AP2(TL~3>fjh%)T-6roq>zezPx?SnT<$ z?7Z+hy>oq5vVX9g`=33zRG;vb)Qy=N`ex(f@!v`e#C|)QNqs5%`Q(@Td4Qt+M~;_c zUTDD9Y$^pL$ro6TUS%-UXnil2@t_;TuYTJP$2CHG(kaWVt+XGb;8Ko#}uVNY^ zl@;)kXu6goaoy{}DKNmGs&boO1$;y`s@a$XDA0BAU|_AGt!xP*3d5wp%YpKtlYSNW zc$g7LGQtHgTrQL!CLD?d3y+zL#f9C0)g|;+zlughOdJp*F;xey1Uxh7bXW#Mk%0?d zk12y~61v~7f*Bahn69WWn1tGpI;w$bB}_kLs2sRhij29nbc`Hq9M>M z+~b1pE(0@SF}OIG%qZG~Uq!Z&%P3kQG6ju?g=b(`c&|_*7!?LIxIeYeuL7|}+yw@W zz!Jh{L-)(3VLK>kVQwNKPGrDgqI>-+1S5qWI1pP|k!{S_Tt*4iTuiE&iA5iz1goKn=nN1o+JV<&#=M4sHDRcK!YT(GD1yo!4>HyzY1n*Dna-K6Bh^W zkV6$0{A|N*fYh7N?3hAJP#rh=RbX4;&$~bfAshxjO0h7d!h{y8QbtUL!7+p`Q+NAS z82lFurs2TLLljGe@W5e$9p&>e*c!|!F_CBF2EPg-1&|^~hE}&Q7lz}3A|`Vv0&P@v zq0orPrx@4!RiMW$7+4DJjy4;*0k@L@0L1NF1->op1Y%S~yw0xzm`qF~m<-*Bm)MBO zA-IP5CB(!<6vqVvh%$U3zlsUQhJe8Zf%&GEL!sv}TX%U2MO4MiftwU&`c-Tm{NmFZ zIQDR86b4Vxa19ffxCr%NHVvOn1Y7u35M1DqM@*mKArp9uE@A*&df^7Z|Av2z84p32 z&#$6Vm`Q+wQG+3NByOzW%^+N5V#W$T+U8Sk%p&|M8YO(JHAHLh98MrZ{6OIj9_F2n z#;ds&B1o!V#YHp>QxQb*beLa=KQW*@VcYR8S0msU7zcQZieCjU!2b|um>0~Ei37_A zGYW@9hs%K&40l^y%w7B{m=wWmBA|-th3O&;1XZc>sDX*uq^!B{6u9398EC0-$u<%9 zL`*|MCC-sho`&r@6u}xxWeAnPSuw!>eie)bWEZ`aFx^0t5VO#jNma~0dBZG(RG5i* z(wJWb8VC9kaUED+jUfz*p@m0)@GQYB3@)PqKMKlo)UN^y3=0dbg0KdZKVn7*q`*!X zkRb)?32_?eMyBrat7yxfQqzvv(?)+D^ZUEMusl7oq$R zX+k6xoa;b>RWKS40_tEt7!PBIU!~ia__cnOZUfx~zY3-ZT}7`){3_i>q__K3x{Wel z<5%f6a(uO4rQ2xmHor=@5#FtSm2RW9SNT=Cjl^#8t8^P(&HGiljhJrst8^O%z0$AJ zZESOsU!~iCavww`E9!3a62t)`(2t)`(2t)`(2t)`(2t)`( z2t)`p*Z;G>@ss*5_2BCNMVLnjLu}a5C zmClUK5sJSjnKL&%x;T@U@*@691wqIj7Vcf8PQ|{L(c0qZ*|Ht1v{6`Evr4V~M;9v9 z+Cf4my>{#&^yGB4a%$cgU6`K^5XyX3a8{wC$=Ya{&MyXQykXToPR_fP(S_OaVl7x_ zRye)NTfElZQkivFb;awXRpFttWO0!#j?RbRNk6q}ugbiQ%WC|oP+g^k(~BI>GOf%n zZ(sUV!on&Qy{_#$xPL{xdsc0t3^rK?e0uwxD_>M)iT$x{U z*%7|5H1R7OLfWfEjvu{NtUP7(_Du>%!DZWbmQqFo(s@2+vtr%xfWp zg)9WeF@9USZr4X=p&abXRUOOCECkB+{6{53A}oBMovz@(frHw# zTKKtkJ^@UPSGFzB33s>SWY69NJ1L0m+ESN{v!)JKCe^YpNzM6x?g#(fz0s)u5dskc z5dskc5dskc5dskc5dskc5dskc5dzOb1d_2tb|CiS=KlZO51)m7jJgyd5FrpD5FrpD z5FrpD5FrpD5FrpD5FrpD5FwC203e$L4r_A1&CxJ(Kg|7G?q74?$^Ap_%ek-RzLNV~ z?$fzX=01}9-?{hZe%C8>fv}x3FCEU_kR$rxFvja3#{mDI}f)7b7)YgeLHJvD!Ftlg7v-Pq!M1^YB+`R3A*!nVa3B5hL~ zLzZQ#>P$6EUC~{`R*4~+hO0XwwJf5GhH0s8Y)VKxReJP&@7(Q>(`BbrTBI{`Wv3=Q zstC!gkALm_8-$U?)AQGzq1RPO31zOs*1*MbWq#MG>TF&&^J5ER-nOMNT5;Ie78D*s zkugP4$GYu6Vd?I*!&xn}D?84iTf1hHz@Za_CA}?l%OUCfo+dO-xjIt7*3R;Lxpsf- zZXxlbCtm;5Q(q1Dd6kZ8YUhrst97(+ZpS6V*-3E4@gP_9q?T@L+qE(5p znq3ZZgKTT6F6uf_HI_bfwesy$lGjd~X@L4lg>5K~lBV;ZxVCYemL0hwrNE}@cb zQKAu9vPIjHRT4W6`T5XCKlCv@jM%oF-5{o~!d230hy_{?%yJim*$nnySE~141dj!3 zw!=&#IaviXk$?(wXB>+cZ>(8H#Df4g<5<2maaK7{)9$_6#vo^wls6 zw7zgo9URUc0-rs18J`_)&u6SQ!>aSFb`hWjtF}YUc9~*{rlY#5r8*W>4aG8a$1zNo zDwd;3qU<_4m4(j=iH|?_?aw{*x-e?#C%Qq+=*VfZB(8>9u=#~^%D_q!w*|_qgNY*x z3$qMo9Zp^ZZlSvEfU``U8V)oVOqr!wCb4BnrlzClvSul|0U=c!nOdQk84dz(51BG+Ly~Ej? z;2PY%47{6Hg2!E}(X(^2UHS*j;_X0^RTUl-WKUI9QzDiuGT9X+-IW|BijD)*AnA&z z#_j@hefZQjrpLol8UJ7xAZe?Cq;z7iX0r>W>`-=BW^2~!*#f6YfYT&o>OSl8{s(?< z?<&O>%kz9AGlZ4FRcbm)cVvdLTQeK8W2?NNL3;(=4kVY(q=&N-Xzp$eXDn5SrIy6j zaN4KJvrf5&lTdAG`;Xg>8?jYeQ*=jn6_KbG!MIr(QyrNZl!%UN=(a(0O%)Ok-}JuQ z9(h-I*w%J4YEnnm*5qY_<~O#m^k8Z@tDxsM1$z$Nsjld`O`7w8Fsw~#c;2q>aOYIf z)hQ#AB#W}>%C2onk}66P0l(Tz5_PCY=S4!|b)zqR?28`^_Z=I%pWfrwl#ZR3u}4{qcsK*CpG4Eaam@& zZkmQ8Dh4$bT~|!WqP9$A%Vl6K%@HkEWVUTcl&Zpeg~a>+ed=A`*&FU>SKVBx1fj%? zr80hMOLya^va}yRG$;PO+TFaLeHOOzMh$i=X>7MlS=(z z>|auEOiX8m^cym7O}#MoOED|`{nU5kZ;79cKfmXji5)$6rDuAUGWkp<{#a}qhs67{ zE}7k)>EUsTv(2*{!Y>XdvtwRn{b)t~G}yud6<#}(gaN9TZXI31IY{9(%k$mJd~I|_ zc=g(3_G+&@Kkmv8j0mr~ED5Hq)2I_a$)*<-S$O68WVYaCv-#=rJS#1ZE(*Wk=hhF= z+BmB;BfP>V(P~DO3P0}`UMxR=6FLN^$%LP~JP9pae;+@y(mIDSN`;qiNoL2rM;@K! zXX}JV{SJ610YUJ8_>g%g9XSFo^E2x`<*gN7>f^`{TTQchRxMM!_$3>Xu!#X2n=cj~ z3G@N2ot-5()hIl?DVepr@{I$D{?VHm;rtcJtl>Rvo`k87SZUFj70&tH51;m=!cv=e zQQ^h8WOj2V#yP?%FOJd|p{s( z1!(q$p!{k7g$+i-h@A3^At=TwqqG)y6RFl_(bPq--L3{LobM~~F~*U>s^8f9fu+`g zw)_0<&Q+>xj^VWAf{!Mt+10W$&BnYzp5L0x?)Rv-o-`9p_Lyr^o1aA&}#XW@*;0tVw3Kc%|#YK~MN)4ni05Xk8HkxWg;6I0q*4Psi z0V%q$aBL&jKlMSVi+bQlIX&t>Yc#hdbTdc%X7SV8bw0ksX9Q2cOJ23nnZtf*@FylO zbE7kdd`uh8&CHaaRfhoR9Q3=2_W6h85BO*yzjTt_kF$@XGq?NMt)t7;%G_-};UHX6vCGi5+d3tPRfoaanyXs{u7~Z|@h}aLvUJ26^f|XPr;O{WD zB@tq8(}=~ILwD@hrSn4iHAzI4+Z1xEjMZ=lfLBcO1||Ha8$8w6$^;jUEwUOHT7K_? z?2TFQu`-ym>vl5L2{bSk5<`sHJL4EV$Fx# z&evC{noPYoR@VoMV-1!z_$47%U0@}hSK4xcm9+YGBw{j4x@jIC2VP0nlccV{}_4W%pR>Q5vi-s=rMfE;iwmpfc{nIn+R!=K+X6kJtNi5Z_B(!2(_EJx^tf0gTwwA3f z@l;FOLJgpJ0DR3V#R7{HxelG=uM9@x2UqDsC;&ZBNFw~)zO&(IYkyenw3Go}z1DM` zR`jtMjqLS|$MWY_d#WvveU0ZIH*=aXqQ#lCXX}?gfC5VmBoRAmc3_96H&Jequ`hF2Hf|GrB_Fdm6^=pAM1U8@9*}$rT2gKzN+`7y)W!t>@D|}dXM+s-aFoF^zQ22+Pfk1H<>SF zK9%`M<_|OP$h9gs%w4J^yeIPxa*3&!E`9wMKyu{JOt%=D|I7Gi;vbK{KmN}6o8!L{|M~d2_?h@@oW$>p-yXj?uEnoSuSso7zA{lu zJ(c=q>hq}&r{13WmDIzjg;X(hYf4Q%n4C!-OWvH^nH)}hKJnqi+Y`T%csMB}zL^?K zKAHSl^3RfgkbFaLD*L_cSF@kaK9>Eh>}#`2+4<~qv$tlo>{Z!Z=BdoL;v3`rJwNLC zr=Gv*dA#Q%J-^qCOZ@lvH=WE1nI7RE@$Ufs{WhG4jowTixAq9%4FCEM;a|TI{`KqO zU;jS*>)(Zc{aX0fzwPBNA&*B0-|~}x<0t>xPkzNuKH(?-%1{2KpZp6y`DH)(B|rH^ zKluee`FTJ2IY0SXKly+CdsZSww4o4gOS$@|}J@*czdrV*8EzJqT( z65iJ#{}0>Hcz>I`_qNG{CS4(&bGPlXq)@?wz>bS zZSL>1&He3VZTj71?S|toytPfx5;}`o4hx+$$LYayx(Y(_v>x)eyvU3 z>zDQQw|ut!sGoeDpZpa+`OALtm;B@}`pMV&$=CSFSNq9V`N>!M$zSl3uke#U?Kx zUYRwsGHZHemb)^Gt;}*(X3>>d_R1`>GVA#(vq~-GDy`IsR;t)aJ-3y5PAhd!D|L4( zbyq8OXDfBQl{(f+9c`tKv{HApQiofqL#@#>x3*IITd7-G zsfkud~R=+htzYF4Jn4X|~HW+GXnP zGBtQJf!NCp-iWta2pukmODL`0>~5vTQrriN-Q@kVD>MVSHuPH|^xH`2x9uI~a?7JD zS9Mu#OPA&HU6$M2Ww|T6EVrr4a#wU&Zey3_F7LA3hAztucUf+z%W{`JT|i=M`|0zx z&J*%WJ3qRl^P@GLALTkf8tnXNp!1{t_I+C0KD&2Cq~Pk1C|wi!EgkwT<%umq0y{i; z-Rb=k_x|Av|EWxNAorB8CjC(%cWv&IgI^we_27Ylw+wC`*w?>zU~Tr({rw0uKAHY# z<}>NNsj>9B_^qi#&sSq#jNK>v@=ta4xpdct^hRwcb8fCyEl*ElpD8xd*OwDnwN?t| z?L9IverzIt?8xN){S!y>?aJlHZ^5mY`N^rH6Gx8a4^4T6@^{@jF_oX1xNDToFnV(F z)Lee@XnyL@vHaBW0|)YZCiYKG<@5RDhxc*%2wCAO&UuzUI&myt<%=t)=4<)gesTwH z+st#CM<((ug1bZXug_0R?W4o#^;@=Nme!xfV$sy0eG^AZd&ZAW_^C#R?wp*s3$1BB z&yODk`J)pDCiWi7Uz@+>$f1LcZZuzt+eaO?P@6%c#B=GP^!n}FGw1K{-?I1kks}jR z$2^jaUsk@W@u2hT(2jYuq|IAL8m&7xe)mYTF@<1Dc~!YycjXTcxOsW>3@#gW(1-a( zYGqL`XMAcOsEy*DTQXa!ve^Yv@A`Z=r{G?e9x4pQmNwJ_lanQ{`-jI{Pz*INn4H=- zad$pkfb&YdLVl#)tettRcCqt$ya7N<1($G!%RE4s5BIW%XM1AM2Y8I=<(? zM3Wl2;Pn$sd2E97ZHw=YOxyw%n%X;YG=JCLBZt6_BW0(s6E(tJ%^#b%8?4%3SN^=& zmK8Ml!*Ij%_1ZkY%CLmO5pUHBG~md@;X_9!j~zO4Ppc7L`8wDE8mG(r_)CjM{e>{+ zY@RajRiTFRr52}z&Et63=s&OFW!EZx<4$7G+SJD)9+v8AWww~l?>TU253lU8eyd3> z3G`qJ^y%=C$)m?6rzY|v%`$ax7w@0LhLDrk5L2CIHNOeC?sa||t*x>)eQZ8-uzw6~ zz@I>Onh(jT+DxU&AMz37ZLL+w{373T=G2#&L$z={d#yBAaq4&HhMr&-S&0%f+V3=9 zYb&v{xRiIE%=+}v#e?G*v)d;yZVko_F;9SR(VRkIeQId;P)w+c$l`so*fCr}t1I>2 z8xkYcnfbEZQ?b_!ZQK|;zp>8dckL}5IJEcn#y@LAtlr4XkKh%Zm^~jDn6})Gjkir< zYr_cql52oC%lC$Z7gos9zKL7Lj~_Ue-z9O_JHrxqO96Q7TALag-`EL{M!!l@Be4z^ z^hH~?#Fi#JNDdvjy>!R%iQ^M@wNjUcfobK}u?fmvu!-Zxj~$wvLd}EF+PwW|D%F$T z*tevKkKVc7TzY8z`q=q1_4o7f;D6VI-pO<7Z(AwvO%)Oxi;jZdRJ5L0HLLR0@v$h? zDkmA#zzWq=e~4v5203U-K|PP}QGh~Smg~t=K$e2Ij5NEjv!T2iZNkXq3)|PEhOS@V zY3Mi#C5ivMWO^_?q->2XB^!2OeDAU2;|EH6Zylf7KXCvmqLIPbKG%SYpI3wK7h-VV(`_u>(lIS^WWYOzcq8~ z%(e`)raB2~YOY%NDGYcMD_jh|M{A|l=QUam`U;!CpUyeja^zdDh7K9)O%3hc)Cq=W z2TD>i)mO?u#5cs2(hU)Zf`KX--*fcv__13(vzBduaC~YKwgIj3oXt>4F62!k2;~U3 zme`Bj(<+=zrH3})1-E+^rtTJcCDS2ro3+u$uB}SwO&+u78?6KuJJPA4n>KX9!h0XL zgxpch>`SJGHf)KVXu!bpd_$6Iw6xjvx@(Ib`z7)tRcrz(>`R2G96vs}&o7f)Muk7+ zxcMdWBd1QmVLlvB4ei(wyQhv=!>3tf_nqP{>9SuFAq#6y-mo)O(C~5`1--QzIXS%r0>e!b=lv|d?EeA)Y}uUPn}AP;&JpRLLfpQ zfWXq?W;l?WW9PRtv>oPl-j`QOm~~)&2?gKC*woMp%XEM1d9wo7W39~A#0}DY5r44# zx8!N|hGWKc$Hn{!5h=`GnI4ih$ClQw=(Ojjwwiy%GCkdTQ1TtxR$i;GVOOzm{?04X zLz_3pUh;yv#%+~vB`y!?+gA2}q9fayiFsbf@>ohsMF;#rUjes*D%`v25G&~r0$DM> zt+8D(_u@spDO1ZwZxn7@v~dGV1rdcn(4#qN^N2M=A+47p(JT?PZEb@Og?vHUlp31Y z+{s$C#<3)|k{cmr-E%5nb%cFbx=x~P$jWBT|;Ctv6Ka2~( ztjCo*hl~#$*yo3le=4El?jzB=+DD>;O{_DyVsPEzIdoyR#ds2OgFU8;7b4n=1e%1dkP_5hK zIrGwCd{k1)p6J;i239;*coQ?&v1EPSLNSwY}`IIKh3`l*{(#b zdTRdUSi2|Ty0OLiN_CFR@+-1O3fmTEh_p>{3|W?`sx#Fvbwzg#TP22Q8m{h$)Ut>! z8m6VXu_+<(RO!+8y>mD2+%7w%(juLiD?2seQAJ2@ef(?Z-yn=Eo}Rz%485*ON+@$3 zzWvN^C*5_bI-A$c{Mf>n_f^j^iq95|Z9(BN6d6+#b*$SC6qfE@JB*KM@5+vI=+>^; zByi{iVM%Wb-Ev4ezo!WeZoM8Ul;_>@e7Sai>~10PqbFYf)Kgy#_j#3$YHH_>s;hOh zaBjyX!}vI{mOUQiik{TcZEd^ee^hjNC&$1gojdB+Yj!!v4YIANx~S_!)l_0q(?W)6 z;V;o;i)gYAR*)=a2%ixWk3F*cd+$t#kx6Xnh8a3zB#Xvs%uv5!k4r(}oU~>bUuo8| z_bfwesy$kPud7}lUV)nJ5K~lBV;ZxVCYemL0hwrNE}@cbQKAu9vPIjHRT4W6`T5XC zKlCv@jM%oF-5{o~!d230hy_{?%yJimS>RK%7l>J)W;@I@q7zHiZJiP#+a|P(rWhhK zES)(HwM|2nn4y?v>@YB!ec+$%jbY4EW6uyXMPCiGK3g?D6{1tAV6+Vz6ej3j;3{ z-m@#SHEZ>3fzu?wX%aGZXLWi11HZS2BDPqb=Qq#u+c4oOH65ipGDF#|nT^@8RbJ4b zy@GBBl1pdO!&wP5cejQ!mMX+jOJZv{{V#&IrR_g%J8r~QZB5Y~-Bm=QS_I=}X-suw zW>6wJuA$oo(KS^_JbcspZhPci;bB|b&8SHoSzD8r4VvHB!qS7O;jDt5-xTaQbf>za z=Qe512g0y6so{CMzQdhUMOUYcNRlkdqAR<$DM_j*Nd)|AGfC8;9-S8niPw$3^sz5~ zFx+?H1Ko69>DYNmUhd=t+FQtdN;tnUvo^cE1218$L!IrwKi4IO@M-FS?B+IPTJ<~B zT`IiC^qK&^K6r`4u%2sE>>RPGth?m+j9R`)Q8f@tj&_~$&z z)1x&85y$<(UKf{Tw(F*8IHF=uQ_*$Blq_n?M7CT8*3ul&az$p_hD50RszF{sXy};Opu?76!iCKhyj9?B4Y6 zrM4tq+4JMrJpR+Wo#y{{D|bF|<#4u~Ig~wBXRD$Y*1+8S-j?2Kg*AeoH9bGrt{$ZA zY3h+_wm8<9->9Pt^V0$AL(_!!Be=2l9O&LNGg-4BD@#_qKa3KjfGX#<=r?|tJn}pzTg3=_ZS1R;TaEz_|q7W zI?;3v;p|CxXJ>-m8I1bu>fTw<%bNVD=q!)w#Se)kV!cW?bW>rDPIQwp zjT(}K*p-Tq6}1#ob4*QDW5;*|{zK1y@{Qpk+4!YyhNSacUQsW2NW3l=&ZmclvkYT$ zUu#S-&%{EY)5Vy0i)lYm5%EbrlhI&~ts)?;xXh9rLtzp@ghf;h_*`&>ZGvzEBgQUF zc+Gb|@VQgr!4O{JbTJx6=P0$>y^rO07t(RrGnbB^iUFB?h8D!2%oQm!O__*9vm62s zm%CO33s;Emy0R@>mMP1fq~oe?g1F{SRysTrg8B0UQ!wq2gamIanK^4>Sdd!NbLyt*2fE?b)~^n6{I#7={a-cEz&CXLWegL>2wUpK3b zF3z+a!FqwE^*e_fk;w3tg>@W*R_B8qe1H8S>lnNX$!arPSyEf($qP4oG}!EV@UzMA zXl_f#H0jg}{G>Xeb&f!`?L__Mh4aGZ;VgmcI~R0)A$reW(UY+i6Pq%k{6A60w@I*x zNnM9sP_S1-e1u~EoUJiK;zq5~Po!R9AyxwMC z3+J+1`PPz+KBi?d_Ru#TYh`4vSES8QLoQ?ex{mUDxw6zDzWK zF>4pW*|E_zOD^5JZ8+<>wqY^evkLPshy3Y){)r*HntVS!!iWT2^^7Ay-9y`E8|-r4 zZ7%QBi8fKXaEZ4pMMR`jmMqC4hN>I3p}G>*c3jCcD3vU%HmI88b_!nad0rPHze;HC zB7)cT9%DeZJmUe;yXN%^7?3*Aiysi1VtT8YwrnHlqhVhhgWJhW)sit2f+p6nDU+(i z=`P)p-`e-C-p^)VlK!W(lKkt$YvT9d(I@Nw z{pM;>fS>NOb2nPU+5MS9_Grt2@^-@CD$JJcF;b;7=O)_~L3q(GGIpjsugGKc{^@B- zON+atQD=6xS>Jo;*_m+OvI-Z^A{I6Ri?(AbhOIzQiG?jBIFaC3wnKFn(F+FwDhRUh z2J9Po@QP1AxO50Up$VcBoYEi)3JREJA)ObT8f4JnJUvXS%Wpg;SL#__&eb!{M%qRICc)8 zNUPx3>R;iUVGL)l2a5Zbp?E_Z6d&lG7wbhY9z9o4bqm2WtQKeplftfJ$EImpFeN(n zRb%gxj_pjUD7*}dIyZm+u9y6NmIA$=tm*85gCcdO1%hZGv8L%hv3 zTfl#}wLxyN=FlBGcIn*%7_4#eII7Gs9hVV;xFlAPB~8Lg7^0IRCO@{OyOxEcBiIca z+btyiz5nQSfAFBc(R$#?P2F%{=dEsv)ZA6L62oBk3g?b!{1`-`adf1yPYF;?wSm&D zGR8OiTnL!qIu{Qowx+lS4q##R#Bi~rj%lJM8d!f(T-DySxo6Q)*iwoxt$Q!b|GgoIP>q=>IQh&{{lQvTXTz~53-Ta+jh;m%5ksA}K<#t`M#bem}of~nXbph|Wp z+=NejxeJ#{>wKI6!rR!w6ht7{-$L&%36qAAbw?`X~odk-DHXL4%)Xzgs{ z)Lb*v^vC30sN#_hX}$*4$cG^vhCQe zreaQPV>%@2u{*GCJA3Zyxm&_AlwjS+Q0MLPiqdqInnA_JQdZ$yd}KIlVA%K8b#CKm zI{Iw3B9s0K+N!5d>Z^hs&Y$Qq*RLX?0EUibL7T^An5Z}s4(HjXVq<@sC2J<@xGeaZ zF8Z%^j+QH}V-d~%hdNalh<{fYjJ;RrdF$Z+8F)$mpY(6-%l4j%y*GP9=Ek(0noYha z@%qH;W0wd!g`G?G?R-gQEe=<~@oB6RWI##c`C(0(&SXFLal&fh-?i6=gJ<0I>zsFT45p-x`V+6pzWp-Yo+5S`kX z$`S|mS#@z&0j6cH0bA`j*mbuwKOSr&XI<~mj@QP;Qwyv*Q${d&*+2vzgxc7!cQ`BR z!pR~$fTh3(#|anNv29FcB!a^`kX42W4gy(1;*s$;-T7xn!?L<=y3VVs2Po9evT8L& zl@Cg=t%WGO)4W`wv$wF?3?>lqD)d^y?_m0})|9Tx-SBqj2^kLk2Q*F-&%)BZw+v?s=%N--sod~hTOW+ZQ8w6? z&~W(K?FIxP9!6BStvGk5G3p>JExEcZGfJ@G9oG;Txa!1`B;oa#aheZRzW=7M7{`*` zbaj=9lh(X)fXlJp*22=_L~uOSmfE_i-q~8Ev{0>#hB>d98R}@qNuw+=9L>|QDa^tN zc#|;~j)rL|hUPj7!}fBGDmeD3rr@xDHu?2;%!GS>@GIT)ymMTp>9F&DHyd79x@X^T zb~A=}M{9^ZWqoD6*X1*F%d~VoC)D4Dde)eYZA2pcCW~4UVF-#4oNLAKiU!OirX!+A zaq?!rka+lkt3LJje;n>z_G{hrPVTr*!)P8nF9K z$0m+UjUPBVde*6y`6W5c9U7d(il^=REXxQAIU=F5hRGL`94fjFg?ceugGb9FD+Az# zrR#3smUNS6NgGjF-pXrRt@Ku{(AN5rVT;Y`zj@DoBF*k>8CN#jdo8Zsxt{N$E;M#g z`^vMjOV zLR;dyUUcwjv~OphsiQ~R=vv|2&DZhGMFs4e=Mz#Nwmr*X!>TW)rx&o~+bn(Y@L?yg zNhA%{88;T;lp&_KmX0lQnAN#B0xEO(ES&l5w4^ceu5LtH@4RKHBYXic3IhnWUMsv@ z$h|o?G58OIj}Gn}`1652*lYOu2yT12{-iLbg*^g$OY%24%%x&rKq+gL1 zQ=d)MQkNy)mwZm*sl=}*Zi;_3z7)Tz=VLuiPcrt_*nZ(#AbMecir1!aJ7D&n#$|n7 z8o$g}w#_+OejDX$zM6n(>1AN zm{{!tQN_abKsN3Rw6XQZ)lZCodc4*4ZngO<5*~R6mrCfWh3mnXf^%J#B^o$_itBU` zBr=$5pV%HG->qOm06p?JT#RV|ZZX1!bllcsS%xhc4Al&tM;?o%BE>occ7oZm z>KY2p_PaQOCYiXs3jA|oOOSlG%dA*V^~hVYW$U6v7{YN5&QWO+0+|RysT8t?W$qLC zAo;G>>^|{jkG#wfRKlGpxU`I7;~I`k;1s+n6N%~&I7*9~LB6FDx?Qd6X|TP6s02=S zGs6Wgjt1SUVn&Dsdl{0T61{k3kb1X^J=Yh!w&QHLiPbXfgVaUU0!{3mAhM}5=2(`h zlH#Ty^{$VHywamC8d&zkWjZ1xO4S$+I_bD{3s(pd4J)BUDqaz!zU&M}$0&P(dDKna z#Lfj5hj~SUm<{&Rs1o8fh%##Y3LB%iF-X1Z81`#C>WZbSSiQv$91+%3(Znj5BI3}N z4t2l`vv_%kdY31=QXllFV|ou?Si_yIhN)m6T^&~eVmk|jO2r;3qqreRz1yv;d!FY} z$DLRTPP0fl4%!;FtVzHHcj#fBEz71Vv*K`&dbj&9M}E*~yTd22oI`94^LJNemX2d< zP-B2eVPbJ8NWI%lg(H_XsEc4eVqsH0HsgvK&Y%)(r@&2L2E}Eg#4cVIq~7f|{@d1h z)NyI0i`94q`>t@;CpI`@LXP(k##KJ7U~zqrdbc;iT)y6;&Rrsd;W}Qb;CezFD!?HF z88`3MuP_k_E3OMt@Ai6=3D=|U*oJ{?zi`>6>Jo)w1G9$925iLDZBfKUXvMWb>fPSe zG4e)_I*!A`2QU;IyjHPpp#oV~#hwLO)@&?WNX1Ko)VsZSV&ughbs2+-^$Hv>CNO%k zjGJ^s=E55XAql$)iMAUX32>C+njrOV zuLQW}LF})N0!Nzxcbv3T2_Q(Tu?r5p- ze6jUdgW-lSai>7W#bvUg7yE*Z@AfX_#Fhr~A|j3O1YrEIB?q39gez<*91+}a3zvZu zdxO-wy*GH#Sh~7QF6=xWYieEfYpD8KmCrZJ_an-G-Rrtb*a1j;!HcKvRM;!A)V9u;FSX zQF5M}0QFdN3MF@WXXRQC7;FaP_L+%}Y62PDgJB~!ifg^Gxd3Y)tQZeAz1vG6g%31f zhx3A4|F9OTLA#hZ?5e@Pak0{1!~EG!u_s8q+j|h>4Hb+)wu^ZgycvlamWwqEjlTqM zgiga%63>kVf$8@8!3J^MV}!^JUqDy6`>f%pJSKeDrcKkM@1P@0a_m-oNU7VejVbN3wP{k$G$8*7Ud2KbIa&J)Wwj)+PTS zd3WMJutVTR%>U2DxAlCYXQrn&_IBK$|1ZL;FKqhXEL}Vn1XI%x?3Q7(!8)b}!L&9l~ciCT_HJuyqAD$73%C?vnrs5l$>-7R4h$ z>KegaEClm3=R|3;7Gz)A>?E`3cuV+#y$4Qt32w2zzSGkW6d>O z3j2UP7U(;{RzGMD*C`$jQkRHIL|lnPutP^TWMId)hclTnTfM_sca8bAaWZ4&HLS0Uo~SHpek6yI;q?BZ0Ay3Vk~iNp3_0MNpA5;)tABdHW) zVdAPBk)O+9l9jG`)N$XGWk4gD{H|bxfQv&6Z@u;4p7;;eucmuV9s&@BOs+ zwcrk1SweI7d(@%!`F%3Dr5?5nPAEiA$67lkE`$(Awu}3N)HMpdr6ELVs@UG-;I2%3 zUjl#{ij3h#rySzgCZU;z7lF$%VQTn(C=r;5eAf?Cfhm^t(Hq$*-V&q^#Bkk>j;&tU znnQsh*8OqMu7pT|4DSG|M~aM7GE(2k#;D?rXe~4mV*9uYnPH0+R4DF-!~_Yq<`gG_ z)Ug>!$LAiPAvN5I4z++`L@`7sz%|5TxZ46D3Pp=)9(AZgd=J8b9%U39i*SMrO(4Tp zhmtZ(THF_;E@PJn3IYa^DF7N5SYe&sg_gpd;^20MLFW4K3aQa{sAd~}rwKm9kvaxX z1&jPx8&ik{)hrkH2B~A|6fs&jzXTtA!EHXPmnr+umEib-hiygP*J!Kjq4Z}u^KoZP%}CdvLRP4 z@u-`KO=9%X$-4ekRRg;eD0aD7CO5Ex5ysKmrCFY8~@A*c5z5M};LQ-V~%Rn{cpkQJh3D zdo`fzKoR@M;s5f>;!WrTvaAHQgM2}r47?nM2pB{6DGZ+g;a3>JiHBc-Qw_KW^zR!kKW3ed zg>4On3^xZ5xvmWzB8fO~gqgtq-`<M zv!*P=+91&-D= zMvL1Y)m7PsiR-gDys+kT0lL;3hH&!^f0F&#-yb%nS{41u_3C)CF4 zhA_tBa?<1+Fc`@ibcE_>6vza|4aRv0OPa77)pw}1>qZG)+IB5hD^87xz|?{D1fO8h zV$W$d*;7mGf*1l%QES(Y(o26+wjE`{aex)gRT0}FhflU(A}erEp=a}j`gXN;-FUc7 z9SbaW5Y9WoD#r%K!My@UL!-&=kYjGNTBAe5i-XDX|NTxz7FkH~4?|nz|YQDpM{*jE)TGz0}(6h%gm3f^4$$Fc65* ziC5P=JjTu-3HO6{UHP^>T8RUF@+#TolrY{-+p@0xT!F5(E{Lv1$Jzn;bJo(z;=3yG6pkO@b%>0V8q;x2o z{G#zU|CgrsxU*rION7~XXY~L6%%xEY_;`Tmxajb%emP9*!*ZDD?th{jCbJPS&0{)I zgMIW@H{nk#ay2U}>ozXx-G1a6Ki*s89c>WUemW1s*0b&bE=rq8j*b2kpbu_hK$~^i zDdMv4U$qs9^q%(ELuAIfpRgAf1O04kF!4OBtGd_L*!9NHudL1P`A4ow@^NRbUcEMi~f`` z^rF$vKJpJA4eliyUZT zU`FR11Ts|VmD+)<+qyh_%un)Ufn6Iq$=+nI?$bd3+xHt?t5Vb=|A9tt`=N6L7J0X& z?4y_U+eh2UjlsFyc^KABUGrANpvF(u>1On~I54Q4c4pn?rM;a5bdEEWT*0?kOUt`} z)Cp{&orhta)U~o1PjH#r|N32ji_KXjpC5Qgr|S2~Z~NokF)I|xHiZ#%AR*Y4Wlo*7(pZ{l zPC0;;bDI`ZY_ju6=JTje+8>3DhOXm3c9=2rqlJ%d`^k@e%R%yHjgjb+SLbH|g*29< z!)`4B%+7+dAf{hG0mzTS1fUz65Zhu5{cH8K`@a7(UjQe(|92t)*;oW{la>H1Ye@o4 z^b>&mC`?zroCgmey?Onp^uV4Ea%*5Okw_!qmg)(K->r97q82 zqc8#J#!AJ&9{6!He($5>z5ph__dA&Zva#p``{4A!frQXqUR`KPFI%{M3n4&VE37L_ z5T(!Q2;$e*2S8dL(%6_j6Xkeu*I6MCjAsRv$)3BML8;KUnGc&II z=Li1mVSi>MKCL5=XpE#N-JtXikyr;Sk^{{UMI@nfL^pgcOeEv`e%B&lmXvPXn7)=- zV)x9F=LBa-cO~3n@8y1f(*z3vbLp~rI0?CEL=_90J-V@gv8zDDTPnrQdAC1%Qs2-J zRV5m_nph^~64+^VcZZzl>2-F0Y?nYd*`^?z$i*eicuEDOBa`6#TL zy0MfI_(U;NWBB{PW~hTN8=1|-hKy&zN-+NT;Qiwdj8Bc1hTdpAHExVOK6d|DYpghC zj6Od4!06OyX*4$S#K?mq(}VdTbHp4O7@8S=a`+7c|7&=9*o^&jIF@-L^I&EwQ_95B zPYgQg2h-E(QaYA;BK2TudcaDVv7M=bL6NkkrjH6*wQ z93gO&2vR2Rs$?3k=O@~r1H`?wY+|v9sUZlPL?KeL2)%~;mZu_&hopiWL4C7@!I_x+ znSOa+eq)N{Xg8}QdJ=U}%Mp!51PN)T#6}W{NCuwBBB&6bXnfQ!Lt{zQupmGt{DfG} zX0r^C7qO^B2@=~&Txx|t+eXp&3#AM(sU|rQO%f!?LMCp`B>sbtYytq`YawKkTy&@8 z7$5e_5FZRbW`n3aC`0lBAB)f;LhmXfKb;7u8kipzyamRiei?#e!D=L!j(8z3_d#JI zsIE!O5XlmxKoZX-5<|_L@uz+n;u{Mhn9# zei`CFNiHLbhagk3Lx~@1kT_5k$Qp!6LE+sb){YQK=l7-qZ2}3TDm`YF{k(I@o@ov8i zG5o+Ywg}l0F?=G_jsWV0NOmq%MVwxtMM5%>-p0H9G6nJnO(r7A8VoM7YtRFcneGsV zOVmC=nxqO88^$~QGT??Vn1pK)8%gje6Ns?C2BEctc{4xBpdeF%pk?FDei;&@!KP>I z2?ZwQfFNeV=*T2#5=2jgB%#Md*%Mr5yvZ+PmWlLk5vfLeRH+HW4Ak`ekXeOH6}+iR zlN@LfGKuQrY@23#)E#D9JxL@q)KcWv3113Hvv+$$#*7#km(0PIPvWS zM;j0LD^u6Rb){NFN6HSm zgUCHVvkA_mYlPRMJ4hX<%qT^w7UASX_dp#`0JM#GcaoFy1f=F!d_;i4bSlE|29+Y3 zX;4=yMKps(%YG4(qlqylkdAmlRx@#zVjhu5Lf9mb>n5SUm3)rWSEYz155loZ5lvv6 z6VxK4aF7v0b`vSBK#kN0S!a;Q$st+Renyid{Sc)HDXauTlAJ=G34!dS3lIuPv?5X3B?dlE z+$agn&XQ6Dy-&6+Duu)g3Lf#Oru#QoravPJCq`t*+LhoMM%G6{Sj$R zz6;4+px_h94`?%*6UYOSRU0G+SQ&rDfG*8;#~#Ru|=*6<< zlp>n>tItx3u*_*tgWMGLL~2smOT4vOTc zmxzZ)W*of>C>C*ICBczY4QNgZ&NXTgy=>Xbl_Hu+d*`b~xbu+mff6E>gG&SxlO!yL z6##Iu97&|KNNvw8Dn+=?kU0WE09OrkC)ptA9neZy0UVaNn}8<38sDQ7(adT)+g~u^ zs021zjomU2Bm@}~Bqjln&i=%LAz!p9)@`n4?Dv0$;|uvXq{QTk0+5M zOF1vHi1PxcrN~SaSTkIPL>?8n%H-dWYhu=}SBhwI^d6SMYI{L!&`7;L)lB7+zf68U z`TC?Ya6&Sl_+{eriPtBZgRf5H~z|=$GSYBqsGYNBM*#Bjg&@=;m1J~bcPF=Uk$x3 z^M%a)vB9B zwWRHdiz!zp9+E2DGG6VEDA}$YtH}4_iXotLV3HsUtx8Im$k^mC!HU3qQJfAGVI6u1 zO5{g#j^Sv+@*{J)RW32(NLxnZn&x_?NH`UP-*k?JoKZ;aB#W+G77*itmH=$x3g|kh zai9nqEHK;nOTP?>Zvx1c-Q8wyM#4kem=oj=iIcHc+K+_{-9!nRRf@FKrBukiw zjJNw`xN=uP(ZDvq9ItW`D~Tfu=U|4Fj7SpvaE+7JX1vWWBLL*B61zXRGXj{7BQQWc zBw>kd6U7IrOHJfF8gKQ>&|*5SVtil?ux(>W6p6B!LAhK2#MQu9SHxJc&o81IURqO&=)r7U z=69ytL^Hw>!F+){8a=|XkA=wwF7DUt=df&5$dxr-q5KRj*U8~OS1Fy;k`dO<(FWl_Hu9LPse@G$9p_REnUZg|Uh|DM|Qcj4Yfo#MzG>4+TJ~0~b@$ ze%JX$bQ2v<@kJ(%{GhjB@WtBQ0J*^_l4j1l$MArCm$MV*R`QgM-&cM{Gl96|7tw`f z+^7^m&tj10m=8cp0XU8bo~onOBCIcT7a$nTX0ak*HptmUePZ7Qx(PrEi*#GZo>z)! zV#i#n6k%>rGjP4A&I(#rAP}+lWB%c9?00z}GVo69^`$KGQ%02&P-^_544$yd0Z2|8kT95`ax?+5Z_~R%I8&ddtQRl|0)Fy5HfN$f>z%VjC!8 zW^FW$yZxWxAzz#5d{7cV#)F0k;39T390KS@EKcyzLyYhorHCe-=vJkOCYZ-LN)dK$ zY`CHW;E6!BVhg$(fCU_=M+7(nAPqJ)-kX*FdngG_JQnPMxLr8-V^Ad59t1kfdf1x5 zeBvNz+@+MsVT^AyMT#&$KOom&jp3evYA@kWf&T-$CHBdJ@hYWhnn(?&`adHseOy5S zLS|M;G+WS#L=HJu4N$K+2jHt{IL1Bx&j1-BI629}=YGQRiCwvc?zKT8W|`;3F&5uh zj+EoBzf2d9^$4|y9>dV2QlyFkZeqB?WXbgm2q?~qHb(U_$8p%Su;u~#Y}b-%5f1(s zVA%sW$#Wd!ItJt^CQJ_NxKKdG@1( zXBsb6enyi9e4Fw!K-a*U$C2AZFX0E-z{%z3@La=?h(Uo(6;v4GMas_*q>|I1Pu-#v z(F8s@T`8i8sX3+=5!Wg%1VxPCK#l?hfK!1pT!VutR#c$-01YXX#{D9~FjNvb>)d~_ zm$A0E@sKHxm6aVE-y;~ExL6pd?kwX3h$aJL3%?L^6D&i#Oqgc{f&`}yd}3VGOJ(c1 zN)b(fkZOK#CN1xNx>$VvPzpo_EPTusT#P7hrW5WAEMD9L900t5IpGLW$r~?M%M>`A zaP%(;czeu?ARnO!L1_VCgxd$kR9wQ?C0(U6m>31%gNbB7cEYeDY$&V%Hd78Xtmz_< zCLGZP{@)?SJ;vDIkN(}rFGda>-k3Qdodf0HO57QDhUN#a7?_UT$p^plKkm}=H*)`9 zmp;84XCY%vWGaytuizz`?OJZmu8z0pz6y)G;9{mFjxchWf!BFK7ax76(I=n2PtH&< zyd>BSa)zGQFK1{G;l#F(j>g26sz-Icv+Qk9=BC^N8SMx7T&=0{U?9fn2gq%i)%~RRrv= zYX|U)Zp&OU8Ng2(nM?%UHRa4ZOEY%QdJlQ8Ck!wewOlR6*NmaBylemF$2J6W&L+;& zkcJr@y-Q4!5^fmMjjX%t7D3j%E*`ZBmqQUW$-maSf_jrOyE1lp0x*kFkh!HA0= z8ki%@jhx9ji37t9W;faaTO}u4EOViQzx7d#?v|nh2?K-QZYGLvPd~-iO>z!~5c-e9 z`l)-m2~&KHx9W6KSMmAn1OsQKcPIxE+sW^jYnxm~rq7bbA>h%>@R2*XX2&@#~C&}kU=xdeksi8YTo9T6is_SZVy?lXy%PIr2fbr+UY za=dmrdl$PwB%$q^nO|O6>e1cmi$L$&3s(1PAF*JK7yr9XXQQL(gDY0)Mb^FLW_25v zIaeb6SDr?f7xqNKHw0gW^}4KSYmCBmI^p>mz3y`&<<_ALaskxS zT3)xZ$zWUd;mA7C?ST_%=V7O#g5Xdr<(a8@WU!@J-g2JP*fW*seAf-B-?Qv2Wv+B) z9c$UiWM}4EGxIYm`@(|!`&={n0W^e$_LD3%uazw2CEp$>pIUy@>AIRD1bV4fP*YgC z+|Xm*@b<^SIrwZb+1TvB|9iQ>|37!^+hZ>pJ8ATDqq|2(N8UGb#qf`YUprjM zd@b|5%+cwOq;E_Qr2Z&%LGnAvdy=Olo)~B*o)&*3e$CKNh8`F?ZSWg|cMNVF_(Wn6 z-~HQT7aHF)UVgA9gZdpR(jg$1T0wuQzmqtM9HIe=29*)*iXYLz7m4Kqe>cp?aM~2= zx2v@SE{*9$Si3QXv;^r2Vbs7@3m{(LoQaSI>Xm@Yp`xta21M8)BnCTk6Nj$|kij`i zY#-zj`1-3mpHJ;wcud`}DC5I1S$!2-4RK%KfD)-dLP52FIwDzvSwxW$glCT+nYp5Rqf%FdqbN zGsZzU(qTbyo_i~`cWFs*gq7fv0Aw9IG6Z3G;tA--#lplO2M&Wb5S!TN+i2zBp95@; z7p(%yF!A$3+8B&Y&^<|n0Ne8xwdrs#;T_~@Ei~{3O+TqQC#sA>F@=SIlprcwfl2YGg!-btOKBrJ0@=vqXsNHBoIKf z(`#lNVIvNVJdK?zYV}xdNl}0wiKt0pAux0b-gU5k$(s=Y6ksmn`YTqAhdb1Q1oR84 zNahN$%5W7B*hC_LN7aQW?fSAR8!}6@d`+9qk+QLI6JayPuu5{rb&n?fj&cpXh0A&K40B zA%Lt2qa^wiM@5O9B#-Z(01n7cYV}36c7hVM;`WZZM7A9_4l0gGY~hR)!FyOn2|tHR z0do;i8}$XXc5;-2=ZSbZXvd%!0MDH`S1u*w1K1*0MC6g+Sh@BdSvvtm>$7U@y5S!eeyuGT)FM0!Sng3Z z%t``XV9kR!giWPIkWziOTDwg^FdCHzabmHVXoA%YxM-1qQN^zY#|@)EG}p;XvUb9P zuym5KRs%Vmlq`aSa9I&DMxqrvM5TU{T6+_x5veVJ34_8c6bJhV929~tg`;{^Tsh%5 zsuTu)A!`?rDFnAwfmNqrxX1;hIsP>~wnag}Q=d_5$HS(T5|eag?F8}AOn#Q&Awfw? zpe91{f?fnWO`|@o)~*`}H&E%+j_B~IK+#}BO3Ai~vqXdgHeuu{0dYU2)(#CRBq3!Y z9q=p>oQY1yS1!~l>X(!gLY|1JYB+~HQ`RmtJGzn358~?ZmcpsS>>=tKk^{oFTJ@G% zJFz`lKF0B%%i7uUpwh_^0Rpr&%9qGe@`<1cA{Yu{R;TW$wS%uNlDqg4m%RYF7OY(a z=&~1(b0|m(gqmYhK2O#zc-8PWi*PqsF-Sl2oKpNGGnJV3*3KriclQrnU$60#?QOx6 zpe6!fI94%ZQO0l*5mZBP1qzw0sJg8-UN`qBHYaN@5)WX)S3pocu@@kyGuPpKAQg@n z9F9BnhFZI>18CrNvUUQb3MCX-8Rm~NzF-lDM}z_g9keGYL3JxoyQa@&-S4$)XW^lk zfT1UB7=?ycnJ9BH1mwBF*ipYxtzFm6F>qE}GGuB9h0c+T1O(bF^5dX#!%NJ=a<#rI zP`jqLVBp8Hc7jdVvpF;qjfz8&fO!%e2xS$Vn)t@e`VDIBy5{(F`!oi@e1Qr z<%x|$1Tvs+;Gd^Y#rjUQc3u1SM0>*HLlv1qRl@0T1><-o3yY*hHc&#VakbU!YVEq# zwF+YXlhrp+xA5HMh{fTM$ATi4 zlyEE(*SLpp2&iAHHeT2KcEa=9k|zzWAShi4Z53Ij=m1Uxoa3pTxRT1wYt+W;TD!1n z$?A!$fo7NpCN6N~H8_wDq0U-@U`sGswRLhNN`e|<00(@1n#Inf^{W?qlx@4!*#?Xt#PW$-quY!sw@hcr6M1!N_vrvSvy2)90?l~a= zFiZm_e06zY)>@hoP=UU`*b5A8zX||=%iFq3Jo_4rQSKL! zYpU@+ftE`A|Jcin@v*VPMxQ=%gJXmq&WInq>_qB@Pt?jLqj>JH=Q zNysjG={yrN_CjEcyH5k1JgDpl-SCr$?1-(${D$ICBjUT=VZU{gsyIS7ToGX#5Qn#K ziKnZ?5tkp6EaC166kB+BS&l=r^6ItvgR`0kXF{qm_6Ok2x@ccIc0kn5qT?c*a zCJxotJ^9dA6dr>MzoyaIep_z2pqwuPP0hMXZhUoYvFNglEeu|g>_mtZXisz zoxG&e>1cMWe!7i32zRJ=CzpYk@(3+@2K9tvCJ=cw~h}g}Ou14q0eix?IT78$&GlvYwz5c-prYGd(WA5i+5%v1FR=a!g~@n zpt_Me;Gqxw^SdAUkomaZJzFP9uM|C+KqM%0*=r)lkvn>)FN>EX5P1_(uaLb&vOVv@ zdaD~r6ua4oA8CL09qFgK3zy&`jlt}54FPmd>1|JAIgQ-j?=TWr=z)zn@FuL!+Tl$h zRQ0hroj&);$PJis15M424y+jCWZsOgAKNxs9l3b8o|#JTN$pI|B;5FeLyr!=Yv3cX zv-x1{Pq+m3Pr65ojc!}|Tu%##i;PT|k{g}1WKU0`BPR=UQ`~3fC6!3~p?}U<^;uvN z9n=k{qzM*nyxkc3(3^hrrBA#mXiSYA_d}ie7QH*>0}69h&xBv+ndwdF&Flc#R_hG% zu8fo?UDnj3_&%_<#Dm!K%slL=i?hy(L&{YreG2o?5xskjY98vaV)tB?{l@_*x9<(Q zi6;@X-l@OSkX|42P$;eU#B_H5h`X`ZL?ZioR*xNCIa&lI**;nZcWh)!>e`$&tLAg* zrpH8>$cBm$L*O0hb-*xLqtvECr8Iorhsv)J+?TnAk^- z{bs!kOzciO;n{UJsFn|D>)P5)INck{k=}h8)=%98rdY^cOHz|gFQYLJ$XZv%vfIwA zyXda(JzL1pl%7*>TlQ{4i;KY_4ZI2KuWlAaloKhV)8jsiRq1b_t=awS-F2$l%s2AM zK1*{3lepK;r@jdE_@FjIT~lAgeAhGeMav~H-_;)BWpbaU%EhVP+$!`%ozFG_YU)_7#=kWF596O5e{}p!<1fzq z*UWn|pUM1me9!m|7Y`pc`ijxx$Ir;TD)aozT;}@BXT`)#CT<`6Y}}2{#h;bj7~c{9R^r?7PbSid3liDH+Y+BjerPC}yl?29p$k&)7&?Av zI(cjIs?-mMzCZMZp?3}bF#g`u<;llWqp8K@cT)_tO8wb8K zw0+>(+LB5QJ_@aI_s{xx`oz?LxSMv5bH;1qTLvGO4+Cc&UD8q9KG5*8;5c4VR5z%@0p@tjaLoK8t;;ieNANi-iCNOE1&vH z)_5gX>%-;KZZno_;}!nLe&m7iaw@(;ek{zJ+z&g4ZsTRVDy#K$053YssKz~h2Rhze zrzhn@zVsb>#)}5O9NQB1!^R7hK6IT%#@&N) z;~4qf}`WuXncvPz6E3d;FpaL$d|#Zv2C~^zhxVD4c=>?JR(lq zhWGCti{c%O`lNj0jb!I{Z>QUN<+&#%;Rbm=ZOO_PUGT)`A@_~-i^qGouw0nDlo&5z5->ipHBMxP ztXtTv#LMmgPS|rz<1a$Kkh6|&#o^xg^N=sRI>apW>iF>Hc>467U-9dhHXaSBK@Px@ z7aB5c{MiA%u#FG;Yp~l*>M%a!kDm|lVl6FBOy87vb0(f%=e5iD-m&rYxk?j-Rqq*B ziC;hO(r0+KJ>!i%f)t;041dNO{FUPUJTHy6kH;~Eb%kquJgO*^Y`kc`wJ@(!n+=BP=q2uD|^Lu_mjvZq^FMr?hiSlwve_jG;VV2mF0=OwEeAxc-ro1o|M3)mVJ>psLjrvW7)f>mISKT z#Nzyv@kb%uB~e~>{O31#B$-kic!us{-meH?QgnT_m4xSvcDJr z4mIB2Gnc5r_{*c>kTv@g!J8hFjl~xF;JrPqlJ5kq_m1V2CdO61dHDD^NJ+irF}FJN zD?7XbeDt0k$@mrV^4(kFaIyE+&;XTh-y#!f+IUy!2Q!Q1U2`+bq7Co#b)6idiH5au zLF(H*<%Ga|fv|)>K;J99W76KP&rKiB97@L1qp1PopL#keY7(1XJBpisPT0mH<3BSp zUTtTw74JyJW@j3c*q)~rR;FhsR#sYP$SEKm`zvwss`D;`qHqET1$>2#!P-@%0UVC_USCj)0MJ9V=Ox>V#^S#z983fw+yd~V?x(;8+}z zjXg87&BcY~6;!~$lv?Ui$TRP42v@ZoV zALOr;#IGEqTd28k>-_A3y2xwaMm8Nsr<7D<;)f1D*dOxxbl8dU^yL~qbez;mof*G+QXhX(Jbgt-Mb_fV zz_n|erTYNa0jT7eHRVH0&hzgs|Eza!1V!O8^LA9fPxsGl8 z%#ccivJeU=BR7v;8EliPO?iBRJj{2Vc&cqiD7K_L4)(r4fh9)c>7%;8ylYxo6~-09>oPydd_9#;em(Qa%zIPsOr4u~ zZRU>5O^L(euS~?^?~4Cz{QUT*;y1)^&0L$gAh9j+&CF!xu*_iM$@D*`zY0>}+tM#h zU6Z~w-AG@SE+qafeFVsb-%EWl_2=Cy{n}sFB(NrdH3|H7B;eaxR$9&^{}tzPt`Xl^ z^)l{)%nf=g$?zE>8#BhE@8YP_67kPHjspFZ|!WM4r*au}(~e-OfHFGBJIzFDUW2 zOUz-s$Tu|b0?)021Amool=0pXoMXJsZ>4<3rObGVJfw*qZ4(Qu__L%VvTkU+vEOfd z;AONGnIBzkG4^}v)zTi4=OEd(Va|KZ7+>ml-h0#uOEG@m*IV8T>7+JZ#hl+NjW6C~ zd#7LL%EB&&bizJg-uAuYGfEJn>BRIEev43y&eAldCMM(A{up{Qs=K&uX7X^&_v-L- z^q=cbDb=STts~yIzImrJsjv5EsF?2EdCd}enNl6EWKN24cgRy50e(L_GwLF0#!4Z6 zw>_0RlXLnUnpBgEz5R+A(QeVS=b~s^75z2Pd3&8d>)J2d9v~FMmHw=g?^sYT_07mU zYm%SedG##6$@0y_^j>KTkxljt8j5DP(3g2fBNOs{wNgum^1>g?uI67_n0ux_?!H6A zf7V6gU-Wz7IR+4oaj)`SC*%BDe?58MNiUK=oD8M9Bn{V}2i;Njm-DTd-#5$A68qQm zdHyh~&NP4hsp@+JJzW0as+=B6{s8fq09{0Qxj!}9SI+6nRz0$x z;ft>04w#fmVK(ZG-ICXBF;D$6Sg?0Bomp$&#B`(od)o@BSuXGSs5ka*Y2^(3Cch?r zQ=CL*LJEr46VuaCZ|vswc=}p7=ephK{H1fI>zvPSl$PSa&-Z>i=g;uYtFC+|rlGqAEwB=ye{Jk^Po(-T^rbcf`u$&R*Ix$A6q+czn1|CGaLpz#-hif-0AH>FtzLIe zP@AvImVW3*+6auWr&@rR=D-`SwScUyfY}dLI-tZbI95w_cbi(hF0uOHy|Q{6zEK;N zVZn3?d@QtA(Bw8DFaYZu{sXJ-9=9qcC)jdc(49URuB8LU@0w9Uy;FO zXdyKQm$C`1aZVtzy2q;3>$1Ubexa=1WH5orwi#O3c!9dHs-RfYK|ri4CaewaR;uq# zog4`0Es!y7;7NgP1t7C#ft_nHV@)vR;lD;|&-x*Xr&TwfPLUV_9&^)@sPztW`>UV_V=|Hw17qDANK>y_Oqq@vh_ZYSM7Q_({u7W5Ee*u8-RBc<3{sMFh zcz+&tK?~qgD}TjJZQ-zF%V7DIm}p3^P=tWhu9owV=?aW&X67cfdYSe=S%+G_)U5%YCtFHk;4wXi$;lQB?4}=ATeW3;H zcC%u(3V`stN2%4rLJiSs3od&b&{hX@eL#7O;0iTp3ri9dZbVTmjBb+ES0U?w>J@Zs zLG4Rd@@5Mx+!9c>R<%{M>+X?i_25E7mr!egJzWN-8_HK(P=Ayi7!GWK?+njvo`$A6 z!fCRanFh=txPxg-BgfnUp&7h<{%acb<30ojT~7rbr47%dVm}Y z9=!J)c*8}QAfUHRy;ll{#RC%opxAKY!d=d~s^pu@dnnaS3-XD&d$?M?1>>KX2TaP6 zAWwl`xLE>co!OZKrygb^7J^+W#_yKZ3;uZ<5?y#h;cW*R9y)<0(?~D`I%b~MAEs7c zKyRQn8pwim1T70h>{T$~S?O#NCig;{Y8Fa{;jO(B0SFb!zq6T=Q-CaQ5wrV}eW$D>y{Vw9P6(Rs+U9+{Ey@ z*WIV7)wi0EZ__na4ygN<1E#qE*>1A$=W>uAR|Lg)wbUAXk!*bf2AmwKGzVlgiyDPT z52yf0|7xz<%GcdP)#?!fW1r8#3JI1uYLW#j79hV^gj)ti4Ay}SZ^&0<^_+3Re>Q>T zXLzb?y8x3z+YILmBgjnJ=^jG$-TeeU1}*0Hk-?*7{Y{Hqih0E{Dm#q|pxN-g=kp-M z=e#vpcgNM{bDpS`n(PY=R10h{EYTvSp_YYInLt2n!xPvv%V%FEtEVe1h8Mu?rd>7R z5oF5Pl?sy?^$HMo-5pb_uUJqhftAj%6q?YFph93GK-XI|23+tO2-{E%+3|;E^#!;m z;97?&qyjw>qXlU-uN&-{@Ss=GX`^cOW%7|M(8jA4dc6gPd=9;g0);XNb$~i=R$w`A zRFAnvR$r_^N6%6c>%3NFQJb7`SbC^Mv}=)>IigmtOSOIM_ht2ENIn=X3m9?9hXAp* zI1a$3!7d|OKde??LYT-5YHbc)5G=Gfd_gGzX@|)kiR@81oE*xTU$tA07+FQtD!|^T zaA4t^RgQ#a0rGegGWWWhQL7gWQ;=~Kps{V(VBhDN=X9S=v23bfhC}1hEHs=AZD@OT zrD_v~NO&I#=k%&+uu?7nL(e`2(mGT>4S0m1 zb>WP`UY=5`hf&6YLaE8o3#OAw!(t_ZjPKAgj*b;X3^_54JMtT{dRUwx?4cfn=oFY_ zFxuqMmYk3U#}ntYB-MA<6=Yo{lckNSZ$e7~&qcAtQstz_e!&^cf}E)dH-Yi(_J#s& z3F2oq2`cy+J3ogyyUacaxeh;E+36KIreyUjy(Tv%7|Zw(!QKV+2Njpu4x5|_xd9ES&9^LY_4DG0zzGIQ zTyz>^#Bwh{VF6_eq%El0MssNL{jz>IZvgv;bcoYEQ<$?1jLDo$IgVApy>C9(9i;v) z2^Ki`*qBX^J&j$WRA_OWL+_MKh?QB4HM>+|cFcBvsJb zuzkVY!9>gDYN-5}T0Qg$TzJ=Ba#v*~Fl5R7J#`X(}rdvU)ay9F*c> zN2sz-GR`@aALlx52o^Z{J6$6n`#kE;WRwIUMx#_Mb51VM7*1!l4J#JsBq&#!g@L<1 z)0U1n)|3h+gb{f-zL+k^$l_e(kj4#j#Lhd_>UDFw$>EmOv)z_GN;!CBAg{?$xyd1& zH6YfDofG%}k%1k?*oQ|~My7|)N&jo=o5}YjPK|FHiVdDWup_pibBq6f=>N%EJb5FL z9oh87J&9Xqc&XM(xSb!{=-FsQe6(lg_jC3_KMqTW(cMuZkjXL<1NEbQVF}IXbeN)w zauV8TkrOXBr1|QuC?9ruw|!tFRNfqA^pwnKh)i}kzm(t>5IDh0E`b1+Z26(Fea6#^8*M; z`7$7-c8;g+0V-;W9Qh3$nM5mt@X4a~FT4L{_xO#()o)8LctY`kPny1x6he`qXqQHW z+8;np{R;;~cTlr?4scK@;N7IkwF&<1P{KpXUI4oW)J0pzHBxk`ee$ga9KvZy(CoQACW z9FZb+3#A*`{V8{|s<`}B*aMT*Nh&*lh&rDIc79sQL#uNguRE>NGjK z|6KQ&jU>!%OJAX`KQz(>!SyFS`d$`?269->*8#~K)Y{X%B1g$@WkN%KzO%ni(xfLSUo+(;I9gG&glAGqclU~H=8q%_A0P!-ASW%FuVU4x3rN&m&!TBQw@Fqt&q(D^+eC-VM|KaZycdpj2~-=r_T{1Ld*0tJiGrWx2T@fd z3?U)@t45uwN+(3&^n4vAA6>`y4aU$5kNU{%cf2B~at2?dBcJHQLrvww>du~?c4ygd z3tIav1v`<~2Nq4|%P_I%I_x7>RrM{8p>yHp$VkW;B-vgr!b zUy9&496&08Zv%2UsDr(3JVJ!@2vg7yUmx zj{UyItm$VRk6KT%y&nJHA;zpR_N~!RkNjfzJDDfbuS(sToJ;&M(f!XFdiLPbz_qa( z_~5tj2iV(Z^gL~tPWvU9RGJ63HMo-L3Ty84}#X~g4IMC zg6heq^kbfNPCS7=_oQKl^;$RJJ8XkG{6{+7j$UiQt*WQ7+5LyR=c~NAZKF6HmrfTv z60*~NB59!WA@2hM5XYWSOSo>3I*gV>AG+Ne*1V|OqE|Gq#J_V z@4Q~zdTGXxP{{2h+JHFP&jKQ7TcC8q<|8m;lgDcGw-oIr3E<xS}2;Ks5VG=@0ZJiQtK+3!l$JrppedOny{3zsYIw`N8-gUf2#7o4&eQK4--jM8)cTU$k591I2`1Nt za*C&cUF^+HAH;jD z^a#c`3E&?*fM5dO1_X0Z<^$ax+<U5DOE{7lzcKho35o3sV}DV?p+1M2GUF`0&ajj#%7U}VbY7uD#?6~Z5e;=mvKlp0SF*x zk&f8_HoyiUBv&e$MN(B84iEsO+ygYxF#gOh(*mld3TlMukg{0=I)-!=G6aixa<_B2 zhRFXbw8%;|KIoTeR%=cXoRvzok{5Z#B$1OYN;*57;-rKEF_I_w)h-zyP|A>pZ3zfJ zlCA;KAaj-s`VvSlIg5PA7RmZ0r;5GA_!GYj>98auWem z0K3Hm_r@~b@0Za9hcW)hFQaX6{R5?pZvO6zl`@)00LH5egEKKX4|EygrvpXu$a-QPkgU(dFa-=ns{$lJAy-$5koZkg%yQFo1S*FG z0s)zvg<7sgW-O_}005NAx!h)@NRdp>63{F*$>bzh=gA0fmC3)g$;DmYSE0fP$X4YHH5+E8SR#Xn?2D0a?%>};*%c`6MrlLtg zJUQrKcUVq|EagHOlpA1jD!?z~NI$+oDMIH>1PsOj&?bN)fPzsY5f{K3fSrJ1BHgxF zv+N6%BIJS#wE+Z1qeQ|odFT~^iBjYb_%5U|BN{T2pRN?C;L0FN8FUO%YRNtaQ3Na) zs|6-N4*Z7-U<(d;`;JnilrLGeB9J~c(z?N`B9XmOY1ow(BL!55lebvR&B_@{k)i_t z19{Ol7+I()(*tY*IiUi)h3HS7#yaKFSxOO-xm#Y2Ho4+0DsQ1%YJe)x7jmRQ8)`5I zt-|eU5v$@bHWemht_s3N89hbLb){(AwHB%ec$y+m3y1s5Qr9MA-0%NPlcaSqPi!%h zP|+kPSDhA^Ohvm{uqt`Wsv??P`9!5i4X_F;2QHU@y+L~wfg~xIfao*@Rv5|`5E0X< zJx?h@0ydoiHUZ_>0z`(~!V(L}o0A3Lf>7vSEg`w?vTTytUqd!5_#F8|#RfknASVP8 zLkXA>G(x_?RJ+M9qRTpYt5O8$CQu{53<3RtfhR}3V4+liN&qn?*FZED;2OnClp+>j z6Ak)VAV;58wD>D?pi%_B!zltwLw;n%wrabSA~i6^0BHcQq{JSE6Pns94(Z^{24HId zV1e*bDppsNA{85)pQ6nuI|7CY`~#pP$i+nNU{3%{A{uNKu274Z0BHf}R0C)Nyo)AE zigf>C89jjx1N^87B$e4HC`HOeFc?_%0$j~*IQ*n3fUrQhDiq1!FE@$>2NaeIlp>`9 zdodsnWtOy6W>aO2fl|ef0f@vZE`!g+=-#3fVUh#-QUN`niB4ss15HODY@rWn9;xum zey8C~DMeUc%%v8)JZqK`Ww0(vg&H!nX;Ya20=lbI9Z-sZ0#pHYC0{IA)gnMF3>~wM zb3p}Eszwz!E4KfFwOcI$4i8XwfDf6J0Q3TMJAhu$eZYq>5kL&80BCZfU!(zM5BNRc zC;)CH&=o30F^o;ItO3vgw5HGkDX5TAiZEiJZ8^;}XCi$=5wM_2NuGChcbdakM=IAaAjMvWDFn8VK!c( z(N(igyivKJL`VjjDwu1p3}Gdv%hIjyquK|?)qfn;S%4eCljI5m_8r$?0p`cvVK)TK z4ak5FhcZC2I7#D4KKl=^`NCB}x8F(YHTqkMjspm&Ex)B%_geRg)tinOUa6W1N$MeA z_MU|GFy8=zlRFVeJr;+&2A6ZLR2=)bJp*iH32Oidu4Y&q)o@&=d(ksD80O$LG3(yx zK1;+2tW)9>CEkRLPh7=15E#u>Z^OD=<|0)C|4Kklf8I?e zIcs@gK3_8K|Ef+0`%LJPdW`a#n00S+FI_#MH?vmdgyyRtF-BlSSG^7EvMwxhNCfDi zAJOP>pSfHNM1Zbpt%w4>WFxE;>(Zz993o{n9JuKU^GBfT!B=7Z*2RmC2)TyI_%{lM z3x-?=n=1}c7l)soWvC;E&|V!aABA;P*Eku`(XBt!=xCon$6!ZgGqY~feP-`|%f*Lz zEt5)oo|eF<`j5jps*9l=Gq?hM?q~VwfA3s@sz1}|V|4ln)NDyDdh0(9>#Huhc!-7qa9pFWrRb6EQBhq& zATR!ZV{*N~|37E!TVr>F|Nm+5|C1wcAGvV&yTkVkZ_j+e!~cIci2omL3|M=!CV@2x ztVv)^0&5cZKT`sA_bf1X2h!I`FEV^7xC20c296h(UaP?E3N{p+P#}FbTKNA9nDp&x zrH%g&iZgKndEBf(KSO)~a6Sh70szvulW`=~-80qd@kZnUKezF=0FNwuwZd_d18p1V z?*c>?xH`C_+lik`L|sac zM>wZ#ki?7mCbxd!$t=Qq02zi|OkUlt-f>LGPH?f}(|}ij-e8^N#|n^MVC|{9r>oUN zqc^HxV#N_j29fVbO53&_=NB>!z%zhzva+KJl`PPpQct15_XHxYJqMK z;Q>(kRXjWmo3M#iO8`~Z@ORgol5@y?vib&C(>PLU@NU4qfP1tFBsG}t^rQmg1{m?D zs@3DmA_xPYKC}-+ZdfLm(fHxbiiN|x0^})9Pe!bm{DiEYSOa|e3?n|I95yH6b8bQ? z0`9xhDmvhN*QmY=gO0DVVM2ER%C}A3{1DA<5(@y~4aV4V(QM@4f+-k3Zo{C%X25*3 z>{>~9g>YLnV1t2Of{+3W+-}CUsy1IYBqnxqyZM*}@k-*sYSL$7VT6;v3VeFiVxs0i zaj&S&*N&d~OnY!m6Q3F$1N?~u0}v$x#=J?`3^Yf$-A$xlR+~@Q0Rb7NV*<1;NK(qg z7U2GFK%)ctI;;nH*)Z1T(pR;cj~|xk15?m_SS;%XA|h1Bg6^hl!T?iuO|^R6K%NaR zYtNk`E>C=dWxUSR2KNGCMvPg}E)Zr>p!$+pJ!4;}FsW>Cp3nxERV;ASm_4OJsfFXe?iSVRiCEDJDM}?}^(IUZCBa2h zLf2p;HJwrs?*%SYW;0dQ-GW+ur3U0a4p$@$EdlFPWU9N&29hM zZhZ}T<76f707Y5EFlmeU6lO1BRUoqObn{f-o%y<6LVSXBheudxnU*LYqV^xPrD1zIEc1t!(z>$<)0Z^`;u z-wlFrh<{|qH~8iy>9*<+j|#9p-y7L|8fI+KRX|}boo)ZB zV{D1`SOr}=-DYOpr@J#7A=X}(KG93Mz0iY+7Z5Z@dsZ|ExC0&J-<__BR8`?wpP3?c z)!C9SZ8^_r?3v13>C8ITvXkjz#)tK%Uk+;@KVx1skI@!^%yXac$sCnFt!u}|3P}5< zLzQoQ@^gA3{^1W-;BBX0YPO8-IlH%u?y@@_(kzUy|DnwizTS!!^4~#>fiK^zd$T*W zy4%9`9O$-WoR1m}`8I4cbgw1G&#^+E)jVbEUv{j}iJxmMpFR%mf~i6PwWp12sBjCm zHo^gYRJzigf--7B8fLw(_bmz*>F_SgcVQjYy(mS%`y{W{=yg8}ZO>|(T#-!`zB5Na zKOLn&KS>{hOd1zmmgLU6_-jPJ)epituX~MKJ=%xv)#!I0z^B!tt+qAm?sJ<0O5&*W zncV@Go(GAb(w-h2-rVp(M=WjL@ZQUjA zB`i{SmBRH_PH3#1?(KK=pdWIdPPe1=+Uh~4<+7oIY@;DyosVk6I{SwKiMiM_;vJ^s z1C4y=yRaFcdruFW0m)Bjh@u~?SHBt1X|!-iS>l9rRN#apA}r+zsUwugSr8s=sck`6 zrR1?GX!N^JSWoB_5D}Nl?yg?!7^&{$g7>1kT8$+<<}>qq1U`vB<9ptP4YjsS<9uW2 z=Xbv9oxAVqY-_QbH9BneS?UE9k+r9(!c~65>fn#<-QW-0lRd#7-jlE{>e^LeHyZJ= z!@vFHTkPc-d-v?j%F3)Ww=lnZpYa(Tt=1=!wrHv$YFixsTIVX^dx|4Lj&Q_S>0tuXpRcL#akqipb*NO~!i?)<0bvQ$)z<^W`1IawhcM>w?Ei{kyORkuuFB)`eAS2Fg(d~0TEVrB12Ml#n; zP&6Yic;p670Fs?qT9|7;*_*lY@=M!)_g=Nx?&hXCrD1r^T)8lJvf@!(HsV`Tr@U)J zxyMY@$E{e5wkZIQA^V}i?m%>43-_s@K}``6vh)G~R>LJ)0Xi6>rxiP`zxsx*Q=)%Gp9?Kzm(v+OK& zKE4Iel;u4OnfA}%ZQ`$9Tf|>wGrYfbp9TLSTHLOFVG-7hW~=j0@z;~Rx_y`KuQLFB NywjZl5U7UP{~wm%1NHy_

oj zlGwPBWdlfDY-L2XCJSr7bwGSRd|nA;$@ox6IM(Q)q@!A10E{TKpB~q=1OipcSef(2 z%{YDc@E*$c1E5Kng<~ra$se!o$D;(KHSi>F#NpHiARo$r$8zq3o*zoY`cT50O?v); zGrBXT3G(auz!L};lcrsl8AyXj&fr59osc2Bwr(+Kqhy7Iq22&oP*(8r z8(j^O_h|y?E%RuWFv?sem8R;zK&1BS)RpCDs5 zsizi7@}j+Sog%YYM3H7N^Kx*k9^jXPa7FvGiE4d*wDr(+NudCc)`0!HNXge4+Do)Y zbf0Ej%Y7}AnfeiIK}%pvi|3!46p+;gljC84uP?F3I?&H583Ex-k4wVsQ2MdJn;7q5 z5PHK;d8|TeTV38S4Js^RZOs8Hl1UVJCkgL-K#8>`)@OP>E#s;-)vX@~Y>wcM%~Unt zZJ<_qgxYh)K-mcm`-M7ONt~o~Vtf|-Gq`MG8_I)_!i|mdvO-52F^7H(XT`?i4eNMc zQUbEZ>lRpKZ%Rt+@rN8&%iCp<9=)Rg>OIm|-3*P1o)c*QJY0wg@|svMu0uJHtiy~K6p;ua_!07Leg+m{bZoR)*n6<<#n>cXc%wTpq-#64ft)nW;5ND#tbyo}0`(hVoba4ZyMiRF#(yuDkOGc)JA#9>uShgH5X*>O}@Ic0kyg$w@xj zH0Ao3jQp(V(J72{4l`_=Mh#L!Oiw)dcaqr_2z6UsP2` zZ%|B%d?PDvBaGXpsFHFS$OL$>cAH8l%aXOS8=7S5tN4zK3W!{bxZHhBkXbmKah*r! zoD7hb{37f9zRa2$IHy0p=0Mu@XOaUS>UZXOIQAF zsUlIX-8arZdsM5;{X^w$m)8QN^tRi-Cin0nWPH*Mbm0#4P0GD`fKPiRm}cUz7%jg_ zSu?3pPreO3a)*lm85HA-xdf7oCYoM|JD%KJ7OO5qI~HV2m+1`fx~ zBN%%AsHBJ8dAJ_)S;f>j2p000_RR4>TPCz1xo~PF3E~SO04W+;%OGe4pQvv`hip}M zuilCBCNVzTQAXTuYL&^GG*ontxoM=U$%6?09?vcm%JJ4_)f>ctKKtp|od`IQv!Ws@ z*Q3Y&IGV*Esl-7mBl>yGpA@aiw;xVOK3CF-m?X&j3}ul4BT>CNEXzoNP3)A=+gml1 z;j3YZQ$&QROWfk|d{XsIwOLe6FvCBYH0%fXn+NiJjOFM#>9W_-?(U<%KHWeb&$jVe zbB3G8zUvT+4OVC%aZ}72G)e`r!(3nznh^m6I4vQGF_itTl*$0B)*#eGEX8TXAq-Yq z@Sz`ZP`D)I>`-bE-pNgyCcuFdejg7d1%WW-{hZAT2~4DXFnDn1!~#c)Q$T+JW0#R( ze5(@5uAts%n|%G4`ZsD$lCI|uTQh2JK(2cwsP4l4+`E4NQ7Q7g}`*zz?9syV0H=fbdST;I#?&k++m~O@~bDy#lFXh$kPE zy9U#U_7jAYX6}oJt6+CK)TPaYWTRi-e8df&1x;A&`q&L^KNRI0mI>uwSjTYtl1r>`N)(iGrD*v?uo$l*EPWz~9?$6?b7YA#e}>QWXx; zl0B*zh-pxAXBd3;5kF6NFb%Uig{5J5PTjcYqd}TEJ*7=_c^cAb$HUUnP zbmEHOzRB?mX#m>F4UsC0R~$PpV4q#*H7Mq%pLD?%49>&=Swg-YU44GA8QFo~rf;k! zoHbvK#vQ20tG|s~fOJdD1}bluFdk&u-4PyfSvm`}O3_8V0F5PGUgr3qx(8_{QGw(@ zC>lzas+enqN^a;0Hzs#~|RW#Q2VMTtZew#RMho1^86hDs(hZe+0 zz>^x?LG5bkG%H9>aNKWyc%H#lVx0{Cz;m{q%K??!9Xc+R8b#V@Kr|yy7v(S&rDYiO z<9xGjRwn>5$pE@=>*3L@)DR$w1hAtMnK?ff08)B z5_-vSm2Z!lS zri6vNt{|_~IwGr50|fI9!B6_pdk z<3${D)9cLLN2wuPW(n9!M9{~W22aWha_q`I-9RZL-LCe5)h1VoB2k1v?W)tk09tQnXG6q>^#0+9lXEnpuZz#+j^Y={e?vL74`+;2j=NE< zjq?iUM3IKFXd{EGO3USIJR)`2z^IF1fbxs%43S=&N{t344b#AyIu9dS`zcdmPR{*D zUSM+>6AJ$K1|ZbsLhi)S zNmX755v)jIOp#b7q4x*_SX-#-2}AQkr06ERZGkf$kaD*Q)Ab54)(Lh zPJQ$3Z(+#C?+m5NfJ!Uj6-D*b?8$gx#F>m8n7wEI(t(#?lnIq$lmWqdfRifZp0Y}| zorq-)RsJ8b?PWA*7vQf5f5#dij9t@vdxELECDqKPr|N54!V?{pdMHOc(;KfFigkbp^3 z9qYm-5C6`h-j||9cM*&0SO#qS>KVq8fuvlUFEEW8mDYY-SGv5!kL>z~6b)JkHIt0O zIJe8^x|4q+jxBKc*89oz^o1zV&w|)?_u40&$)Eq&kN_9H)mb49Dm*RRC6Q_M#`O9r zy-bC!=k7PYVZeEa%kLmW=tU%BeVi+qre;XMzLZ%L!2AJ;z~OX5X}^g)C3I5|eEvM> zWy#f3+O5(W#t`qi>OKLlppp!+`#8_p{BXcNHpK60y|=*h50_Fkz{74w%EnA zdW+Zhct}A6UWxt6!N^We8QET3-X~MTmJ%DlKpt@B`&qLzX5a(>YW(}Vk72A72nb-I z!l8a;6f+l32P+3Af?pZn|8V(VZt<(4Sz4Gl{cihT@s~ir!T$$M9p2d9#_50Ksw4c) z5E+}8ngM|PO220S0Qi^wzIG0`#pBmn&P zXh03Uzc$G;{b!h1Crn`{de0(N@`*M@_O&^FBY(*7(9++VF8mrA(}%YoQmpq^CAoak zHbCJ&IBu<{j8)RC52Cal6A7%LAgVRFKpnMrfCgj0a& zp4vHkxp1Uf%)y5+5&&yfsh~kERpEE-&j$^sj%2AbRqqYYT9X-gDm!8^Hk^QlC2c2h+ zt5yXbJf?TL>bEf2{ze=5tBs?bD;G93*ELhujUcPuA|F5uoEHV)UE+D5^^@KiOCfK( zRo9ReMb_0k(VI#RT{}3BP#oyx$-~vTIvV)UFVR6%#HXlUyKCmp{JYC9?DCh%!v%wS zDAiTUuL*ZSwH4;1{J}L_giV0C^@%BqCAr)dXJ4|49@f{gy>EYMm^4m?K`7_*6Ok~t z*qCBxxb}GE=r`yWm*#rGr7$8ikdSxf1DNSgNJB&&vbXia`3%Mst4)=d8tA|5&YtEExB5?S`u9&WeQhbXfVNrtC*H6tcCK~D;d zdQ%IiEJZKG?$Y$}zi@T{?s-1z3h0K{N^F zV&rVkw+`EuW%Rph*wxL+(Z2K*;elOq615tIETEq0AB?X5OmjvJ`fIynWHJ?~{QRoB zJ%sOr?WT*;!-|u0?o>whezT#q`kogI!ucMtU#a~!#myfC`lCr{C!G|S*@BypV2>qFmF_%<9r|I!KQW8;>EoZ4cNv822g8*#-C_He!;gTbX3tAW zTC0Fm{*=uBM#+%cX-J+e(c7?}Zy)-n=cO{W@TiZ~(J>G54mJi$EIRE<6p_WmUu&Ak z-j%Kt_YF@CZVm5&^xgoyh}FB$@Q~{`DFRCl86$4B)$WtJ<`nnVTlp~CcznW%KvoLC zK*bc?nyOIg$FsB{n+nKl;^SP!GJH9(E!PEI3I;~KAf8(`_A(nq@N14AYx^d}w%ffQq~VE zG}N#^>Aul_v{<5^mrExFW`M_Ce86<2*`=1u~^)R)aLIyG4Udl5E>rP`NyYvR1O zm{RP+JSSxUOT{@ z{Y@HtXg`)oWNL8_ha~1XLycjM;RZG+BNB*{2jAY+ABp@MjbG58M^QHr`=`n;SZuEE ziB)`0NbtE8z~M0*`_x)vOTcVL)5GX!&6b#pv^rD;+VCkU>4Y6b(+6$(;2{jKEukG3 z2$&76VJ-nHV#_d&VUvVBtBgfO~%I2pF(fvA-OA;TZ;)mWc^_xfAj$hM@!VugFhujLNd~=h?86RO!AGt z=lND|J@OAhJG^TnQHH}R1|Lk;cgY|ZhDeD4|ALzANRmKx{^#SmJejiWx2#6h4K#Rt zdN`2bOJa06rHXAP#q92$fP0XO|NBmhA~d6C06(^&&wZ$JTsoz}&=mE9 z8d-Rq)eeH*+=w^E9JvdgX6Yv+NoCO*U33wH`z-#+uk)V_dMBPYe>Y>L#$G`>m9cQkENx6as8+o$u||EAxWDg739%LIYCv_FQkjb7@lF<# z@1gjVp3o?wH#~$bm5UovfLc*(d0r_RZour@t#MLM0p9IXQ%6s8djO$}IHnB}{CifM zkWzv3Nhby{e#Mfk=(-OL4EIHJ{ox@qtxl-;tz@BECY?_^AeTS1+Tmh)Rw{%ezU0?c zGd5BhAhd=suiq#}_J&OS5~NDCI5{RE@N4RdxFTk&Xa-4Q#Q{ZN>dutpL#~E=Ucj_r zwgL49Mg6Ww-B%}w`5B1~Xe*-zp|S>dpepKn<35GMKqf+OU5lu$g}5OyGhPwyvn%B%uq@|FLqRnkKiK`|w608Psk&fM#2r3A zV)(?dm6rQ^dyj|^34^t)1yjL&DA5DCmsFC)UD}0%$#S;^(B2U4qClS10sDTRu#O|A z(^r4B-E4!lUlWf9x`D#?;k+Xw1DKRCwj)tQ;S{$U0!-$?+3MF$qNju~SEZ9gzOvZ0 z1;dk4m56&)mn+C{fOixzn$*q|XhTUc1Mo>htejRlc1r?uEDkrZAzrC~=tnIYi?S#l zxN}=(W;}>*PvhWQJ$n!0Og2Y5#yt|^$6PQ2c?iHbf`@`GrV@296x7Bo=K+#DTR!Mk{D}BuRVHZQUJZOWp0^STHnUQye?y zvop@W>%3=sgBF#ijlTA73xZ4NOA8}6k*gi9cYMl&H)v2ck~#WYmNYHJt8?hxI9;no&`C};!AgiIcIHKKO3mA<-s z-d*RPH+{e}5GB0!l6s2RkSa*Dnwa&fIq+6{nR1Ee%UkQ$Lx5>hZyL4#8doubVwM zvg!iVo4j8jCA)$X>BXLiZG=GqX!3d==#0XDC?mtpUCUmW0bc}>q5nE6Sv#??SA98@ z_cyw^x`~MpctRqz*RM^NNZG#W$U7{);GA^hR0&pkWs*nhD-yMDskdP5i3%K?{C9!wD_tiDS*lj1L-wl~h3#Dv(^kuNZY$tQ-apPEBT2aO* zbafz`Pl?{tVn|Q<{RjWSJhbdYqj79L4G-a#gmef_pPRwDv(#Kp!2}HNO&1RWJ^gMF zoEa}(F@h?hWd0GMy54BgtFBGBB#g9_j75?7LCqZCpN_K{sNGUWPI8j}TFg}cIfPA~ z4p2>E&6~KRG7aA!>I6>pQk2cs#y44#mc# zkx{GJML6^OB@!GIKeD@z7%SJ~R5zlRB)~Y~(cEV8kW!$UvJU!E$g=(u<%W{In2*ez z7@8qe-0_#9$JlKY!attvCPp?cbW})SKNw+tJ0|dm*vHdp0CS%e+7E9n0-H zuH1IKHrun!fW%sX1T@V|LOnvX-QU}6JI02H09=rlc=Aih{0Ei_{MgF|-+ zAnaQY)k84%u|8Q?T@{yfHY(d0KpT7H^*vUgcVnXay^|92Hcz<05WrAowayFexyn3J zcUy5iT>9a-)nV~ZsK4z>ID+B41|O!MM;whA&3ZnsNk|<)1m2E3-+U@yzpDQs__G00 ztDm<(;f-nIOSf$u(y!_7Y<$@(MU`~;8}Q%4Sm6aODI*@z`3WA*8)DMfyf;CEc^+3P zZS)3fy}*H zor|%VC5AM;0y}If>|t00*w)zxa@0(9`=kwk1k3WUASXVZq`~{#!V5Ltl$#%m!2K%? z?fG0e9cs_FM9j`?5?}5pPReke$xmo+z2zbJ$_`b&TwAB`b37W$&Np~>N*CHO9kqo| z^-G@uJ?G+IRTpPrTW6C7%ucKi(va`k!!<}})j=!omE$9$3m9eT+G1Kmh;MdtKiDK5 z(|OR99q5^Kdf`1giz<^`pJ;KF2Elr_p{IQeH{y02*b3gWT=HJKhhj#34avJ`R$wUM zMNW^FzAuhd*oVT;g_e8*!Bz4sG)hX0Zorlk{dj9`inHK4?A+-aIjw?dqlb#t)0_hn zrlA5EzoL$JD;?N+BO$Ty2P4=vp2{?qT2es-UKIK;L__L?5$hjyxyIwCYOTLMv|SW- zTHZEW6?My$1S!S^>uVWihc1l0+tdmW*VKg!4BjGQdU&~4>-Ka32JG1yAnQ6xB4 z$g}E^f$ydz_?*BA^~f=8A85_uDQU7wZoILUMrC2ap>p&Tor5-1oV)g^#iKF!Bxl=e z=w;%ry;ubF0+dRkQ{VF6N|o%+^Y@ykz!M~Q>ze(P#+}ts@ z{VrJh%0>GMCc6y%r&G#{PT~iq93rlK87>u8d0+G~7Ww+Vit%B9a477Cs2#fN(3NGF zY7XjJ|FI_h8?45t8;u;5!-%J$WTo9(Q3YE6<3)5zqejd9wQJ&N-MP7y+>v!1JJ=s* zugqACk3tsR;0zE_z*9k6kUNe3b!E@8e!5vQWxh?ol}x<&7O9p)EMPOY}31*6K?24ZI`Mu5Z@4GQ=cnxxVSn!wqX8 zJ$gQPmUu90ZvRiqfL4aQVLz-NzC^W!1DZdts*FO2Tc_{EM}!9Z)_tU#?D z)0snjtwpRmY6A#E<9K6UqiXWL78JQ|sWcAl_-dWknCVelEq00?H{SsGoHM{isE6om z!EyOqtMUadCA*<r4oC<WnDVanU>jqG%A)vm3?)V#RZ%u_kKdh= z3wljiehqJGgjzu%04D!JDZ`O2h!Tm`X&Tt@LZ~FJ$&pGd6}0f1mJw0Y-14#%$Heq~ zGlGE)fe$)NjaNWbu6m)X~i8mDF7KvqnIx1d{tEl?Ts|8+GD zp{YL7@{HdXWHh{@0uj(UHq$>1YHt{E(TU10U@QWGP&0uThp%F9f(rcLoLx`5y3HGO zRvDM+rxj|Z3M$Rkp3fqRXJi79wapmOgncwCstlENiW|!>z$WS z=tq+fXAxmrF)Ty3f31BlzC2*|7;0VfjIL>?|542~VPGv}F;)XeuN*HTxkB7yWbcw1 zKfL*oAKq~G6==6ELY+e0e#Xiec0qMq=ieR-PsEVB5>|qxcBKMLt}!F(rcfy}u_PxR zeZQ;dS%?r$j=u18--IHk86FR%cY@{P_U4q(s{y0~s^5h&XZHo{-BR}|GdwH(AVWai zpKqsoC&+Y|mVp5D%$CBzd|xRsm>&nym_q5%C+($en*bNp_gBF?Ii`R1S5cNxY{yp{ zC7{#UGxOQfW}P##vK82pf_uj3s36!006l5>O*r41HHCM;>(z6cDh;hU>H@3si|WJ` z6PN!qJc2koGV;aUTiT=jqyhA4b(%(kOR{y_FtNt3)pn)Y;@k)*`N5m2aLtQ|X z5%hYvf!MVJH3OT-UbSiJzM08EQE`UCa&PgSqfRv|c@$%0&=})gFa@K0xK3#z4f|Lu zhmKW!KoC0NeWRe*oAgvl%;rqW49+1(Cxgxk;-~fbczbFfX(pTcNrZ6gty#2~e2{QI z;=4h0(FZu_Pjw;V!li6LqL0}hrOFN{JdZj0x&b(8*9Y>tW*QmLONG;GL^%+vV?xXI z&^HZ#LX^(FDRg?B@L<+@^_2c@`yRJ|Is^7A@Geh^)*fbK9uel;Y`4%itxEjZ7`_xO zS?hdgx}$ruW2WrKQcW-mHqsj89Qjc0_fpxOgpBlEs7-rnJopObP^{Q(T5s7kaXPt- z*ZO$5+P@IJDNtbS!bm)sYQzS5bh_hq&>gBpJ9>d*!$wvuHWTWL7wE^quY$9=X8|LP zL^foL7a~Xht0mZWAJ!IVPgn{n5Mz!ey|hy#H4<@(gSuCZa7miLw0;%8eFRN(Y#eA; z1*w!mzs6e+9NI;K_12~X;Kmk!4%y+`^)H-^lB0h!CtO8|$0aE=&w-qP+>y7c?s7)jZrD#_@xX$-iTk!H3p&1**BVGX{R}o<}HESh3z72h08);Y+ zPm}Ng8#TY`klr##r1}jZO_2%70`pH+cNt@V#gzcJpnP%KxBCKasoW~I89CByun0xn zH*e=oN%B-0Sm&iOk9hoju04of2@Q&0z-?hZ?;BOzb)?pq6`f2Sp2CngHMrO zMVw!T-c1QEVM}$n?GdCxzw+=_0 zo=7bE6%jNRbUI6cPkikwPq6ff%U9q5$l7k4l@gBD<~5l&WZywM#@V=q4I zKgM&NGM?(f zVPz>{>pC)p$vLrI5oA_ah$5^Qvpde9c~JF3&I&o7xhCoFlb4AiMkaD* z7orHUvYzmBUXJveiqv}elP*qBua&^>djq6u%b1|;wQW6$-)btQojDA5#M%_} z3-0qz@DWB@x5M+dI{7U;rZFh2W_Y=lY(g^Mw-I(;K394-ar`P8DYIS)(RqA26*Y>) zR-={KZ|t}RWLO@ichwXIP#qScOD_^y2QizK=j0eDS2O?+m59o7AMqkqh@xM%dMz%4 zzW@4db4M?0SSq_`*n2LWjfZx3rH$p_kEMm%7tFS!f<#0TO%*M{%IO}ueALL*l+^cL zFkP~aRAl`mrQ*hTQVsO48t7mn+&jj^-B)RMteJ>$-*hLHS6EPVuiegua|UDbS&{+q z3mdeL{}nt3hzj35V8imV?lDej_v*J9xoHQ(<0LY6zs1F{SeoBq%jt-hwRk08t-IFb z&q{mvGKib^QK|D#nN8C;JJa2fhJZLGt@bpVq!sH7yJmLShF)D}8bG-C;9hZzwZ>Kl zJgG_isTFg=kG3jvtw#DhE3Q#JKk^;d0HAk)8S7=f*o}*maL2oFe9IIngOD-q7^Na= zgT2OM*%Qd{Qqb4K?X0<6UlyPahcgUDpzDr_jWH*?NWX8=wc9BbS$t%OFG#gl<9qrV zf+j7Ajh?MfBbI)i$?f1+<%0?g#LHaxgAE0+Ac0r=K8SW;)VGmCsn(M>VxHn}@)ZSET^@rW2VA;Lq_ms9ySfA6p>x8% zwb~wPw=NJUl?<6#cCozc*Y#k8SJDkNYY!iT)yC+=C?_P9_Mxu_Zb;vNC^D$ocN&%= z7?xT49$+0Mc*9}KvrR5aB_5tdMzr#_G1Wsi;VrTa@J@<7njUnsKw@xV1$ykiPCEaNJ+PD5nj4>ycvKyyl<*a@CxU$MKP@LvGHoC zt;n)gD3ySMYt7@7_(@U-SF5li{l}w3cZ*+O%#Mv$mpb9g&LWrlXpJTI7%<+W3af}j zOZmr#HGx)Haa{K_$SCkB(Sx*-F&nFM-c*6DH2w7BxRdFis1XGg3rC`{^{D@={8Q6z zbEwWAe;FJh6+&GABm6-pSYu9QnM^k|41kU@Z>>y|1IQva*>4-2D4D4s+l+)_<0Yt) z)4eLN2Ky?^?dx-esc9O6*#ygry5SNA`do+^T^{-4Uc0DVKAzyog5!>Eo~mw#<~e&& zD{o1l6H{yG(AUgCgV7Xb5SaS*V$d%{I(LVfD96qrmuyy2OjXxjUwg@)a#rq7da~D! zypCJhB3PHRr!`F{%bTu`Kegbrcl<0c8&=_B*}@CgaK&W?Bp(43NjFQ(TO+k%Iq|Kt zdufURb?#LJKhp|vbN1sgZb_q4gq@wxx6ArhEvj?;vFRO5O_M^EJ3Pje&kC)g)dGbK zB^=Mqj}vEc5_}>U(9jhztG!iNQRi3AGewdKT zu62Zx*7A=ss2!2qb;`Rx{0FRfNL=ck_T8h>yM-d&EA|(OIsZ|lTO?42Rc^d|KFvK^ z(>oY9(M`DH}RhOHVALj}2k``wKkmn6)|YM~mT^OKMLlBMdN8NNf;_HPA>U4|xJA`;Pc{5Vve_=E)?J~@_rCJa z46i2#GQ>18C4JhGEJ!c;NctIa$VyLKi(hMe-E=b?F8GPgdh7qR((-qswHIbnA;h+G z8-`k@M^{FtT@x*`Mc=-BCe{G}fDSX4PD13#P)ctuAPZa_8dcYQFD`nV>0WWgc;7e> zjFj(|se8}45zl%1wE?;{{;5uy-oDio_QtE0zq3rmWF4ltd6LHx^(9Go@gw^Z0ozQh zREZ4)bAxeC(9?#1CBAA~fP0n8shmb5qe@>ig#4VSq=jGr5lVi+?4t66&M19Ol`@-E zKhPgI{(+6ZG91L5m}x5`JJC7!*4-gX#%$A8AdkplLEiMy;>^}olpNZm68>?cb?T!Lg@>1 zf1#wZv#r4kl;T$qAnosDHipqB3Zn!>3LieM>`z2_kzj?T$hOVn!F|Pt943gZO3g{T zUUkPrRZCVXlIgZOrv(T#B--xIP61|+wcfay1_XBD=ZuRYUOE(TaU1b8&?%yGu zr^IuX%VnX4Txc%@Xkii>28sWh3vxqueX~-63ZwSw;)L)6RUi<_t`YOj?J_B!a}o$9 z`CMSKIc5BVk9l#t1yFgSMRh#vUJ8VKvk_ z78iR3E5db`79=dUTxIgY84ir758I_nuSV>2$mVB9s#l8Jf zJ}6$ZZcaub~lHZ*GoypJDb#_#Hov(Sp_}s%$ zjh5hmZa#mMv=lk{sFuhKZ!)+#S(?hv8H*fr3T5LTUmHP%PF2iTeaO|OdAbY({cQZq z$6>AzN*n^G&U%t1AS>9g?}@yUh(n-aJOfjNR!mD@Q;$Xl7c5>1PSgZ|pI!y`*FkWF zGj5-ZaHm)y#-sG{ttPS_k|Ddj&xMNr$5UCG;AqMpDO%cvN#Q|Oeuzf7Sr&H}0=I>2 z?)Ez$Nr(#^W{hK-Q1yp{=ZGAA0A;WxS;(Rd<#4x>Kv>PSW9yCLQHV~!>Sl-+a0OV7 zQJ(=QL`(fi*9i}tsdy7K3b~Q>_-@h&>bO`sBqz_~-f+dQ>`8M_5sz6E=dZNH2cd2v z>k`v|`W74_Ttd$3`&SJR=>)}T3{2@CPy}};Gv7mZ8-5y&5RJp(^h4%oI+8cYri;6t zb5oC}XUbeMulE9j>a>!J-5QlV@H)Masaqj}xAlEGjAA@?v^lG^GY_AY5PySm;tAaO z*p7#czq<9MJiP~qtfX9!iE!V2Omv}lMx*XF*o<+hkHB~d#YNX8ZM%6ompwoniTd0o5?H*P+>7m(OFuVmtlo%Mv(kQ6m|IxXfp}I>Z?wR zBBPPV0fah9!YeV;tV?_U3^PI*J6!@q@%4GHoN5lqvxwl7w1fc16nMoDHC*3zJGR-L zC;$x_i3+*txZsERe&{G^b|_ZII)A;fHz)61Ze>`BA3$r=J4EeN)`&m z2(712yj@_EpVJhXxMn8U5}`+-B!}q@T-`w7+xyq~cK--mrr&;{&`Df8p1M3(Xnd(1 zBg{bR#u>o4d(!KuWGw||e?r7?dTU6TEAWX&e%KQiaB3ZkAEe#h?B(Fy@;JeC+{r=9 znY&jxLpljTKaZ9J%O9Si?{(TgulMNP8>7zN6QSwTM8GSbV3%eX?%@ar2e>IQy6Brk z(4Ujl(#w;GIbEYiB%_bb9>lXEuVXvswt=*`9JSZNEq#clfPe%5{kPmveNDk~QrS`tE%BQ#kw0~KE> zP2GlNsxz>L#?fuyLF-thL5+!#8}*f zTPwYb{6jHJcALjpb4vuVHEK{g2(l*{?4ttry3Y%&a)UR=!-;{b(t~#zVV|D^Mnf%pOVT$iEdRi7P{} z>5Wv#(Zh*bn#>cedxIfCuK7XN0LGJ~S+u`4K9lPhwacC06~A!#NEiDIJ76)z)#RVe zgsoGSXO7iutkYmkoNp9#m+|Fdoe~Mc3>qzv#+9zUh2br;TRqopAXc`NtC+ouE5NQ1 z{Uj^F$RsU{G#*Juv@P;Fn*L!@&SUqJAP3AU))A-my>)~{t?Mcn|F!@bCyISPthOr> zxxr3Sz&)(k!@o$W50+W7W-b~!_&Yzqrl5$H;b=xEZKYS5Q>c&og&+&|1-XVO&4{ax zC~DoX$DCPAeB1iM$N6qJIVaSC0{H8V5Q=)B(YQIi*<4qvwSD2!uA;ZAL&N3kMN*;Y zN{)?2yevOfjvUz%R*&*66<&CooKo8kUJwudXWXkyftwKqK7^3KrPqH5)QdKl-wP;u zk@53nPvH9C?wKx>`~t;xH7IeepM6++wRZW*Sg`I7*h5YTVAk{MYULPEAy&MYkd{YN z*?|Lh&(eI$M{%cLA|F=DWu(hKVZ=%e6VO`=AaI7TmwT!=TmHgV3_CfWh^MgWys{H< zv}W}y?MN(RI)nPQrndj)p~UX@3i^$bDf#05oZD5B{i_7e-SpjXuZ6ON$km3yUl0Vc z_pL1-)z%Vg-yX|hiaKfs&MTn|%b9rVUdhaVSDa_X{Fb!=1U;(-rrqp?uRkcLwMof0 zl{|b*YCZa{`#eI22WtZ>bQ%sSsytpe^N?0&KYE@<3cOWz!2gW6$Jd3Bm)c zRPZFbVn7#~&=0S5&R651ZqoMEePs^-BU{OI-1=rV^R3g9o&uR}H=4Q3Ynl(fc?S4` zY9x@B7ij^cK)N)wawy-lKdw|V+e}@*`QxrT@dQGMsz?;VJJW{PMH2$UJ+z!*B4Gsk zHj`_9dOYfm?ByV3(m%#1lm3lEg{F%*i7^iFq}0%xpV1y>%tc4 zvej)axY7w~r(IJkoy4Z#-0U7s3CHDC{Tl0e%Sh6uPG2yiOir-l-#lr#Gen8%9iNa| zJ?MzvZXLBWj>WJ<$p*pYNp|yzkZcMnXpW7kzm+c)ct9( zCgJWS+?8m((ds7Aa$nKsiTBY9KxQI}Mnc2J%J{7HjM{E105FLWZ#S&eQphWffKxSN zfV>=c!7~SPKiT^?uot1+wi!@15dRLpSehF>;JZlx7V2KhR@@lL?#h};$J{w#>}y-s z+F!_VsZ5vEez9o}sEXW%eVxYVtki-{`VHic!#QAW*70fBa*BtnK1I7YuKS+8G1hq$ zzmtToZ*IjrxMy%F()e($S}n?E3f&^94f*B=j!p;NNlWJx<4Oh!eEBSfx>_ZlkrATj z3eh+ljWLdhG)%kASOa6nw0SR@iV>>;P;qY&!)^-G)hI$w@VE7a=HGPHdQ$M$GUf+e z8VU;<4PLd{=dTRB(!FO;&|L3Tz+o5K$^nMSj_mtH3|9kREd>{tNOB0~(wFx>iOh*aa2D)Se|M z{FEYK({>X+RoFq~^;+3HXYBK}Tp_DMW75l(_LxEBo~QT=XJb&m-{mh&eJ|E}?+M%# z2x;L?BSxZgBNoYk4N!6BYzuz1v_`&@9`p+-ejzhcbHiu8^!5T0KUvXQkOOV?O2LtV zz9C5}$-}4$zXwF|Ni(BF2|WV>KEt?fQmCXS%hdA!Lh8xqHjpOJtILfBJ|pq(mLnm5Y^%!KOSJ3-91j}K|i)ef9NhU zK-wvU_3pMn{}%u_K*zshbFMk*xS9#XS}`U`O9J5H!&R=*-Z&nNNPSUs(%*HYfP5s4 zY-75JxdZtzNRb8@mJw)&J|R2CcZ*c7H~k%oHgVvZRzj?uoRXiRl--a6BylNsl8ZIjH;9kUbn-0!R7IQI!5PoBQVoW!TmTpBs@R&5n2a z1o_|MgAqm1!Y_n~s!t3bo@(;wW8CH`$w8!vKE z)E;6ePiGf^!9+Sdq7E+-`?qeFY{C5g>H6htJ;?SbzZ_!bbkV4yQeD&Qrkc*fNo@?y zAyw9^hfN@5_{~*qJvwOuZ4AU4LU!hEKI>~h1g&^KYvf{c!vvy8!>$qH*dl+&_K)DD z`Aoq$px=%;y<*~S4e0OGfeV86zq)MZ4CQd!1R0F$6U<=TI?iIc%WF3Vw{!blA^Ysg zHTPps^&qESe;9B?MjnOr9|Ko|hhrR*+l@6JW!+&Z(sF6#AT zNd|D@7NCK-KYjy6solAB0`gDp`eZt2puW2_L65{}*w*vGD1TVjDph zG%b&s^C*x4ZEB1LSbLgZ^{faNi<4&FSy-Qfct?z^tVY+au!*ox5cQ|w;Lo{~icXayY6rta=Ur ze8u%=CZa~!9yH?&j0u3}#G(s0B}C7JBDm(5`Yn{oGZ4NSDV>wtleKP0&e}m=z*c{! z%3gB!(|^eb0VPvUT?KYMd3GZl`0-_c#YCxcf13S!;Ru1M z$|4|1tD}u-o|UI>!7SI17}Z}?hR?Sn8VzjF`tdti&_luXcJU9lx+ou4dm!VWCoY-; zKAqirPmvQ!Q}Rs53zQC74IJx5{IOYXqh+`XiNhrj#H7Oe+;Ndjq|$STHiG>)`@D#& zf%KIodVi;L@w)RlpNWHIDjW%cB&_1g;u+^q;j+m|Tx4;CLYV`hck~(Sr!-|Yd&6?U z`RgMe0~){c86Pur^)8iuuJf_r&(}S-P_a#qOB-v;u2Xuhb(Gm1x@D#;Yw0)Yo+%kq zCNvvJ@rWf4QcEaubNx{dy^G$S3Xh^YG_qSG5Z!Qhi0R02Ajp|5wSss{VCXe!OP&9I zg-QFu<|3Ty<@|<>tJ51!iqnZD#&BE9RfRO>_{Dy>7rIc(_ z`uu28Ry`iYN6>{psVSHIHt>YU$gkh~y>T~rvCT$H*vfbWt2W&AoU=+Dn9EvJn724F znDqvBETh0(gj7LR70AJ36ct;LXuRbP?tL#^7;tP?T~oF=%VO?9{D@6)xmVj^@Z%Jf zx?Vr7O|3&2v+gPzdJQHY>^G;(!n&B8stq?pKvvEU&msU|-H%$+Prq+2T5GJWE~IAX z0Bo372rmj@XrVdNl)2OUH!4g-e8!|0VLyf&cw4j4-gGAxWZ$w5H|5PXYmZ9@JqX47 zteB)G!}FRLJnvUgP_u2m)dU3~Z&Xwuza=s+i61q<%PbOn`nEP<0EQzn56!aB7O>Y} zSs2lwGS`T1xwFB+WgxmInc>cL`&UUsp~D`fF2P{w#0>{Esic?go$_!NbvZh3*z#i? zt_m(dx8SJH?)t+I%}Tc`u((lpc@iRt9lm^y?Xr(aTw#jMPP=}b-iPJaFNF8KF|73! zy#EFNKv$Y`@n1^j={OC?eCVwVfsYO4{YM$Z{ud!NBBkonbF&SwhYJiM9w-v6(;ta! z>RgxJ?cWx2E=4<#Q>l>=Q~4olPH(6qeJ6ySu21aCLqYt2OkW005ipR)Y&;kbVXo6Q z@cd6ZI`XmH^O<|=SU{vif5#NJgN$Y+wrV(7yt4Te#cXzvvjZ<@$1-HYBF2a!{5;%g z$yxQMr*0Oy3;W;cdRe^W{HL_j?dOx`ii$3jMO@MK#ep=2VUFK0xJx0p`f#kN+Bl5Z z(d(yLkxaj5BBy;?QlWSnDFpobLB4d**8XhL)B28&^W2gJ2&Kb2yB~i1tWa(~>}>F? z?ro<-^j|=4Y64)SJ(M{z=-;HWViVJKgjGQi%}_uM*RT5&b8dx{YFh{S{O!!a`jL{W zeLOM|efFEG4Ioh-j9hxznAu)^@z8zem=&^#tCm%3N2cXga-AIPyotp~2kb>mLJ}1a zS)r=`4IdyASO6WC(Fy9_l3@%ZyT)ZG(}vd+KcmifBKA~P(HU1d!d9-bX(1lCPnORz z*LhwGg>n!kfzbHCi)-rTczVYn zZt2-)<5*FjV^j5gnua=A{x|GgalpAFnN{u^9e+y?+S6#r(Q{ zPH$|rEv(KJpnR;hIHT2h;Ho|gr#?agaELM`aW76glLe5%ETKbIiq$Br-hnDKEbwIMq|(pK=>%BCDLR5C)8^uWH`O{wE}bq`bjo;O_3J* zl@ChFweb)2ulm^XVQ)(*U1FjD-Yi`DLwTe|?SL!!nAOOef3*HiU4nm!mnh+;i1hFm zpdQ?nFar9i*#uD5m>!>Zs618?ki)^@Czxrsv<<%#$>-v`Kv2pom~ZbOh+>?ct4Uct zhJ4shq8lgz`54O18Q=tFbjEaik?^4-LxTK&36}O!5Kv0KfA3CE+t_$Lp-fXOVHpvN z>a#5^`eH%-JSjhqqii+8hOd7oHKWHheuS17HqziRj)L=Exq5dxjy4(AjzmpN;#yJ zLcA5(I`w$M0Q0$iF%)?T?KR95`Q$;@8hA+J_-o-+a~bM|`0ZOdnnKimseOp{asyj# z8YNM9g_Vt*PvZ~TxUXyAgz~}<_0xWobfUi~Xa2L(Svr^P#-YH}0KDC_&AnVAAv>KZ zW0z)dtqbbm05sP9RgG%PwX3j4kH%xXH+5xf*8f&LgV5)V>f~<&Smp63-vgV*;wG{u z?Xi%09t*Y)(uWKquhWKLx2wzc+?#usF-B1AmRw6UrN{* zkC84zG)M~Z^o)0p6v~e8Xt(?v`Hr3kn10+71izlb%7a`56e8&V5HVg+xA`8*Q(esg z)DCQ#^wI0x2w9WGLx2z8ZPU42(qi6x| zpgc8(#~&8sDPjl`mtqBI2;>cpfttzRV0>NW1(Pk@=e{Y0Rao_b&$!kG*$$G3N%lOx zjQAfub9^-Ar+eHSm`*=VSz{E?LK5f(zd=Y?)NjYg3f{T>{%n#=^w@1ND!sHSr|-gU zf|kpW_K`E?aN)b#lmzA}=__f8eu}Nzn zC&&UBSiw8(TABp+Wr}}=7Wcl=UrB6L>52>}K9^Lu!77xGC3zkXIhu(bivs=(vB-iI zZp2v6miXiAwq(AY)T{mXq@D?SD5U<{`$0Hj!~+OE)j#a~bq3arJJ+Po&S=$5sy6g^ z)C${^Ke7ED17t?E{?q7z*pPoU!2Lcb(M!wzCYc_VeKrtVT5iHkU+zYJvzyYBM|?GP zn0m^_%k!=YGN}qU{DWAj0Rm|HY68s-f?Rna&MS!SI(^u?MXB{OkVWOpjpLtkoE|XP zEbl2)C9s9QvDE@M>#wm(g24b1w%8Q`7(b8h>18Mo@pS7c+CbYnFCZLBXu^p;)2nl@ ztC997hK%XDpsiQWeFy%RF##&@;Rj19mQ{8j)So`2kw3q`#09dcygL{QFaC|M{3%MH zIqPswXZRfD^sw^shH{XzlV^wFU1yP}vRVke7f7M&+k+bDpW16VKbarz6#o!7%&*wT zkZa9}3M6jV+wicdqxd1vgP*o(cGTHm=?&(JRM6aCN3N475Yn7-QT#7qZ2sq7c-25j zO@x$;-mV|At?UhgWWZD_;h^x@*Ydd%^iB{MMy|;XG0dtnS=d-3?0I775El2k1M5@x zLGO{ahJp8iov6)b-e^jBF|!ksBE2mvg+N%w)l+VsbAwck)~ zoyt#%TKMjf_l-<9fBGt@`trM{ehST{-Eia-*fFVF;+qE{TLy+T@8U14>cr?o{Y;)> zk*D%w1K_D5OZy*%+#4pY#-IfD^g6^j{fSk$VGF(g2t9=bjTZPao4ac##lIlqZ|wR>m7w-)%CCje)`aQ{Ti{i1C!=_gmADhx1A z=cDdBy`Bz@y_V3#7Y42#UgRLAV>w(7eY~(oF#PfOqo&jBgwAWyVI#Tk#5EqKP_SSt z7EWK0f%Mpbh~~np46MwHy=u~5lI{OU!|e{bV2SInC^8$b-M^M>RJ?Sp$If@oiXUqv zFg{-y=qh*C>t(QPk?3uf#0ewHUKt#SEhKoNl%DTlt8V-SZ*K5{${qs2^M2=9=BIQY ziT#`xaq?p zFEZqTmS9b?Wa`VzzWcX~oJ9(zwrX%QqAF<38-wdIev?md@0OEbCeeD8Ma50pM^sipf6d!l2rb< z6(4;It35p#DhO*@U4b1)_YT&qTwnixnD!BHV;F^%#RUz0065MQ@+O}TYqV0}c@Eec zttynIBUI`_SsYFgu;r|HJhEf!w0-x5H#de#+vEYPVVQVG-CJI3J*N}CdZ;C8;_B{E z^Qay<7NHFa34j0q2nOd|N)Z?d&bL&G1{wV}hM-#!i)}$4`kiSs z^FycGV?fRNU-Xv*^Dr0ZyjaPs#vo%1T+Zp5Tf|g6vafsq>5u#+U(V2`K2Wpmz*A>} zfB*nhX?U&7nVtAiA}cnv`ec--Q2pGyB!gd4NRGNHXpg=$=vOu9^!VU7L+W#3(}E0p zw~e;O`_w`Wbbx)#MhCkO-sDiP&#fRgH$foWVa#uW6tORBxtRg&+8PigL9n?+5JcHYaX5waOwyM|g_szX24JwtBSajS5dBF)bF* z{A@Xc*vTO6wOy#JTPv`gRCNZT{f~!*osKH0>euDxl$P%B7g^}>C~RTwW3pAd3D$Lw zn`)jaZ5vGXTTS7Z4!H7%!N0ntp)Moc)H^W}7 zdd2?-s)jGO)N=cMBEN^SFYxv5$ME$bzTZe|?ezox9;P7cO#EA}Ud?Sp(m~VuOMeyo z6k@-sjqq?JnSDEpWivfw$9*^b)29<}%s!8&?bGTqD$+swcC~AA0v_fiAd(4nwT;$$ z$i;VMv-`o;yEWmI)d4N~RLnSGJmWKDJGw+>Y?tnl!}tW63Q}%{oFF={ax6W4Z(#lybxX< zCM@8uY4bL`-p~WRN4b1!{(fCQRLG#B#LdFNkH#w1lBg2TAn^IBI$=p1V8{>rBg<`` z3l-)&C*M|!#B^03s?eIV)iV@^+V!A(3zDnu0Ez-P>lyIw!lumH?i-pD zYb)>nb>cFZF?_C+f*UB3ZfrJN5XIkXt8esi;PTOYH*J z(-I~zV1>SC0Wx*`m0}v5~(x6EF)dtcjB?*!(KqMr7cVNoQio;aePMGkyT04KfrYC!y4KqazSK}`O zY*f?e;vxVGPl>s;<=8V#m>7b6!6La6F9yn^D>#{q^sUo zqdvSJiO;V=XDm;whhg1_)F<@khkS=2G#bLJvjFX$6?qr?H?nE^Ebtbrs=OcA?=>xc z^(!LonJyLszbbomYHN^Uci}9KB<-xibX5)C|rjH@Fb#g>bbSGm<;o^OUD+0+?s<7!M93EXCJ z?8r`zIF;{9Pir2rb(V{_S|IXrxdY)4*_MfxakhpqU%_I+S=ltf!X>LJLi^srs?|Ya z6FZl}cpk$UV4FXMRTSd6P5~W;9vpzA*HtnV;pIQHo1E(O_I{wYS;sbs_k`WxelYcpP9SyxS3)-`CQCsREh^V_xlnywd()(_U3yPGyr9w6Y<0&n#RLzX zrZo(S2-fpDVSeTco!qCp*ahmqeHbeZd+_Bv5(mJ!!=rw_jDN;apR?|yCZ-MoNk$)d zmRsf58+`dr4~`ugF?q@)CTTkIBK?^;=z(cCpK`~Zp&4<>tP3b7neM%2ZN;RZ*8A6_ zAz59<6}|c0l-zSv@-gldb>|#sC=Vu#XsF4T%zcMqKhdC19u^OeJgE6*8&1HkVvPv0$XU!K>Za^7%g$r=|b@xWpiqG!9 z@`;zyw&(2FaSyA8ryADM5!wj>l_L|5`jJ30IfB(Ufw8@DQlJWjQ)kvCOX@l?w$Yd6 zLd&aQM?9W!Z#|L5Q_5}4TlF;t^$?UMqHb94m)PM(g9xwDQMvHz%1lYAq!n(`hpgX| z+-WuUcn+3AmMHU;k6&`bh`t`J4%)0Jpi^4YO_+olDu{~nN(rMCbdK;uqs4fr$;7Jp zP@WCAauW8iZ@&Ia(2o7B5Y$mxtp%G6*2{tmvXZL;iX&jgjYpB6zwF(T&33W#b$k0k zwVJ19HrBB-6SN%84Lru+nNyVY?yui~i?yMZ^+NsDrv-zsQv~->yx%Vl>~_bhbAdPB zjCt(>Vy~d=hM*4nvibuQ`?~{z%?RbI1Sry zqCXG;$Y!Mp0$LmpVMi&92pB;sK<&n5g2Z?X+LZaFc=r+2K>IZFp)Hw`rwW7G%^dKe zda`e_vA6wII1dVnB_Ao-M*u+grA6sUvp zfNygFbLIqVE*`rAoBq(H&!(H*@ zy~ZAo5lDWYtE9UL+*~iS!b8-qC5s#hN(+CdhIqv;N{||iBY$d`^m;{Vx$LqabjGcy zpOCFgrt%50{$y;?z8NwoV=fukyuvPcsss3-&i?s&wq<(P#7dt}~l( z&)%zD4aioQOy`IKbR(W|2_#2#yqi~Tf;=lZVDXSlFw)DGVB0;+RYjPx^ji<^SeC|2 zNVl7L&G-}a#1%cArMH2IY_vmEE-yO>$fS@_U#A_~!tW>CDsRgD;8I@}dIjtyu43h# zk3?CXbxbaB+pm@Jfe7}9H#mOusR-^IhO3d(V@y<65U6(`VZfB$=0v$cbTRlPp#g_RcK;6>4v;0WwtWxLqE{>7zgtBgI@yosXm zfy?^1Kwnj@>0=t3T3}6Al6$mLncc5=CEe8>F05~L>|m1%=T1`5$fKi6bBKR`#L+tX2+>^1Yb-pV{kJbcZ!_!1E2zR-s7v=vl{3_k0J2RnvSU#%MKPLC7}Hj z+>$xd99j5Q%4o71{ly9%MF!YPYNbk)b_mS>UIoaxPM`f^V0*uQ5Ktg(eXt6AO2U0e z*^rV5CV(!4z3?mqU>AM5+^2)S?+s2?D8&xOGQeb5!y^hlY+5XE{2VR=3e$GsLS*Ro1leDsL7?VS9 zB^OIBOvl{HD5=d)hBP@SH8)9>wd zI`h`69Dv~VhSa$m`oP^(>+AeYKuv`CSbYUoOi$-z!A=sYg`%-AO-K=sLlf=0DcEu~ zAO9zDy$JG7?9}Kb}jQ3iMVVUNw21w>l=SNBgCy(C0-P zu?%69z0X{f4HJ&NJZa3jK!;J}hWk*#O#r9XvL02J#4+~R$w?Q@H)=XJSnK(cVT4Go z6+FxP{}|L{z*n!*AJio!EFYVT2kkl>WF@~>J7IB~idsNsOn}!IYdalhhA9j^3U&$H z7U}QmTy#2>RN?RRd(ijF=$Nfw`sRG>1Wk4BTL4D`qm6O!%GNnjOXF~KboY|5eNYY{ zTz<|2f`7^XaMpNHpO^^}xfhWW5=O|mfOQ>%#s@@n;&37q*MghbN)d7s#Ys3QQdq5{ zq%d+a%pw5ABzJoW5{mv?^+zTeP}-P=OKQjLYs%SFumBWQ6i_!Xto;p?xxDNaH49hE zQP${*I^vruP%G1xTw{v`Pu7v%%o*Q7twm*}x?M32#L(Uta0P&;eTSE?T|gpCw!u+=g<%?UnND!gPAI-Tshivg9HfHTc)aREl7gpc>a`?0He$ zPf9h=G`nR~(8vN_BeJa>XV)lbspct2`H>Aqn@hwZ7*i|lA-8FJtl(R~3yfSYdj+;? zCnCHb1MTTB6}9(5kI2=2`I>le{Sj1lZ8h}DBZC}?mDednv#S%@_OKpvji%^bcN~L( z?+$T0fsaufJ#=gcz^-?`=|Z_xfQLB-ndAnTx8!-j|9{fo+bA*y-yw}LJl@_lxVUQ( z0-i`HF9Ht$Xn0oEqbT^$Nv#q{J%N1uDsJ3CXCt=-rpz)WG)%=^>mk}3Z02xyt_DX2|+7?oM3WNroG)i z{VJVS))${?GKPSVv-X*@r`?>dzuq^4tmtOt-d-~2)T$`nT6x~d3H|)sp5tpz@VBe{Av*YU ziC=6KYMp(<9h2EBaNfNdV}JcTByAEY zOQhwpu<2^M=%K)e>%+1nboAmfZuG;HH^6c-t!Mt9wwD4k5^OAgKhss zF^bEa;cL&;@>UW{{C$I%}JZhHq1VX#EIP%{O4?px{+7_N)EkXJWEk7?qx~Ru-9cE#NwCJ;wZkdyJGeNU zGsN|J3PDyiTC<5jVDwSAOQDkqb-T*k;Hdns$S(ma*bjI9zvm)|bK{Na!!I=@nN zjwMF1@hUqwvI{4HH>oEbs&zpU@hv%Lp;2-{Vt_9p z07WYR(Xplwf5ifD70LP5-pPZ%J5^)yfzs0^$~LM?{9VWLQ>^ZZy6}g+S*Lr#qot!s z5k`EGJ*^{2&W2f^h}0_D=y0S7AOq0&D;Fq<{Oz9xb#vi=MVni`8om3hHZ6os@n(EK=)liATEe%&s9A2^E>KM(xlKF z-~BIel4~F4$=0??+?A^dyCx9kPBA*Sy7{xIyDuJvOGGfGFOi;E7A{VP0gK(-349s< zb2BjR{m`M;3*$3r0c8SFHMmfsmyU66*nib{_UBY({uSBVSiHkxN3=N(g=cGxn`e~! zj!WjjtT3O!jgB2zyPT~}IwKbEL;&k!{R-Yf0^A8Yz?MJrTw{|R4Ds9k{( zbE7}! z3<+C?lf)4pwaeSx!nf7%CmD86pfwI2scBcvQ@}NwY%hVhM~tM!1i-{3kR<|PGHgLb z!u$)wpPWGHUcc`xq$N&k1TSIpFJZlnD?zDKls8TY^!%#)g)Aztn@^E3VF(S;?K!$# z+iYcylO%igKUR-Mj>F{$Ijq&Q;Qs#{MSvYu+@p=$8GtPs1DJ#Q;_jPXmfm^oGVjED zx@S>>QXd~?CosN!OpQbi%Z#0z#8iEW&VYcm@ zZsnhAir({Ax`55#Po`sA`+-$;Oi5G!afM2ApBOH>AYQG_g&>tIsM^d<6&^igb6#Pd z|4$tci#v%LdCcXO2XAQ?lo$;d4Sm zyLZq(I5zyzS+|pU0orMl{b;rc;Cx-%vcswzjwhjLIS$}GkG?IWb0n}A#|kK&OQ&4E zS+(@qyHl=(|F&4C3usUBqI0@2LQerS1_%(J+&mXSbAhZCu$<;wD)go z>b|k%QVvC`dbxWD9D#DcH<2>Yy;@Qx$BqF92ml|Ytb_H4Vk+d`hGUxYvpf;kgkSaD0PGK7Vc1FU=DfO#?@RJLqdQdKs{9E6jxL3;d zrlVPJBVC;jbG;jTwjsc89V`3~USd-lhSJB|%LHsS6kSl7|+*Y!Spjn?cr+ zh=5&(N<1YJhvgb1W+Cl^uTy(A*Kg_-_;u4lNXg;0KHI?j0e2z3Y(#p@?f2;kKgpwH zA0orqWC1La1Eb()qB3xZFYFLc=)kcC*z&>Ju?YpmqJJug2jz86FEZlWY+(}k@*6Ao zjjNc8y*XUxI>R);l}y4+M0~B$c_b#CXh?22yvB988ntXB%pM;e_x@F)x?TTs_hmH> z9Db7ZDrttF<62MXDbwM}xFOd=_>sCjDV5c>+eQ&I41yoDaFltNLwwdp>Pg<<@U=US zqMt_OB&CMRhhMu?PVq-vSrwtR9|AxMgi1KT5)5n#M)=hw&L9%FzWtZvM~XE&?FKRVnWc+4J9tu+>xwV?(K#&;YrErX8$5w`Q)%n2j3spl&|fkr*8-)2q{5J z2`|GyM{f6jEP*)4WFvMo);?VQU(0LehSI`pfnVQyT9Kd&0PSSByc5oY<&vHUN*PM9 z=a5ycf?T1QN9}3S7b#O5mB7Q90}{4hG|EJNx0NUZIZIswrhn(?;9J0}RR*Z)-8EWf znFs*Jl9wr@bX8@Zf9oqkdM>sUk;2O_iwUq4PIBS?VtG7h(zKd;5m&%L3j9q-|hgpeV_gg2zPspa0x+S`5zu#G^p@<(V+(B-)|}+lfRD{>Fpy0 zMhnt<0GK(Bs@I5Pq|v5)5kHj0A1E9vkP0Gqf_8-bH7WB%`tW#(T9%-ja6uE!r8C>p z@_D7Lfe{W_V#v=hh!(T&fixvGmwcV5w1*ws7m)n@9N%T2YE3+vzTM+@)>Kf&yvE8$ zUEmS$_h*uqv>-_n*KbOs_1_r3r zFi5C1x=HW=0fdBYiw+}&yxQz&AEtwW8wVoV-|Hun3Ig082AKXG1cNo9VH>+}Yp~wH zG;(r)*r}+6^%_J>Cj?bY8&($D(I}^6cve(%ARZ6Om5AJ6cs_T9&cI*PP-rNgLpJ-P z|6&$qVp*6ei)=ENAe!|?Qut}n#0N^$*dVK^y6q7>i<}1|>ckXJ=2G9h3l|`VSZ@;m zhJB4^z3EM7{cWU+qOw|c%&DPhy!cpA%3k$5LXVq*rK0{b*)a)yF!+lA?2%T~7m~?y zd&5sG-FA6f>Y?xHH?Ej z^o1gW5a$17FWi6v!{TfBPg>I)t_0a1{yBKZn}Xf`Dr042Wv{bT)eAzZLpJM=+Id$z zOyLQ(K^r~7LZq4nm5>Zg`ROOyIV!7g>j88IVzqpe0; z*Ypz{@T%k3W-KlSX286}4}(_jf38lom(>$-EVkg`PYM=YG7({qI!K;KfDB6ta&;-L zUCf*3qjNR|e{QS;`w$EyBu#g{m5IixaZcLW;shK8l_CZVNTf3lr$t;do5on#N+y7- zDA%tINaplzhO}drx#QpOt5S!GCkm&|Z=M>WgD&07_bZ|6RJ5^GzGwIujUPuZ2h6Ym z(;$EQ?+JNtbnMn+PeUib$YgiI5C1hw??MeuNi)Dl+3Ze}svyFYo}+=|&a#WBx!&6+3K!>Pm{FWgGoK}hXh!Sod}G&4oU{Y3k|T|`f~QcC zNwSK|6%RA0Uai?TR$NRR@-aX#1}V)Dia3hxz0oERPD-mD77M&CEXZcVn~zGUHDd!N zV)h7>GW8_?eCr1=+_MqwNlVxeu@?QSDkNyP^u?CJuU0C3v~iSM7RuN$avQC6K>Lzl zdwKTxxSsOkN!NS$tPBwS{`QINRGI34;0>fpLeijEUu6Z`n0hp*iEz8+dc@ZkF>3QF zt32Y`0qW0{XOIdG$#j7gO%dOcRG@`bn7wVzn`%66Z;J8M$rnUokR#?Wh7uC{Ge{05 z@Eo~3S3yUj?n}!M`uoijZpp<&=h%I;qVxr3YcXsz8w?JDy{!Jk<_Sr2W}uln50)CU zojHoWDnIUUY?$mqqkt;*F7LkS1`#{*{A}?8i|A4e|1Iu07$0QTgTlafQ~pB7SJ-ve z3o|~%hSg`n`?zLugYYY_#3R$OcU`lg@6gr|lNPROlWq{GhlO7bP}#6#ayw%jzR=O$ zR&l`xS%oBk%nBr=E8cjv5{xe7_InnkxSKx*|^_P4!M~`rdPvzM8y;Z(mLzVfViQ+`Z z_YV=QD1N54Ssy!%l6r+8^BVc+GE^Z}bnXNnt`yGu{J`xv0csvNM*L$#fx}*EZ4*kG z@EAx)v*iFd6o1?sGjY?OnKCqJSZe@b zAt8}O*N&mooR;?3jwSal?ySbgfy&{YXn+(M5G>EHoF zNEtirJnXCwL+Jd@?X1nbdoZ$Yd8w$Z8 z1eVT(CmLysy_*HvCY((_Nn`uW((%kqN;4)IUw0x2vi5cRg3t1I_A2im*1* z21GLm`WM)yZq3>A{iW{FXJjTuI2lq>hJsrN1g^p#xG%q=lc*yOrs^c}yWR!thpQc{Iia8I$@&1o^6k*LHKd&H(mQCk!o{Nh};Dp8m<#ta;Qv zawhK#RYH4RD(7?PM!&3bI#*HqUOOD&JVrBg`AgDlWHriIzTsodh|c3?1`WNS$n(@* z9wgW$VvT6f*#26Dqk43L z)L98}726N1Nr82d64(ixW^wuq>yUx_!8ceB`(~Bz_J{;0J&t4f zj^avz8;whxC$Wf`TyFFkojEtG<_w+QG848>=q@Ozv6oOa-9#xS#`?Pp%b)KB6y5@5 zE#0xyw{W&e=OdP8JJit~ie~;b+tjwQ8e4|p7;eK$(WQpTQePohOLusdB7I-Q5xm|z znu`Gz*MZ5ShN* z@lAKY@SCov;gl=I64dvBs9jPYnJ`Dmy?P53ueWJQp=CpMoxVwrhQ1fkz*%Js%m{PPAnE@}gn|96pMz2EXf{xuYN*v= zh(G^*4xo5**x5##89n>8{)cat|2Unbz#GH4OrI%?XP`69!QaFTreNpws@Urq$?2Le zLV$AOfC;Mq5{SxMv5SSM>52FXy9<)%_=`@$>@@ZBvZRGz`0qL}E#4_i+S=8+q6?Yo z<=*IK^tD)3(UQHJ;(Vt0tE@4mdovVrX_4fFQA^v$ZIF5YCP`zss}in9V6tlYBVKBL zsU^zW&dpu@W_Paz>PV}JF;qT>l13AT`%TxQ2~FEfv>q(3X%RBcBd!n*l@qdaI3{l# zz2BZZl1U_zNhFd-iXs%IQ_&pGc87o$4JnZ0jih%(gR%Ip90f z?Of zsfCo3?#YFwf5JPe{AUxNgtPW26^TIn~%0R1_?i6E5^+ zINBK>5~1<)r)DZS!WucepR0^nogB%H7X|3F#j~W@Q4n7UYpt&RVcPQas+2`Tx)dzT zoFn0Pi?BO8)mR2cW7CP zyoBi8Ixgmc46xizkPEHSdKt9xMCG2wXa1KMi`qFod;(D9@p*cP^q@+tb)_`XMA}AO}*iVOap_XYhEF3A= zh}hB367MSq->WYeNj<5@dSQ-)kA4h4g%~HmwD9{D{e2BE>se#=bRy0T5mx;47D|>5 zKE!Hqp#mJqNaKO+%^?taUqjfZ%k4D~1z)HUQ-H(SOMh%Jqc1`zhuf#Sxq6`E?AK2q5jcDE_`kattRYAH^`j zSr$(N);c`}c-q&vmB?3Yi1mR<)Q4a#Ynq`zNwE3V|0!qa9hMN&a>{sb&3+C+^!;Bf z(#wJ_oW3GwWc5eB>hnt6KRsU0-1UQJ%-;4}hSBO02<)#}YbtsWzVb--&p%%K;;)V~ zn}?Y+`1fa@uSJ^?ZOz11Q$VBiGoIWODWK?v4EH-&-a8*QqD?HD8ykYXLa8LM05Jn^ zI9Gf5eA){(4_^2pF5y4kLPg0EGfRuyvXp5Y=Z&FhgEYpeC96upPRCAtjNH7O3LgWT zb4-r#p>Xk|G{+!;Wd4;P2+5!w#X`*X(FmUbmSK{^h6;7s*xA>iRQRU-vYLB}sP^MY zY4qf&b}~tCK~1nx#1_&I1rVA5q|J+n_~e1#(WqCaPVNR)YqSn+_0<{Y0Y!=9CRNQ9u>oSsf6P(+pQRb z3Et;4&c|AvOse4s3wrkiGB zN5c5iFa;2iwwfxG?8d}O(FDKVULfx7Rzz;h&Wb$6XfAhrew876?g*zpMHKsn8y5JsZgqDM+w z$BP{Hr}qM|Ll5ZN#Z%y^)g(*B{%lr@_;W`JSGs3jo}%!=uFHUH)?knN{X5}E<+i42 zC6RxEMMf(tPQ@`RUMJX8`(-n`VZww43}sYE>b6fjU=KKqkf9o;DeU<5sTAy5nUT`Z zD@YK28mj|ya`MJd+dx0^zJd(HS~AAvfriN2WRDdH-^IM3y$yT*RY#IdbLHuDof*wC zM5YGDMI4qoEBM&bK12p=2R#M_NG|d|X($RG$6HeXA|h=!BrtIJ-8Y)Z;u29g zp&ei$1SoZp+d?&44O4{PqTa?IkthRjuVR)~&Py9JWs8Om zrGIy>e_z9<8;sHKv=ATh*xz>{cxdLV&yTe$o~8EVj!k%Rt7ie^rohnpC*r`b0m2QFVPvb#7dKmSAyqW2pAEzm2|N@zE!8?x`~Hpnt2 zSAx$g^n6iKu(=kJ$E2%vMM#3K)w*QH$RToRd0OOvmE^L=1BXiVItdnPD&DH3CNr+d zCw!g4^(G-~a!U4FgtHt4u(!XvOeUxRd{8(LZ+0p?LXbkSH_E^KZa($@OPm-~O|@^K zoUdv*s@n&*5A$Mo!BH=p61=~@Djq!X+AfN)q3kf_`^R+w0p@x&gjm+cnIl(2ymcDD z6-Wp(-gQyGwL>=ew~;J1jVi;|*o{zVGR$Ru@p}z> zI9iEqJRVjr6NU~CUcK|8H#Tbe(JJY*E#R8d@hGjNKM!y^rzv>U1Mg-Pb;vBxw(NV7 zbDhQ-_;vX0>iDu6F;MAgdzdw8fG2`9+s0fdLdouW;jg&L5(}MRRf&9m+ySU3i<<-A zk*Wn>G!%$OC};CBPw_snX~9?9F}BA`GUocdSISkwOiQ))jB`NelH1is5j%xx^gr$O zwrDbPx~&H8(d*=+Qwo#O>P_}B;RCe=_2Nls*CZDC_Lz!H3y*j4tDqP3?Ikuwc*{%D zPQA2IR2?BCa=C|WaR~!vO}RfFITi`H+8A`pb`=m_l#Xl#?qLhK@JE@kO)QApQJul9 z)yAy)WWp%>R;=z@n^urvnN-7-)*&M?t2rN$o;(SMg<*KQsgm9>GSOlH^5hO9&J;k3 z4i_c-==>|_%A0v@xpt_(@E7%&ys7*)u8D`{h zW)~6~=jY5>*~G+skpDY;Y-#|DLqmyE30jK4VKmtvffi^J|`5@ab}Q_11zzy z#R1~84Z$1k6cSI2Wvu#r?1EGMuci!65zp0%;V1t4TTREmONAtDSGfjJ8iVPZKB$&u ze23&^~6zEfT=W8_CQdl2`RcREO8GKcwE>*9#3D@kC^ng~{V7z{81m zZiwTqF?yLRcZ^NHPV)r{yE~7q>P@W~x&BDN6Y+NpVA-A-vz;LVrN)rB!hrkwnK>?C zF+y0L@^5GLoR|k?1mq9tR%?0x6{|svaL$~QGzNO`oLH6+JIIxh*B$&wxAZg$a4twj zH!}^2(4ei=0^sHV6r(L*xRk#{GNZ)Y#F?>HUO^DN48t^DL%QOb0B-is^pAY!78FgV z1=Hqsbf{Be2%bv>vDzz>o1dZZZ3f{Rbkes?Ew zNI$Pv63o5@Vn^8^AiIey*s1i_2PGW|sOGTcI#)62MS+x%vj2boe<&&A&z!p~vx7Ld zvlz@m%vw2aNlS6OIakIW86RqLy!q(E&F|R9}O3vr|%Mh@x9ju|mRBsJj(@ zcBu*3T{M*vpWUI76KEzx7YPQ_GrYWh+SNT9s6!;p2~t|Shaep81c<@x&%FuLuLqA4nld zB7j&zxw9pdbe_p|Bjp4ol=b4pO=MAdor~GOz}b*S2BqwfOs~fFo=yKXzI=9?f>8U* zG++)FNJ8|V2#@%&=f4WPINi2Qbmx0-6&11bx}TVo{=&m5N`N=91;BxA^2)--9a7WZ z+P)Pc9rn z1{l)_W6G~aB#n>|Sfh`8p`8A2*aOc^%vT@l-reE z=cdjYz5cA;q*M^a4{RdVb)17bK+&4ZP7EOG`JS3f!sUcg>eqDnlA|K}jX0210Bi55 zo(j>`1@U8j1{0Xl^tGCYhma#Fwg$6<9blIJ$2LQ0Kpe1#l>dIJ=Q?$V0*V3gjZHz0 z!~IhGYtev9ASDQfE@%!)<^FisKFZ0%_J3?4Y7opbJR%RZc*JNtRQ4;esPPaze(l&( z2YeAO7rA50ZYj}&QxEpd-QgK6i%vI#>W0J zaX*H^Gr{YmFgt1!aEgZOtmGb+!~Y4MpC=Rt;(XE`5HYKv?T%?Tb!e=)249U$Bk|qo zz*vDND*`zD!5DhhT4~c|vhcF9VjQz%6`Hco!*mXSx&BLh1?Y&oHl}$yc^$qcn!Nb+`n2cw!pjF9R8p&Z?RO( zN;Ef$tZ(xx9oVLfCAR~4UXSvozxJ|QP69%4c4gm2SkZ-mMUPs0CYq}cvbqyOq2M{;t!5Z|!X=oGs_4zL; zKsTBt@xru9KRabv$MKBOwH?BigD4KcQVUW(BxQn_MXbL){8!I`=} zETwIEgYjW{KlI2^uOqC|F5AlZT=C&3hxw+TcWCs#QKY9|tw;&geloXVu)XxA*02a1=VembO{KbS@NW5KoWzePMW#@QhT+qc-~bE2nS$$!@YXdryqLG1Xw+ehLH z8xvaKkE1o1z$?{(3!DJ6@7Q@hlmY10-jH`0&P55f#Zmxt(?Yh*MQ*6QD~B~z?&IU)XH$84i6D`O;i2pUyO1qE`Q!Z9 zkY#gL`6WR8VF(OEFAwHkm^wl}&GA-5BpEtF?%2Y$ez@K6o8s_bQAJ2a4I>~|66-r7 zN0V=}gR>#f|5R!sJc)3Af)#QePnhnV>NJCdEzkhxt*WODY}_}s1SXk+C-hy`llG}-F9m|-$v9Ol?ra$Ur#HPu~U{&O{bk$Y)i3IuGt5C8H~#SFMEmJ z6=fqpVP8u=A9sh&lp(1q)Zy6w1@Ygn2{foKtko`8{uQ-vI)WUfWm%+u39av%4Ti92 z6B#PN^=SU^4b-OTja0p<7xI8$FG$AyX_&;manbM7+_*GFEzCpQ2H!G*R=k2HzBG~r zlrI#lT~3={&v3y5?LvnX^s&IE^vV-M?PZf-j#&+<1oJdK;mON7Cdgh&8f*&QB`YM^ zW=U5W4Wce08O4?>?VmG9gfonhsp3kj0h|D5T=vb-GBFH_EY{@L^S00Cv3BKr`nIBc z7*w-9?ueD`TXo9gc@||LYIa-2g)HAd8Y6#4QZm^bP=k||qxSONg2PmCB{J(5NRr*m ztn_RgNmQ&KT!5IZdVfhq!{WU|SC0I^B^kx)<^z>v!Xe6!sn`X01txRw(K4DMtUra< z1w=J9DJi_L>+2_(DPgL$buzzVE`WN^^JHz>y@UT=1fY#&11}^)3yad&FqY&Ex$)=i zpEzsuH`@*ZFv2b+#Rad;mZChX*uvKR&%)7mQbC>$ORW}KuiN`nmw7#luEWA8dX@7` zw}xJ^X}L#26Md_dVouqz^`dAbNSXtp!8lsp0xV)3guh>}DxP)gUzR9kt~WCJY5E3; z@RASPDzO9zhQq4V0(rU?92(mE?0mqryCM1gR*jc+wFZex`USXoRqGboWg2C<3k|@- z68(%)K@es>7#s@V{avd5uDgF%SwE|_tS_sz`|9kk_Vwd^UA*D@d#t{$)Gw>8@7vqx z=$ear#lGA|Bk;=A^wN++IYE51e@b5j(xLYd!l%(WcpXAC76zG@t@1s<%cHu?&?LILDW@1(>F zp8e;o*wVQ&>v&90s+SJAS!b-vFPL1w%RH-4J>SZa@>C!PQSPBmxnEiY1P_MOpXASs z=M>1+X5J)N(E?yUpLYKYR-=xWWa;0zGJF-N&dGx;X}&vzOMEm?%2>#(>3FkS-YEQk zNdVRX>OmAL7bv)#M7-bP?aZ!>HfX;apTu$DcpX1o3r2)U)CjHiU^L|A#ST(hI>TF? zE#kKNxDrohze=G}sBV( zuqO_^$Xy7NG7Mnz?=@Y)NxKYpTlpALS~?7e=@p*5r$J`R2p{EZ)1AOm_Iz(dcXEGr znDOo0r|=+K&Jwcq$uRE}4OaTc7A*oLXJi1mK#{Cuc)XF3B=AXQ;tvh3SOT#C*M`Kp9D?tnndHW)O}4lsw{vLy1B zjsg8G2b=u$V6rIxDG|W>{D%2;SX+0Z%92rIvt3O-?zd(@rsYD-h(4mJfW_W_8TK0R z@LeEwrsSD4d8KYX;czg@qI(DzrJ)peTRY7WTkQk%!7vn?$;XF)&AFU=ewJx}?y1e! zT@KF{;EwMkp(l2CPU7WxFm>#Z6L8xQuR(oxy;^n4a2?kZzm>Fx(sccyhqDA4WF%(G zEnn!a$c_eIp><$`W!&s&x3sBqxTovOU8{_Cbie3}5tHKrlc(b1hk&?I={^B<`JNGE z+670lQ_B!WpLPu&gTNNmPhwP3%-3Viv@xT3+^1#zm>{e*eGc-+VlXZU(Q#A=4Sx2#OP(tsFvfR9%g5DV}4xV0hT_b0mr>}Py-6tr`Ej- zwsknkLcj!H5TXu5vpyIkf-%I^X%htcr9AVM-#d?!VIpp1#=w1NBVJyHseamim#4*F zK>$!_UljjeFSF-qfhl(AX)~n>ZS!#2c1%FzvL6j?*AL#ga!hW{5fr1w6ulEy;7(q1 zBhUQ#7HYG#|7!#w&^R>oVE7kTz4`}LX+=V#$VD{QKV=^b1=c_~+1+Q2y$U1GTr1$9HM2+VN3{rOxm{=J<>d*NG z4gsvq;;jqX4iLZZfojHQFK9`@v%*vke3&jA9p8sOcJVL>YDPgT62uYsQDmFso*_CS zd{QD8RdH?I6sGnrV;^h%BmNDE!;h{lE$)k40NaAbj0W0m%I*se3TS2hVnxszI!@4# z<(B*{1y2;NT*!mfz;DOqjib8FSy)$$s7KoSfdKbSOSzG^j8c*umkBTuSz}FB-}YG| z`D!NYDC$I9>Sat&vhkW>sRo;$95WA)nZortXD-<7m7$OF^)L>iv_U>x;_wapAy22i z)2?N|AsOSD{Rz`@iIgjU=q7*;xZ%s673dDe|TzJf`^1v}sbC=Ri^{XRU$G zC5fJxg1QUe_bqz~J4OhC8hS9cPP(?Pe`>zA_yNscY75ZjDSHDnjS$?F`tJXI!v3b* zK_N=;XF4lJRWW(F(^XJA>6-rsNsXU2NnxQsCoMM8&80h}nM4*8{n@4}>F2%2;~tLc zq@6D!ald$nDO}4%xd`)i>JSW5MOsHk zbc}gc1&}C7@+!^cVg$gU-TLTu%9A$coixdy4+U4eE0*FX5W(1O2jy-wIRpaRUzOn7bu*TELmS2vCxQ{~>>sKL)ouFSdx^JA+BWA5jAF{-S6 zMe5L#nv0+M+!+uhe5~^QzVfwaH32QWE$sn?1#bp2sLo4xCp|gSiGd0gYZlDR5VZ#9#;u_>K*Clc>lh-HtsAiau<)0_A9YYWY z*$BCQBh#u*-t$$FaFs$m3LS5?q?m)3k~XcIOEIwZV8UuvI0KC$r&w74VeX>?>_UXX& z0>E41%fJ^coH-~qu(30hx{Bw`V?zneTGYS)atOYcf3B7lDTBSV3D?Q$VkH>S>RFY2 z-UI-0dLBnJxhnIUiG8Ws^0yvGJz{sCTYgh6xwRm%H1ODS&D@&ypPVzby7{I8Yl5QF zx&F9W)#+_g(bd+`cXE*Xp^EOUkkjH@XJ@Jfcs}*OPaWa!FFz2zg3ib;)C!fBKIfBW zO=y3#Mk+t=r0U=|6p;rGlbh+J@Nn$4aMlEiQIvWA;i<>fwtb!Tt(x?oj?CsT`BDT6N z(snRVnpBg5IFDoQE6lstBd#n!=wSF)$Oxc7F;S;vH*cdYVZ0E3C`s6zpuiz zc2s!T-6rHSg{#>7O@tz<>ZA8ulm9*qerC6;p~A=B`EzGK1RW<(NaDLgw6msJ*87KJ z{M_`%gk%ROlg%~BlPQ`TnKTD=(p>;7*fCVO<%Zs#4RC#(*C$G{uqz_O8FOh4M(Z+@ z6I=+Wk&)lJjL|A(>(c5ky4qByD5@rZsh-o1C2wG)%b3vml&$wENPhb7-nK@e-cvNG z;eRIi^4mbEYPduvIv3%1`{lqB&m>7xmjThoqk-=Bc065M&$xE3Zz_x@V8v5kZs<^h zyD&It&u9;ZHtv2VX9^l0rkzbzQJlr?Qt?44DiYWcPA21%6eR8h@CEd(zX0?RR1ERJ z#gIXbiRCMfCs(kS zu0B3DGG2{Kov)CZl&*JueOMINKv;$oAt^P)F%S&Vg7=dhj70IoG$;(gi}dyvB9+S9 z|9^o$S^M^tMlbbq(60D}=!`Kf+EKeCk3+mi*(iq78cL9~Gn!ocM&TZ!^T5b1cxX;s z8V4CKYBcc?@)Nxzvxjc>es9>nzd2^{6=PxMT24e*waEr!S_L=Ho(DhQjb#lOAh@%pmT2S778$SH??2*Eu|m?0o1DK{-lbDb=uBszic_rm6gIJaYi*g7!R z?er;O4=&R|acEGS>-^<*Pie~}2ole;C8QtCpJ#C$5AOi@z4w)#(_F?Xx;M|$9r-SO zkAJcClf8UQAUedhKJmf0{-iZkw%QBpI{m@TUR;WWNZ53E{G>7%4M+Bg!Rk}nio-{a zjG4s!v z3_Fn|uu@jnk-wQxWdhfo-xQfV#S>Ub>byKp@^@t@)b$-2V>*nU$o0gLiq=)8Ag9T= zQQdg9r;GIf8;{i=p?foAq8}sV)I_yq0DK$d!s+T z>qy$;q{UYVxm4!;D&EqMo8~h?p#KdbbW3sbYMTLEA`bL;h583ZuC1$+Yi>Emk~$(T zfve~xe&53ZY2i}8GVNg$t2&wl;D{JwdaMza$a=a`6+uiDQi!~!;ehYatt11T>INAY zNc&hCS_DeJ?7IbldP#~wqXMonzZ3!%1eQ&UEt+|WJw+WnXXgXwSEm06ZZmS>aE3-s zo)(wCB*ZdLGBj`3P@0MJA@4Q1QL@;0evXE|-h%Q(%YEIj6Ko)>vGh zOKb$9Gn8Y_^%s2!u!SM>(469_IAnbNSWNvr+!MfP8#Z&PsPEjRE9ajN&%r=DICjiM z=k9(-O}43!!+51Ffi0^yh5u~v#9KMn3P<}!Q zv)iM$y)q!4@A~m#G9*npshQ3W7XLo`qQ!*tC8F*{)xX*#^F>M#6?Z%cX8V*WK=iQM`m0t)&zF~(0q$8z zE*^W@dXcL%oZ^DW}JXH=E3iMGT>u2 zDM7?z(@PD1=gd!I%=XXu6RR)(f6c{5TUxbY(rf=?GP7L6qopP!n`|Z?Lvh~*(gSQW zddY4HdR0nz+#m<}%?|DZ?^^bSxXgU+X@OsRq^37i#-U>qv{*D-MUvZtdi{ z>FJR5el2ZeY%VN!TQcuTdbekikLp9EPo~vay3?9jXjIXUkqC52{nDs3qKvM|pQmmI_ps!q za7c`dS_w$J%QumQLB`Qt3$$Y|Rxh=^J(?z9s~OzgEXE~qB0-Ejog2bFbIT1}?9btz%n??;5Z4X^!Fo z8B?^_m++)=qDhGk-J$;Ov_bX}zJLSBL6%t=6m1Ww_n=g5k=%7FA!RcLPf-EU`FJ&% zqv+`%31=|V8nQB>wrxe&3BM3+OGL>Ncs2oPHVrK~mbU6mgCdE<08^TAjS+`SWK*&B zsH;Yit{}B=_jR`RHu2^h!8VSU=Y+{Js-I?}WqIYo$O(0-HU{f6olK&i{GwX}@gMka z{-tOKAA^CQ=8>-Zbcve2u!q4b(fa zLu4FZa;oEcE-IJ-|9{W?U%KW49FMM+200Qhkbdw1if*!o2#I$dU5s0jU1@5RX*l0r zAXk0Ngp}@r)7<50Ffx=F2l%08lqHZNSL0x9ZFt*ZZ(PQ5?CKu+tQ#@)x2$&$|3_x? zGXD>`-*)F@tA0|@+FVP(wKDKH|5$EX$`J|TF?j2!% z{7q|yhq-uv`$4KFoIEcgu8fQcB|ZYWpgGxug;5f*;;#JF6hu;_nrC{&!i-n_otkD*Q zT*~6T)c0EqHMixe{O05Uo174>U%#O{}QG%XDE!Q3e-ZHyG@1Ikm|FoBE?fEN1Pkq2_D;VK<5@ z=0g%nTqEti9Ut(fz?^ARy+5u_}#G$K9>A99WAXIXQvQ^+q!%E`iiXftz3e~FCKLDKgk+^<6HkHpUHX8#N8Wz z(lqGqwxV_wvFE57sJ)_Aq2o=2g7qo+r!)E_AmgSbS$_z+#K(VSaYHfu zEKxxCElv^u)8*93cGIk62w)0jCgb|PMD((5UG$b{yn*GJ%m04oVZ;g@NiR_IQrmI> zl}tv0Fit9S)=0WewXltVlVQx2(uC^JBQc2fK##^@YoLo<>$KF6`yM#ac=Onm=1I+^ zG$j&6NcWdF!E$N^qHr#|%|eDLGn2ZtD`_4dIWQ(N-(bNuplPAbBW^EEI;+}gEbjGwVSc?N`HiZVnSlE+tZ7|hq z9tJ}rPWQJr8D>!wV8%~Jn}QttE0Pc_{;ehAk1?pHINr6AA}ri1zFE(Jm;*p5;FFY- zd!c(W<~@j7)^T|i;ZfIr4P{ODkpk@iN9CYs{?B?jQ<~Suy+k6+GCShSq^3=U_k}y2 zn(hr@DO54?dbj^_YQ95^hPewB8|v}X7k#7uZEnopS1K~K6kX{Dja$j3F5So7Ot{=}T6K6#kbbI! z6R$tNf1?yX_CJ|L=jD#x03|C(eIv7)<_|3(`{jmPKW}~~klwc5HZ^cx5}7<|&=%9! zp5N!$$P9>c$0hfN-9SUt0)S@N~?pcK}d}k z3GZ&3r}R8-|395+g-1zSh~?P>>XG)8?Zmx-vk$%I&?d8%6dzg2&=(QX%+Bni3zHg# z9H(z5`E~Aro|<%F1(tI#@%xdYMJswc;Sa#_ryS_W>xIa14x_KPh9G=dR0-TmskoAj zJ|hWo)<8Ny4VvEvT3o29IVw;x#Nq-%g)V(KgiB4RxVFtc#SyBSu{jh;I|ZhXnLgg~x6pAWVb7}II?HYU6E_n}V5q2Xsm`>aBx4V^ zh@uQ6b>gKT9W6WJwiow?h5n&%l`8=X`1#_0CIaOEeLfI;Qoj2a!NUr5v!P+MXT73{?H{^G<|RH7c88^C~>Iy7ljuIf!loY zElGlTG&kH{D5ug0F)t+atX6}Yc)qZlJQe%x6ds)IPzVYx&%dqHe7?wup9(_#HhtyN zfp9omHW8`n;HBAMBkrH)G5Bv-*^~~T#mPKqxdBZK@ymZ-%%gI;KSC_zTJM{ts~wQ> znPGVWD=YVR4)o8T>#?1TW+FXzUOi!4*RX{W<3J55=Ps$C41%ey6X30g;&U84uQIi4 zb!FE`op-+pr~dqrUhCG{O>}LdlbX{(be-`X-z|nA=hCs(h`>N`3!G8r#_B(i` zL+?HBl(}>+}PNZ~hA!dQZ7vvKQ(1)o>=@#e*IY*ouG8N5k3gWv2jXfo-|ho?!$kuC5@6uRB- zMT=k&EHLLjy+3BO3c-2PsTx9l9c3%|duZZ|hLFJGxE}_MZ-V*l4(nN!tGmt{@0ySr z=U8<(I62_g2&4~!FmW0+{;}aLdy2JMB$<8%t5yF*G{|Bn^;<}{C998&-a+cRhc_Zd ze{M9*J+Q`d7iMDEeLMMOU2hd~VW4QRrPNs?ZEF03a;f=*Pz-@di%99=N#F`|e~W9h zo9k~Myz}J!T(gU}U_bwV{%qG3W{?q;dvJPW`#w|+HBZUdQaIZTD&=#bKcwvejJBXX z4)nKA$fX5dy|vdZ3OxbC;F|D`aswYu<^tKJaveupd!(u}cgqfoVj6WkNGo3&8Y6_C zpeQHSr&Z+rHm;tFM3YEG*W6oxyr{!@&KOPP7ujUq69MzrWfJY+&K`KlQ4%UBS2D{y zNcwPxTZ7(DT1nZ%#nE=CNK;(0*sLlPoNn5@WAv41?cNxG+*u}D;VJ(Smlh3 z13zz8YwFC9wfDw9m550k1Qv@EBs7y1fH)YBubSCuCnK>>MR=zSriTqFW2*XdK8N zv+CiIUIJ%#T@%dkrNNI2wSp1|CHMI}%QGu3rzb|8&>FSww(1>AaDPNDa;rVE6Zag{ zj6wU#n;L;%c=BbvdFQ*p9b7n)E3|1P?NG56cZY9mnuUcuJT^zicBUaH;?T_rFd3o? z{&+)UAB3BoN4YvFKqmJ;0`;FtEG+gZq^u%Yz)yf}C-oYuvJHIuA_RrkiWSVx!==F` z1oKSp>~G2E>(c!weBh&CR9TyUw(hkO3C*c!;j|I-MMm*p(atS@aV#5c_i7JRuwORJ zEI^`sc}w2~H5g>#YPeV1CC@|s_}3K5O~+Mse<;*wJK)n&-t+4(_-N8VCRyAU56l@p zxzKT_8k9TXg@*v+;!@}f9Q6VWp?qWs0B!w7@}!N|ngERKX2Fl9DVqm3dk=Bj5mNgO zzA2AoeI0mAF#H*4Vg54FFvn`RLK?0O^0vd;btQ=)0$2+-jStVjC}xZ{)1X&5ja zx3h+B2wAUBPLm(y?mJ#KtsUO?j`2j2`mEL0aL>O%zt`YzO1tb3y*L-wf3~>-%_Ah_ zjoUhZBrDOv>E+jEhh#+kzlt7LFj}JqH(UI*r`_)y>uTeFjDCkpy5qgzWU`gIiF>Fm zjBeVt_v+Cb>|Xp6Xj3xi-kU-!Tql;lW+>FMUR`*OP-YenR#$K`hnYFaK>h0)A8tZf350dy5nJV4}#Ot-Glnl$IBgTCeEaA z&|PSR_y07CRp~?zy-^wMlhv0ft*mGbYH$qBy`fR(+RDQafm~$V{Z^G1NA0u~3*TYQqh;-OjXiG%O1rR5>E@*Tn;<05Chvh-4O)ryo z`)Bp%uwWQpX#xH!gX+j4YqIr6E0SVMHTXF#XZEv3!$CF9lZqUxUw|SFb-fQhJYAR1 zdh%o~wxSe?e*NerBuBp4{uZv+m?MKg1T#*wpGwFGO|Ik*Y?9G(1KBzbqM?$fOjxcz z#WtN?22Bq#=st`6lSz@J@9y(nl%m8RgL_y{hFW-@8al&itP%Wbiyq`Qov7# zfYOLvQGB{F)fJ9S)&s}O>7;;CIo@6dq}~)~67kqxgVlndmb8PIjF{SBkvVT+sF0|d zgzWzlUbT&(D$btWt-}@6H&aTFL_c&8wb#GrE}Bk3SI5^o z7Lyh7+qge5j03pu(J!n1P40P#6*{;U^|->k^GK9d z_e{E~ZKBdB9a@TL?xfDRVEUR@gXWMoR;HS->@BKZq_Sz`y&-9cIKiyj357g zzbX)}W*dhFrhkpucYfg>-DT%uvao<2SiOeO&3L#QJFc!DxVWjZIfk_-aF$At zv$2!F5h-%LjSowct@xVhLLA(ETBD)=Y>D7YQ%+%k>b{L-Y`fw)>egY2!!w7)1maZf zf@7u&%~~qNsz1{#mcov^+GHmQGO*6#P<$ockGqdNhMkYDZM97kZ^5Ww0zBtuWzc|$8{2CQz+r%vs=??JcXv_{L)ToB@H?XNg3 z{P0|*K2|uJb9%;vg{d{f@%{y6XorRipBj%!pUAF+!L6lBvZ_~_Zim<#7ek_;_r0R1 zLan*k61$>HNi?;1c>Gb?$Zar(`rE%HAM9z@FG!622YKa;Q0e&#q&x!F z^tsrngvS4WoF3*?oZGaXvE;=!0a9C10mErM#YG|>R}X66@aukcms~ zPKNuEeVt=`-+Gu~nrbZaE~|gOYHuErj**bf)_QnqUgB)y-us**0$6UMQ@({L%xFhh zUWiiKnX`OSpeqTXO3;qwou4fJkQ8hT_)oh1;UV3Z4O8d2P9@&Tx#KMGVR{2v&f7p= z(H=9rsbgtZemWtUN)3$H{KB*&RTW@{&f|(%qSn0JJfYxTma`~8fEH!Z->1p@?RdrO zh8<`gfak4NL_<+r^d%DDY8=2z0odl2>oBJ^T3~zaaPT-x)cA$xR{gIvkLHreupM@} z^b%6qUU<3ZPobYjr=IbVR^VkZ)RJt8V|{3ytBSuKPMBnd>XcgA2ceWG{|kVywBDPb zLG41bNrvFMfHCZ6p_vvUzD3;8bQ*Y9DJhZ!mxOQ4i91W$h%73TGF8!Z`?DGuin@{{ z+Smh-kFv70d*l40oOdb?HHRXjk_*L-W+=STXj1)H}p%_g47W6hqTrH}FqL z==EM1h5CKe%nWmDT9lD#Y0}||c0Ji&J5V}Mo7v+@T|g=7Y;ktjKopCi@O85Y$=8=D zP#jLev~sB6R#{dM3`-EUz{4N4g|a@I+$SG64!3?pLlW8S8_%DxB6drrL)+^B*{n44 z1OdhX{ZSrNmjaXD1%pE9T1m%VkzV_yGwMKCZ4z5+7SBl#vf{Pwn~{+a#LSy3X~DDk z_vAzsOMmpLeJGoa2da80R`I}P%Pv1>r>E@NLkY-<1CbE3%teq=$A{b3#qfGoL!`3F z5T65DnFppv)|fZWF)ux69aF}(SMO7;jTG|mQ0cqjQYkgI96@xZ`O>SQ|7UCnrk`|6Waq*i6{=$+cvi@My0cmE#i;_ac&Vv*mn z{!i8`jr0M2B>t%TSkv86?ZWh!2b&c@P^MMF#F&Uu8Dy%K?vfu#I=!D`%|ns84|y8Q zu0hDPN0x80C#VCO52oQ0Z_VECLnR*$y>|}ih85IbfXPGpn-RBcR{G%B=#Vi><(XE6 zfK|7(4d00MP+NwHgx0vsx-!*1j4)&_ud0(;<F%RVWJp=LUNmX~@W+1;pEv~S~`%E=u z9%AS8oA^%4YiQ~E8$aSFr83~ziVx2R?>uU_IED^GCRPY*+=@5kIiXt zb9?;DpL~(9-fX084d^|yX4VUVbdvEEi&^jA0>7l7!SG%qLZ_CkPvRF!8aV)Lzemit zIa%!Z`NxUgZ&=Vno-E(ZO+Sg%PQf>#;*>t&7J#MzHR%V<2Q!u&MCx?1#C@a%iB-`C z9CtWJrf@;JhqEFkPP2A}&NxtpaP6uh;9m)CD<`|>HwklX;d6p!4tddLEptE2Q+emk zSK6=oYqF#gUIf64#c&as+!L9Tl6lSyXme>;w$w>2=GPst?+V_KeqN z*Z>Suh->z$GWG`<6duxug4Yab{e2GaLP1)05B2I5rfXJ^9TkO2D;Ru>659BLaCn?8 z9pp3uMfm}IcUss#PQ?ma4qg83VPU})%(NdIB(5QT~o%50%&SillQI2j=hvIkC z1fd632!Vty^Z`c?)%W6Z2w7c1b?&$eOC&>g~9j>3v`t+<@PG6ac zS80Jk2Znb#E)Qe;w6$+@j4q-M!*=Y5@x^RjS3XdfQO1*_Vzm zvcF*s_$2$@;cLls0isU@FYFox#riLmvT%JyG@(q>3(jvgl~p!q_mL!7xaxpc)bRq8 z(6WEAQuM$+=$1$Zjj)oVZFBGpU`Pxo^h`QkFjLz_$GPSkO`W6} zDO-3#l=q(~j;feTQ_+JF26%gN9hDOE*5zwOWe>>U6u5Ez5K2 zoRW#}qBhRj?rWx;fK?0V-tIaC=w9?*M+U{FL5yX}IXX?zWxmLy=qLFtZVBR-3nn$- zzn(L00YIP`xQ6IE$!I{ZfbT%T9Onz*n^Ukks!U(@5|gt-GmCP2AhCWs3Nq2j&QLBE z^nNaNDC7e9mbTs)3_$;UQ(3y3ai^+)$nlb-7qUq%*{(-p+3^2k-^7Hbw8D&AW&K#CK7Q5@({R_`4r%Kfrh47hn!Qpumz;K1T1=N0lZ!X3*6x(*8_0 zpTxl3S)GLHwU2%Xi&&a7ben|q-x7jmua_(*td>?ySVkR$OVq=xQ|&X89mc+e`2jda zV3Z)uiY{h{_&n+|s4^0t+01&iuCr5iKY;0l9ck<1iF^u({HafUcRh@oSz!Lba|tox zZvaX_wZD1__yLO#X6ediPbYUVi3K1)ew7Bmj=h(iz?L4^D}b3OJw(!cIBX(Wk$>e?^Q^E3~FdjXfk~Kngt&>!Pn+?sf$@V1(S|KF`iNQl$>ss^L ze@-+R*x&dIf$U|#eh{R+c4enWt`Jnfqm(OBt|ETV1ft7NWd8ummi0J<0mE%R%8_LH zB_SuDbcPg$GAS`3j?N|WuCBu=3G|IY;b~E^5*yaJM~wVL%`6#4%YuZ(5xT4{M$eK^ zxO#6&fHnMqmXvsQM>ad;v2V&X6gfmC1=qf#T}Ocag|c>9*^^cw9KOL1H5`5%_3>iw zo{d*Gj4mIIvE49bSlPG$#1irRAFGwT&xez)10Y4uWv@5Zi-?2Ta{N2+*gHc!ViAva*f*1&9Z&& zh`%Sl1x^rB@YD6?=Ml^zwJl)h;rn^x0nejA>Em3j4646qeIZ|r&v*8xhr(Mx%+A=3 zBvmXs{yaa7PoL>h#Z>7{2GUcfci6RG8mb+}J(wtc6tec!&1>6(P6JrwFT&%2pIXBj zXTw&!l(0+_7b_GL55Y9&o%A7+Xc{qDM|8+xn^(xb{E{83+w+MJ+^9D(0K#wyIflDy znl;ljbEsjd<{E>iRJTbk5nBX)r4>EDa2-(FiW4|%ZolMA!+~YBk+G}GL&KQw3G$Av z@B^$g+@Rg96lE2_B!~mZkRR@{S6=9P1k3Vzy|obyBnbQVloRRd-4;v8LxYb2+h<<_ z1cU*JF$*%xzDVi9OBSwY62-zlBn&DmYgjCyC!ebe>o9;GvL16_tl2(izN&1aC`E;N;869#Bq0Nk71((1p9@jYkOG7Y(~Vmb8>0)h7k)7o5PG|2*6DtETWx>o@DEoRl^xLK%exNVlGzC$wef0Tmq9$4$+RvU#$J<^ zqy?lR8sW(T5LIWO{7Sl#_e+}|-$wspE03nxmz}9H#+lcAEE$OZOAiWZ=!sXJ!7Waq z_n16z{~m4!Be4b!Q_V(_s3Wf9gJp-UD8q7*u~495QK=pL>NaT8polfqpa9^`|rOzh-nZgCirRK=3gbh z-;N{cO!ZH&*^VSG8HBId)h<&A_Tp48w^PiK4WywA%6Bv;r-F3Q;Hl-(h^jvXndtp@ zlWUo3yB#zyWPpl9U!bzsT0HZP zA@Wr&h%+g0TVJVnS-li!!AYwOhBnnL6FlYG^^RNzW&U~``>&j-O%y40s*1u`18RpP zN0RwuSLj|3jI-#`s`RAN)}{T#&J1gi_7?l!cGreV=p<~W!TRSuO@u+wSWQ5%G+>Cj zKz8_)1F5ve8QY5TV-ooRKk<|-wNW)oB43cr2PCyA%WxtWzvD9!Tk5cTE( zFgH*ks~;b|7%>KA4>`Sh=g`>t%z9^E`OE;u8c`z7j2^N499Gsf3?c-Uet9_UU);J1 zp~LFb`*&a-XV^s1)Sn}YBE)xiAhlBL5%BkCJfmm3|1I5Z7FWyj=8wUn?jpfSr~oK; zo)*{taP!;1oazroWmo5L0gl}-PdNU2ee#LkQP+#DEdknc;kRh(+vfb6c{R+Rp2iCy z@ek-MyDHNWL7&MTm{2-cs%MS9FRx6LZ=%57UTC0P zn^G6r%Jg5&_%oDcu5vd?^@rMc0#9pFfPjLuWAjb_AC==#Xv;*2{Q$2g7wkG}lylN~ zsSke7>wjo`GEdV6p!N(XXUHQ9Up<~;DH1I>tqTH3_TS2dP1%X$fuuOS+KXZ%pi%p& zu2vT*zl)U_9&OfkOB;izq5WW+Jp-gPFy;ys3zoe0G&;j5FfF~!r&r4vtT@oL$67}J z9Z;UqAZqDzLQ^R8!$O&3RQeC>5T*Qf&fe^J;2SiBf4-7*m5gBTIvjrRNW`~4_@OOZ zDI1DS%vk*`AjCqs;23=MN;5+Q9@(J@7a&Ds`+GLL1{W*(zC4BocteCmKT)e$ zhssh!msk(r<+3fPmPrOLA0|RLZo=@ybIDaY#IYnv;SHD!Mf+=sysmrLq>AW7`5svn z>o-wW7;eSJMGhQw5&9aqp|=Wq_OAQ;Ld&juI2zo(i*!i4WZ^XGfhSHX$4YUQ{^otv zv=K&XrT-jwjhcT!d6W?tWNmf^@N9f12`%opfE@%V(vV6RQ`w}G?6=$50hr@3twbb~ zvVDrTCl%e0AQqRnSnn;+gQf5nM>Kdsjcyac!YY2SouHLTmN3*p1M|I@98PBmuhed> zCs!&65TN3_n~Vd|a)jH!=~I#^f8BNS6ffZ`;G_S3=}FfgpX19UW%XNnJ`H}9K%HE!~L^v2x>bFhF+L&w|3s8$Xrx! z{^{)I2~$O6nVYU!(iR0iI~vnYR;eO@%*_3y)QywqOhc1NNCioT8JWFb*^VBgzkR)3 zI_ka!MtAB*dDO3xKZeG)&9cJ6g-n|YW?-*#;mLer-b=6LYqk3Ph*7x9T8Dc3LztpH zmMnLD0Dd#D=s_|UvwSEOukhZwU*QRoq|js6JhI~OJ|n%yWtI?43zU?x_nC_Mi67k>ZVYSfen04uJ<&kDZ-6 z9#R5Evb8Pr0JwL_I#Rb>OkvY2lTc2y&M}H-xApIc11l5h$_HM2XZ;6ZbsnQIko6l79xiSRSF|Y1z^gSrT=8ReZJlu^VM~s&ofIU-olp6CRrqExj|TW>AZpE*N@KLn%s6=+ zN(_HLDLai{v+wVcu^J(gm6>Hoe(lma5qDjezJ4-T=*m}@ZmjhdIEFoDp>Q{ORb=c) zt}B4sL-cE?JirBpGGWh~a|?6F)(vw~ffZ#xkhxFzDho^9Oj%n3nU?(8?$^hEuMW~z z9qea4)AA#K+FlL%SWRUPuI-q?=E>_)F+oV30#%2Ry!I?8A z8%FUM5m>o2`f!tafCP|o5K4V%vs|-!AxFCj6CCJ_D;c;($wQyE8tCE1^qs2oySKg} zC6#mvSRo&0EVwONC&LxeXhwpmepDOatn3+9B+dC_LqO+6gf$gYeBJKNhn1N_8cK(d zVv*iJWtO%OA3k4Cu!Q_KtCTr=XHqqvt4JJPn(IWt24i_~@sd!(h=nmHB^!q2&GG?2 z-~OJ(nvrzE4^=D>LWN$fx#QAbTtoe2hIe*PcHHr4QpU<;x=>!8**`XRR!Kt0aoXklcxi0dQLrXx~cqIQ5Pm^Fnw1PV$72pmQp zWX?jJOvN&P0-8EONbJxWijEG!@{1ep@s5`ll{#L886LF$FE7+ek$#k)!xm5jSSpO@@B5d87ReH(M;x6C$EmKVY>G|b*Oj~)Ac+&XOahv(&#gC`n96_!)I?(ZmQ z_g8EQgdhi;8ggV@RwUW{Mz(qZ`r@!0gBfP zJi-pF;!FUuD96fE;pVJW=_k^$rg{p9t8Eno(S4*T zxXgAHB9VPT+pq_&p}S#R?wZT~7T}_^0~9U`DTaL`CEd(1wa1Y@$)?aqENzb*PpQ?l zG8k;Xipe!dk;Kge4uInT*bp(NtlF{NN@*7smoB~D zZ2E*frz{TqKSn0s+b0RZ;aXl|-PJ__eP0I1plP_S%EN^mfD!(OB!%J?0Ibrs6==n> zBwtB5zBm-tp<+XV8RB10N$Mset4bIhBue&w&hPa!(7I)$S*QvYmj%cA80wh&TTiC4 zoksBp`l7`Rmm~tOMi?|panB#(dcZn8XDnv|9rPO1b5D{&VuD)O7J0^&?ejDA!rlB2 z(mjoVEkv8QywHW+E1G#1ou-23)}=G*3`%@QAU}*fdASkS;DJ+Dp;If{+r(u4dPK4Q zPQ5#h-ELmf=Ee714x*!h!9GutHc_=9&d!8!{afOjRlgJ%U4x5k?5Z48v$?jkV$w)h zj2}Yq+z}IZ1U>;syF%rJ6iJqYvwm49A2`rO;5(BH1-EPL{A_e(_*={_YiD<}iQn-F z$#?j}h9Eo>3L2uOKWbm5 z&ZnGjzhHvZaS)Rrt&ES2Iq%5a_q%@{lq~aCTP!$(F0miQ0-<&78BC5|CKavj8fXO4 z{N*sN5GSsNIaq1az2;XJL+fKQaM$KM59aT-PwT}7-I|+dA!8wV48Aslr|nv!I9V57 zjQd<1ip+#8D!2pHHluUXW@G(>Ge6K*u2zy+t$!AAZM!&<*C6akA%0()j6ZFSrO=UC z^^U8M$nh$ZXq4N}>*eX7rtFJ0i42-7a4v+D3`1mZUMMv9G@mCIe=xf;QNjmLi7h0B~GnFWClO2{OtEdJL4Cp*y?BdtG5`kXqqT zxAQ)>1vzP0>&4cM5K5?Qq(k-pKwFm>Rbl|sZ(y7K*VtiDUG5nZEv)9dv`=A$?ysDYeB9>0~5Npr8Hr=^{@gT0HoV5d}_trr-Yz~JfnHt zq)i&r6n|Z0644poKgO^yNEE05Q|4wbrPS?xpH!WY+b>!9IiI?TxTZ~$^PB&2$jeug z6Jipw7kE?wwgf9A2o@{mGER=n)FM@868}Ckrpl-cp)H$w{S=x#dBeS@saca`9zk|f z_^k=>|8oI}s;EdAiT)%d!*UAfg*mh{NJ6&6aKurNTmtsbf&rTFN2=BhAAW%8AITyrJ@Kl`&Qu$r zrXi=5=ZAm>Yp(Xl?_6s1nObsR++-uQw0#UDzA@A~O6h~z3$RNw6-Ki@>>e!zt`15f z*x(L|f6o=UoLGd%P4%oA^Zoi1Z1>XENKofr586#BvrU=SQmN9U%}#TAzIQTUQSxpp z!j7+cvbII9w))*fu!q(Y+~A6oM%uTUWw`If&5YK|0H6%)sMy6iYDAp~jlLi8=0%>w z-ED{YUel^Qh}MEr&c|$7l+%@gx&(K6t0Lh1;Ybo>+2Mxr<_@OE)*b)*fJ}I~D zWjaU>dd(p%xU<7QE_6cuCV1muB#t|~o;Nmv z8r{ox%@$vk>h&^9thGK>2LB9wxq=1w<~+M{LEfP78(}&azfcaBL||)uwakGOQ|t00 za5yvI>t;}2{B0aGcwQXCzX88?7igq;inpf0f7ZKzbz~y}3)v=dah$ye14J%+dtXo( z4=nW4f0pF;N>c$1BiE!w%!ok<{2figLc)7Dk1OgJt$(zI5!wOv^*2}DSc%dsjbzce zL?V%|(LN!UoVuXpzxCpQ(3j0d7%%^S-Zc9l2wzBu0vGsX_#`^HHfp?ec9nUrao$54 zh+~Xd>wCo)Xj+OFq3ZOOTgy5KX<@Z`_gEX_hBn`UI>tuVW6R)})msdV04`?^%zJAE z)R8a2`ZYxo-jF8vn_N=Ed>C9QY?Io?v~w{dhh8t?AL7ifEPHXUo`E9~Od*7%T+n$b z_QtiD%NglxS6c8(uI(%&(0QTSflpl)5xLj%DFdvmtSGA0Sv_`2VnN>0Qv4NcmM#*T z84|)H`+5y>>=8+ECU|{)%ccPdpAQ33Rn!?~$b=)A{}&5scO3f;Y^OyGhTRr@744Rk zf21<MMduPT!j8Sc=JF7pWP>!n%|gxGl+b&A}cxd2Sy!Euc@QBTXMD^?|18;$=h zBGh%U1J5%$ZcCT?4lT7l;Kcc@tF1z4@@#2r=& zn&@YWi{&OHs^LYOj?&)PNR44t5XkefmG;Y*{Ha=HfZbP*0<8uc%(hFeG{O@ThRrHh zyiau>Anl~!CECpQ`&~H*uQsm!3;!SMfj=1Y$olFq?k@eHANz}C6>w~3?-cJzK$~0t z2#=)<@+kS#wJKihWO5S{FQCNzxT0T6OU!$VaJ)GX)Zy#Biz>U+?j|x|)Q9?k!3*&^e-J?qgdRsY z$2Qv#$T^(8)pGkKjGJP&&$Na9?4m#y06t1sf#&AYX0R$Xt2!2w}axR)= z0W(mV6S(%=tzdZg>|-EDFbMeHL?rK5b0KzI$;?3O5B9o_kEl}N=}1nE-?LoKqJ|)*FJLN+*njoi(McIqV&prb(!waj>?NZYFlsKZ z@LJ@YY`3sRq)gwG@ABY(;(}nJAVVPux8o;ZmE!-%b3?=<`f0<%o1IGpTQrx?dS3`)2Zgt=MHqanI9{&CqH z1`2#SUqcw!mYu@z4}YjdW0Aq?+R+K#BD$%z3%Aac2dIg}XHjJ%f=|P0*acl~EVn=a zJNtGUIv_vvsj~F<+_t7@xcV*-@!&$o3goqH0aWgcgt515BoR|r#Z8*_wtD`2LMAX* z5v~|WyOsH+2_CnNQ*rO%BEVoya6GAusn!ZulXx^RBPK+D^t)Sa6Tg?&eJdBc5|MhP zya5?nrw39;8c9aQ_y!UYnu+tXQ~LfiM;uHq$?J?GgxAJGDXIPSdn~o(5AK}MEDrN9 z@X;u^jtdw{dFeI0DpnfH$#)*opht_WIQ&8+bW{e08lR5WH{J@v9a=*4mZN`Sk@cht zTEK3W3x`*oJpPGGJ7kH(9jgg$$c%`fh#&(A2^X`-_X2;_=6t!9YDfK1&?*!&e2e_Ify8)XZ1;{cR-sb`mC`k;&SmjywgOmi4Xbq3jiuo(ID#IHS2o+?W&JkTxR>M%z?h z&<&d+Vge~-u3uEAw7piLejrDvLuBn6gg__@BTdfmd9|A4&4usKqS6+(J&p7HId~?O69sYLM$v_!md%-@ISOpwwmMVEe8VFy64SUJV#{mrC^57xs5QmI5epgpl9? zVU49VGsy_`SN~;+9Yu}mr(|h}`vb(bpRh^Sk@y>lLOa`LGR@)pl!aYA&}+rB1GB)# z@4`i}d4Q}tLTow!KExxz$H3W}JWsqXLr+W8&?gxw)WEE@Y}rSE%u#c{Vpp>xq76*q z6ff}w_t#fkFu#i3?#vLSmtv1R_=TKc{RSu!zapr#6Zh*&?8G1HynTv2hj#;&(S1;9 zBt$tB`l&suZ`-m3&x>qWYzpl+O1)je<=qs#^ld6R42V2oz`}M7vKLyUIa2bFOfWZ_R&%EhHx%@sp_0( z9gY>bJ%kH|h(F6$(O8lb1Aa1$nKk8DZplr@1_YA~``M$j*0(sqbQpqYYub+uBxeCr z0Sc}ptIY!xeACwv!vqzQ^}yl&k0bf|dj~#I*D*%Z#vLiln$Z@iBAWAZgs*mrb88Ow z3wrO`Wu=M%ZIlL>E_}F&Ybp;BYEJGJq{%ieNdp>$FZ^{eLv`ycXe<9V4g6=dKlD(c zbmnM}7w4yYbe*&!twwImiCr##t3(G^w`Fo5SfG4>M=NA8AIXC$uxs|*SYGfM~ zu!BzLjRDV-6)i?jNa9OvS0myK$hc zN7_M)x6!-WD-b_Sybj%3b!GAszm^9j^cv!-M<>YfVOO%gL@S zmWNP2I36plz?<;iN*p%(_(xS9Z{<;6V1;lKlzp!II=PlARMSh|!yb{%WP#NK>8Q^*V{}6CG4Dk@K{1*xiR%g>` zhA5s0RpP#TA3+gI{WtAVnP>C5b`GTKJH`^y|)ZKM`BJZ zDSBMs7dk&|yRj9JtbFl70GN$i7*ox`s@$r*IdV{V_N62U_mMPlM)!Fa8vM~7*^@VJ zdU?QuC5GMLoZg8F@q<>5{PHp%2lv($e`|Pr*c`9`()8Y=vZmSw#GhOK6K<76spL;U znRb{H+#hA0jInBr9775riC3m`Biwh)@)|P_aCc)rSO0(fvjZ40p^fkrXNSjxo0EBa zE<8al4Kgp^Vf5Mh1uHHKgYx0R`z3LjlW*J8w_BLc1Xa zbcJOBolsGs+LVa&P?4(GIcjP3OjKA<_pvn=G1W9eL0oSaG@g3v3Ih0=M&64(gbG?!aL%O#@OdyeBGHc(g9JAWJn)7u$sM5 zUVgo+8}-?C&c{ep>#>_X$PtBs=6?6k`~WC&=j}MNl%QNTeO+@80>Kt?B#`3_|0~Pzo`i4I&xFpbp46-%SZ1t z&vkfX6$m0S!+?Pv#i++XJpRJ>w)I620hGvb)EybATR;vnO7gZjBKZOY?}3y5Kx=38 zMqDJ=^c+OG5Y}Yi2$M=MPCcdZrMxrR#B{Aa=?k#50B=l7Mr341iPlBoA{6|9}4V^Oe6H-<2_xRpTSA4?J!yp-@3 z(D0*a_zOKcxTwv?e=_>@E8TBwP4p#gnz?vcD!Ue0O)@Hl=IM8nMa-0~)y*;a;G9IX zIV0~R*TJDO6(!|VIigSg0Akt`h>qTmW9$WTVx|Vk+*P2`d9Q9-Mq35W=2z(DkpyVv z*aIF#$luR;_~5Pq|P?tBRhzjKU|05G)oYHo`Z$Vo8vSJKb5gY3xG~*ehW4+SMC*OD@xe7iO5lqkcG%Zq z{2Bd9>E@k!Q)xt85Q^Z--WpoLcsm>>+u@r-i)G9zeUYd3o7JaB@M3)25WxMMFD|6> z2Ty-$yBuOFW3U#JFrlE5fPon{zY>TYW0G^Fr=#x*Pay!_0GIGZ^1AB@CfL4dk8!Ev zswj49OgprWZ_4L#*oxD+Ys-}9Vh@aGjUPLe`AxLHf>TE{o77R}i6FVXZ)u0ZsNpN85L+C=m=fgh)!TETFV4M`X$D~JbGaOn} zZ{HaG0D<|vcOr7#kwQmJ;uUQwVC5`6V$r#*n(J4$#HGLb(&eX-0|gtRudIXKYb(JqoovWl__7 z?}NT;I6@97_p*_J#uT=v&_kS{0eqj+YVzi3N7p(WDen~s@CFH_W$#o@gp_%5+vxgC z-2Li}tM|c2aUYks^9&L)vf?8ep)7b~9?+xOGzfR!TsnPAQ>w|b=IR_g2Qq$)vMS-K z;mx8%67X?AScsHydXS7Jj4vojlKu#of}}fyYpV4E*7(>9-_f%2U*$Czu`?;64X~UT z-ZP+_=+YbY=#K*L$H?@An6i^IT-%aa46!T{(Sb(Dvf;jC%g1M(6ht~3xWQ!ku*yVM zd1G6@JE0rDSUs2`ny4g0YiTEpO%X zby0(IgM1u-9;*-@e%hqsl8-*M!^1+2eXFp5v+P+1rHHfE?Vvw$QM={gQSUPcenG2B zj51>3Um5=l5+`mWq`Df{s*nmn7ap$M&PtLk2*H1I9{)wN&Z<%#$~Y_=sdnNP(^A+r8Y>pV^f$2OvJ8I5uz>Rvs%|L z&nOR;^uMdk{3i*Mp?-@p@Sz)0`nysu0(!8>Vp9-u1l!UD3Fnw(tmpfs<~Z;XFzkrR zK|42?XX1(aPn*75kez?Iq(Y`1(LV8^kHeX6I~fArcFMs&+bXzHEsC~%X5qklE;fL} zP$XpkM<`^Nut5_C#Tumb4xU+;NTNRc&33wpf-6o``W(%N@)7Uqo>1@T1L!-aHzdP} z;J=}Ijt5mYmNt*2*391 z2THGPpc|FhuJh1q10H^jZeC3lM0iy$tOq%VFPatQ*Aj#ME)T3((Qs*{%6h?PO zO{g-4f9B9Q>M4tE_5Xfx_ZhGdIuTQA8iz&14Pz(qehVR$VYVl*4I9mGR5u}ae)&pp zEYhm)pAvrwlu&&$9*6ATP2ijJ92O;kZ+_|(8n>LB%(;wl5 zp|^h7er?c(+yTw?=9+p7J`rn&HjBLgmd%yhn?<%WgR;|M1Z z!^ryCmP~&A(APCU9Z8j)GZZ zvR$a=r9r>?P8D)-_r3)Y1!5{gM}V56OeMB3v{c5~L?3ryYob2I2B*+09QeSt^>sUIZKhys*0dTt(I| z0wQUTyQ7Op0>b|OWL$`3(|Q?{%Dn;|a6|V*7pC;0x-4;);y2TQ_M0~E6_PH*DI9Rs zNXfa^;w)BWPrEVf#mB;06%y@2b}uXue! zWz)U6$6$38A{qha{U!K%=-C%jfwm*Pb`E6sEjLXiye2;OEYI`t3|mDGLTyi>*0=W) z*A$szPQKa@md4=bs6+d;3)TKVWJtvf*ANH^Hp;^~$E=YbqT$;HXnQj;LY0WSF%L5}2Os&+2im`{+AzpBcz zVhjh~*`Vo2LxgnZq#Y$N8Y%^%&>dlTJ`{_Q?UFVrESiGGOYPD1!LfDwTrKs2^3&m% zIJ&m7-bFo#604r@%GTnGfzT@csu=lErH+dqvkDiTG_)zliMB{DIv*kaHu{jC=!5rl z!dMTE|4EgfB5!qGE=@b90C{x-Om{$G*cKTvyPEn0Wo9AE(MT8*h8jO%IlkbKp-C`? zGw8-Z5l(7=lMeyL`STeb>|o1&|1qNYA~LD3bvz4M{h~{I%6)<3C_PV*uV~EyiRfv3 zf&GyOa7|k0n@Wp3mdsr2zBHxeY>R{Af-2M1PUKY)!V)y=u@mu)7Eli+DkvN6Y&}NY zX%w{*F_=vNurA*u)Sc77H_xu(H9(9xq}RvscjfpAC+hXvl;_*?SFthpflT>c2lPN) zH@{X`{4~hKPNxXLN2*`uo<(6=9k4D52Z#b#zes=8-~U+mkmkE}LlSM_tY`a@h$XQC zY_cmJ^H8o$^J&=_G#Xp#D`Az1(|E^oC)J1j(47M zcuUW@*R0=9%Bx@G9N;k_p2TZD`29@9YEnF3=>4asqx5acO3T@t~_efXk1VcGpeg(CS zRxv2S)V)HG$`gZG4HoFXa^5%Rr3|eRU-~B#f-=31EK+H0>$;nstYaH)OhZk|Hyo(! zlFQs<7o1!LZiLp6D-tAmdVClLPhXR^Ig zeIZ-?ePatUPj}wV5h$Y63cYCAc}!9Jr;z^wgF2EZ9Y5l4BPdLTQ)aB|mw`p1ha|%F zFP|?`_0wMOPnkt8F-6wEyPgmmmBsUz{PUNMu>kBe8Zp9Tr4*Z5cyYYpZ|O(1=sYGv zuQM1JJr|(@jFAYnWXa~MAKW_;OvmF0u*Dma_KA{O>Nr@V+!n(Zqhasy$kP9Fs_v0hk=8wRc&?IH+NynB8zv9H*;NNtRl|X>u9B2Y=Z&FF&MQNLU;& zc`xMHkU8i3w(goW5s5TzfBWnaN zW+sko2P;T{4cV2307xT*Lq)MnNC0)TV<7C>`!S?(OcE3P7T}baBdHLWLg*$|(|dQ- zT_g80lc{;hW3KjMMIqaEK_i-%pw!x_=lL5|N!%IDOkkjmQY=MmIP?~j9DnZRa;1>e8;plG-b>)Ym;FmL^` zFzoB?Xc}_@`okmrE=L0Ox|j42ud!uRdDXkA)_+W|`KfR;Fq_vCUGKP%=KpXla!P6+ zY)7o63sCG;S^6 zY!m}+(Kg4*P|<&@*OIj@f|7Ch-xbvi@sVT}`=sRBcK2RPKgm1KH|;NIVcF87Q07a5 z9W`DXr#)Drg^cC>h28y9`g7R#A2$FPTr%MjhsG7~3>%U@}2C>vz;4Sx%42(zrA3t9UcDEXMIbxGju za7hWhAjV=meF!ZH*F+kR$kQKEv4XlUl(M^tp}x?;lVb!f~7t zU(okiZ2TNc{mWqo!?x4Rwf56s81Pk8eBMUd3=?U36@$!dzYjOFK&oWIa!jfDH(X4u z-uuX?9OHYoT7(`%ng3)bXPU@4Pv#_f)ds!iqEyClHm|dii_ub{JN~h|eY~MXJw}CK z3L@5`b4X)$t^3kiiGbU^I;1`C6~KqT{#Q$l+?)HBj^XpZG-qlCI}5X!a9W^j+9SHq zpr+~lxjtSl7dRbebm}&;g<&Uv;?#(yy@P;o%`N;NgBpklmGajqs*-E8_EQka!-^B4 z>IFl(_b~|V@ad*1Sr>v}=y^A>V=ci=$qU}e(`hf>hJ97<+Kjg8xG6+ccvxVvKk+l& z8wJ?0p;F&Fs!4jdXX6iA`1s&Ag*KN8sS_oV(6kbUrD!XRx1YR(_sGx-;nx^Ah+}hp z5dy@ks3$Pb6mVpPN3rh6VME5_v%+Gk-69+@T_zA*`OX zb;FAEnFgGp3|45d|ClV0oBQski)Xm3{9dQcK-JwNIHGr?^I^_HXYc*mWjKVf9)`f}BE)3ztAsXA$z@mcS zi4Mi$i@-o1)169$XZI|gep*m@So$kzuf+Meu(GDjvmi5~^rA2VU)Wmq-EY%t;W8QE zh8Ci82NS9(+&=KTUzPe&`fsit4$VNmvuQebqI!&RPyKB5_fhL{|6L{Ev%9{7-rNXw zo1wroZ{>mL;XD_u(jS#@oXqUkoYw${N`v)>Rm=UGC;xunwXIe)1_~Hm3O2t=jeH!j zn4fJG{M!iLm!JC_fV;ynmy{)2oHHwA@Y>$A&?-iz06;*$zm*o+ob91GU5)2tQPQWg z?si*L2wF*7m9DRJbb& z2QtVLltEn3UAbCQdxYMjyb5|!>40!Z`<#OiAXn`aOS{4h>VrlZwIxu>eHk^Tos*zI z%v@y)XM=#l#yqIU3(c@PTswl`BF0Z;(Z+(5e#tHL5(UP#O*3hUAUL2IHE2qth?1W= z4gYcGX^w6ZYXOVr>!v8c0D#LRhd!`EcTJ#~dWDGs80f>^QJhb}&-Luz%R8Ue8rw@h zMBpIbN2iue9O6{5;})O=Z8@6vWIo4nM29%9dNoFt5TRnng1%>`qXYa`x5w{y}KT*jHXngV84ec3>E zJ*M?!aCc}SRTD-n98Az|N9<$*Xvw=)hp0K$g^+g&tnjkX#Dh;cMhGW|ac-;i){Xw8 z^gc|9fheVEfxki&00J!E<}(sJ7&~ZZfyHao}lJ@NP~}yw=YmotPt_8ba_U>FpK-gVNPSxSv;ly z>a05owy2Ty29C0gN>kiwog-i6em7KXSK8|4r&=uQt6`xn<66JMEy^C%Yf?Y^Rnk&S z^bkzt@~q+gr1&R=xfLaP0t#!3F16~VfvQFOiaTq=>mz|!`Fd2s91VZI1|6M0& zU`cP-q5l>sJ>CzrrLAE1YiW6}aF;eqmRlOy0B?#6*6{n26yV#APFRkdLgfI1XI~sI zi^?*zO>GXEj>mL3;Y=cuSgtOM!;bZ_~mJ(ifPUXUS;2~ zkVHb5zzTvrA$YZo-1@^uf`jB(Hp(W;-ug`yDD%OWYAEO$!Na<4qZ+2y*Q{Hi!`8|H z?6=1}>9}o=W);1MbO*OF6#@L-VgF`Ao z=-zPqtQ8KI9ox#(M+(xFB4PxyUKSr@Mp3Mf6aM56It#`AP#PR%b*}(JTKwHg8v@eT z8Th4Y8hD>oRQCFeu{zncqkp&PF>g=X9)o=^N^CaPSh2yz)H+CnFJ=Ty<&mefXizum6&0ks^hxk%62>e_Nww>AQKUfSzt<-kBZ$(t?tu-zI{pe zFkA2dKF5?fe&FhHiyiXE>{&WxGy^IAxxe+K=}JjuK!c&Jh!qFTMf;uXJT4L3RE5Yzc*K9eLlI|JU>u%$OqJ2TzM$TexphrDdPC2 z!r&cPhvEyh089Jg&dPp@ zt^PvSM1<>!tN7?5CJ8qd{#>aJk*IKd9lvym$bvsN&bTC(#%wwM3Nori=?`pc*g+>= z-a>3jmOfj(>fDL3&o$!rcHcj(9L{-$Q~d!?;2{eDXw_9@i&79(eZF~YL&E|1zUa*3 z<1e3Qk!6TisFs57{O$2ozLh(aw99HL<~+B#Jij&n5WQmdA$?VPxjXxqy1K(!+Fa*= zjuXFnsah7C94Pa+no|u&39f0UBDSX#TT=@l{rNIh)K~MLo!BJz>V)Is=pY{X%xqLy z!cfKN1IVs}2}X{{8(>9ZVYq|HLHbE;eaMY=fA&X#751bInhH&>%VL(Boh-nRZl=i; zZEOm491WSV5Oaa~RwP6mlgQAXE&n!`1<+7SgED#xGyT;sP~QIlO+n`M$n&0#>IXSi zL4T)6o(^@_s{}%Bf;H00$R_voREAe|n9ArvGXQJ3XKwWGhAHk1h_cJla%=lSHCS{a z9|?&bN`GZ}4@|~3Dbh8b97GJ8AZatB2Ed>q3@$5S8&KpX+SXm0n8(EUIczGiJ0-qF z=4l*IAPLI;WgMU@m5Y8lxgp!yWAox)BI9v{J`@)WRJ6uqiN=s=jvyL)3rYam-%+p= zY1Ii$?7pya1v!49D8fQ^2jc3=d+#2me$S%b{`(*h{3&GHV@!<&by&>U!HDbgv|Ypn zg?v0mq^&;2yUssqSC-QATS65Y86sy z>6J~VRI4R@;WW|n)7sBlUGb($3{??TjEsP!Da%kwohxE^q8NlFRhbMTw;GwRx_ba( z^w&Vgs;gffUoSS`+WM#qDZezOiZIMjJAvKTO)w~Wq~B0{eYop}Bq zR$s?=S#U4Cdi76Z?Pl?gOi3zAU?HmWh2ukQmbU7|Q?qm`!FVK8bT6)SutSl7kprF!|v{VjLebHk1o z#ymzhd&2#*oq3xYHi|T4rnfsQ)U{BJ1|K>WS@w9QK(o6{igpRyoPQ$)hN9)%2EL)~ zx5SJU+%x0w{xCMnRvG{b95?SSX+1z#)zw*pqg|7y7IS7^o7;%+72jlH_xHpdE;T}l zPkf}mN~m1^4bytrn4Rm|`Hx3cTOk(wl21D;xPnH`$q$Hra%2oWoFCa z2C2{vP|ti>6CGrG1H5Ca$Qajy>KDWXHe=}biLOT z4halPrKm$f5>2H^P!BA{e&jRlzVk{10>cos{*tUd%)1a>z8 zZ1PI-t_80_TH&3@!bPZzMSySp(V{0yg=;qU*}tA)o%wJ?QT4(A=N9je0k80U=o-hIBE^l^Aw z?{KmraU*YE%1Zvk)B7xmFpD8s{>t?e4A~6LRh-(eSrGS_X3q0IL8%E9(T8q2G8b`U zVLhF|!Va7=_&3UtXDoK817yQ^crTw2BG3Ws??geOt?99BJd-l2)B*WO-p6At^A-H1 zXf?u=7AR5Q$B68H`ow(K-bR;EHH!F;U+~8fuG!CfE&TOT}k_Yv!1mCzFxKN0tFEPbG>*`-n-GmIUFh z`Mfm9h|lDuRhA-YV|OQxFM1uBaN2=?@hHzcwc*Lj!>Vvz*N0Y{c({Pv(o@7Eu)Hix z{~3wU@kE35{6G(WxY;-{>lY|iK?SwEX3_7KcbQxoG*|ettl0x1j4O0LKcP<0?VO-s zzSM4W=x0x6ol9w0;pQ0a=r}0)Z*5)ouwv`Q^I$E(^gZHK71HR_j2=WmIiTU(Z|c#b z=?@i6#YCQr%a;AEC4gW+q?en6d~C@w&k!f;CxUvROvmBjyR6rzveA*9f`DnUZ`3?S zKOK=1w%oIaBHh@FMjWP1Wf8EI%<*w`acj(azz(*=e@6c1mt!{zL;P#cTn+<+NH zST^iek%p8E^>Z4Gm(ZNR)1a``li}R08#YhL<|yGi^-UGd8C`m8a#IOB7$7<96B0)^ z2Of8mo}ARuJ9K#%F%rvyEoS)i3%5M>CjC?3sg8h*ZYyxDH#AtT=&9vhE7ji-fU1i5_08JEE}3UA=T_cx>sjEXE2X zQw(wV^P0{ER!?75VFK9E)eAaxq+?)5-hzVOt>!;8WJceNCjcDE}3NqKyW1?@}$0)9waF zY}m}F@NUZ5HgX|eG(?d;$dN-UYHq&Z=l?~QR+e)En7Mt!u$MY~``zsOOZqJ6REhrc zw9v!FZutms$zWUj2Uf2$m`r$kaJK$el-{((aqyo*&NZ*|R=x+5^4?N)rXEyu^nG!? zrp%qGuWyMk-jvHBhlb+jqaUhPFJ+`UfBa@7=b{H(mH{{PPYSixx!AZWQb^nXei6(aoXp zq=Ei-V{xWuEW2nFKIcy3eE(Y%Bgt-p3{;%a2Y5oaAwM^djbWw>4a?=jyW%?qFjkMJ zx;~nliJ>i$w`oAvSI~UdU87$aR%=ANbvU*l@js3%)86SZ|AOXtRNHL2Iy*Y1K!X(8 zbZO|15{&andT6UaBbI_&72tEB4S&XjEK5ParQH2 zp^4M$SBPT;C6s;Z{h*UI%jrGKGna%1VRw~8^(H0Y zk{*j>gnlRf(%OPgcEYufS?FNcOhVb>7fkpa>}iFWDnlg4K8eAf4Y}F*cxw8ZXYV}? zk=HN@-_ zq$>hK0go&XY`_HkA|Lbo5iT0s+Oz@xL~kPR-pHFGB8jTKaVt|)yc`3rY3IamU1>Gg zmx*(a6Z~8kE&^j=%|{|bD##Ei!DX;T3jVlm*@bvWTc+M)TLcV81;(#=(m55{z5yP6 z0Tb`?{sIMJt%HlX7A1gtM(m!)1bMS5Nz9RXGYJh!)rCRM?C^mLJ-|KbOm5Wpb3dp~V1V$M9~4%_0!2swVo<#xgRO zjzq`2{ByX=ezN~di!~3zc+KGt!HRQ_nNmmJ^CMLL7wxAvUubLqJWbQ{kW#*!2`-3= zn?@w#HyfYT>gQ7;5jtQM_;;MKir7I{fD`Jr2mLw6PWUSdT22c9j$Db%Qu^885B;lk z=5tglHxAVHe41qVxWu_-=u~sWLe8L!t*oaG6KD3YXkZ6_MnA@g(?bwC;K271p^ZJr z?{2K7&`^Z?5wjPBT1$|aGAfK3Z|1yRXyM$HI0^;|YJCZYAvc?yPoC8F@EuT{TY5O6 zIID<9Wh&v{NMm*tArs+J*28`tw5)Pv1!DddqcH!Bb*Sa|iE!my&2; zQkxF_3pnPdSHOhHY2qYFcL$F^6@`T5+ zYD{1GiDxY;xYXcLs95+#$d@4T-S@By?FJx*Z@h_24Zh8)d0I5+8q1SfD zl)HFTL^O`wm~#Y!qAO3avBi`L)xTBd>0Gzf*7MX2f5uV7rW3Ytl@YwE*q|K&Yrn&I=hz*qVn`;Tx4((M^W04t^ramU-!oHMg%`|dQY3MsXnVl>FR$ZN@Gt{?jY z7Qjm_T8 zR%D>B8$e!q(hA>KX5pV*{D3x|GDqZPyn$ap-jp3FYY2Itr(A1+h6bDY6=_3Wy8~_v z9+&GmJ)!F0-p;{oHUsiaaYISIu1UAbGxk!-r?V#6n_hmyBiFGFKgM1f8Z|j|q{__stS$5jRz(JON?~&x zVp0Hawzp8})h7jKql`~so-*nIKE!#e!_HyP4yDMi)t5J*`Kn5dO{vKG?luEU9Gm9m z&5N#Ws2hyRl*@cbu_QC&T^29{8D>0Tm}R?(fLN<8ev(+Lk8Z-J&mNQZnbR>1a}OrC zNz4Joxs6aArj`eI7Tv@;{!bvMf(9z9-&~2(IKbY4W-20Gndh=E90Y{)wMmIonfzI6 zm5MWH%foR}<#(CfI+`2n z29gqeKDmQb>{sPMSYTw{CB8G5U&86$QWEVI8{_ieg;Zcnll779E^2cTf48T*xFCJ5 zdUgCa3-^q%v#>kpz(Sbb&!hohONJ<(L44@ZCzLGUbb24spz?el`JK8k_l?YF!-wVi z`?a+TjvpR|tI~Kz;6kV0uWxDq8gD75DN{kNEPpfiKeUpn>3FfjraQM>JP+*%Q%f4} zZF~nzY}NY+p{VW0EPEYUzYv3|AM>$<720wfIOB&8rtt$j-0_G4eDixFF)dON+3qNY z)QXa{2;yLD*Al6{wu5haLh3&}XG}=(bH?~#;d$a|hKyt&`O?@7p@Zs)Nb=XU-5Arm z!aGfZ`}{chZ)?geY_QP1|6iJQ01aXi$(H83D3rJv<3ryB1F5yMjJEHf!S>43jB7LQ z7-ka3L#8r@IXdSjKFVEs>YQG*uW`k+e4=4wp*)F9jmh zWb+jFlFGSrk)~f?&35g7#xnmWHz9*v$1RAipqTn&qDK6($b2r)X6FAIzs0v!Nt5*w zl-&lJ5E@{f&h#~xF4TF3?W;vb;&967+{A|^%24DegCW1juizleTUdH($JzRbzzCCY zk21BJ+L(-9a#Z5*8xlkk6fR{FeS|sxX@1?|=oDjuD}5~Jyve#7=EGS+P%`!o-JFRT zN?*;pfx3}s8okPD7VkM9DY^@XV4X4*=kmmw2k6r+F$?(8^kkKq9B#877r9Q0QpxTM zEY@-~L|x_)wOgkS44zLhD%B~i7bTv}Oyc!qruUQi?!%Gtiezr8uA`uQntfR~eUc@2agOO4=`1JpQ zI5_|orH+;1WHTPlNFioM0YUL5@QHd`zto69!l)UJ=?R+IY*%dK5EZA8 zJ80q^A3m3+5LE9BqLXa!V0+{;B92`V=H%k8&n3c@iV%cI+&^J^=#zj$wck~q$faQY zAI^uAi@UNa*p+jL0dlNPL83u%B>hl)7b(|9kl7bbmUFS@!%3?$5{cd`DiG`Ug9>pb ztroi)GyNou_Hui(=bNC?zq#4(Y0JsI@Kr&CqQ-Z6s{x7<4~wvC2r8gCYx| z(i?SW_Pm&m_`dwRa7RfLvLXX}@NqB?eNqTA?BY}nRF5OU1}oc7;gV$D$>tXu@hnk{ zNBXFdB5;`!qafq{<;3`Gc1|Y6<)F7Az=Y$eJY|8P`)an(su<+I3Kj>GK6;<3`rFV9 zC{rmFj6brT!z1~F@4J?1Id!Y-9a4-KGP$)*s#o{oR=2_st6TWQ6s77-!lrnj@qdUp zYIVP;8|T!E0UFB*#V??ZF(2*6q6ec4wva_<#2GT)?VVX@Dlspcln$`_e2%0F%gzwT z`x{(OHK+v9Z!b3Hcm#5D|9|1O^MHET*dDa6hHG`C5{XWLGg};fF`z+T+R9CT5C%G7 z@(S8#PZ_v5eZg}bwpvm%9Evam--8i^{T5WVOV{SCQi9$QuVLbBT1dc?4x%whU<&2; z+M!^@=odV6x7^1h>n%hsfj6-1MR{#Y*?QTfEOD5F=D>OenS~NOpYQQ<>j7x8qGL*U zEIKvnLmB+iFZZ=xT<;FGVw(XvijyaM4@QG{*4c}$;wF;?gS?tYvx1Lcnv^EY+gHZ? zJe$JFgQzdOZ=t(zG)UVLHL{sy_!1jPymAO9vS`)TZ)X-h=*^O6<;Sdb%*=Qi#jTA8 z_P{b#b;qPBX;O(0C4Yzeb8GDluVVZ~Dch34A&Rg}qp$SW1%SJ}FIdN~QP%`Q<3_J+ z&Gml`Rn#Is9kQl4Z`I?dfjU%7IyD=dwBUn__aDaU5y{S1)&u%5t%B(lkV0 z@;~mnZ^9!&a{aeBe=tHIc7DLl)d?p{tQQ+aUD!yRltb>tp|yS_g?0=;2{Rv9s*x%u zk#&YGEquB#pgFQ1dRws+5Xo)brwa`|q8qlh&5#wqJtcJs%ZXiyT-j+!TTpYcaOOEr zFAYLfB^$GO*Iq8|)CahZ-u?d*S}$!v6@o6W7CmqxPo}hk_J&ql(sXPlRzG_>{{YD* zJ0E6fugEi2sLU8)bG^+J-VzXjwztw0i6UCvZf3gu^AlevX^wcuc7C!pAw)q~sC5wu ztmH~!RQNb5sW)c}ITtVj;xW@R;Y%OW9V)hYzF`@)QMP?7)gkUBZ`db&{R3I|F(UM4 z=U#c3h*7nsKleSau{oGcqDbAK8ThDYG?3H1gdnG6rFUETo+2>TWuY1Fi^0dn3?fsA z;8Fi>SUw4XRYgREqtCq!stPhQNb+Gj^!F!t21eHS@4b#~Ep1;lD&r*NiRjTUPuP-d>wSal}a?jn{AIhQM*A>jj;X9p0XPcYF!>L zJ>s%e2rLeyUYmWRMQpa#*0T82GKS=T|8-_x;+Hu_z$>%JFQ}fjw@_f2PNm?focxF2 zop|8}wua>I6$r7Bf3)nGu?W47m-CUpa)1{}>K-Z_1;}EyKYH$|vl2QhQwRb?z?D>6YgQa4&0}S_lEtXK~Q(dx24+zyg`LYBq zwZ%ysh>Z*Ggk-GoryC{KUo~=M@hQpyj|YoH+|IqRVEhK_YQ=wl5#87N6Z{++c<@kR zWNLhM=h>b02Kf{{gbM6Nk0G=d1Zx*Yq}cS5XxE{*a9Wr8}r*;K+iUvMqSTf?L{!z#YK@*IKKO=4mtV#1X8^q)c;zZiD=9$+`57Na> zppIf2Ng_a>a@hQWm9=+&fDI+dtkSELU?Fn=Ci;ZdFhDgOd`R)UPQ$ERRT>oWISJ-( z<=vm$X2rc1I^4(tP;qD5DB1_57o_SAO5(SHI(;5>E3T`z=0~>}yWxf&3((hA+kym+ z5_0nR36eElDFxKl4R)ldO#JqnS(Qs$?n1zTjy#WbmdjB>5k?a_j)m9F)#N?vLVT`` zBC1OCm$w9`fWUF3TML>#8#~J^YNn|G1EpAXN3AbV927dR`Va*$)BJlJQ<54Dep|76gLw5ZdpS3pH{~ITEsY>3| z8U%;2!D&fwH0oRqT%{C~{|kD>BY!RxT^nA>WwQ;W8`&j+mXNmhsH%WB;JS%`y*XKO<0cNyuu8x%yvYc4oNj+a&LpVFd{!&D*lV>9`22lTgw&*jJ-3m^u& zm;{ylU%D_x^fx7MBhE$8hEI$Xq?`hI01uT~WG z-}8K8OWR~hXMF9bf^M?4lxj3$G|C9-X@Dl}+BS^S713*ANqYY`($l{Vf7AgA=n0Qv7dt=?50QL z-;M1_L20$T=yH3A>b-I?pI*fzgVG%y0Eh$^XRM>?g*6*v3RF}>njbXr4&mN4Dd%@~ z;K|3z0UHzPo;8Y~i0tBipnb=KrqQVmO2#UMh8`j7cGBy9F`jE)^&QuVaT2ln$IY*! zy22{4Qka^2qq}aqp9oUdv89Bq++b9N)6ERB;9tt%h{_q4*v{JGjypSxfUo!ZPa;fB zP^2z}7B1X9UrzPC!{q5es@Wn|~0$=z>$NhAt_Vy-oHqq*Sxn+H=>Z5c}V#&2-vdN$rxMdB?h#AV{@1YEx;>Qavf#%TWji92he1XDKl{$cibj8P)` zt%=9?y(4M=2sa}qO;!&WLK2H^B>yW?492Ngm-V3v+42n|Y7ys!jkA%X{cklhWm#SO zWq^>JIf1uy0;DgN7h$p_x)%JVjwBNb`D}Cj84Go#|06U*Ke5n)qYx7M(5qseVrT&T z6kjv=9X4s9=Dr+bZVhgjweF$8e?+ChPz9Zcm4foco_eG*3fEyKzX2su=2^oGL3R`c z#%z{hj?h0qA4|+t*(mM0MMa>Fz}e_Crn1A3>mR`weS#oFHB=q?%rwMMYZ#Kyc6lL*yz9?X55txk&oq>#8Nz|3p+PXMsEiV1!SD zDWS374*^l&hZege+{za(lMyNiGY*qJFy2(2xG4||2cE! zHrShCtZ1ouR0%k3PL_GtBt_r9rtEQ!@=?sgz#{}5bA`u5>#$mm3jVnZlqeWIpt1r#5MM-KCm>x^E@qm$3rS~Ji&=F;$j+*amAPB$ulp$*E zp#@5gs^fP&Q+c_}5$?{m2Sm&ofZa=i> z-2ScPmKw%8MtYZ3Wy~_r?Qy924maB=GZa81`~gIi^Bk(AsAK;`(M=Ek7g(3CcAAeS zF4-^MQ5@VnOd217{F`2o%+D4Pg9Z#}mIX++lAUrkacr~=x&mL>{v;z%ti!Kp3?u9sd&wT#m3opPu zF9bn~CP?h`#Khaum#kK2?`EBYWM;ILk)m~SBvfhXH?Z1*f3$i5d+Is<6=Oj`T)T6RE ze!>npvC$tlx(B!sLK@g<|9}0)05=po=gHn3JECJ4I>hBzt;@|tRfVCYsnTziLVIS0 z=8c|;vLoY5g~?pcp-3?sY(=*2eG`Xa&m><_S{_mIz9>Cd$#EeRPi08$BDAv82ic=< z)Y(Vku1O&(-Z_9 zT=fFp<|^qSnfcJdWPi~tsb881@3A0k7G+|;`BQ&`_3Wz~=?KBsXeA1xHDhodW6`1X zz;L}@C9#VNmf&!>E!1hy1YgXsgNriQ)6{T=g2EuCRA*JvCQJY<7(snulv4B3j{bxR z75G99R35$7Pniaq3W3Ws(Q}YnIm~7?NnW5gt1ONTdG`ibLQ7WVz*vYF9#oSkI6$0l7W+jNZlT;9{*?8h)uyU`frY4ga z>4Sj9a;X%e8$>AoG{BsEMy2SHBUExPq@H^_CU4DBRng2S&pI~_-s;XFS7A;#K!HUy z7ne>|@)v8|!`Rwgepj4BjrHFGj;jqm2aLWQvq$?z zS;);2F*8aJ|9>K)o?B3(mY*_n^PNlB@@0&baN`pQXtWuN*$n(~B%EyQ3KN%SLZ+Zc z-%Pf^mUB=~YD>Q`$`a1(IUaIa}Gn#ESO>MZ^R_&1}DRG`t) zcYY(9@=kuA0zxTIoDts3+Hpsx_|VlZ(!Pq=+7t5%pjn{7VR`j7iMzK01_gV|qth~k zsC$^*K$QihJn_H7HMjm*n6Zm3HKgelh1}yu5&U^Xe5^6fnT`&7e!lTuSfWnT!%d&R zN0hsXTpLJ|EW|B6r@##N!E!}w&{QuM!s^0B#v;_bh=$?+P3$uC6uN{oqZ(#?+3bJB zqyo9>50?iIx4;oE18L=VXUs-QmL@t}_4U*>7EKeYH9WrAmf|i`R)^F&XpV<43O#qYeOYaJI-|QO6)mxB%VIF$z7(xhvm8|!X48r zX^IB)UX?F8#muo)d7y{xJGVrfw0vj-I%|mh+fo$4wJvx^`aU@0Ci9aZn>xCN*Ua{J z`Df~mUV{|m|0=)xF4`Df!~Y8CtuK~3U``}ktfF4D2r$5C zNxK1DAcgZ_PG$%3FT}@6t>KDTC;9LE+W$Ud2YysQkMq3k#{^O!7n(o$ zph$wLkhu_!4_%}kJpeIVtszR0tSBEbxR*gE zbgp+4va}IJh*){&LF`>vj>{$*tka{SaozdTdPjV|l(G+39Z8|oqAHiPWgtSt#N}>@ zkl^l>(b6Y(y|!CHERDlA&^Fzf;EYbN_wA+VDcKT(QbpdRbfUpTRw_MnXt|(6WdCk0 zya#Xn*1?oZu0XTD=CZlQzejzR*31=&lU^R1v?I0>DBev5Vefgm<5To_f6?ey(~8F{ z`fp%V$I#>Nap`oxzQFe?yO1hf)trE5(zp1WoQw@Y=s8v8V{R$Pz#$O8%gPC!ZFF%ks|#jAA1<2Cbtw5rjb5&X{tmSM2$h#3pnN1jGL?;vuYjTc%PsXhfh#9PG7`j$A7MU*WjURx zjr^tH;)*&ccw3E7hGG@YvJqZ9W_NWFbI2#O;3I#P)E_NawBf$WiZ6#i<7$Mxgkmh% zhEf*Ck+pozDIlKN{9tx!yR>uvU_Dk}lnds!U-I#qA;NeQYaIU^!J}wD`bbKI7bgIL zx-jPMemSTms|#msH?(q z_@qB-6DvO6a4{I71^)Xj*m}r>dTd5WVrx)mWy&{OstA`k@ePr0yc5voe)@#EZ@UJP zvG5vsbDj)1cLyJP2rK9K!;{$6cuMOZ3!+*F7XMGXH~)Xt;__u#OInMhX1q%l4xaPL z2NyT7k?K6(k3^rE(w!P@q>x3d%#y&!aK00Gy5=P15Zhhiv-ac8ht0Omk9d}a8V`~v zJOS#Sxp-LtY}Dr`X@Y4xkS^`6U?JH3Au}^r#PVdkt;2KZ;2n3>IDO%1?EAGjQD&mq zs}g9^Wn-*bTOZuY&@a?aKAn(vXkzHW#~aDKQkX~B%6AMi{ouz%sBz6ko6Z(#Zo3x= z^TtX|k`%748NFI%b-T;R&=7Ow-BB5ugmoW^TDf1KY~$%3D3!wt9aDYf^B3INCFpD}|0hL_sC(i(Jl$Z6(jTkV@d-LSLFLIWE3gn_yPQt@ZzZh zg!wcv(m)^ir_hT_-vGa9_ZWV=%G_EtI~Jr6v(P$+0{qFV9>M=Kya7431{iU&MbLZA?U-XV(&dcE5%H9 zGS-@jLwitWPWC+;WSxMInsMNZ%o>q8`ym7NZ=ok^P1^zPIQcMrxF?>Ey1cCu$$!_X z+#p(R?8q=E>sw5M86WVkV$0a8xnq$B2ajW+Iyh?EFaa;H`Kf)XtZZt!?5Gzhuz(kL{<#%F z&2Z3p?{l^#EN{GLpGOOGfT~!7ope8j_Q8Z{)Wt=L=5yM(jREz^Wlv;+?tHArXWYNH z9VaXdLaax%Jnl%+4lM^IgBQAkdee%c(zL{MT89%+=fBkqN`$9|>Aw63%$A&yvJQSn zsJs>;&<*yT6Kfn^(Zk*9#Ay%3A?a7C$%>yn0i**Z;Lpr5Ys9o{gd4UIug2CbMdc9 z>{{uxs4DCWjcH4^ALTLQyBPuo`5z+WU?HdBl#LZ=JOs7UU()s9a%`{azT@Q*)?6UB z+futJ&qzO$!9v=DRYJ%YqQCn0UcIf5-Pp8z#WX);+CyE4)_Ss#O)uG`umx+B?6-}9 z;au&s&P(9TX~t_mCH9MKm+`TtjZ~OU=b9d#7V9Z9kH|{US`Q)a74d_UXY)V*Z z%VUjlg3zJEkJ-$g2Z zsHQxY=fFq>Lv3}MD!Y))9OBFQyuF+vWj#UAw5_yW%`vSNl*h-@7(!D=Sj-E}7A zT+-V8FcjkVL%(+360a%u^Z9F83Q!P1IBvcWB$rB55eEDft1~vEw2-W=4N9ZM4@&O< zx2#4yZ!FqEVDOIy_CWMf1*>1^XMsd(K@B7|-c}k_P`!j^;^Jwz$R5;p!SSWJ8*%aj z@YQ_tDe6 z!qmCH4=%{OBu;3e&RyDBV8T?vXEdH%F9aJ4IAf)%zW)%)%wrc6WU{E&)ZZ?3e^O5% z<5DKZy7ylty1Ow^VYLX+`==^lBp1)pV=Rc$lO9s>SZNKJ($pFE@j^dSpZ0>srq~@a zS_)G!=Q6z;c~KVY>hjQ+*tfQL*mRJa6B>ezjQWzG-ss)+oSL|m{J=;`dVkm)XrS$+f-t%O$1@T_E8@Wj<998L{;H7h-$G-Sq((^co- z7}1(hegfq2Oq_26Wak7wu&2$Jx-;Gh3Wy4XevRgn>#%=i?+I07w?s?3vtcFsE$R>t zV$~JFZ1!UGd5RD&BmI>G5;ovOK8?(*{b^Oj5wIM6ytQNhDtTJmr_FJnhcxr_>HeCYlg4Bs>J(1XUF~JW{S2rQQKxnBeLe??aW$U_4yaK2H0DbV{TQq ztUm^&8#qLDwL!%+pjz3OdRY8{z#e19e2KX?FmZPqKDDK?Y5;TAr!DVAvS*DEcgcBM z3shm*GdZb-H}#S%q^Gj`85<%Ii?km7wc|_LC9EALq6nhPBX=3@8l&fc65%tSf=D{0 zGIuL^6QsL1At9jfH!o)1)X|U_>N`cfbsyzveYnoTOcP_(bGb?>GECd+)7`wzVu z9S)Clk;S7A5f;ea)41Qk@8fS{?LSzvNx_dQ&c&`gb{dYtP5G?g(Qs|1HvsV=!f}nN z86m|z(|#QH5HZCU1Kj^PVV)O!OX(MzWZ1>Zi6aN=@rG2fnbKV7#jS=k_N26FGab1? z_)4kaHei0N@$lSt&1$*}hr}fUA}ppQ-dLZ=ovdZK#X)LaN^Uv@N0f8M1<9Vq>@IP@ z4`@bKJY^bMh23!&G+%DF-B)s{l~kry+cN@CRmpQ|pds{DJ&cIRtkN0(Ja1S$H)1&J zB44^hi#HTeJYhNMuV{$iGe>!4GMHl zxz?N{VW(KsL>GY%fwAkK@AmgFQpx<(HPCU}8tc0H2~~L2R!ea8j7V29idB$H zzg+EG!7saL;21t~=oa)$#%|~?>@X|4ALIPZu@)et%9S6e8Bt*GH62lNH`xZGwEWJ5 zVUBQpXav6s*PWv0x$#Z`i|vg^7xfJ!9?afvLUX2tvKqrY-MZQqc1tEBW}zGtdml*p z$1Prgwe@UDuQC^Tn=&kB4XUm^CR?>eQhMKu`XN^@v&IL(e`HQ*4xdRzRYFuhgjp0{g0x0{XR|^FL?(RHd?%H*a5jQMZnrs!1uXhx3Hb-aXqJ~{Q zBf%v$p-|gQ>$0xxv98X4?i3iF`Rcj_oI+ypO9RU!nartoH4s`0qSjTgKGH{ z-@#n23|g#i!xGymxS_7{Hos1Gk52HAVC27lA^~`!kgGZ!aIbN^p)|YpB)irG@hvFj z=p;ql^;)5kKBIF`FeupQ=|_PY8S&@;O!ZnIFfe){lW5aBDx_f`msZXSt)aD_D)#r~l8cqwi@Ik$)q)CS$OKU7eGqO4 z>yG9?>SV*i!&R`iOf-okFQuh>`dlY@mCHubq{xrsbclo<$Z?g_!D*zSyAF#FHL)Fi zYSVqXu3)I@2Swa;d8<<-+c0Z+xztX&BAeciK`Lzu`3`2i?(_Qg*W=v|(f9G_odd_0g#@|43S<$y2hcjK%cR|=O=i9VFxoT#wwLG8OJt+vz ze0C89)a{crm|c5pFK$e9b2sDEWy&>kF#G>AP#i;(#O+5)-_i?)yZl}@Ck5cqsM`j~ z*8p`uioc!K`5|1hw)+JFXlEf{qsZ?ie7|1hClY&;yd>2nxLOA=NeOqPF*KY}ghs#CPq@zVFWIhc_^uhgN+W1mnxZD#yk*8;+PEe;*SDbPE2=fJ zPBrD)#Zb#p$rW<*&`hlPI`Vv#~h!YuM@0%T9kl351Y_Kdt4k z0m-zm0;>AhhEw1rcxAgf+NoL4CTDY?u8T8%2RLJ@ECV)M`Fyo5x=xAJ} zL#aL7ChVzz%fu)KE2FYAb1M{1v>rjwWx_YrDyp`6xW`coOuqjwiN5sg>Aj51UVbXC=4Q0pTeuN(%BOaKzGPPl4TP!M zIXj94Oj--ZQjS*BWr_OS>YGKO%8H*1$k=?iS5h(9t;rMXmf(SAOL5LwPM;IDoN!tc z5JH^5i$8C&T0df;aB;xTZ1{a8`=U3Y@ioPEQ*)sUl{i)5cWOk#pGA)$DKQVzOBHok zSoM}vr!auSQzXcXY>d}8h@l_468nhPhi+U`+lu`}4Tw&CABl$>C}GWvbrP3?_ZGkG zTQwC%_CN^E9J(j6(*I)VEH>l1KPn+={*Fdn2kt7cSR0dqiFoDOVrj@o{ltbM{j`x8 zH>uIJlSTe)yW^+5I-;>+nVbf%v92x(MTp1bZydgFuN&2Nt)O%D2uwHHPzm%4Z0Ci! zc=K8p3wS_E$+CpGP$}-`G3}noQj@ZApikD3bw=ssFRmv4S-^Q`XK@>kTCNu4Vg2Sg zB)yFDubI_pR9hss@K+;3#)SZOdKRh1yAvw%Ou*Ca2>PVg^DBJqqI~`m>j-nBA_L}K zDQgD4Ol&4I$}rT#spD$qzV69=-{2f-cR=36#i?~3kw(?72ENN3v$n9+El`iAOgaJ! zs<@uXO`vuQ-Uxea#OE==7Z`f+6^qec3$8&bL*FA^rW7>H6WT~m$LV>j_E!`gvNvS= zWDcvf>;)BoH1+`nZE$$uylRg$8g8nJH-fEIf6XH2|28;BpoDW0i4@ZKUCZQ>$UCJo zrJj&Jip&ytn^BT~7OD6t4N@eqC&S#%gIoe;p?pQ7AB()~(P19>U2%aqGA1|gcPw5$ z<-BlXq|E{6TrbC^?~2m5w+GGChb~5z2I-q$r$4ei!Ry0UR23s(YXC72d1=+%mWicx zF}ia10qox|i@q`fSscjoPxF++5O=eQ9p~u~js|uNkCll)?jD7ua0dG4?QRW*>=9*g zb?;kdG#W&+=RI=<;0?X7;l7^!liD^*JtX0_<(gD)T**yy(8DwU%V82-H`Vm7s+M) zd=Fe}RBvgh{Bswa&xqLi9d2VO6{^&TIDqnXRh<=x<1)9}dM_K`*wB0j?3o#!#|F)& zyk8IUDlX3VhCjChSVO?ddo;GX`%@>#jxK2CEH@3*D9?GdTG z)ID6}q_&6M*JuG4>wz{X$N12EsyV@QOVjs)@4BvHp3w1JO+3iXftksRs*xNARL77{ z4+-&t>wj-IQF#319&A7`$+iHnAe5qxmx{U3Q$a>8qTZrK5$R=>ONHDMCrEX+xbE?` zvxu2dZ!OvS_cIHbvZ*cY;^SfJbjKu-)DYuG!I-5l;6kHM9EoY(@LU!UfWQk-=Su;0 zKjb?IvG(hEnY%{NiE87#2J8w4b3$A!$b~|5nNeM=hqixFE8Z?QSoJJlRxZz0 z#y8$}RIc7&V)74PCuj8apn`65%NxP2p>%QmM$?@O8ysi%zX_r~m}dw^Ck~aR%(J&P zy@%zp_F1ha`6ZB9-(l`q;TME*j|a=ptFE_N+!#}$M;*FVs`@XpokD5#Y0wds;2N9O zLtTe>rt-0h!x-6Y?+}Ebavro;pU4Ry=|1P++koIGIJH>C8eyILZ}k;LAl;$=JlZF^ zCyqVLi6^vSPst#v(*^_CEttyc^B0vH0aa&9b>bpwdyKI8#YsS~#& zvXH;&`05E#6S)R8s5A9n{rq^sX_sRCR(OoSogqEQf7O+rs@bHiI|}M5Txk?qP!^w@ z3lRb)%jfY7g-;1XG&qVGkm#uWapF2E2`1k{{w`_|P~g8DXS^>gHxn<|6`863IjEY| zSLc3v%dTDW;*5&rhLtwlas{HZ`HZZrU-B5)MT(l)xKet(-}0i6x7(cc@{+6v8X-{|uQfZV&t>Ca0CV+689OsfZC{$_dM?z|VC z^+VlHhrN7);2_;bu7_dbh;%#I|Re2DBAh18Zrz@TmoWI9MZpew z{o>6TB8=x-Q0{+6=c?2!{`MV}@F$^p?#4~Pg}IC~?3j!DLhEZp9fAJa8@8k72vsf0 z2`GdWHZ~gZ^5+{JjdZ#zqElrNi^q6nbYy-eCK4ek^(#*iada|&&}(44Z&3^oWbbDW z060ZwwXJUgyKE&Z8hXf|hKPcWMdX4*Tsyh$SJQ+VLTs2mnR$!t8c~XOm zg>I8@FIe|9LzSOQLp4#3NJuy`3lJw$OlA-enOwf{Tzzh`@6p2<)pD9F*N~j1jXNK z&w2L@k8r0P5i#_puY4?fa;lohgAx)=P=_eF$n<%&WtVm2sh{?CUXTL7Eh&Heo%~lJ zs2Wkx_!~16a_Wefr(}NiFcwU&jAf|o@)WQM3`|0#=TD3;VYF(!pU5daNJJ4swz=sA zYq%?5n;)=LM!0z}DBFS=OB`4L$#REvS@0ONX53mdKMrDvBV1;NvN=kU1CbzU;}_>x z#Vtg0mUzbfi$&R_kz#SaW?7Pw6Z`@?IhJ&Nz$wOT#UQbEdB!>ukt)?&Cz%~9U2u#% zBBec$2vDx2Qu8b^I7G8`L7LQzXwYjv5?zgci|%N(T&aczO3XNJ&irGF(DKZULVtuA zKs@6Oh-9JXKs~D~S7{X4?vS45T}DPgGdJ3;vcUVoV_IB7nB!oOX!>;ty+tg;fRE%4 zO<4BEGi-A1%BlUrkmU+N3{K@1Fw*#U7ed5+hI24{>(U358VedY3y)I?0YYuOrSuf|Y|9?rD%ytoJ@CuinAPBwPjsxYX#Xx2C#^aK{dSXP65hS+QrIA1lCd&$ydfHlLJ z1L{V>d|EOl0(MrIL5OaE40D)t`zKKYD|BXK5LuUpQ{WcMEuM@aAy?d>ctzWiX_|YT zwI1?vt(Js9zz%rgmS^iNDfP?vddje6=p4ZlfGSE>69aOE-$D3*){F(%xs||C7{FB> zRd0eu4G^6lH=8+0QCvGf($!byR`KlO*Z9dy&a+$jNj}d(;~MdZ71GXwwPY=vgEy6; z*XEgRyh)pcZc)5bK4eZ;CzeLy)m<&jdh^2f#oJ!7*i+X{lJfCOo6Y3uv!KaW7_GJF z>e4mzo3|+gD8f`iw%cvC*%sCk3qs`(4Y_i(W}bMBM;D!6RXCE=6u%$jqupjH*TUa^ zl)(RS@N`Xpd^(w%%)3yXCdtk9PFUNrmhKbsTId`(N%rfxxu{*V-%?O3b~Id(Q>Gb`IUc@9>MnUq(6))CsvgZ#y&yDmZu|R1k~80QRd$3!(4Biv_R3?mq2nv%3)d%e;0imuL5At>XI^ z2IDnkKIesM$+JHlfW%}hV8a%1j;wq7eT0;qIIOZK@<%>JhStbX%8&*nS%QE7CvfgX z;!iH5jRxF>h}2ol!j$6{|5ahyE_9}*!u2E%(VG7extkI?99ugPMQ(~|VJWU=PvxeI zyc&uDnwh{}^&4%r+f>H)IxJ~526c3K?r?hAN%R zN|1?VY$M*}VjZYUleePEzp1&2-ICj2Z>?>6!Ysm#6K>sBtuZGUSoql6@Ahe=*)#2!Sl^7R58DfBXk()gED3=M)nb_9q3M zet~2+K&>s6*eVi2qB}>&(7-m;S6IP3wW$H#Ara{!o)HjI1+;$h)||lu#z-p`H@32) zu)J!066l@>abRyFvTz;^QcJD*an zV|7Q>uACV_zE1{QP?9z?=nwYIH-y!U;98eb3X-I(IY4Kr-oWEA?bq$WEGLzN$oj|y z3ZBIPmG9v;m2l3xT<&~Y*nlwq7UcK;fAiPqS)6X}nC&>wls1a(VvMSvdQOK4$_i)3 zA2N6#%1}y6bAbV4U*#YT?mXl<_V8D_JSU5&&mVWy!$p`qNm*z+Nia<2NjjE zeC`C(fOx|usEq4BlGy9|fxe@ejw{t>Eg`+fVT6)NB$7!al29lixHr>yI>WW+7m-}P z;A}W7q8h=%ncmC!H-4DUNabVZid+=)eAc8s`}6ND2x2YgU>*vFn^@FRgXKrFm|E1HDd}mfI1YAYPPS;vrG8pzXvkl#3j5R_q)RFGX+b zwR84CB0-j0z3JE2B+oN&Iq)Xzn1j_LvwqBTKHCY1E^>1qxWTb6)dTPSnQ}=al1U_z zNhFdoBjFly4N9bz|2JMD%)vs{~SyS0R^# zpZjRZV3D=@HSl*F&2&N|$)aYlEz2CH1)qtjed{a#hd@Qq5|3@Ndn&8@taC`ygGNV> zaO=F#R=wb#jrC8FlAG$8e}iR$COc$IIuET*;v?QZs|K{q+fyW?!U-iiE1?-KL#R4w zco*3tZR*$zt?_LaZ4vJF?XFv-HpVD11)9Y}*8JpCkD!yGS3tK&9$Zlx4WM0g7<0&L zA{F^LhV_DEU0*N64AK!?upHltd9!PYcbYxoep~Zg_C1`r{{TfmPBsu!f;G*f>P8dM z4G#MqqKRg6LYXnoSUJ2YhR*Uif-Z|5rd-V*A3^rQQKFZuRqXQrOd!q+T2{qHC|o$n z0z{mF6G&?Cn5KgijF)tBx<9(kGgwVw4PYv`|6!;%`Lt;ap9H>!LBont`ya}v^_8x9 zSv=&9m+U_$zSD2gyo!}iv5fw#V1005q-^;(G9b%65P>w8M$GZ}sK1 zEm_eo6cQrPa~1ZlpeHUeemUjvX;v|=W~@uQ=W<;wpP?$nl~~mwkyI1pNFweYsaD+v ztr7ZNUpv5dWyBZxr<`mo$E!ONk-Lh=1^FDEG20f@UwZ@FYdxK!KNV*i+9x45^(J+C zU)dMJ8K&i8f=lsf&&Ic$FA1z-use*J^B}=4u2snJ3M7akOHi{jO}YV}XH-m^DAXx! z*!;^ulQ%+V=5k*9vpQL%4Y$@J4V8`I+}G|zAKYG1@ERQ`%&nP}@f-4rkI(MVf4qOK zr%D!iXs(@;?GxRVQBF%u1 zFIYSGoIj3y$e_s|G-1lnQq8?12^<-@c<4ahdmN$wemvowl zposI*bNEU8h~K$sDD?V`t$;m=og_D+0myoMqS!vHp3ao+=s`4o5QQ4r_oK=7AWW9C zmA4%;uTws&Vwa&0qFY;j+*(T`Q=G@-Vx(`sB+Cxsa9ovrE9f>*EH)DJn%vj782;vA zZg#E@d)Ww|YOv?PJ?J1I!=;$w!GtAF7iGh-#AQ<9pNuBRI7VAJ4Om?AgMg}^3-~6C6pvE?AYWT*87nJ7B|oM-JI1R@q};BBkSbt zR9@)joi+xj3k(#uVrAlubh_(vk`{)ie>&ys56;h*HYD3U0LjOi@iAu&L+o06^U3gj zxr8>>SKsKpK3VHpb6{dRxz)^ z`S-3Opy&I_QDjeTuhX77{klyxSuF$FKCO%8pin_j_pDNPX-1jj*}skNk~uQ8*ys2-i+6s zsI(K7_>wv4(KDYi@= zy^*dY*P9y=di@s}B;uK+?@}p=q?yGY9g=P8P{A%En_;IdWanWg6(2wR@lVI zx=-epV$bRsJn@*-0r`^0)8TndT&5!zF1G{gxe`ax!1T$Ze#~3gv{K$2H9E6uk93y| z-)v(0y{>Cwd#@#0=P~1@4Z6_&Winp7!9(7-j9&TfqU}vEoh3SgygD7E3u(PH$Y=c3 zu9dyOE?kZP&3)mk$Ckv}jIYxnJaixaRLiXmB2G0N_P_pt$&Lm&^;%Ztm&uHTaC`D< z@cm4>+x(ys%$}k<(Qk%1jB`Qq3c=QpsHqH0*us#+YIfR18@jL5aOlvTRE;VCmIKkU z&O`c6Bl+U;6Frsv3Cc0Ne9HW`QK6s3n`%$^#?beUVCaxW7=YP93Gm$8OdaaS?x+7M zi`#SIqHXpw?BiAPyT?8gW{K%Uzpu!OKd2PNKlJt+z))6n%Bqrf>-1A&EHroVXsxxH zy&}vkR)Q>H4DP?~5T=e6h!zdt^R{o1E2AOsdESO`!_ernUEY)jr5pB(;MHixnVc)| z!lvw!b%9_1dDq$8I$G+`m1fQFS<`ZOv@Chq{=y%>2n~1VQjW<(t`oA0ZdfLrvaWWD zf>edO6UcS{c%Y&q9k8LC2%-OaV5BYfMocQ9%lFR##VIYZsnOSzThykT$p!P(-f8Jp zPVS}9f$8UdwZg8b$XmdE*Xb7qxzZWYtXrc&Y;dKalSA0J)IiC!HWOj^##$!8dIMAc zfBssOo=AIP^Xl?*SE+iAAWNF*nZ3Fc&k)2K0&#(>TQ53%%N0U0%VWv@XA0RwzFT3f zoC>)1)6|TOgcVjbI^ya(GW-~Dn{Bor=24wR&$f)_iuJqpz*^D%JPl1>w^LA=ssR0w zS3RYfnBaTFl27c~>L`T7bcAH)H#+rVnBJtIoupuW9-M{IToJfnnX$+!pA{~jFVFM) zfhLNfoK2d#!~Xucp?+ifEr0xJDu@*3<;cn-lcVlEgT(E9lthuS$(lVrPB{Dz*Cn5B zCKMUapZ%=-dePeHYK|N(bt;-4^6N5Lv(nx^ir}8j{h9c`_Ht@Hs$V!E64=!ahO`)E zPz#PA1_Iq{_lV-TPbIGI`K_AFgi=-)W2#1_W#6m-kY%5Mpee;p0p=}=h41nbojlFlFEtx-S z9}@gb*I^PC5IyBcW?1U7EB$UDW2~|R^o*Yn5{ZTnHy=*l6jOO=(Lvf_-dC~N2IYCC_z4Oe>8H z)#P_ZsBGf@WS}l;Kvm7fsM4IEnRkdBk02w4nVZsotmY^4>FF$dD+ONN7x*UhrQqx>WZpc zXAhRSHr=&Ee%+2g@%221u1yw{e(52KEtM!V}K_a;|T!P0gQNb?dMA z)I7}byLqgi(8SJ^e{Of$;aAbqZ-0m>&yIZZ>TDOCL~E#h_thOi|2UcZM6^nMS&v|os63bIHB6>g(ruX~He0leQuyxj|5+AIu;5FP=0R0iKJ~QZ zJ@}}J)s#o42h;Bf`|%wjM;a@j22hn3q)2hZ@&f*?!M2FLO|DBC=t)Rm?tnYYAISea z`ea;Q5c`{hnZf7o;9a1lxFjpQD-2Rqf>x7nV``BW_cjsdhVuT zx&EoQ0=58!YUejIn{I{nhKqyNc1WK4?(ayaQ6#vnR~^#SXr>$c;ht=3h*^Rs0l%%H zk~7X`=qR{u{3WVB?||uhPIiTPnI(ePDjWwu#OV^l?>IxpW+(un3Z z44ON6qS_qj(nfkV6Ke`!YrL=w2&q2u&mtDRgN~ZfEAEd%_kaKe@RoEo-=;u7x*2i; zX7Z)j?n7SL4#}AZs(k^91WT^pqrOSBGCXS1h(+2!h_>1zGK?Xm(Te?}km>!sR%6)P z@3>O>8zp%jdvwcfuV&>-fstyE`}dc7wA01$sUEEE?2e(A4h>EfO4bk^D=aSE5TXp~ z;U|D=#4KqqIU7g3FUI0RczFML;>77@y01R6`eXyloF8i8ecWHDQI7v!8Su(|cxZ}C z|9}5J@=pc*@B*kL;ujZnR&91ceBF=^m+~+2yDy0vY;2$jKA30%)wUI1_Lg~Dy@#EMULC#fyCWG_s@oOH|H zQm^1ka%levzx^4QmeW~Az0dT?7pDIY8w?lV8ST90l}ksJ+zSEpRr;;pVDaE}KmT)Xn8Pq!H{V^z3eX&-QX|4zsTmWKjM+BQ&?3)L3RMg-YOWM z5^wyGF6dJh^y0au5G96eQ+Y|S>Y_a(u_FXe9X*Zwa~3-7nY z>QiaMi`^WFJp)I;C%&*g*NeVOaUb9_GRYKKBex-v3q(H5(a#r8wv06CMsuMhHcRYYlEGDZ;JJU!_$sAmJ0$R7ACM(h}5I!SXb^n@!ZZV4!(ODDfTTA1u1r zs$8t++cBjfB}JgibEJvXoFYwR?d82@S_YZEu*G z5O;<#DsyUX@m~ka!xGP;@jg40y$B>R30^;`2!HJ&kl`83ZBL5k;PZ@8kG7Jm^a{ei zNpflc3^c%Qw@6hyiSEsTwh90_CP)M)*G1Y!e;DFhfnmS8MP zmrC{FMMtxS#=6UNM|s4>`L zIVy$`arvL8S*a@E7s&T}lj}8)XKZF}(wZa29;$?A^}rVW@soe^1$qE}fjbcxGtQ2F_ zx3%c}VnE0486!XcfBD;{HveFz-j*kni*knma3|aX!>FK-qK;93%}2%=h?kSbZA05e z=K~+zgH1cR2(c{d=C!Z@t_PpMw@u6TCr<`f++G#kr7iq1<1T0A!#Ybu75`T!)L%)W zSSV>FeqsZz$>oNcz8`+9#KxuzhtNGq*E(VuQQ9R^=A&juJ^WA;}@Cm6~)$cBR+1LlZ<=!%?-%7#01-xSV8SWABrhjnkgKk7D zuNCSzZ0>(v%5RBJTyHe+-hz~W*wtJgS@aOFu=v}T0)iPM#)0UR6E`)*Vcd`)q1urJuyNDFhjym1JRB`I{u--Iz z;4>zLSTa%4f#l6Jtac&yM`J`7=pDE*hlO(2jxBo$+F4-&1*SXl%!}4>$(Srb}mlk?ucJpQn zo39VZc~^_n22}bsa%pe}375oP$N^9aGee)m;Iq29*}ne#x;SBAAkW!2>TYQEyE8qk zxJUk=FEO7^(m;;l1iu)nc2P_aD|-O0GIfx7;Q80C;c=3-&wxHQ`=-(~e2~~*ryN#A z!;=^%`@@Y+iV#2z^V7nQ0s6;L`OS&?s9Ha&O6}7IO4V^_`ua4J2-D-AT>(TvfKF%< zTs7gHC$#0HfuE*>XhzmcQDzyc*p*v}djgAaW4Db9xx_9RV=JQ<4DZ2r7mTaD1RGQp zvA4Kkau^1$k7@6~l)Ebg#v7g3tFL4ZzYs%>d+sIe zgC5iwmXKpKlimG=;9YFL=WLP@VnL70nA{7i6wJkH@J5@RC4~c0CW6CnxkQiz^GzJV z@+Np9YbOMU-}b3k0>H(Rp8Q%Y3iGV-HsjITlOsQZDiA7fS|pN)s3eNV&+)z^=hh)g z>(kFBRJ0z)BN5iy^!bAfo{{AR8Z)*fkcsvKf2+hY6e6G@NS?s0&0h2U?nl9&bnvH5 z(`4pAt#Lx64&qRx4u0}PiueT)IOJUUkm2M2m}47JhXyt4bzSOnrw7>@03InVoo1~T zQfX{JJo*)1^$z7Y)#+}hxhjw=$;;Yro312=8szg%_tYnCjrC_L7s9J1%`xQMb7;OTJNXW>ylE!Mr!)J5t^lTyl*d+vxyy!T`S}E(NNFe;<3?mSN(&9@YpnPO%Ag9 zVkTN&{ak8v=fZeJ;1!!v1LuxE$p$KR|#3Ve>KC;n_l7ra8cou1aJkJc5m|neP})_ zfT!vaN!nY!8KdV#mbanD+jR$N>&hmQI8BB#`7fUc;fZ{1FGhInAo1mBhjdssv4iNd z$_<|CAwbtEjWXYjwQ;;0{y=~)Mu;-``pTu8x7odaym}6}WPsXq^hIib@(j9DiJT^JymUvA(A#SlPn;LQVJDS(Bci&KfsA(h|MSS%cf<1%&rvGfOwAh9W zj3v#5fZP!7zn;04?VkHmjHfX}m8O4%m1}3Q1vD6q3#geAFG^PGFovTcZQ%?w*RVnG z{;_liys+g;`22^{8LlM;caBHT3*A;dz+Xz!VQ#(5C{V<;D|XM~@_NDu!ZngJA2+qj z3Z5Z}|7ufY!uF;u$je<(ScBRbjZiym7H3)!&gECb3cmyDI59kcuh-O=>Hsmr5QXdRmcbZ27Y2Ld*Z@v}6f)&I00bqTcrb(7nXPD#+?{qx9hH69ik6I}SQ~9vJ#>A$2s<2sQ%;b!bz2X=8Ol_{o z%vngv3{KY6<_>WiVKP5qkwW9BZba;4QySQ$dS>VBqDa)$7H+kSZ%xS!Oskk`7$iGU zz^}+JnpIfSkuHbL@yy1kscO@^MGO!Rtv9XfQaA*0Mz+_ki2Y+ zcJ0)27(jM1!ohEJ)g(S+K3d4IMgadN9&S&*FS3%f6sq22wv!C-*sV=-YB!_C-f!tx zW{-1vzT+rC&|NF5r%?FM zx&Ke0zRoZ_HtfO-9;o*Do5Cuq+mM(o0uHL(QZuOIz^1&SV@lOT4s&e<18n8eH{q0) zflu1_{3fL}bI+x<;4U|m<(1LI76LL7UX>X%U?x~7`&!TP9W#^z?&>Xl@>KxQ6Dwgu zp$``hz#ZtaQ__rnCScLkrQw5MLzeNpW7MXsZa3`8W#ZaOLcf)h@|?_7-(OK8brx_V zCg+P>&ZD`~KXQRfsn(Jqpk9NU9A~=}3!Ef$Ns9j-m<5g|V>VsS4Sj^ArZSzxi5s0p zEu8qe=i`WA|Lln6%z>9XNmoAKeO%kO&q`+fs9PWqPOKx8xcIg{T1lI z2As0GNgY&$HjHt#9GUwhz}ATD!)c^$hZ@!khyO?uWZagLusF2EWI*LvH(%HTebMH- zecvM#<%zNeCmr-JqctfOM3xV4_bVN#gTg7iqa)eZJ%W*+#ssf`7z^w^-_kaatc*o=u zxm7rPLLoOS2U-spH3$pnGYeu6I`3siTBVsQd8aQneK9P@ezb^Dx^lc1()Ai&#Tb1B zg;BL`r=+I9vgsibw)4{x|E;~<+9a^aowo>zp;k8mq6g3d<{Zyvc{Wk9u zNd)``E|>4?uTQ(d;I`lTD9HZFBr7lk;tXJ@+A*}1HE=d0rP-i7mYWH2{Qi^Asy(eJ}OKelkl?uM0TUeomf7051!42 z7Z9_y_Mc+w3a~sh^?eAbK5qgeQwSib0FK!Fysp_G;VM`5B)2f{IYQD(ME0b~oU;Nw z#F;1o%#)NLkSJg;UBUtAXowim)vJO^##t$DH9Rn><#t>Yj?MZ)fNfAm7VxnPT@(@Z z*V7-+`nhG1f=W3hFcZw7q(B*wBIL#ySBw3vrT+udvLUv&Etn} zJ>5R2=$=^DqJ${KgqaeM^(&ok&`M5OASgeSZUwQ;iZGF;Sljo4rUN*pftZ5`W)xW+ z_bUv6PQe#KjYnNagb%HVwc;k*mJf{7Z;~no|3?!5aurHR4zD?Mz_a1Dt|2ALj0==- zn&m1pqwEe8Z;5jlEg(7G=$LPlq*$l0yFZjC&g;}?%VS8z4aKaOI%c#+FkhD+{+kIxcv zIE0DXMK3V7y*YWf0RZ~=>YJO4!941KHiqMCHjpUly9Gg4W=@u9I%uV>U+`*gt8;Fn z7+&96irmMFOYTkpTD_tD+kR}2k#^8<>94~Tc0VKtaZ1uYTAiWWc-JEI`{=8icVlC* zy^X8oeEwy+#^`Km-RH0XWRUY;?(9FsVNr&A#_6FI2&}5w@-gQwG>)h_DIF_gRjtUF zftQHLGTB2oQS|>nP56eQcZm3_oe}M{5(5FYu2CY5S*+Zl=y2Ma)oVN5CGW56I!B@N z41ABMEJeMzi*CdR8Y+2d+lhIZ2Mw#SOU7q;r#TX^C9;DJ@Zal$qpCbYyG!+apu3#CrPg$0|AvZ8uB3>VoBraQvKeYe1v5#r zEYipA;&~6vFGh2ALy$H=XP;GB9e1XN8Yiy~Y2yMv{J9eK5DByv(x~ni3yjINzH)0Q zx(B?jm$*}cAC!5fU%tTn?BIEV#S@3g0dyZ9?w`yQl&*>*$^!kjS@+ZB8`BoS5TZ-uux?6DMQLFea zR_*TQRBf3H9sEF6l%wj+6#NBsqVg2p=-)vZ|9jE@7dwDN@8)=_76 z%J`fasCr8=Okt}|q0sg+k=y1<&pn2>^80{X;sWgPyrdLpV&RzoV*y0UL6MQNc~p5a z8s!hlUJ3$zOcd=f3KDZ2ro5w_Gdq9~|6+*L1D6!TuDLiG`kQ~xeH@{qLR6{ioX(tX ztPBVRHfRclhrKw2fJ>AITcI>kT%{sj4+ED^tlbDqxE406xwi~F)kzEsiX>``v(G% zcqC<7)0I0T_D&CbuJuyjfy!WKpvkAOH?v|-u8nemf!qnPi;HeO+rg8>6_o~Q4fes! zY|R|B*!1q{Pbu3^hcf;W>X;^f`PxM)*tI%ID;O$OcvKA8lly|V(Qju{?2(vK#P66A zj^%S~QpsTf708kz!F^}K_PSc%`TrmL$l{O7V(js!fWHAtY}!8oS6QLS-?g_*mf?{a zs@GvL_!}=mr#5y#0BKMi3JuzO1kkf41_+i9QvU;*r4nTyslCSjpLWwmxnZypu7C0f zx-^9^Ar^@2EB0R!2K^+lSuTMtGYHyOD^wk(a53@X1iwUe`cby>H(3e;hx5BWFOoy7 zvNzJvR-#ZRxr8G=wdr7UJWWUD+`8;LE9r!4o5aPWWOY|MGca`l3w<4?RQJ|IZdBAx z`2DpVo*E(I*DUZpct?FU3{)h)8lvx@4Ptil4C=mE<|*FrnppP%M8~^2Xd^}9vpT_L zhF;oehP!;&NZ)A;LwVqQ>I4)BDT6W9V?p7IpX2b}M7Z{4(1EidKyEGdcQDGoIi!># zOLkQ;S2qf@qD3#`B_HpihLP6`bngBbn1=+^9}>vTNr&yiQV6q_Eeq~J-;EAj#~m;n zI99SmI1j_7OnX%-qa>p9&Ik#Bm~Vri{3NuIhf|BQYM;GLW@w5xgf*mwY4L(&);p`Q@2Nz)rfW^L ze}H2p+F0cAl*}sk2aMzw+g)E;u)#9Zg68cQmx`>@3~rWkE6RB8i%CPNaWtt+rN__^ zM*=ceoCUJ-%Ls+p+Y|2X#@~8Ho-z2)0`=wl6jTt*`p9Gq>H2J0qO#u);~f%%N1zce z;G~)l=6BmXpEHViH1oZ>q_rFFzLF7h))ZMr>jE-@Mp-<+Z1!_uoobQ>)kMd7MsiZb zqc|WvLuOt(V-M}n7jrv2z{-PzzzB%EdEh4*-TxKiQwU1^tk;wh0^BCC&}aO`CD0Rz zMG?ZWu*vO>#nGLi(ypXqn}C*%43Krkz%XCjTx zalx%@Qsrb7wU*@kYW7m9AZlh<(nr3^?hFRHco%sMBZQw`4A%Ggu0*F>Z-S+2=xGlh za3X?{12>h9uu74?N54rq6MFX+mVGDgQ^4E&1XWdpB+Beu0!8apt`@~rzjQ6k2q#l~ zgi2fxOWmf+J`}-~qqy+&LreJ&3GpMS9tKfByOvi0UT{mEv{wS#aO$3e$)=CW9)~eo z6Bw{hPm_2wZWB2h#eGwL994a_K>8mwReHREfehdkQ6UWKI6?O)-A&Ko(|C}BU&iI1 za^VD`#$Ar48D@N%iRAXc4%Mi^eF^mIw-QwX^G+WT9#5Smf(u=vVCkh?lW{D0Di&DNeDSDcBF!<&j*0(W@ga>d$S>R=+J|oL z*Wz2-IVhYT@mKhx;^&3g3Ht>O702ejIh?_sH2 ztm6w05r)27H9$APFIjC(Q#;fpK-8E3OF*>00xU?d&MAU_2f52HIBZs(ufbGrR18@5X?_y0Vfp7kRv~mhf!H@E-R2j}zG-z6G`7|cC@zj9GK$t* z>!xHHt2mU}QDaR^JO%a1h-}6}+4hf)Z#C@@1ge1A!KUgIh%Y@Dkrr z>tM*q6dfi%&tk0Ef*TU=l=u3G{-ZBC8J6A2AL(y=0q6(c3zten@;E|WHQVZ5Gvuuo3&=UZfv-CFjMO3i>PYy%=*1|(M$&XJ`Q^J(C`ptC5&tW7jX%E?dvJ;( z=_D@VLlPtSSn{{$Xl|OH0{kv+h~GUcNkJ%Bwrqb4Q1xZiI`$Xk@tEhL57fmNA5ThU zuw5Sj`!to7SQ0LHs?x^y1G1)JgI@8atCRFdTNK2keaBWHOMpOXOo$mqkWN*_;Yn@+ zp>V+h@+`oGf?jj*SQK`+1hqs5XvnjxhPH}6X%Gl>NWu{S=C)KUQIe7*i9XndmSq}O zl#QU9Bsd6st)j=S<71B+zo}euMw9RCZVt9WP@^zbU}Hy(Aryl0mmS_1^)hRNBjGfM z5!by$-CbuEO5cibpwGono@*~%;G^INxlD`) zC-J=mItK0Ciew89!1;RP|9&JVZ9+>>?(~1Z~ojNVq@P=q@$d^I?4Z$6t{@FgxT{aWYaOsQ%(l__ce3*DQq4>kR714~P^{{zoT z2<`w9Aj!S`2=VJUAac{@gAj8+s;Q>e$h*4`zk(uK`ax@2xfs~i(?B!7gc0T$xJxU? z+rhiG1X0EEhQy}XC-W|z>=KoS1?hXF1SdR-IlSyYz|L;)vw5`J;s-Cjvf~??P@R5H z$0MXa{~X$I;lzJ>$~PwUY~|GeKf-tlkZQbMM0LG_N=UH1inqAr04=G1rVTM+;5+eX zZ(S!!9)JHNq(T)G6O?@89kB!UAd%WDRA%pX0zP2Bt%byk@6ieMftsCyC6HBHvyj0z z<_=VC4s<_a52Q|b#gNs~CDllOvZ+R1?qoIl$IOrO3UcG6kntrs_%*LW^)BQ9lI!C5xeL1iZp{7HLN z6mN^{D?R8UEH%r5Ck3_9d-N6D8rxyro5jK{JBfg{A;2W@1oh@VPR)4oCWe=O64Hu? z)02^Hr54ce}=hu=OX(mYk*-G9(Agb@76 zRv=D8DrF1qzw3bz-sTDs`NS_0a!e6Ul~50qn4u4w$qJEwDCDoz$0FTuMaXKK{H)^( z6!&JV*(w#J;WB$;i-B#w)G_-wu_1|Z(@+J3mgj^LiwO|4^`1GwH3bpjl+GwCoU*%N zFUdB_6$xo35Ysp{eCsGcH((o0K1V;=AAA&duH>z`Nvd#NYCJe`5~|8@=|iJ8YJ$@( zNhBm7_kAq9U&#Z?)WJ=gn*rcpnNDNc-3YfEsL0wG`IM=^RNv>EquF+VNlF-wIT!sY zY=}+x$vN=*P3W0m2mxaCRpC@s7g_65gxY-a9za2JSzT!z==)*@LIJaVg+*_>|VyJ@IM>93~r5#R%nu`D#$12VswHzMbYPyy~wfX_)J>6~m& z3K`TdU@FS^NP&TVE}H?Blv89zt0|XchbEO`TlR|3DLQ^P(wV+T?+2(T9LWxKZWD^~~Crc`On?bzbEy%b-)k zX=QHv)c+hN`3rJ*vhDu zg%-$(l96S_9CDt>!NZrIYVs(eBN_t>{X1FS=GH#B+Bc3b}SD} z?w?L27*kiGNJd2>JcWO$J!35JzAHk87EB#cF}Os3ghMW=Nv&TJ_B9ySYwlGXc%FS9 zl4f8Ln)q_SRmK&5b9l5u{Eg7Ow+6vi3(S-r_yV3&wfsYSTDdHp2T#olv%Y9H_G|pa zOUonjmMd#s+&h#8s^P$+Q@R@Aqy1wWQ6RWhKN7g5w3dKT+A+F2@P9MMB9nH6<}OS5 z-y&4%>5|Z4TPr^tAx3M$A?rtM0hNq^AE}+qIQHHPGLim^T(U(p^oq|XotW-x9wehO zklx$P^j9!YIpIWx-;=p^TGlBmS<9%5j0jdOs#F8QfFu6AIv(gI=Rvunm%DNKe~DtQBj06Sm@CTnIpx*aI7gfE88 zAi#>4Wd5U{I12ZbwXZq!ees9;R3P&=j%L|Rd|r3+m$$Pj7B&H;8JVU*mg?C_iEWX! z{J^Jl3I`nQ{}utCfpU?Zs36;Rix%N8IPNWS!HHR3=ZLwG7-ymbz?70Ns05G_R=!o# z<1`aRN$V@@;$d{oTXk&_s31!p1u5$DA0cLxBg02zM;LzyrDG28VS4qxq{P>5N+H)Q z)`<#1%C@x8O;e`IvM9ydfuoMJbA|P7+RWvhP#Qr?UD>su#;;#4%Y)2pecgQ4h5rS38Ks|U*EJ6T89GD+ni(p$v zsv&SsLvsks$L z8-7$!wjRk7Qe8F8dlt|WRZL^KTKU;wRDXguexH*s=PVcV*b{c1Xp~0fr{~n1Ol_}i zFeD1Cz-fQK5iDH|ia{14uDn!y`g)d?VO8=njG8fy%R+DI^{ph-a=QdcuCGKjnH;pD z14Urb7o=H<%+10m-RH!Y%lnSSv2;_UrzF<^T zY1U%t>mS2dj#C+pFF34F(tIz6vBY0(rW)?5I^{sDw4dE>u2z(X0Ls`oE$1+DwGk_C zE<2I1o(0O+0Fl|-7y_#n?5w7_zB0cf`ShcL<&<{AuRPjAy#8RBRQBrlqQLBsGl4?Tw_tYEq;2|)w}>T4;~V*8R#6MY_0)+pQxmhF(mmXh zx{;RSBW9AA@#!_i*rT#Tw+)`8S7{lPFV8IQRb-k~y1|cmw>-NU!LJcgW88j9*VE|#7B^;?J{JCW*%wD!fM z`EQoX+3ym9AApKSu@Ehe6?ReRvZ*SXVk140$?3tXR@pBVavVad$~2eOc-{bw82&yq zM>zQ>Vt%e)H3kGIER@DcQd@_x9l< zY;zV)g)b;p+lT4JQI-)ch_86%uWk49IVN>3lRLG^cef|GvexrEvm z)8k$jSgd8*cob4;pKj?Mx0Ba{iZI5^oVdvzs4Sp10}K|ye@)+)_bDp-%Sk9yijFel zX)RxCdCBTqST#?LD5Y4P!Q-d|xxq7%W66o{C$0qo!P_#oNWdK6kO{a6xf7_aaOVP` zFF|y1A6((N2eq9hyb7Z15b0v3I5JkmFE$+R)kMkrojwn%deS`aX;Lgaf3SnphUIas zH^O89w$#4W2r&hzmlEiJB-P;-*K(X8D&pfgHq+YL?Co&HTH<6Gjn&HoqsnToqS3Zz z<;W0}*2VGq5S%&3;pG^nn_Cea`hYs7P6;`{(z^d?-PUnzFT zJi+(%NTe<`v!f(>l>;k*pUybyfePl<%LvKfSyeoB8~j`So?Q{&h9{_h0j5T0VMVmh zm{R{7Ro<@)b4_<5e)QUg5@YKa!r+}vW4%+^Rp&scLuSj9M-8jnj`Yq$3lSo+Y0HIp zXmg#_b9gQj(NmpWEVO4MnY8tu{sq&;`MbWZjRT^bpVS5IxBz=({*X=lwE5wC8O{z8f zYAP%J>Gj{qcS1z(j(8Dx_HS%}(2)vQ&J_n8j_erfAPt{f-pL44yUC^|csg9JAMSkf z{I(r4tCkH5JNoBeX|P4U7IW4lDHcJpwt7&?Tlp4eR4W0@U5UweAgiPKmrz%_1EPGf zBlsP0&|gx$iND7mAKeGWmyP4|JamD_gm``cG0X3ux`W4g_d@G5lSJ>;kUQbPa4ZDG zMi;4g?CBi=8EbUI;=9K3Wh1hpPFoJlQM06-MR^jFvH7|e0Eq)at|8}ltRoc{e! zp@#Y3p;RR5V~Io8uTJ$pj_jKyi-Mw$r*iUr!wds0ehSrI}rj_|Rn(V!9nh9;bh++g|z9`iZEE zB3+{jNuVBfuO8%IYH%Zz9QFTcMgI~g%79+0{d0 zlqFYC*iLJN)`qZFaES)!7$B;WFQ=vuXUhJszoW2h&^V#j@aS#+sNsRcrA;<9aO7__ zU>~1Q6}$^-xb^)>N^VoJ+H-K}CeMM zAgN*u4AgeMixrGzTF&O=G3%1Aw$y zrV)B*B#~CEC6YC_0B=aypc+U@~kDB)ket_?LI6IE@2luRaAS;Q^e|0tsk!-vg%%NA#h zc|fpI8tJh?EU{COT&_QhFXX|;PP-)hC|C?uPPeucSv#qUh$@UsSsTnf%{V2o*{qIo z{(4!92w(#IkU45!3 zlJWev!<{4v*M)cKn}|EZ)X0g9pl86-L1Jm#({+&jhk~T}yKm~Uz&jVX5r$ahxRA1s z=gb%byKSkN6HLM6{QU2}_d$e1gzJqthl7&)DJR#_H)I1Y=3-Nn$OEQdET6XbhLz~r z>=^0wG+_Tj#Kk$?+Y*p6$ed2%h0J}wzEEeptNA+22=FfbM<)mFv2BI642qA}#~UlR zR4{1caISe`de*JE1pzru9P5UipGp>Ns!MitsRX)lAjG{bCh{r$;hxQcz3(RTBHrsv zDe5kbAu~rd)2((Yq|`tS`qdxeWD`YaT|U(|5LpC1q3cHH5U_4%|TcMcO~L5`4o1$jm-j-Cr2 zrsY|-k%YsYTJP8&Md3gP!yhoILsmZ9BB`=LMO7*4=NG$WgoXR((rT|6qJ-2USmt5~ zg!0;FU`Q~03IMDLPF|GRD(EZdf3JiAYFE9lf=X}wPY`cj*mL1A?710=Bedn1@Z+)U z7O}xXBbf$Rzsq-ypnWEiYnjg&kKgpD?b&6xFBC*5y8xs`s~+Yk~xSM|&}blmoC68uDPB}nvr zrLs3Zjv7w3M=`ZSNM`5`1ZpWm3a90u2);xtae?^xd70P3Y`vvtZ#yLqBXfLFEMHMWaa7#Aa-;)jEYoF>7`N{|GG!!$!XY z7HWEh(nA=Xh&dtR$UhH76WB88c;~z16gF@0LugIuZjF4x8peYi zQJ2n(rc61eXhZP-T*mwtDZ&=kAAIH+|7MtUv12sK zI)qJKd|A>Ocvw!^ka`gS{iE=kfbb;J4IKY6?Ef4(VdB(jZzLBkSGo!-elvMV_a<*- zOx}dNriYTl`|Ey~Rv9tk_1J?f-{7B)O(i)*TQBdhM?0X3xRlf{4ua8&S{w&)Br(Y< zFLWBW2OkjvKa_%pxJhhCB)Nj4+vPjOpl&jLqvD`W6!OJ^*`s~Uu8r#@uW;2ap8dgv zE&m*)iJb8c-TNxR0ywv!RY#z3%hp`BIM?}QuQhKqN6-#QI#}#ls&>7w5M!n^3&QUm zqFL`L4v+Cr8)RQS@K5nC5=5C<>fuu1(Ti2`R9lR*s}O%<3Vlj{?+Fj`LixCd4KJis z<;WYc@)rXZg0bRWw#%EFYzR1u%4ZqImmYsoXZW#27MlL~wDl`!WS2#uSpR0m%<3B7 zp&!Bsl9!E0GI#$B6OOf^n4;ue^BuJDsz?8S|7AVUX1u*38>;Y@)G4DM>3H}`BUUtJ znUy+n#L5(zT9eTlQ3we=qg>OipP4RzKFB~6dAzQi-SWB+h`1R#nSkztGA1q&cbo8@ zS9lV+bB@ptSiK>+v0pxygc)OPjhr{L?QqetqV6=(C}kJ;-xQkh9RU$tNGMhaonQ9i zVRiJjCTQt33!V{?#Wn%=M7cH)%iR-Pwj@+QcpiYgX!e0WaD|ZQmK_4!zRu@&YDxue zC{|(F3^Uox@%oXu)GLTd;se^}E9+-lz9De&Eel@`3X$7mxMXTxiGg!L0_u$s*Ns)0 zg=-ndK4jA04g#X;IN3~|2=!Of`ApDjFOsy9TKIYs=!EXK+^u%87u!W9ecAC_j__T9 zdn*54jlI!ft{RhjkOC9lV05tQGxVqkz(PK>?zW_=BK=RWvmo_|>y-HlZRKbf{wI)T zrK%A`sL?f1uj>o<8MHr&W>t zK2#LP9_!o1QW)v-jww=l>9URd8D0o--5L{stkwmP)uVMqy?v-7gRHd!CR#`La^;c? zH@YmG5G6~*{uC}!Kr8%FMfl7yuaQ5ntf-K*}InUG*(oKs{J*hZ#GYt z7{k#E^0ZzXicN*MaHEF>FMi9;+(6L8)}*h1>|A(DaCxWbad*>)%R-}E(5|A6dOSXN z{yxn-FaT0gw&-gk@_)>IlHbvBDEL_4TU{^l#5^?Z0vSpA2H< zR&5Gl*4L?*>u6P?uDUj?pK3UzgdY-Q1C(Yg)=aK9{}-ikA8#ljJ^x}pc{O9Eh|``a zL(mUaU$`ry(f@uyH!4fkA|vBn1o5_}|9}3H!pT95cn^-t0{&=x(obu-F~f_yX_;!> zp?g-%SHW5EueW|)tUWj0D9X_mNX#9&5@zV)3CMiYCRJ^_7H(fs1$qwGHgQB*sgad| zJ~qT-heFd2wTQ1Aw`6Dq541m8wgfPt*!?zW)PV2rf1&cq$wSEOQvv3N{2K^{20a&f zueii>dHtQ3AMJw;P1K+lMhFt$g$uEU(e_e3W=|Sew0jmR0`(Zo)*)A%D!aTg(Z$^2 zKb+VKDMe}3K}7TG=ErctxFcl1P*H8wVYui@6MTV$Jt326&4rmm`yMJ1Qq~9ITsDRd zycZU4w-LP9@r~I>(AJJmlJ5hG5>}@*^RIqHg0|J}m;N3t7KjwzA8W)=SP<-yCqmtX zhlF7tAq~BOFaL9@G!u&39&oca^!?B1Qkkm}6lU)$HpO^qQjnWLLNLyezh(E&OHl@f zY@?36Dk}~fSXQw1BR)RnTiK8$4l7_ed`nvC9}*BfayiKr3!Kt2xezIc5T*>OZt;@C zwOef=*XtKG#05j=5ICmf%b~CmtkbVVsP6S100@1+UkuAgOc_iw{WXxF6uRLEpi#AC zMmihuT0dg2-B3C=f{j#8!xxbfE7G{6=>>YX@Y9is&?HboYx^}MTO^i zz~%BH;6aoW%SS^)kFNH3E8Q@WO-t#7afUQse$cmJ^vug#Z3G?275k8DFR8BhcS%#S zoLh#E)^2F%U!TAI1kqV=)1dDqU9ABFZ*)Yq7GCIGta4HC@rHUBgVM9W`W1 z55PFd6GZdrK^iMuQsn4&y^NKqXl~HkK6bh*1V_-@SH3=mA?4F#1TdkqjE$AAo!h$U z$;UsbcO43i%Sdus5bthz*7$ZsqbfMSfm;#@?J4@1-^tb?k%P(rg-@{KfXjK15@e=K z9i~5|Mxgr;2ey6Q0#B_jZZLK-Cu+BX`?uLOcGFbG0D2tx5%Zxpa`Xkokdw-;QQD%;PZyDJW zha5#g)gfEdZ|b^qK9O&NP0$jQ5zRcKD78TL9tLSZ(HoHIY0>D|GrKvgwG{Yae@N_W zX{e!j&)OvN<*5Hj&0;`Fwp*at55CVKY|+i*N~rLvjLO*UI(SkR3Y`VkA)%I(w~#}R zUg)XL|4>$45Do4-)W@N2LSZTOTE8x&1lqR0#heH6BmGWiOQB$0Ry zXAv8KU7o5`T8MuQfcq_+9!09dNL{{8(SNhjUlE}Ta5a7!DpVyQPZKx5rf{B_#_m}3 z$kD!JV(Ph$L{SOYx?_fV-i)!46>&UHi0&|SpmJBz4N!dD_qQ6=@TqNL4!izPToCOv zqqrO-s43dc3^jHWj zVFVaQJk_1aa3?|rGivXCHoL*Ex? z`&tQMfjld+F^w@#*W`-B0ZumJ>0@^Db8x}Rq0adDi>sRzI9Zc4FgAe%l)l_{7ZHl+ z`~MndsPH~{dG6|g0LGtR&fBHrtFk)`p)vr|45Z%I1TYky#*D}+@_|tI04txXYm1Tg z?eQs%Yi0hqUgXmmVh{^`5tF&56Su*h!nx#+a_7p&gPez+G56EsN<#F-u93&*&BOWo z1d)T&YeStlQk8g|axuc8Ojx7MkJyc%NY+JWrnahKcdl#kxHmf={I&tz6ZPZWiMuBq zG6Vm8pCA{7AX^Ifwg8ipWL}W0*zt{_3a;3!A!?&aO){P(KLOqNvX2>7?Ag8{RGNw6J*EwLSY~T=jB27BDc_gYW%7ABH(hHz2EIpaEn{Ip@h6Yt2R`MIvn_LfGpO{ zvR_>eZDBN(alJdsVa8-0PQZ_<_57iwP(yQGzG859=F6U@vwxwEdpUM!rG>~uPl!tc zK^w!CQt}319a*S=laLv5@u3>~%FIdByEl&PIwJR9)Bis{Zd`ws#{5mjtqnZh@BLu- zwd=V_q0bo}d6y$0_r%hpc2Xw_r>b!D=R~W)1 zWDTIRRdTbAV#v^c)6*q`PCsIJjPRSvgJkjjj#4dZ4~I7YU1Fa9BqcKrkd@EOd^+Zb ziJ8HXQx|7>v`>p#z>;Mh*mPuU+m?vbfv*_5%=%6yR8NN49PUH*lpbGMR^hDQ0yQ#R7#)^Hom91gy2ldc+-sVM8T24m$d;XYEoj+BqI0VUMhq4py z+A{g4qA$$u*nTI3%-G=(KFFrkNZnYt-O6WCs03zX9sE;uab(LdLbOe`zX6>6ED(-I zkcn}yFkmMMC{6F53bT~{7`|caS4?3aoc$R)!Y+O^Q3sMP@s-_MVl&=Fd^SQM^$-1b zKqEwNUsY?uU%IXFzODQHy(DP(di(WOSJmp3A19_;=k{&-y>x%u-(-B1PCibi{@+_W z>gt9c57IO~A9b&*q`n{3(0}Ub*PkZm{Z?1%^(UVvsr%>lt@^!lH|O_z`Rsl3^qcj1 z-hO{pAD`7F^ZG)*e^9(Xx1#&%>OV)r+#jmL{l2o0_ziN`q<_YaTjVpTW83 z&oObC{){i~`pEcHBqP|ZPd7`;r8r|1*e5=df*jC-#N4H#SxXZjlfwT>{jezcm`x(K zk@}!_z0p?81a=@H0MSCbI=%|f-^i25t#PyF>Y3BVgsBEJa&o%n5-=9dz+AYp`tV8A@275{j-MIUB>#bi{j%B{C6wo(L4)dhn4F zNG%L(aKqzAM{e6^oK%U>tF!%lrIm<1`Vw-d&ETUR0TaTZ#Arf)??^Yc# zymq@Xx_cvEX6mkKpX|1N5DGknpT#p{jzUb?J(AASk?bnidTVyY_2Ub& z&vjXiCLMXUnlqLUL@49_xnz%7>Pi#u50%;*c*(|4#&`a?D7@EjaL;DvxI$GyqOrV{ z8}xdJMkqA5oyWY6Urwz;yBW;jf}0+LSYq#&q_q=sJWpt&zkUv!n7QXazSKYCa*nU! znZg?`iZlNlG8z|hD|vWeoPMaW+=ItTl^^ki^-KDD(O7N(H%YEh&dVIPUTA}jZMIhT zho{6xz}wvk=JYVNX)A>=72CvS+Y_9JWc!n-W` zCy*M}STUCF5p7KbU|M6m#Sr9;mb(_dGv|cgl!Pt<@->T|wrV9W&4)OeE!R>vDQc9y z-p{ksK<8=bG8suA&9LS(L&~Ryw)M}VzNwxo0vF+1a0&gFXiih(ykkyxUg#LuBYs|^ zb`Jb1L(7TSzb-ra&N8i+E<581KjSA+k9o8p4A%nA~meT_giF9Ns z!qs2w*N50TAvj=IMA3JO3urjVlUCfszRdW4Rh!y7p#oM)}5Gz{@6i@6I(agKzvjCH7CH2KV2;*0Tz%{#M24ASplM;-%mM{wk zfqASdi{J0BhCh+M{|sRaY0PNFxy$VSSN9P~oPy_#j*CuM9 z#jqY?={@F~V%yw|0{?f12lyirt`@FeDpR{wRQ1>*AT0Z-nMwM$SLN?Au#`}SHw;1( z{vISO#SdPBhSIy?w0Kdc~8W2NtQ=WJk2-^j;}`C2iuy1gB`_CkhE>b_u8kbTRbqu){>u}9u_04rq4@kq?E_Vjc`N3DM)89w< zh8Bu;0ENa-C;u5o&@)`OalCukEVGH{JpjONiL?`%Iy=)p2{NyDIlNfGShZYVB_KE> z9h2%S!^qAQ7ZOJ5>v>rYIli`RxGAK=U{z_c7W_wu5J3&RzIt*Cb9llII|jhH+_Jmm zBD4iAR@P+vb(G5#*qE^F_9Sis>xGB_d0;1aWEVBZ88|Rq9-&JcJdHI<%&5=XHLojk zVyOMqv#KdB*g~HZ^Y7ImD1ZNKgjv4$3~!=Pv=u1Z1kUnb63At9#HL>nHWG~Cty57l z`Hlw+`Z}DG=DU}wRs;3Sz|kV2-JE1qEDRF*C+cO*$4MglB~ij^$BQ^{(y`8U%wwc* zIXJSux+_fXb)B>$w(lc0%`34xd7y^wbq5{aIa;++IX}u&C{5-;H4e8E2BBsGk8I}T zk@-;aTNogi^~>6bys`Z?^&Zt;c{I2%?GeD4tT2{Bumi8wTEnb~hf28wdFCla^iz@bjy z%RVi7%R3?f5D%Nbf%~MKcT=lldH8PdK)Xub-Ian}cZJzSCiLG$yKAR91A`oCpGESG zm|4y<_Y9&D%%hc%-2k?&tKtKy0jP=RJh9!!q@P#B8gZwUlO0TCf-$zi@N&;FQ!Ia( z4~x@PKy6RXqMscR0I7O#80S0fC8uO2lVv`Xj+FkICUrq*rHKchPOL2e z>>1M5pqmyH+=?b@C^|H>hHX*Tf2F$D4T<8$LJ2 zVlP0_zno!QT{vj>%138+Jt7PMT_4 zAD2wo;!C|#-{|L)>;=`8XEaO_^#2PfybSAOsSq)ch6B$hzYIbRZs?uYYaOBPG#gGR z^MYuJWc-F9YM<`U{)WhO4BSGF;?n%)hmpj6@pGTps6g5!-6qhFI{d5XT^2O%sbd zP6=|zuH2_-0bNj?a?%3>iJZSV`FjMcaxT6C2laFOG|XcOooamp%9BkKY#pr)B5R@c}JP*h#amy7B@SZh$@;!}qttFv2I%y(yFkiA$l@sYx%a`Iy%} z`~-ayHKulm;D$3CcI2$Vkd0N&y~Q#cUE1V!(aqM>3utMeE8gBkCHy zp}s*x`Bh63<9t%#4UbdfzZ=>urJmf%IE)EUDZo-BPvUHtP7R7*^1WvQZ0okz`kV! z@e)~LrUucM$}K4YTf)FvJ5qtOv;|`a^R+6@#h#7HKS55*;I2bNlf{L zFjw}FK}-CD@zI8YON#jIC5?VM#P1kvjsVwd8s7#sR>4YPx`*m4=R?9~jU3140J~X7 zkqtL~qHfAp|4Qh#1brxk>ZX3J0Yy<0^6tyL^{Q>yUQ35fdt<6wdfp-;a zK)I-TQesL~Y8nj(emirC4nu}r`oUqczuw;8>OKpaJDRE`n+hR0cMT^4mWg~)I)T7i zEyryg?P+PJ3dsV8F{Y_I{*9PmIAX`V~_8LMdG&dx_7*F6owF z)^mx|qT@p1c3?(0rD}k@qs=OuS_xKZ$qkOZTb`jiC6CG@xeG+;ER>HpUX)vSE{q_H zE(XXUy-WjvYlDE@_6R6snw62-{Ome-WEV&+)P|06Mks>2xNaMOGqS*%?7ddSpeUUK z%WB#vt5>VCiMhk!s}>$2v@c$?|73{;nk7P_a{}_0HhBva4ldb@^jRJwE>S5pAl%ng zN6ZM9AoF_D3Px`4A~U#QCQO+jOH3D{eYJjhw#!GSaym^i2UAw z|4(;G4w~*mMSq9iuI|cY^GFb{e7WJkhx8^8vxt-~M7NpjHeO6rGVwPt$1x2Z<$si# z6KbSNJq_ppWUE}7+C7f&1Bv=Vlu)mR9Q3!S%t3q&WllVku8y~o%Mg;ZzX>qbSgF#R zzO#Xa4_LBw3#iTrqFvj(_d(xF0%i1kT9`r=_ut0N49`RSHW%!=`c}c?{O36GgYO%X z(hJkX!N?F}3~mm86^G4@X408~UNS3yv#Rz~bNN*55PAj~O5m;s$c(T)9X!EAbwrfj z*T32UAf91rA{MPO3ySj!P!;Xs;eQ8?7H~p|W>-$g8-+^X^1dLmr2Qyf*74u#Ie`L$ z(#pqp49d`q4(tN-X2`bjut9mr#Ely?_9zzZ@sY>9Nlc>NC z4KXYo^CKHw*!ZF5VICG-w%U+{X*-@xZH0~wGw|e`owZl;;kMeajp}T@<3bgNvJ9xj zv+zJASqrYmaPGAqT6&!mSddZ@)LCKB&0WbMmrE!PtQg*#%|m-2|9A2yX>(-@@)(b` zxFc&_m*mqp366~1DV-VrbgSUNamI;oJ25bOm`e1i%l-9{e_wDXBYC|mHP)OU)oZ4) zM&WD>3m+|@)%S}+89CR{&zw4_;A{_Nam9!}U1bQ_U|%zzK38W+VH+)1ym_sE*E&SC z3!l|Pf@jpxJGebg32#eS38Vz3Z3xJ-b^b?d(q}mgA`v3?H#oy442YAx!DS*K_=qQo zSoC$}Fa=JhM;-lcgCANf)`dG)C$Rs8djVe6tWYRBD%8~J(i^XDZq=t{;T3fqEH4al zpODgjjPiuwhMk&zC`rm6Kx0|%nSuIsc|M8UB?jJfDceY3K(EB1Vt5RGEo2L~j;({Q zR)L-g%Z%^SGj^(~vR1Zv25e}X4AyUS#`uAUHIeJA&ahx6wON8i8;$b86Wc7u4CWK~ z_9;&9B!<9~%F|dI#ptFjF<%Ti%p4*|YiEBGuxG~KK=g9?tH7hSQqt*^72Bn+H$;s# zz50w8Ffl3S%*d?NY*+66esP1(F-T;$Qp#A9BQ%+y1g|GhVnn#H&ru8kAdh*6wp@4; zk-AjZe5-6hZo<4_CR8ULX(cQYpImBR*wJr|Hx;@SOZ^udi(D5;v6cruPFoJZjHVGG zKT03xRVxM@{8cko(ZqE}=+D+WQ_AuH+ca6a%)Uy#XbQAM*9?xcbbKVoj@Kip5?Y>*04UcgLDUCF$$_GP@Lawz%w~7gq zrK27jL8B#p-2~a-qQ)h(VRZ5Qzk(#oj~vHLv4xVD3PYQljFZ<%d`__P)>?H7Q- zf%PO6@p8KyGWZR#l<|2HBqy*A2BZM7@WBR$U z3G5$2=k|9OPfw}?h4Mk}7K}W~MW(S!)^7Ad=RS8|pStS(-hGdwo~}eTl-U0z_T@)$ z4kZ#H8ifO?Sc#ft`Rvx;Dr&sZAou)g6dHh||4@RJ4(>?2v+F9gcmGXY+U*X_S4_c) zn@8`MEZA&@xbyo04_HEUA{;#?wIyk?DRBUCeGyD*bg9t(6A@-}?doLie4%?eD!7@g zjwpGTi!*;h^@vA+Jd$)Kn4M*)8tN_gAf;klQf0P&upJp?EPK`vsN=eR#x$39Q~oJb zC1BWm^*~8&7S%jnQ${vomIyp^fnoz*Kq?tQEs%WV+s#oE9n>owx61svPa)Ef`&uT< zZ`fcQ5D_{)d9qDh!9TUoPDQ_TAl^oofJF02Zr0T#!V7p>4+22{9c^6znK7YblI_K}OltY8GbxH%k!S7G%X_|B*jCgsmY2DJ z4wB4+2JX5;!N*?)Y|Drs2C=iC@&)3x`C|t7=$qjq5%QT~jNKLUNV6}&fZiq5Dxluv z`ssDDyDJY@>?i5|CeV6V6BiF7;XCkED{zwhC_8$_%C4k5$q6Qj1lRhT7zQ7 z{B+Vm=CIbmw=_4~JK2-RxMw(QlD{U-wXK08u=z?J=ji$~+7@U(la8;TxQgL6ZX~2m zmwtKh?6Fi_>!meL8R`4mBVx#)z}I9QTNP}O+bPc1K0`ZvwJM=pCo_xiNd??$8_V|L zuPzHTa?6Wx1E-RD<{$w?KikYpg$_a)d-r3q<^h}X3GX;578qX6;?;?}twifTq^C^6Vt?c^jo(CY) zD;T2{ct>|b*&&nTVql6}oR%Q`h`w_xL>6g$#= z{x?*-3R6CmREd*c;Z1V7=|=FF)eps8`PUabG@~O5)YQyJ+pIN_n>0oor%;-3s~T3r zNRczno@<0!I(!v@9R8-c>F_4pc=0YP?kY>K>Yu{&fD!BfD5>&qoO3|HQm&GtfveUL zm}$D;Hx^>}MxcMk%Sjl;U4(CxeL3vAwkl5QC;xX35U*a2%i|SlN*@(C0TK|22BPFj zO3K>g%$-=;S&r{zLzjk8?gorBTv|>QAdg_BCb1K>upsiX%M>+@R1u&5hnLQjPNwH< z3K@=$$!}&hN&gNCjQ}LP!UKkU80_PIm_qudAv0v!){-D{Djv7(8A}r;dt_yO-RHgi zMY2E3?=qc`>SJ*>E4WEJI^QlR1qrysERjbsnh1dE8 zG2sZ=BkUc*FN^)btBvZzaVFqj1xtZ4*#LJ~{?QV`dxs_oGy?)w<4(uzRP816r1y%d zhZvu)1#*|DXGgqK1Jk<5RxLIVJZUZ%saqFQjCu^P*2*JO*(NfFeO z=jSFL?Oc3Oq^uHimQBQF_~{vQ*7b}M5}_8D#}+VTylVI8LfHXV1-P`_!dZwR2#muX zmNo=>ycy;V%ZvYFhVnWz(kcW6q&SWig>W~mKts`H$K+&sV z{O0Y^2;}H~3*lky$AG?QM%@bw4?CQNoyp_(iE62k7xrRCtQ2V%aI)5wv8=2&%!Hdka6!=vZ`+`D1x6ay@ z5Fv?}yCLTUg(6RtBlBw-#RNq$o+o$hWVUle47B@|7p6Vh2(hLg28Sk`i#BDM)%tAM zRhTZ(?)43PNVO>xB6CWf2&}_*caPoK`Xs{_XJsKL++0RvCqkd*vb$;wle2yWhZsS} zmlQgv*Ts2XL9l<~hTZtkS4hXC9T8$^d;}S`DtwW2qV@7z_At7d?$Y@0e&q#MtI>ZeBuoWr@aMgP0gLTJhJv1Uf!v2e?9Xn<2=H?DhSC*O2ePRi-+2Wxa9!a z+(WdypyND^BvgmDNoWqf=*4ZE#ntM;+a(8gYz7qmb@q%X8GXq-Bvu^JK3mDXblcd| zzY#*Sk_!zehB*?x7XL9q)gWm2T7m)Jgar&|>%t+J%-_rU} z1au{8>6A(}LE+!}7RUjgcoA3+8a=$56}yd}*L<0^o9?RK&M3ml`q3s1g-FnaV+G5ox&wa{k`vP`Aw0NLL8e1Ugk zwpo{43C|hUdv;C|npkNGo1)et;gi476?KTe^zjlP3|3ISS}^O z``Yd+IN03UZG5b`xYN7+NHD{d3#sSA#to*QuwOX`Hja#@>%a&8lXViS$XQ9lkXS9w zAKgvTBixu8AL9yBNbRliG+Qx@&%G|16)zI|fb0!FH`tZ=K7m{iY6-gfZPzHs`DfR( z9{VW1!1GfYPtSmnHTD)jmbu}Z;U)m~wCk*7CSn^tEx!)nB`uI|$#Ud%0v~hjdpmd$ z3VIlXNUAH9&#Dzk5LcyUDwueC`-Pt^5oIu}SCDS0QuWRSk7Y8MT`@rZC7hTF4CHem zzz(Jr$@fdUKIyiZw$X-$`w1>A%@fD}OvI;e@1zyT?H0I*8T=@v{iwhDv`8J@M+)>e zLKm_$D=wwH>`B(mX9mX!uI1f#oM_=ApZJy1C#izxXM#3YS7;F&r4Mbu<5iz3m+DNU zws%W}t`hS~G?Ru%(P&=lyl{sTUm0rx z#r_3DH+5FVcJWJ;BiDK>`*xTVBB?JCDys$-SzE2mF#9Czh@5$rydDpVKv{>X|$ggn5^n$g{*2 zcV4zrtLROym47K}A>#l;++=x$M8Ar+nSQJGE^TYP60676YiA{@4hzl zenom=@`OF!?GU3jwk+*ma06?oz-b9_En|%)>BTsHYSv)$7*kc7q_2CRu2-rAvK~aK zKGQ8z1GK3Wh*O){Kn%MJxvcuihko^I&%Bu=LW#DI)&8~Dx>pV0oH>xlXzX-5Eg|1% zDdAp?`12u)INDJfpuoB~HfW{Ep5LJ}6sb|k0mb`TtUqZedrr;vOlN4UUxcasbm})@ z4R3zQ@xO&zKc`SqF|}Jj{hXQ}i|0;2c$i;wnL>lXT-Rh9@(ZW8*&<)^K@-L}YTh(i zZfRwwvghLZd07|R8|b5t)i8!sHz&tQKQvS5=iPV2(nzsm;5k70xlbR3mfAR2%{VBs zgD>~-Q4%O}FX<4@FJ)5Y0)p(6{$O(O!mI2e6ZhpM0!QM^^-rpOI`l@WBcZf!!D(~Z z2mgQndRf#{HVz*-U@t8f7RiplYtpujF3pYYEe4-O%(vJkrkGeB+)s}ZP_X z)yxj&20mpJi#axK2&ADN<<1OA-T5@%z0uFhQ!xo1(Xjyz$4Yqww}>lMEi>-)P`c+Y z*6~&t(eN4!FN~K$3f`K8$S4j=HcbZ+8w)YpkevH^2&YO(Gwvnt=Lk_j3GKXXsB&## z*Ff5Y@L(>hyXIBXdmU#EkI4_yv3ZJv8Y3d~muPNRE@P+4S?t1J<{$`~d5@Ti^N5OK zRDZx|)(9pZ2Vj;ey>MC*VO`z(iSDN+Y(@^O!6~IjGYrnSSZ)XYMb?BE`B0e?bZ>ae z)*9*;nFKI^LZ+2x90^*2%7P-OrP8d=Jw_EuFH#YOxlPW6*Sb`+NMsNWc7Xj|vvD28 z1{CcHFB6We!mib3z;dgQBu2Z!uy9j64N*iu8s6J*iR!Gw^@Z%>I1f1I5xo%zUj6t_ zScBfD>e;)(HGy{YK#6I}r^~TE^jSDP%8$lbZ=G_Uk_k$~#9y$OkaFi_=N1Mj1(4U4 zy7?2+e2h3%Eaw^N<8*%q$KLufDt;c))n2lQe>1)=Kq=6~($@3XR<2qgOIkuLarX7s zn%}(>db|a-vUz-E0YKNbM+;9F;y9a=(Di#pU))U4dJGN@Sw*kZ_hnJ~%qo;iPA1R< zR`4HL%L{kfNT06ngNw8HU}yh-|9}1rG0@QBi=UK0<=)bU)Mo}+^s*p5GV1y4zUPs5 z^8*h1+gU-WAE9m9d#C?JLiog}gNy$mU!?%#vcOQdNu4XqTcd?53O-0-pyT_XyiT$A z7WT#WEx-M-i?77BivZkCX}RHFUbNsiR00ju?LxwkQWzm6Dm_xOSss~OAjT7x)CXCs z=N(4`YG>7e=+Qv#}#GOeE2yef4rR@X}~2WU5(+!ps8<^-cc&$zb`TlHVp zSH>eUI~&REFjQ!`d-YMDGSRLre%5R%8&h!$4YQ#?ZiJ+qP^-FwJnr{@VHLLlf z;le(PjX<8G#f11O5UdU?5@y2JOggcRnq z&^jkf!Rav?B>amKW4E;=2FSrjeg2Yb#$I%2L$xjG2i9Wfa@ose+_-j*(jSk&dhH?* zOtX2My|-VqEc@8F1ie1gH}I8_jl!lt0y4G4GUlwEfk_v*1mMB2J+BDF!To#EqPtY` z%GiY>AIDiMI7tu=h)`V=Tc0gLCdRkv$AK43X^ccp%D*1jgeJ!w{8C3HP+}wtzOhe_ zaNHUn(E`f{Yn~S<+)b9u%K=l(~uX7M0YvhrGk7n~k~pBX*xP1AJ;^(DOg1|<*E2ZXsqmT5Wp+O~Gk z%QzVpl$(1HpRfOa|9y>5-sQZw^k6@I(4taIc&Nor-?EazHKhf#FLY&@gSVWujKK!F z1h8%Gz<{molLnc2s-bAiFfXfI&0@y%_?ynS`22%O+MmTyXkBNW740mt#`5Rp#s6)6j8-d^?dI|X7I!3xOL6ov&;|q z$n!EU3Gh974-hzJm#-1Tt@HyNtc{chF2$lW)ptsM9!M`VMel;l3R(dAk*g7^ztnmF z>;Fw2xNFLmAh=*l_h<~JxEiq>fr9dcL;p03yilU;9bQjus;1wN0&Km@D|Fcub&-q% zJiRzjCeiPFIP%rqPJZk#VxR;5o!sZHq*U%@)ZJ?$fyVp6;_lQ`+08GSm4??at9xu4 z^HgX!MBRyBWGY~zXFKrnqLTWtXN=y}(~`E8ZOS#Tf0(xve^hbKnmp|<_K*`;?*eQh z8PBSQyhlxnIcemtFvX9fkHQ}*jmjAb9P^ZqjJ`~zF_#sEzd8hWYb?nziE+pGWY1L! z3L>%6gY&uc4Fo)A77*SGHC}ePY3?N@|(ymTA_)LRv z;}s&u0-`6eQe=M<@lA|A zfV@}t+cxf$mO)O@_ZJi;w;@Vrye;Nz^YjLzPCC75zCJ-U34gTn2$}f+v3k41h>1ol z1Jg^DcC5|qS-RDuXrjxyPBl#4(^(UQceL#E*B0euCOOCOn*VL)*%c&8TMT%HsCpl~ zbn)rBGP)Yl#xnJ1dYf${Ho?_P>y{@o(5$uB^_eKWKKkz_;hmBIsuV5=wEBY_*G{>p z3g5G8IUy=oF8Hf^hs`TZ=ubY?xX4^(v&osw;Te`w#qY8uvrg_S@=2(7<@}(pC(7&< z0Phj~lLZXkLu0U8WHxV>#S<`Vy~UvRM|GdpI`brboC0fdtbYs-9JJYAAeYVG3dTl8 z>N4fVH-6j-GpKe9L#I4utjB!Haz;BEDVh~CF%;NLrrv3iSaLv3EYnWrF1oCnW++l8 z>$~ZnN!Li_3SPXm%~nif<i@Qk_lCOF%tQ* zviehDWi_yk*6#|D^R_Sk5(nzoerVKmH7ofKYV5cgY4N&6(b4cz)1uo^$5TYB%N*|) z4li>Ew){@(iMvo^a@23RM&ngLN;gkIAh)QHt@54J+S2uyjkRi(fQhZ zBTK_3ph9RqKsjQsMJz*Y84sWUZ7h;vx+<7_422*l2}eQ{W1v&*kLep#$LIr5G{A>8 za8heVBImn$>7)1AiQ|{V@>ct;wqQ%6Cl1PeKjd;xZ*uLa-+oPR|9|+(_zH@B!K>b* zN<{7Hd$xk-vjm!OpP9~B=sft#RS!cFPcEnSp*VPu3E`2W*0sl4BDQQ0yhl0 z;zOv4f^F(aJc>g0-XRrC^V8c3KrEyO>0~F8phF_DBA*!icdu2^H`%QMQ89WnrI88- z^?3Yc(^?VAmH}1ll!lz2GD6byK7=b~i||o?0^Y(Gr|k#&{|FbgS8Nle9|7)Py-MQz zd;%lmeazB%zDfgG|9!CdHhyrIy_ChVg8lhmM?3^qzAARt=;41**WB+;L0-Wfj|^-i^vmr)xeu|Y)iPs5 zkmdcIq!Yrx7kyk=#_`1t1h4j6OCwCAEmOX}ba4if(S-kk(N?Ngw4d_8iUx>uXvnzQ zw92k*63y{4A*X<4A}3LtiJ5^r}=Ox#wCafDcn|8l^ZdYYQ&2WQk& z#Jt`f;eKSLxn0o#)q?3L`Ti7=M=vL-wRV7PEORMpCfWG**upk_h@eipP(f;P5y=xx zqoB><+}8S!4o)Q=_ZD3XCl$!ZIM|Sr&nN_V)FMr;LNc?(K&+{zm5V2X-jFLPx&EQf z`Y`<<|0o#)k&R4J=mLc@AY;|}Y?-R8I?1GDY_pU?MTJ|%-~hyZ1+`N8njJt)Gdki; z8$1zV1G>eJv88}V4#XoT_h|^bjn%{q=25OuiE*oJoaTNMuPX z{xxrgrfe545YUHGm=OgokJ<7_q=!_Dk<%LU*aGu8$%8{^$RV#;UJLQ+`sMyo?p0|- z+EE2O#pkN`z0O()Rw*y_P9ID&*g`Gq{@CCzt5y#UF-l#$Z?!-gOtrdd8;_JEU=0#Y z$N>)yjVC6Yc@ehpp1svJjzWy_Crb1E?z4|H2+K6#-zLxOXn|?vmzd|%}pv?3)*f` zt+ym{VtQJVUT=^7m8n>Z*1`(UO3Pe~z&bV^6gX6eqO^gw+2tx4*?kwn->>iFFmoB2 zcmT%*z=mE8>ORs(FdtGFV~F?n=`gXyhLDDky~~rEaTjy8{N@p5yJEggig>e`y`qk$ z_hAG)l&HRZcPvQplVvlK5GXmFiEnVImAOr_tMe`5Ub{CopDEr>utv4^`~X(_9+z5e zr+#tx_Grgp7H)Ya*nnobId6SpM&orLuRq9u0O#6wNwTcH1}yOhzPuF>sL=_T3K?V4 zUzGcuxd{kwauOwvh~FKA2;1PIG+K*6NLVux8N0r20z0*P7ItAjLeDhld6P*BAj=>; z=BgvM+@!C`mre7~ElX9;eqAf84D~{yIjMwPDds~47-tjETqIP-S>H%2RrIAS6&w=@ z)_SBcN8d%@7}mwP(L}LlyzWe0`H4AUc*vy9P6Fn z((_Hz;}hrlq@roL1+L~Oq>tviMh^Wrjzc}HA)jd#lCK$pE+qQS`!$T|%lV{=Bv#Cy z4SK8k#dua(eS&XJ{gy9%B$d-}F$(7h&!3$;SOla&YFl8uAjNuRV)^Ret6u~5Bt6(P0|`ND)l7*C~^12rB)~MZ&=&VXS-x5L<8B+ zC7i^7pl&x@l8Nl{aJimkr;8;_Y|d0gLu{qrSp1F#FE)iZ-a5&T$u7?_s+@FD^{)}M zUA@vKvPP1d3J6g+P?&>!;eOhWIwX%G! zJOi&QCLS9Y*xgzJ8?TIM0<$54zkJgr>Xmams;{ zlWs{Fq_>g4)oM==eQ2SP;`ZCVOb`P06^83(+wbq3ivmF?&uytggTwY$X{mRli9} zi3tJa*(B({lhNIJH*$=`5}K21EkxY#di@D`a)r!@3=|PHYVNCe3<+NS*<8d*C z?MiRzT;o#zML#t6pZr^k|Ytp{kkHqzw44IFDNP z3sd+FJ_(n0^qNo0h-onF+{)p&-$j27fdS!kq7>u~QCkn9%DMfY++rEvq)bJCjRiU2 z|6HLpD0zI%NnAw~NXfTAeieLMmi8!m&;U*UX`EVS{yROna^sW0>HJ5xaMK51}r|d@-IjlK(1zPtv zV{t58zkF>f{RBWq-Lnnar)&z9jkesEH#ogR7??}=0&{uWLatdtDa5iic*^`Eiut*i z^}e5JA1U5z*HKW)CZ|-xwaX&aVrDK`t4TE1l~gD6Bw@A`HK|CF&uocqw{2v zn1o+pOG;n2DM$5GQS!1;*DL*q-~WA%Qs6l$I0!$=+t^64Lv7CL;i*9#A9hk)zKBbSO8So7VoE`QeC%!Wfajcq(g z?jH;!|2>SMxTkI@YMl+FTiO|E4<;-l^4A7})cmL_3?0!a_;{N?#d3|#>?>3MRwMhv z!J7^6K|5t_FIZ%oD79EXMChMshstN-h?24!7)RN-QsKSfxli$#zKUGkJ*@PbjtZ=O zbgy7fOWZ}!`-tIlRL$(t(lfG@E)N3Q<(2KY^R_24USSW~-P|*)Lqk{l-Pm#5!MFh_@mkz>({eH8>3mclC zW^9?q1H!hXMJCOo063l)4uzv*Z)zc(D|l36*uo;rQXTU62S$Ykt_+1lAudhCcXO1CK^O%w#8_q6wpeaw)cL*_co{}yXid)H##A6(&jYLJPN1)1Un!YtU| z<=)*f2Il4J0W0s9D$0iAJ?6BN|05L0bGoC>YHaH_@aS+pD8-h)4S=t zW0|fLVn$ub!P8PT5r@)!zm!rCd3w`)Q8K|_p#=xQqz@KIz#xJS_ooW-F!;y%)OdgM z>)K)YMhjqFo9QcAxx~(_L0a8RY47|$Q`zA1;_Hct9vMm(p<9; zb3g8>&P{xaNh_+PiI?7-+tcWS!?CcAECu$BDZ|)5;Ko-xZW);%%JEim=s6g-!)C(U zcHuC^?xo7>+EV-$$b2lGHvca{bcAtG^!lk|3^T&W@vyUv`Z5{bYKb#4B=6MRSpsjb z0-v>?l3s?pH=!Gjty?8E^)v3zFyPu*&DAOet7%or<}sedvCm`?51z z=l@gP;M(keOt{`r3~AG=kM=l51cCI1l?w21~AxIXU?7Yg{ICG#_j zi1WJpzjYO>K)|c@An{)1BvL0txcY~GWL0(1xC2fpHB>FNAr=i?{^~*B^Dp~l$VBuC zkPW%F9-G!`ki)0HSI6r(euewRwIZGkwOLhG`POs?v~B%;7W|%^j?1k+df=NuS!t}j zO7x|-jYmXdA{b)>N+@*|-{xOS>{@i>2RU|nxrMTjS^SgG>QflKStJEoJ~UV)bf?ce z1O$FOoIKw6kekY@&!DB11}K6?sMSbF^$p1zN90%+`PkGQ5WdByOi}6z>dCp?7FU+C zp3VP8R$(wHKcOXr@@GV!=pCStOPoaKhQ$I}E#C=S4Z8#IX{4Oe2z^%>T?+$>6m~#( zW#2%fJ6-NTKzZbl9>+4&{56N^eG^o%8S<6uNa#ns-z{Yp(HvRJ`992~TjBC3V!XXS zpJsGm@WUkX^NhojWD;XldQ}BO%t^GyZe4=*!$vS)o)sDUU=)T{GU^=F3^)%!xSgu{ z+DlT1gM~Yc`0+f<}6UHiM1=E5zxs;D+Rj#{oe*_QzQZ zu|eg%9yDfs!D=h2V06*8rv0V^$Le3TtOMb6C0+U}(sRda*CvasD%%lFEe%L`Wc)%A zQd)V!R)V27>d2w4K-`;yME>2>>eTHn#pnvAoMrq-_{vWU+ZF?!52)=GKC0n)LQ_A= zkcKY_SqD$R`V$8{PKGcY$Le)WU*8$^=>J+84lckzC1^t#y3G~zFQ>1r#i+-B#tAR~ zDpc8&ez|Bj&LLNQ5VfoM$G0%|HeyW;A(husMbx>I?Q%`z91Clle7>8dm+1t8xo{V- zfMpOh;6}cMxQFyoOlT3=H6X7QW9`4bq1*L?S z+cbQxo1xrhTNpJmm)b(j)2x%)St$2CdYHZxQobr7EK;)?;)EiV!lu){Sndk#;ujpe zAkNuCPJV6}^aOB;g%kd8O>EE1Umz1$LHwz;`=@9Ui~DnFzHLG$nXawOD}tcu;^(f3 z7N`#N2ySR4l^fpfD$~Qr$EeFRejiWQXw84!J6X2mu7zAPeH-%26R8n`!$8r@LT`Ug zVgn5xG$@u!&=66Hxqx>FY_EKQ<__0FOKD$2iy>>Xy~!2(rhdV4?L|CU7{EvT65%W$ zaPjB-$P4wwsWMLIjERrRx7J$GUcb4aun@Cm5%|b7&3J|JS2meXZeQyyj5QGw?9!{^ zQ>=$ij0OE;7EQ-SXLg+AV~a~t+@ayWTO$jwr67QIC7!FH_gtSe;E>MDy)2*()buG# z)w^%%?t(!FOuzt&-g^>q45j6chi@O4#Qb#6njwrVzM$-=%Pb>1xuF*YTTNDZ4V+r@ z+t?HDbv!jrxKD}yLnKy|Uz!^dO6>-3#Ei`9c9HARlqIc#&M@-22~qnP&48mS#zG}+ zW~mJWZ#_Wu7bQg@R*-B)w@1T#3JHX$IJtei(`2RMac$GK`Mv`}jori=0ZB?(jMKK0 z_A_i}`PQm)O$MA|>e5Ss$mdJmjFK#<`YuZG@Jy%V^GKj+3DRqz zM8Mli((rfB5VHh(jO@3ixE2Dw=#<7qKh#N9CLQ7HMp zh6|UnMa%Uh77?DeY%@LGB|WR=?UH-ZT2np}?^}Y4;3N~Vi{QS2h3Z;n1$~EqsH{^# z2~fi`)JQnj1o%;FQ)xjxZyi}GcT1uE0*tl*Q+z$+g*j%1Zr)ltVRZvivu{n%m31*# zD3c4EBoiE2!o8sUDL@sqbAzGi8^km{V5ki6Oz0p_4GIr3U{2kyHLZxy(B$(~$DM%2 z+@1J;B0`srA&AgZsR^bX2Mg$E2AE!4QZE-^bg} z2*yGo?4`02VNg)ZRL$C(Kb9f)>1hiQO1qKNW{5Npa^YE?4$7oZ+6-*8ZTw8+asza* zn1trbc+*RROVzdaz7WPkxYK`0k{8xzruqX`8Y1U$rOdX^Y&l?>e+P8=5q9w0Bo&g< z#dS7std19ctoWZO@chGein-ULz*PRrkR!n3-8qQ>0BDGH809F+d?lyw1J{Fv+y%T~l=y(Ld+4=#M)zNBwSE#9`L$Rv@eK>lAACP4hmD(Uq0#N#? zRensCEz}XLo*x6bdP*yYEC6y4s(9g!)aT7;AFRQ%@ZU`U8NE~V384H!kFJf*cg|;= zcUp|d`~wkyJPHxrPnmBw?gD}>qa9cmGi6w=zdy5n8iO7%ppF~N9DN6K4B+I_(=cFb zK@yC|FfW|J$R!}JeqS6Q!r9o?1hO;Y`kmF5nEhrvPGU@_s3&_b2~{1tbdDU>8Z(TC z!*%1i4Z#ZD1N(54dRn0} z^4q}$61kh9n)2u&B|=mMqWV%YJY$?;&^!tLS#`55W>N9P4dOgd3E_0Y&LR3RxEwo8 z3*)PJC62bbTsP}Adc=_=m#CN*`U_O|;KC^1T8Q-(m-{PbGsFZAtXzB;OS9WpUZEcc zllQuXqUt2C<&YzW?2Xl}2%@|pq!!mm?de6Q=@4Cvu>?>vf4}a}#omZc-Moi`Nk-?} z2fs961<5_o5TwA+YEtc#qg!|Lh3Vju6S-RWG7`-2)yeWS=)V91yQ2nd6=0r|t;%!X zJ*vH!P0NTa-z^3vJ13^79hgr4Q7$Pd;1D{8!^@Wpp1nu5IzWyJje!;s>>%rSn#7uM z|0c(EMp}ecwHUi;#y)@yZuC2tp0J61F*vy5Be2eyr2^`L9R2pwv5fhWuhzs=n@739 z4ipU~XZ+K%(BW|%zn6y&8mxy^C`EebuxvU;m3W_N{*1bzV$&S8Zig-tix=Xw-73+R zdO!6x_z+Vs>2C7gHZv~m7Ug~EH_wH#)9{(vndpsz+)DPh zh>6P04sVbSsEWvBf%+|jkD;a{ngF1OFN+ui41xt0hdItvZ9e>dG}xM^gtr^bsxsvJ z>%!DRq3wQ>%V+eTl*Z+GB#*zbjG$1*K+4Nfpoug@ljWshq7fW1G<;>Dgi8Q35RQ>@ zmi@X0`!{9QfNlv=I2tli8Jcp*E0qgGju!^S0WQ8XW8Sk+NukH4W-ix$wMbA6+~nck z+~8y${PIiYpX4WXz1S|+IBxM@1Vr}dh_5Ss<7INb8g>ME-#a9_FMjlM z2E<@H?t<~E;vu*ZfHAj>5bGNXHBLX1T`tkHcT4EDEZ&Dsgm|vl8MS^+KceD}# zzxEWFVKrraEu25|y_pgFAS%kWLk;CH!`#x*M>;YA1eUK7uVk0VM6{YXCE0oE zzBwT^!d7`qs(*>c`2gX%cdkeXgXm{sUj{Q}ZXUPD1DcC|)O{zuc*+4Dq3g*Uuns}@ zW6T8)b*MSZxVIMQwR30{Gw!$j>WM=YUhb>MCF;;JDki8dOlD)cugJvyZk?9F=_{4@ zZ+GAuqgw5uT8(AhP|g%ps!#T?mvk|CLTiyGZnOU%+f&A4g1MTJ2Vf!0oNbF+L?u=w z(>2|cdeR3*=>V?KW4N#E*JKPh{}JSzbH`X;L&G?Rt`p$a@5_lcG=xUOt31-opcYcJ z$z+C#ol$d>Ip5dX-)_19CgN}GZ>|J9g13}rQ_Aius0|C32p2Jcp`S$^I|miLXpIRe zH#PCVB_D^={cSsQW;j9I=m~Y<1?vT@s#a;#j^DUMhI&QGey$zW`Fvh~tmmN)iibFR zfB%1NJ-KKwsN_j8FmrPnz(au6KbT}3(q)MRF)xm-QbYAxur#(%2>5v%CO78Ey_MHr#CV!-=sQdOUj>Y1GgNn7ZI8|1G3p zqgJ0~|3lBPSj?8PZ5Km6BYJWb90OGB&e&r^%+Pa4ZD7Ivq03=Q;f>Rra>y3cW2IzV z($_gBfNT{!GTXVJmmy|yXW%lot61Y7clQG5C?L&z z!Nwn)0g*DloTnHwyz!`2R-k~TXukNDyQss3i~npLPvwG!v6Si9OGaz(%DTcZt;M0o z!WDQzKF<)k?}W7R)hSrz=4ReA%Dy+nrkW6_**-HLv;a#W@y3pbpf~(!QK{?$3llB+ z@ub?h$@!>DCz^p%g;oq_sM2B+&39-)aZ<3z2XUhjKEYaY zhf^)H<5-d@AAW#<=XJZFKR3UPG;w6WksUbR8bYynd>D2jF z`J|t$=#o3i?M6`A&yB*R`TUsp%$Mg;f}4U(q9Q|jqXZ+YaQ$GNB9nm2zFCY*e3dGb zVwGg}>$1nE5|+AbXG-z+Dw<#Rgs|1oF8;*|gBnZ81#Fh)j-6n*R z7TCh+99Ts7&yEwi9{f%fsgn;>q^F=IPk^8f;dmvzh^(>-wW+p(z%~k{fCZ;OvESE5 zDKZ`U2vA52esgur33`ZxW0QK-_L~PMlDW0bG`ywrodRBzu9_%S_%FlbIN8l+RRHmN zexM$wU`a$i*t*X_r6$Bx&r5N2h%jfOrZ{w)8b~q7a0)Ut6tDbABxCEl3TRsXWd`>( z_b0-jkN}(T~(e1Ui7_4ek((k-r7JQTzmUqy)6O0EI{6Wdc}XI=7gelDXH?80m?*Aw}`hf?qZMc}Cm zKq2KBkILa~1v$6Kd;eCFkqL~%x-+RA7H6nrmTXe()iD7w#3Y_F%b<+td!3>!Sl@el zRjgxOE)v`ToUXvEz_Gv5z+!0(n; z?Jbr({p9B%8{hGr=2lisy=h>m_ioG8 zUf8`_x}p|X^&+qTPH3E*pJpoRq4TVLI(hbKpq$hHCH+62J5niE-Rcq?e5RHBL&Z=A zc3IH@o8;4(`4m;Y-vjuzui0_BWU~bYLUuz|0~l4N4{6Ekzmk3nZ1Lx*(m( z18keYxh-X}RFjh$j4l#Qz%O&Y3}al&3hh6}99X$?zexjot7^V_90EDjUyp(9X}|w} ztItv8v;$@nq>QeZ{{ z@aE`D9Ms|s&UkD+J1!_>HE)%fGb>>365enDdY}UkMIQ9!Wyy8uJ&CK|p8m8mRUpDQ z#n3^`8ggYLzm1A#s}Tp-7!e_aF>KD2h87rgGF6NAYznRv9wZd9vYKSGpyfKUb@y=BGdl z8`OxzcV$YpU@myBqAkVr8kU!=;vWNMraKE1iUib8uLzy6?y+u*Pw)f_HHPO>FE}*!e~9=sV_Y zVL__}wyYH6EVyh;PWmWkqXmOB$rNIau# zg;53~6&BoBTD`EosTEI8$>2E6k@Mee#dgw+LUoRg(gb9&7wl3$m))`xxTPEaKcJj3+`t|N)iyWFNsRGHk&gbPDDNdE zSPo(YW__Xny&{i;|9)=j%G5sA)Bkg+e|N^TOguKf?=X8#xhiY*e-cdWw3dU&Ux7iA zH0S+!bRC-yv>6F0G&}n5M&~mH>l5OIs!y{W9Q%0o-iSq`0ei*$bQtlCn+>|3v!*=^ zVR(OW17!n#l(iFP*?lw@BT77hwWIumu4bR&W;5T(Q30?A!m0)GU~w21TsYajVT^FX zf-Ei8H>C=k@OCo9v|QKq(JrDS@BsavF$B{Tyq5_uw5I$|QaAUF`m zo%zs17A@s%{5V^w8!POrJLzwn3hgn>0MOdHTA4?`zGPXl zYVIrPt7O8s_zlEy%T2r}*K})(mUyZtCcmht*{yTbi4hk6g*=#R)#Mfj>BvR3Q_bvQ9ORAaPN=K zkEvi|HmB?VN`upY#6d;4CANOxSBd~&#=qz+S->z941Gl+Z7E+A{7 z1e^O&)J2BGciHu6HUCC-WCF102*3J_-Nx!vR2<^!s#%fg&U$P1{=`bL^)APkrOd(GLC#l*5KHQL70!kD-MoXhmDG zN#+`IxjW0}8f6=Yl@*}~@Y_>>jt2a|8>t(n8JqeU9F@yLBaXnhD2#1!`rl8x?#Ima zT7Ba-Wb?bU;hp;GU~0B;J@0ij1!8 z^%T~GalqgB+!zAa{F5PWBz=S3_!(vIXfOxXnT$g@h%q$tsBN)io8;}heRsDCZ~9ry zk4_x!of}Gi8(b(WN@HotYicEwF@n_!nkl899i<_dn9~4iAFO};J@^K@Jh=n1yD3Ib z54G)*dE!Ao$=P+F7ji6YN(T9>j}JC!u1&d-I&3sXM>P~2g=Z}BN;#F(?Dj2le7%^| z(N8Q9fjtFgr@^GZQ^y(28_F!}1xLBx?27H@ zdzuv7j=|`ZyrD|eu;4~^3SAHg`{wEjGmFgLV>oRAR64SRs@tRF=v-FT=iByYLhjzM z9`n8U^QL=zuvsUyEfKd9{317xJpT4Sdy1+Dy?_Xr#s5X1mJmf97AD|pVxHAUf&*3F zqfR^Oo;VW_j;zRGQ_K!N7T9^slF+14O~%K_%4nB*8Wn<*JT4wRiAB-n!||`Cze1Pe z5dgkksFcZ(welfMnKa?tFy(Q6Mc7XL^o{KNIfwxsN`FYhNCIqjGdhY7RojPQ#ok8fd6B*flHfh6&zu8~RKqM29^Y`ULeck7#%RqWtF43_V zKI`br3HR(WPzEBdKBN-lafnpeqfU#vnixtH>vYTFh4dG#wFR^r zX|wO?I0t}aFL?o2R+b%#$tiBIvbj{+O}F20r2Q&6Fe1LQAr{V@3&7xeP{`bI+4{Xh z#gD2agu7o`EO3DJFv%cfbV|RLa!Ni2m4^CU2=JdF1(ZKIA>F1s&*er*6K`}?p5n2x%`;CsbK3&$NA6~WX57BWqt0OEDj z^$QateWdYPn^uV#xn5~|w4IZk56w1!Bu#_t46}DTs#Mprt4E{^nt6jzHn|*Z)w$lp z4SD_t>@hY6oDz%Th_&*LjDb?mbAab`0Iu1>+Z24RC3kh` z?1CnACk+Mf-0CI}aJfdA!mk@wX7jvFG;gOIlYyc_%VWN#*sC!BuA6WqV@{svZk4Smf5k?w|NZ=q~Qo1flvd+jQ8?}HJHQtlxbYvI5G_8zBy6Bvv< za{e$H&B%Bv1@S8tDp5^F9Z{9Wo`u#hF^fR%9; zb$lo8?f-0WTJg*fJv+G5vb>oV+R2zM*l(BdaCfTWJ(--mh_|d*AV-F&HY3eYl^|4+8uN{M55-+OcbroR=ZFh8H%mGgx4N8Y&?27sF z$hW(c?J#*;JE;m%bSxpjjyhd}o(+Mn<=UvI!z}y5Ha$Splxo(*;}@q^m(k`Xk+14w z0kR{dUZnAY zuAVrYjYrx>)xqI*i3J`yf%Jk}kz{6ekwl%E1GH*0b9U9o4=uH0t6~Y8%WiljyPt!Z z)#aKDRj?1R=dsgch5umuFf^yIMiW!pdRm~zt1`fN5cci;pgGEAj7kPZYHpR|>T5~` z=jpo(ad*#2VdWrxqU7=|L?}eVH0E8o+&OwT$F8@}n1NvcrSc|eC zuf~T?8_Pb>6+|bx+sB>J_c|QOT~KmN%BN++`$Ym-y zW)#|0cWbqf`j9cd=tO77lo_}5pmP8%RpP2+R=#f!uqgK~s z^q`U1eW97_h`-%OMlOlBZ`Cy-1c?3(z{CQD@s;biBInLcW>58vLz)Bd>vJC=B?AZx< ze9@*s<1XK#km>b2+KbeYqI<^RYu1UiL_z4#cqQPkXDBmJ^frOO9adqU39*~c+f@Yf0yXeLUe1LA=P*$u-`-70!Ea~gYcF6dczJdeWdE`>hwA}`+N#NS+=;Dr` zR`)1fUzAp%{>FoV@R2-Po;n!WL*mQgjR-ejPqCd6i%BB z8;AjaCd*1xMSzGvgs62NmWz{@NDR!={Q-S4RWHYXnAQ3Lp7vo}t^?HZ}sdw-$j zya77-(Wcg)IZRy4*vAN_A-Mv{6KP}x;Z)af4fe{D+ZIfq4K4N{YTaEjs2A4i(F@aO zrW99556A{;>EB~wm8JP$F?A^FgB;d2+1l*!Zyp4)`8G4dXaeP=*2Ec(A91n*xS1#b zuOp6+6yR6>YT@_QGrEn0+2@PHj7sNt;9)jU;zKW(ORZ)b6e=CvwRXb#%6O8NZ04k= z?qA+jZ5_|xq)AP)RTi?%ounB6rO>*%Gzg7LvD*8wewv-6%Ec=8?)A(Ubf_LB*^G~d z2)FZmE!WSixhy-@GM@$UZg~l0Lj&-as>uSpKkvA;pQU)ar^RVCTvKTj+?F? zxPH-`7F4pvF3jYiuxXclMHsOUpXwnqhXJ1UtRTF%zkuUK(QL+tAZYLn3v8CPH%ku| zW#MPdj72Tl)Bxlou`E`D1}cLPe-yrck04Q$|yl5 zk?4lR0~Z-UuXx93_x<~RtOXMB5crfyQ;&A{k)-|4LGP-w?p{lv?@}p{F*t^ody94~ z0*uLdB9W^u4=#tk`gjl(dtqSo#S5^%Z=;ik#>~V!YfpS=S#FD#1HvkQcRD63g>$5ywA*eaOc%+r-cRoFt;P{lr(COYuiTcxObu& zYqzTUzdW#rVGtV9!NaT^AbFk}0s<~kd%tqYTKczl-l7fc(s4Hd=?aqG7bl5BRL*_K zaEy5uZRbYO_q{WcJn8K-6%7c4WuS7W3MwxK2w8Z9*}=q#f_VTrH_G{ryVwk~i`bXQ zHY;ixe7+x;x)6+J9`{Laf}jbLSO(qgKWLJbi2z5+5ucSO|7uAO(*iuDpsr+LYI7T` zNq>$&z3x1vmxjy(YfLc`p3#!$jR1Lv1R}Q>WgP_>`X-D6iO$xQ0TD;9M%R0+!$B^+ zt=h5>oa4aC5nNK*M~e2W9yUXAm!KxZ>v?hi4sY&*5TSRuApw@9>m=E_%jQW zq7ASZcq96ZD0U?t>G zihj8x~Z~<=(E`-7is^?`hUv zTt2_u!-rc1cbraa3t1B8coogJ3_j}TMSY1t^(?1=iGhJ~poMq|6m^*Z3mjXAbM54kuoRvDbMVuCrVa~`&EkViE0|72@vbwUJ_syKS@(Po`X@VHv z;GIp@y52_53|DkjuO)IsP_Jg+%h<>n(9EN3U%1C8QV#OB=)Y+UP_@TACJ9Ak=K7BZ zTr7S#&36yJ6~cL=deon12(xRHlZc(+pw0nX6ruze?&yELYp<8)V1+mPf%q(*v3g(n z_~AXqG66TumrsUboA6s*TN818;+IVCSzRkE1KV{Jg`=7?hstEC>Y0i+pMl<^ zB^rZ_KI`feWLm|Zw^H4)4p5}>Q^bx(?~FKQNNvU>O>!ebAKC^cb4$TlG!sJm%)GqM%R zK;#`_TNr;(jL}!~6%3`jcHCQ?N+&*lQ81Q=Ix-<29w*=5`{$q^Y)*BT|7CLNe;_-C zbq(HtubtQ?&O(bu8@g_Il`6N!D%4!^-q%r&$L;fS;?Dtb_YcUypo8M z4lagrAoAil`+hFU9(p;NPEaF!3{iC3n$oq6t8H>VksI))R#!w7=G#D;z(O*fjA1ow zVDZZ4XoaWqzDVwivv%c-EDRS9HtVhUvsXJVKkb^+oE)NJ(M-ma-tzh}w9@iF9}yms z+Y64+KEitOvE-F9ZF4x${}MS0@xgF!^gZ=YvuGjJrzIwK1UYJIl90!P7KTi~GTi={ z6RLD4#=Y20LwIM=Q%J6a_?^F~()q5W71xab(DOLh$h`3s1o(O^;{3+I4et|`*zqfP zdh}HnMK4hyBjwjI9Tj7OXGhELgm*SaUQ6`tMM-*XK-fSy!WzqxOsn%a+;or@H6 z;UF2SiU8x*#MjA1^6Z+P!6ZzIU(yb-}Aj5%jf5WV{12zB#PS>b?mO|6t}O z5Zm{cF#+IzA%blYWOh_41Xbf>`|x0o+*=H&rX6I)c=Z1thma(xmm_<`ft@<_w0$q(MuI8(I5U$dMg)tMN$}pHz{4|hiGRO5*nuO z$6IekF@odt|0Lh6s;uhiB|AU~b)NE|aGXaYU8nB9i)SMI$Oxt)S6^j3L9NoD(pjPK5_d}XZX4lEt-j<>bf0B zhmDi5V7PbhQvqshjKP>wE1l#-s{Ls~&1InYX#YuX^*gQS(^#+;3<8!t&wDFqgo~IFkJ(FxxG<4LBexXB*7+ktRtLbmKc(y z;fw~In0Bu~Kr@hO4e2xMvEE&^v46f5fAm&V2pS)rI0_MiRiJzOLFkw_ocVcP@bMeV@4L@I5mvx7|NBD=J z_-%-iKsa;|Sys@}uGJm8=ExT)&8Q2?n2|Gf70;;v@bzX~GRfKyLIFW9h{f|s4FPn} zGBf16D$&#M91{_gUe?-FT_g`!t&(cqo(vEf%4Ft4xNJxDj(Z40W zh|GzMx3#-*<88uUvCFO%w0MkVE|g9<;c_R6Dv%stjvN;o6i#86WkKHlgMzp@VczX( zKmL6?G$BWPtA5^gk~@KzLg2N%bBv&C1q(N;U^b6Tre{y_6euUGjb|_%VqOji$hwbP z=0kFDR9x`h^)S(TJ_AHa`vhafW2SxX_wCSfCtjP2h;nrRKBN`}7@t0sRAPrp9HnTJ zW>5gv1y#|nOcm*7`3f*-^JL~{NA8mPRJeewQh z8SG1?vg(PScwSRS*XmsxHJP!!LTyC{{_8~Cqj`C?Yt-@&t?6Xx;5<)EvKAM%5W2;7 zCyuS|)Zq@L2Oxv_u5Q`FB-Sb;AuW^7IYjV`*Mr|Yj`)X!mFrv)a;u6#!*NAf`4-U! zrw7~DRFu5iQ?444Ybh26iHLOU+~6V|q?a~PUIK6Eb2rXb<}@N@TBuC_{# zS&W@|dw|*^(_dv?k{wslYdF7}drti@>nECw&LaO+HPbcO%h5knS$`vRX>6;{W4Am+ z$zn9Xyif5Kv0T|}-I~Yh%cN<~^K{Hhcx1Su2|{sY%>irVsR+!6f3N^ZEgv!S` zaRPe$A2=!iN$wnr(Uu?X@ibK-}1rlX78OkvXIQW}xd{VKULwF_RQaY8~ zYIIpn1niXwbkRRt9gz(Y^Hh>QZQc^)QV7trFm$pomppPTy&I`2rt=*drLFZzvgJbN~1`ov<438}-;^=?R*kIq+E^O?F$4=k`X0Mt?p8;^G4!rsq5pr=63zVcL z5po!+_2Ky;VHr4FmUwG-K>KC$Q`W&6$ok%GRY)*qp>WO)njmSDo9k7az$k9z2G#hx z5Z$Z#Rh^g!c)S#AwRo)n3+*Fr$?A&iCmuPLI4oQrufo(^JBQ2DzwTc9dHb2lmd=s8 zaQ(UzexwYXf?~g$|1mDQ03?v3xs;vi5={Uw>uWsOM9hN>WNq`*#^RZ zgC>A%{y2EDvG_#}#2IB7;a*lBmud?3X%GR!jQed8LVx_S)5gVZs5;8Ks-2*A7+8r7 zeFfaK$%g^T-i7WSb&kF6T}^yl9&6bfnjF#&gkb z`w8yV1N1XVr$fUxsmhrSs?pY8B)bb_YuHUc_b(V!cR6c3=4X)`k&0C~R`eWja+rFpVoh0T zQJTn`sp>W@fRQD~KAdaQFhgtEVO<0|bdc+)q5Y$T3`#@{Nz(p?_vKNE%$&7PgE|2q zw4m`>_pX@TraY9GpEEjR)N_*rePBY}xC+{YY^k!*wEeKNRrLji6cSTrz|E_x%z|;X zif41zlU!MIOKChP(+`UE`!-#^cjMiLw@l^Xg-zfIwBHq0B!q@cr71 z5XWHBy=YV>tMVU02H|!)de8qsT&gFB*GZ7Or)p3E`IZNBBD>{rKpKXZRb0m%2k;V)5+p^}+>lz##R2MtzA zoarh*fv<1SEJO(KIm}Hzb)4rfi&NYhy0mha^Bb&1&3XMkRH{>Hu3GU05+OU}1ch8j z-H7$v4JbP2Sc4mEl|C)je`Hsbmsb(eU1cIk)LK_-ZeT*Yn$0U-wgyRqvpbm*$`2?6 zF${E)=x#-~QHT5AbwCt&Rmbl{PxeIg&?6i&nw2woTsD^qeTjH4-phg1G3Z>agMdAO*pXiO2JQJP%S(Wz|c|oN<*u=1=%BX+QOeEp< z1=_n{;JV}Y8gF!`hm_U08;T`q*HYuh}wA>V*JwCy85QNaEKU(BIO@OIfI^UC~EK&Z99IMi|Q z=E6;;9`J@@<)^u)n@Qoc%CZx~sby>lID;}ly}xIueEs{$h}UfjK^lO57M5YCMTjr_ zm;i!Fdj8NYQ!er)%J#R8jj}kUIq>kWT}dia4+{8II~s!w^m%p|Qz_|@jKp!I#WXc} z*h)X z@hCr{*1N+J3;L73EHT&E~CZ_PQ;e%tLPnnyxBA>Lf5QMez5o(Vm8x zLH;9p|2SadyBFUO`93>XGd_OhnR^XF9i+XGO!x7r%23Cw~V@t=3E4?SELv)ii>m|BYVxzAW>DUx*B^7Aa*Ga|caqyK;ZfB$%X zk}P%AMzM}NW%7{OO*-{Y&R0k~Jjn62v2Mnu&xc!JXxr3K8($VN3?bqUbv3wZQ&@;i z3^D5JfH$ysxY8)cRdj9nvlP}X&yZ9OIy0S(KR5|;OJ#PPvWY(B{%CL=Ejyd3jwgQY z%;_@hbl|9;54t7V&QQ_yCKeEB0xaj}vkpcqG^O!mFbx#WeIhoezP0HlL}CDUd)#|{ zcIL@e%|9-zodh{_g?Sg(5i0}!I;_P#8*0u2y`j|$6-|fF6VvPrLvNsKwUsj~eRfp6 zFIBIV=~B?{eP#2@z$PU+qT83N(c89rZt%O@?bB5xZQ(|(mRU#_#YuYPYwzYJC=jBi zx#wUJF5*p}U~)@9H|^SzvVPzvc4eHL^e`c;Ji?&l)YuZ}PM+FA~f=zJ~7gqr~zcpx7fUdA&%7|P$Ole@g7tGOq3JtQh5R{ z`);;s<&v?i^k0V|EwY=aCxcnBt=M)}(T{wKappcR@^f5=ES?-Wcl{8RpHe^nfB${T zdaAHNEbY)dIuD{RYd-D7JS*m-S#g}q#tHDSbMxTlsoT0}6UlsJGOKZ40IdrI5|Kv! zycP5ATr6u*S`K_2@K69~@=l+5Wxd>A1Xg{!s8zH{zP2mbpJ9Ke<-6qXZ$vXQKFQZh zn`zIogD>J~+p%Y~bILJFfypfose+etbF|)N6aBG2odVsrB`h|a;F3$$l5{L71TXh| zT*hYTXEcHY$d@(i-egc5;l(c4!!Gs**Z)JHx%e#SAkCkMl)x-e7x+k-{KUG!px8}2 zgoV}u-p%zuh$hqHyYn&S^2vEE=jYQmHmDFrJki1d44zOIb{0P7(0L5x;}nD?ILpCI zPh&lrYzN`2I^yu0F`t!wQH88><_xmF>iBVea<&arRQ3j_=i?E5J$RC1y!36T@4Lk| zA4p+|X(6D)8L+A3-dz334!bh2#@Alsj%aX1a*{0YixcVcC*B*(nDj3>Y*USigDtqXnAt{|3p?~jW@ylPa8Pu zyy9C9DrR8(GkN|@Y_J%UXGlhf#KLuvg~G3+fQu z>8?Pft6Ku$E-T2jl|NKiq1yjfs0=~c|6CEL7`MNUd_}p^mmRG6tBKeesJqMuaA>8` zC)lniY^xbS3 z^{HC_Pc!W|`8K0z_BGz)fY$cXt}%aix~s} z;8X6bb9;R;c1~#bw`5^`HX@n77fXqg=jzAm5kxZpw}b2)3g6{dMXVe+s!ZyI^#JQ> zr#~1bU72IV6(_?+WXD=FD*#upo+f>u%!T>~zA;V_x0A&%t_wF|0ojXnBh(PFSV zCT_c74DEFdi!`GLY`#uY#>_bC}Y0gpb z-#?*S=k&?P!`fe}xcy$Qv*h%%eE!q_E7;HdUFXk|o6nP^H_!G9{ashjlhPb~KKg#H zm^fdb(D&!{FRzn!{(YN#pH=JR^zr%qy?%eO-}<}8zIwMlPJ@20VC(1gZ$3{_GvxHA zeEy;MFVE=b^ZKUe$-J+hW&VGzocMmCr^)SK^?P6cRp>Dv4wJ8wp#M+yYQBG3aq#^~ zPlxE+^ZJYO-sHX_ivDZGXmh~q{g!G2EHw4tKvtyJGBqpeK*s3*Zd1h{`YC0+`VrJm zhH}!Z8Z#dF$Z_PueNp%qV2bss`x1ivF@WV7Rht`}-9*?H)r{luQH)FRr-^DPw52T2qI0FNg)Y3L?cQ779|H?<81Nl1lifpi<6a%! z(PTT>i;$Y|v*`P=_;Vk%*y%m)Ww*wE9q$l&P!qip!#@z~mZHSh|9&ZM55Gs45-M+m zz)2qjk-9Emxb{ z@^%~jT@12?T(uF8_m!L$!ItzFZ3%m3!v>5L8UHx1d`bjP2Y~3)mtxnoRy&aw~2 zbteQCoC}APQQPg$=HC9dU2S?I^g>jk*MX2Vbs99Xvo10b9hqv~O&%C1wsEP-ZB6z) zt&q?CT0M9&1kX^#n@XS~)ZAR}6ClB-@8M;&j@C9^L=+?OE2CFyN!wRyQ@pjKIJcsn zx*D|AF3vP|*i7_g)iiz&+r`(ois03l zonqY}i5b?tEDDtG2~8(lkNqk7K-+v!K6?F!hDn?LH~{D|_>A#IY_54UN%1w6vm`jEACYYo&ku`;4k_`&bI3kk9B; zbNzhHAY|s`iBXaqToGbF1xBu#Fhjx>`traNF}=ttnqR+~y3EdX_G&(P5&g8^Et2$| zw!Q@bRslIz%&y`X)>u{WDZM1F8&irugQ&WzQ;hrPd?Ve|k*lvr&ei$T&2x{JF8=>d zb>Mu@ZLeo%R(#t%v`r)8hR^Pv=<)#RWD6~+63U?UUWCuj#Dki{j$e8-sED67K75?O zfkx?3SnSq(1G4p678n$rJloLYg)XjhU8M_y)aIyi-ebN@>iYFJN$7Q|67K@!%=+ksEEkeSsi9YvP$N+E>Fr)mYmU zUze;ac%5{jE<2UAfev3EoDpMN6yBcxK)8s3JF4JQOmwRkeFV@F?3z>oaM2(CXQkY= z?IgekgVgd59xM}4bcq9hHB(9HA!wk-=V-&~YUd|;m`LURA1`JGTDEL$&*A@Rf-Dk6 zu7XQ`0WfsounvuE(~QF;6=aogAcK^b$Va^_c(!nkj{Q~Dbpg13RsSS;TlaPI@BWNA z&>Gle;lh4R1qt|t?*+t^=hzYa+mPeAKz8d%dbQTQVWevWEE*uzyc6Kq6KL#nx7yJ} z<(c3uZ|@f9hTLiglk!SJ3{|H*SAhlE#_z_6kHv|Wt zK8$+*0G_rbJxXAlI(encm;VCRj5efffys_~L?F>t3V}v1 z2)Ftx+^bwE*Za$3zk^5;@;);{T~=qkgFFQHhRz^X?P`bOlj#Zw1VfhCh`5%8wdBx* zSD7LX2964anJTq3V5bsSwC?s49+%jfjLi{e3hQ zf{HFQhtWuH;tfc~(xSfBu-NM+SH8pYr6WY6adI}Sf-#aD_~3Ru_cDvBzMA(_LQRcg z3cc0Ya4eZ`?kt2jE6$!a%U0U#*?Ll|cGmWf8-Y9_n)x|9Kx`8AtUF)ODFD8IPnOCo zCc0NJ&=G&d?0aIz%M1&tg255{z?|ZwNxRsJ)Umegv)wuF6`vz~=P0lfmNw;Lp@XL) z4~V5!Yv(<0{9V0NkOfE`d#{ZzH?2~bzCi}O`fZ{>y)m$Vj{dS(|c?flizq0R> zIwk@D*~Vv0l=4y66LI;9uYOgNBXnVfmzj9%ifZ$cU6V-`2{82|`-+b-xNpkrxujxil} z&lFuUX5~k=H%)_}ZgbEM-FF93+F9!i0&hnGyTZGmMDqY!SAaoya1kV5{bH3vY`dKV zN_V-R`c^#rhKMCfgl3EYF}-85tkdr&_x$&YI|A+K@zlSa2^bzL)--iWb?u49(0Nss z+bT-Icl=~jw2Vq4MPCSGLtrqzBKt-^-H*UOx$zkuOp+2<@knoU3_2n?A_f9fTR9}W zb5mH9Q7$1xK!vD9t;ehg-9Hg`Vg~?HJxP?zH*q{TNV0p1-@%^e1lKX?Z^l3GrbL?^o~*gDqTLkiyVxal4wYq9s-$`U`XuiY+p@ypFp zG~bo@jkc}UIg#V%boFOqw)Nz=uMG(QX==9WHw*(j4F;)+^XFNdPGXZY;Q$hnx@%qB zbx}*NHLx@8;~h|iyU>bVR3bTE@;wg)IBZ3{x-s|zBWa(j3={+(Ydx2>6W)n1*f?B0 zgZo7^24Aae5vp0?K}b;?sZjL8aks#7c=p9M0w!B2T?u3irHQqt@=1GY$Wpu`_j(c9 zgt2e1e>7Hs;hd2hi}~R`dJEg7N(GOe=Es-*rfb&HbJ}{O*j^P!x?OF`VmdBmSbPal{xn zm^4i2`dlMIyYM8M6Cfkqhz`r-l38n_aP&QbukR2)=HiciF0i9F;S;8gn41=lkP)QL zZ%Kv#dRZP;KK}sU9$9$%0e2jOYEbC4!9F5gNu zc#-tWTrtT^IpRg$OC<|ZGHDuF`S%W_{&0Sy1FmK2^*yY*wNa%vx7R%d;^-%caZuzT zDSHKAY{`0`hF=0_pZxr99Q;rhO9vvqaz)=t0`jp60 z0o{QRz^R`W*VIzvy|D>tl!FR#RMbdQNKa#4I7MwDH`lTaPX7t;7N1;oGFaf$JOO6h zhXIbHXZ0hf`GdB#c3N5i0k_4Co0J+9h&)PTXqNRERuz}0$mN5a&BLSPF==s0nN#jZ z-vt%%bmP3HP(8@d>tme-qNt5xD?ZlLPfi6Vqa?wLy4SxTH5_S$K+()sl8M445Pu@z zHlZEO4GLo3l;=hRCt^dy>v|DX8ENgX%3|-7(~OkMQ^l8n+~DKfrxfhtTTW99V`Pqm z8;*_bhi97nj^V!>C-uarYD& zIVOMQms#SqW^0G!C^88mV!VBT{FY474h?1f_=uN>dITY5VF)x33TuJRVh->9X%y|~ zTre%V-$EV0bLd<>0eW#0v&2kLfy6mfT|yXCF_OiuO$iBSA8gqhy7wDc*7ms5+lG^( z60}DfG1Zfg6&XdN6taLzFZ9J61xPKs;kN>Cpu`fWQ^q&6-o<|<>D0YL$o9?!iui^- zEdfqh1PR#JUoIAl0m2)=4^0H|TjjAk?*DCIU%aPQ4q)EQL6a29(U@!XZ$ zh3_;G)D-2WneqI4h#BBKuJdMC!c1W78al)aOd}%1Am!&rO+WKpGlXzpR}HTmg}V!R znRXch!Za1%PAHPVA1k+CmpTQ)-v&J`-(_Qh3&tKJPz|s7;u6Z2-5yxGZt!32O^Xv<=?6)1cj90`2 zLy}nB`>KniFPai#S?W+_I-p{?(o3uZKu+>se=n>Tpij=xZ9wLD@&tK>=L%Cpo%KN9 zKKhnyQ8BjrTSc`(9+ag}X!hD-dpV8rmF=Py`&b+57Gcs~;b>x@jvQaATFHN{GrIzt z0=l>U!0edC6F}kl{>bl1oshZ-Rl$?29rb%f{_`=xeW3ozcmH!Nk03v% zQgp>2x&5CffG-sggv6GxAGfyR)Cp(@dDZX*HnC!@mLeB8&%^p|4GAKM!B+nm8)L)W zx03W9TEd6Ufr{mq^)Djy#yvLVCWOLbS{utx53#aW(7qYVbUgqt+IEG23v)>e91`Jh zX9%6YO%jTV1F`UR;DkbNmH!ascCo=gpA$aHJiocGPjMfzZH@&H0ao3@*i_ZM1Bs(t z&F&(fOn@er%*LZiZWt22r)|BMc5CALmeb7M*irrou zcf)d4k6R*?!|}6%km1ct#&qZ`@JGA;_n0OA>gPWs^Gt}ER7l!%v8`4iUmPLfO_uq|g%-sI~lC((RSz8XGP#T<`O3c$2?`PKa z)W_H4du&m)s8h9SfGR8TUhSXxnw>wp{!Yf8k$}|yJ4ka-w6zVG9_1=utRj@<;iJ4J zo9&74b2nCi{K28|rqQrMGw_&^YAsHh<*72l^6{zw;>(Z&jn(GvwUg`Q&KpQqu-B=0 z?J;^Q!gsunRR%<%TQ<~~>}6FV;FV{PF&+&iL18WgE&<)pqK*s*Uh)-3S$=4V=t{} ziJj=GDafY^eh~AVX+S)wE}<0aP^=vkMCSO=nvE<(#7xJwrDPKrSC$Yg#q7q%?Dq(3 z$X7ay)XV17t~5xeVfsD`vqp$om~@|?C;nTjLPiWlD75rU10Pk`|6i5% zW;R(KEhs)R+(w_snWLBuPaDn$)Fj~8&n_Px~>-;SDlg%3t`0*3@eo-rK9 zp?Fx~zo4suq(ZuxTcZ+^KJsE!rDD8pU5kAGtcEgp-B~D7!STYPM$b){DZGO-8BIY^mT>ylYz2m%aX>W z;Wl=Fn~omURb3*UMX`JQPA;SC?c~ond$<38GL|OiC@l(GA2a9rJ-Z;gtttl=!RkRc zJs|}Ec;43=W~x&mJKi+vJnP(xhpVXyl$)I)gf_Tb-L514db{3n6q*%Z5aL|vD+x!3 zhL6OJWIM?CqcRvnTMy7I9rraK+52|1YtAckbj9B!2C;6=#Aa8jLATvu(;!GJ^aIe8 zvG%K^`cCMqAm+RYpeUb4NnMPA#32DX<6JmfaWdh%zapW~*KUn2~x5>^1)ZZ~dDu%H4})o(^&_W25!3+**&-(>N7t)=v8M zH*`>6rvp!<>Fm$KNV+eb9tX9SSzU$85H!J6Sg>_CRM*pe2}?1H_RSxY&hsdV&szoI*X97cf!x$dr84aU}|6B?@ z7*c)VzBt+JxBaC`DhN; zy59~0euKksN~~e;&gPxGR$k0JkVYqGU>ny4*YIM=>gSOtO##$gVAf@{4b#}(E*Fq4 z8gr9>_FHxh9en2_24Mvn4oxIe(-2$?$-;rj6c*k)Kox7P<2+*24!BqyT;Zb(W6B)> zJV3+0d_|x((s3+7pyqVY`EmPM*usqA?QcjY9ENbwTaNKpRjun8Io(DAma_=MrVpI6YTL&KX8XN@UJ-G1se9TiAX^f+y8>P0HOq`ZvqhlM7&4a7~TVmus@sn9fMMZTsM7eNlWRLe8K{ zPIrR$gStiVGo@9^d$RqHyEvtAkfthexYr4WG%=5-d$)OoFYc{#i2R9^R_wL4b4sZm*TI2_3S!L9HT+{>6Y4+Z-+}AKo zqe%ps!6<>_Sy8UyUjno|`L>wB-s~s8D+R;Q;&S3Ag#sXN;SqH<-Zq|CZjmSLxSBzs zbEkY{Y3_3z2GY6gNGNSr2ELU?lVDzML24fhH&6Npi=s42^G-To4DvNra&M#%AnL*zs7x{G|?69IQ0cu&cK>}0wUb^ zU7mce&8VSOLllLLd{%4gcK{A1zJ={51|n;OQD*yvI7nvcB}L)ONjv@pimP+4X`}&yW+gYbl#wKmRg12~Z93$48)Gq}`;@Js<2Tr`5Hf*mu|tvO zI_~L|Q4lt|p`AVOfCic01_^J1AHV4GCn{K9_F|1+XX|1+dWwmO-ON9`clwRm(gm#P z8fYBzOx8H8mHql!_-SuPnUz#i?vZ6?CWCqi?MDiwn<-z72q)agewo9|3*;f;^da6I z1aGbM;S6jHj@d-MewWS)H8>jai{ks{EZ+@}8$wzE1tC$1kFqfG;|>(d4sAjFyN2ac zYimPp4EfS1R!m>yF7S6n%IZf~&esg+;4`XSn~{a!K<{OXST?i8U2V8$leGbxS?@M1 zRrJ?i3SIXoLscC$>BTY*=^;Wgb+U%91WedhN>i!d40q`F~@iw|drNwKsV28&4KIZ(1EqQnu9vx|HK@-=8m^;py=sSBAoV5@0(Kwo6*wK_K zT!T)oNDIG#hsl5kWH)*oR$c}25bO{59p>kT0hcv0j|_!}0*BE8wpXt9KX&&$;kNM8 zh5+?fZ^Zt#Rasgyxcn&AHLn1x2EX!9xV0gF4I|^(qXaa85ltcZkaXTDDL5R zPy@%>59lMfpDR{W-crt&d6N^qzf5HzQ!as*((ehqfpA zyb~Sy{`>o~d@t^qU``DC7H+WU$1E12O0-wMX(pWB?Z<_r&C!i+0!UDGLy-{AG@^(^ z`fGSwN$596zHYZ3#z1QPrJ*8a<`{UzA6;bR0Uz9@u10gFD4bpypb6se|8$}COD;m$ z=$lYLu(v&#qjdPv<+~aHi;I`U=3_6=p-IKY;zbx5-v=uDFO{oF5tZ)*c3C1TMa8+YV|cyQjK}p-}As9 z^rF5Lub0Pt98R^S_QKt@uqp{14_}@61QjQlYd2_IYh7p`KKR$i9h6KRJP<7ytCUu z0?nIPeNcBw>5O7+Z;gwAGM=CPvM19ew|9dgwi4S5Y)sKJQ?^D#KrqMkJf2mVyG0V7 zHq+OT@*;W0FV|6_7HWx4qPLdRW2Z)mnbz+cCpr5?hB_VFV)txIM4_<3z_=6Ew>sEY zy@GJae+O#HEaa@zkj1Z5Cnn4%u*i7;Gvl_$bhsg(MsMKfPHvtkc~!5 zseLG85QNhfLwgL8czr5B)VfzjgMM7{zzVJo?wLY)D8~VVEq@cf{m8}Dw37Q=_hul2 zRmmq;FP{3ebxL7PIiB7K$<6)mv%`KqTZW6VX+Z~eDF%$=E?8CiK7o9c4=5sZ_~7HoxpMC=gqi42U^P1|I~=Yy(c?m`{Vs_UOMz)?7b07=dLY zCcL*oI{}x8>S~twBnKI;izvu0#_HF0 zS4Fy6&EK*kv>?y)#7ELyn7M(dyjQ6xi2~Vlg&b^JQ7mYekI<*nH z876NC|7OZ!3l)uZ7fsFGkZt1S1OAEO?&W%as4ckbM86skHl*FyuvyeTq0dAEE0M0n z4WUX3`Eh%Ot70SC;e1o8|3;X#+5W2? zZ8Sd}EuilLuboP?5IO_pWkk}3Ly#=9W6|NLcAlaPMBL*`_nv&Pr{wPRZ1W96hbd3& za0#|Fd0ml-8XLt5#I-%yFyN!OyQLN>lj^Xml>45FGqeLnKjFDSIkksfsn}2xFH-S$ zc#n3)7*6F0WHEPYQzb(N(u7%u_?@71c)cehLygep>nS(=luM0I6L;PfAPc3uZd*~@ zKdgR&ebCDxtKwR-WqWuz=*~_B0U%tdVYq=ru^e%YU+HD?3xe2+yiB-qq{!N9RLDEV z6zFj>k;hlD3aF&N*Vve{cs68)#<0uG(r?U_Xb=)sh-5Z#odvkyMbVY6fr*56yb}w;z+d{!J`_PogxELl+O&*J)xlKNmB7=S_-6F;(KVYh2f1tOX4v4i+0Ez7e!^%W)uuF|sfbTsfm0(>BNuGL8 z6=4Shv~YI-u$>RCkfG2Y_76b9ZE;c${#(8oD@>j>2CIq=hGz*WVF-V^T%}3y`bbOf zj0<6_zZfH&8Dc`ZqC?0+SL7Qz3SB4iKY+|^$~Z9+!!&$#GP0>brdF(mcnGF)VxyDr zp!AI%dZ}n(Ie_DL6Z8`ZF2DY9r?jtWpS$%F0Zh@T&Cevb;?#~ zelH}-LbeAIYgJ3TJ7%m(0BH3@x$-M&RAI z2Nt9XtK1t*Zl1sJf}*aND=K_ZY65KL;v;Gn26^@GMpVM;@35qzzP$fc)-It)e}rJ- z_)T0xZjzI)d-x3h4>fE$LhJ7mwey45VgMW-9O!t$o7#L=$(o;kK+3R}E&JeCR&AovWyHpgyeyfv98a{K|WXH}n3bD|&!u=6k+Cg^LI zy1mbUBQySOBtEhrVGKE;c$BN`d66zxSHJ3sTGbvax9@F+!T(%;o7)Az-%KUa7B;9` zMg^D8Rz4O^E1Cs_zvvsXnHL&@4B%sw-;h}4DsL8CEfJIZ2`>{C?kc}ho$Go$;$-5R z2Ah8?NOoDs9}NJ~^WZ~0?peN)aAM;`PqF7{Qe_P4cSWC_g0p&3O`Ji7$i?G2lmBd( zf`&J8D+>bdhFmNt_$!R5v-+sdp(CE8ap&0kVK@b3Y^I~QB{n&^DR-)tWFJ~>1 z=TH}l+3eXw;SWQOu-=cf(cUC8+s`R$NZkTp4Mm|=k@pm;uh_{3(QlehaegR`D-yT& zarjQ(30<=1y(|;6!*CwQo+9+^EK3twL75JcjTs#D#Mf^QrzjLi-%J(HMAwCEn2aCdqM4A2HZWSZw{~@cZgP}2MI+Ts{$aW;?uR_f@4huEXcoy!G ztH;99(!|NE2nV%@C+et=Y`e~`$KYI7gE)=>pu?y^a}g3-$rRRCfD6`l8N-s?FoO8C zj5=DByO(@g@}eVd#DldJwa>3`=YI5uqFM6wi@P@R{C%u9MsL-gIgL>jnHa{5+0C3a16iJbaI2H9& zPz!yAO5r`Ql_HSuZt;=OHA(CcAAa|Uh|)R>d|3Z2IkD>XU_hnBP!yx0-s*sB^x)Uo zqW(vWczQH7^&7YPVc&Xgfs9sHgI1434sv)tUx5duxdo8*K5+8aV|%C)ZztqT=$J2? z%x@UUtX_4%x12A;9cr7_1n6t;408Jn27M^|x4bZ2RIrI?&DB;M-0Y6EDU#$YMJwgg zY#mRkvsWZrW&J!iIhrL0%!A620DU`v;p3V$J(i15_jWm%lk2g8<@U5ZQkUQZsAoIZ z?v-lNXHOSxx0%Cba<;~4NZ5pFR{)#IIBa?Lx$OAQ{c%NKU8b_bnazk)-~WG{JhU>H zN7{C&)F1`G$fjq|S$c>fGtf#ZWfz=|B&aLByYq{9eb!4vlu&1o?zal4I748`d{>i;zJd z=Z|uxOGM}q0BFI6KTZ(aSn}B~%+QW{JE8P|_B&Ma-iV-x7{Tn|{X$8YCTER)Oo z)IvAZ5SA*5-CHK^FO8_m?c44~nO6ex)?qk=@RK*vF^7Gz0WdFIMrJarmsMjh4>Yh< zmlJ%zOy5h2+)$Jo5mlCSOwxBW$u^fsZV#iD=86Gd3?66%c_TaE|1lW3Cr;n_=PeqO zQw)vRM>`6MLHM^$L~lO>3{lU`xtfzY>9<&=eh0K8ujTnfjZj9~zbF$p+Z!r{e%X;% zpf#LbI`;nMuqqlK(VpFjF03PS%#~No>UA&*(hLe;B%tDIZ_0QjTClCZXn5`lth;a3 z$j5P0bUp%B;oO09=6i^c?BzE|ekL3EVwAB_aqsR-`d-KYy3@RqRv`W3+FkM^28Pl2 zqrlopNP^v~1_j-%XX~Izu&V29t9NYzquZJr5CzhGVF4}*Z1(++kn<(HsHWgSJx%cl z()cx~6XAnc8e$I2xnzg!oZhniJ!Z{zL`icWhn@6J)Wy=p&X&JfH<191R>we+2>>+H z6yxInOczqiK$2ZMu!u9QLlQE%O|!-G^dg|r-;8kbPd`eHe=hhm>_DdU_SBDHb-=)x zU%zbpD+L!Ehpf|K@({zfiZNF_Ok6XrQmQT8ng4gZCq~~)LqO?k=!_CD(Xf^=Od7vEg49k%8lpn&KKdmn^(PtS{EshYG? z$VD4fu5JrL1NYD`q)~}cCXt=j1M=d|_^fk_X=2Q|7CAsdShnRR2r!tIw!6Z=;wTdc zgXdENz*I``qY!9^EEFyyaZ3L|8Wo%V$&G@H`$v2FXkc+NhXb!HxE-+68hpwE8|W{X zE(#u7%q7!wpO&0XDi9Ou9&L$%K%dgBw>*vJ8D0|jfrs+qAxhKi{96IjiNNbyqZlj} zWxZ};NFL?pV*pJU(RL|( zf?*!F^;B`}Y&FX-pui4blnm zHVaV>vLh2NBeYG0zw)aurIS-JKRR}TiM*djNXhux7JeuDVq{`+N?`cED(@0^I5 z_&^+Q+Y%8@UM9EBlODuu3=kc(B%$3J2hXh=Op!?LI0(t_HsQL>C2m!-NH0d0cOJADu+0S$A}h%brv z>mQ-5q)D>Bzw_bm z>~8KVq2@;eTrjmxK<;O}8l#b+;5ul1oV9dA<^|~#zM~=J_gem!4}3XCKAj#9htTEz zM)u8hdGHbV5*tmhk<_VRNbJ!BUskFKULC!6{)KAz2%f^(0Lia&5R&<2bvMF(!@Qqk z@mr&`E>5vBFse?D>xC5>%%mxv4&Gi0?p+u~#v2P8;iHCo(nJ zH-4PG<{NBR94vYyIK5aD+uQLRRI-v$dyamR5D3#z$d*eD?<@mCJmYT63T^piTV&MU zBq3n?u`jGbz3w6Hp|(rY0SWI;D5Cw$7=`G;gI5!%N#MFY43Jm<1^FSZ-+(c5bqD%h zR$7}+rvv~>HSWb91HghGkCPHkbJ<1w$-S|>DW~`h+chOb^Xe!Gc9;4F07^)9*dZ<0 z<@4Vw#(o5y@^wXPTTa+C+J8x0HAeh_%Y~d3>Vp8ukX- z<7dC83($4)|A4Ae%Kj_4t_bPtSvxT|7;0=w;S>?vWVHApH%ct52~|g38m-PBj} zBov?jeeTb*D85eAzi0s<2G#x9zshMRV?3@A3FF&nKQ{(gH#7MaqTh>i*zmXL{Qnw7 zE}VR_MFGE%AA_(ARTeNF7oYpl!PT*!c!_xD`wFG^DSH8jl&vTg^h zQ<2xwdId^jhaBqG+EQ2IN>VV7uk4euLmkVc7g)=R*DzKeYosT=$HcNfhJR1Kc8#H9 zrl>fo%EsW*)0{?n>t8+_N|YZxErpuq&Ux-w0b zj0ro>6sG{pVu8o_^rE?dqhe_@nxeozZXo6S@th%qh!<^CQ^|+c89tJM9Vn|vI3#VK z>XcIw4W<00XK@C)oT$3QaRn4X6=1*nI`%RQ0|Bai(X|YeMq&>LwpUKCbnxd&Y6%K! zQAOkIvl*QN`MkO#VUFa!k zd*ju7BT{CNRtX|I9zwOamvcnebAj{8+SHG=_}yzy?9LK)j(FJ1|@G zll!GQMZNa4*StyoEJ7q2%KqL@|(K$PsCiR{}2_a$ZNS_;A8Am1=1dV3KE<)i;j zStyopo^8=Q2B$=)Qo{R|kJ6nf5`7`gRl0(=fft>IUPH+=%^5+ zNlsVIwc1Ksjhhu}RnUDjENz+VX4rn&{xy8YBrnf@3nHi^`qPVOXN#Wgy#HC3G+%-BQ!kLPTg$uIBEd&g7V$B*%x#t|v|-G{j1R4Z^Kx%zVFXzndU}bqgMg z<)DYPbA1=eVb5+r$-e!caCm{4D%@tm{gj$fmc^3^95&5W0exV17@oj!rH@T!AQe!W zvpoLd+}80`;772e@OMim5QBVK8fK6n5EPBkn-(sIYytU&O9&IHnQaG*kJ>r>pZ`RX zj9epb2@#4Sd@(o+vFMwBh6f>1-JJ*A&~)J2n{r-lqTgqTit_M6YEWkwXO_OLXI!%x zud zkE?BP%~zfK;d`|)o0d&-gcs_Dy1&ciZb4DMeskF(I^KA_i@nhiA6JZlC=Uq63zJrG zPy375RTE0DlV=vgekp@EYNDJ&rKdyS4#deLhV4Ezc{axdUv^iHlK5U-bjkAk?vq1P zOi)*xgf_4VNcR%vQJ4K0BS#%6ou>=;;?7%ZpX>cKMMo=Y@JeQOx0lTI^B$0T3Z5Dn zUeP68UYitr-WX`y)G#{q8Amlk80R#LF!f{aqxFLS0(>YlC3V~egA5<4?pnT)C6>O` zO1x~ekdf!DupPPfo!OghXOSS>a{-X_V>Aow-7JAKK}m45!~D&!3(s+>F@VL zgWZO6pvTY-Iwn^}RL_4k+_N!5qr05^+L{!OvtT|)^ezYYTQ(86Ec8|9s>HNu^xpAS zDdEHz;NUir4$CUm5wOwFDL1!a*3;AK<6HxT`7(-dqPskO!~cFPlT$6{MC1>-E2x@b zcsvvbYGH%;Hs&)pXNBz5>pNnTs0IH%aX`>;fa}D15}PvWeEu z2=&QHuQ0%pqXs~)cS$kU0y#g;`Wc3Y{sfMbpYyw?(NH0BK(F8vj7O;h(o4H&7DJq zDOL@%Ih7t})WpP8&n@k{bx*ejc{=hgbDjOF!(fPjXJ71M>2UPdGzT)bU$h>cd6u^_ zu3Ct4lB;;MA)j^YH|ZU1XTDq)@b#Mo&D&{$}2T7*IyNQ?I|VL{}3KoU*=D~jhISxDZEjp|Mo_kL8k zfHGc1!Y{fgC?^Wt!`%b=4|lGP1qL0`hx8L|aPpxsRZrOW7>gEWROlw6cDICuBIox| z7QZh}$Ceo1(twtP4?CqV$K)($%PQK=CXZ-GUTzA%_H@tkq3NTZx;h#V#m8GfM z_8$;+m&rS_$OII1*r8Br+hCTioK_gwyk%$XfR$;BWB#t3+CdX43H48!MYzRlwK?*b zPFE9B4dpT%u_$lCBf95<;LD&d=J*q++)B#QSvl1Aa3b~l?+ zf(T?&2(JA3&s5z_>2(3TwE`r_0klyjpY)2BZHVDACtA~94OMFw=8%5hFrpf!Gom1D z`Be1wngi9DNwT-@)m_Xc^Rp{2hUaw1F=6(tt*!`F(2+vCvlH;{V?Qv9an*0MY&)e)cYd_`f^+Yk zuh$QMw$jVz_*H@^R}{o048G-IVX!*D71Nu1D7klws8anwRx~QRS7BovdC4UDi+2H> zBJLM_*JWO=>v7)>sDoop^b{>H9s@oo&V?-G_PG?+89ZB#%!&~U)kr?Q@exH?JrALS zL}aG@0GF_^bGTCfN>6&NF>6wgmxbVy)cfWl!V8@h9#C38EOGHidE|YuuWpB(gcTqL zup}5DIIu*7VCzu3o_}~%aof@!K?hr;FQ@|Ab=Rx+;Qk;9=@VbR-Fj=C$FDfMMW$F> zeqoa`nh$Pow*P_<*11v#{^sRxTLOB`Nz+>}eQ2XT3`j~!18fur76hWC*c(10wPJ04&aS*H=_hPzT-9N$2pT)eZ zDLQAt4T7R>&$6o9>C#Y9lC7<~OhV&|s_qd3fHpeq2FdcEd`5bh8Xb&QEvarvvr{9h zj3Wsoce+bFjMz-C(|jd4b4+McATdp`#eA({F?9F^e_>pO)n)l7r6hYCb2w|FWGn7A z_!MpvdI!QTQk0TZ1i+j#Zpd_6(792jj!5)L`pfhX z1Y>9S;wEUjE$V%|V5wpA*jQtL!zQsCiP~(<z zT0KK4wgfahi+MfeY*v(2qZKF9isX=V`j}DHjI}j{5dG~C7utXV{k|h<|wx1I%&V)3JO-yb0k@ueBM9Pz^?yIE-sJXu4V zywgE)1~m`$hru26Kyk@$4dXw8WbM2WBDiR>T&=a1L~g9~05qn=@Wfa4hf!+SH~kRM zCm1je-m!RybE_llN`p_RaGL?Qx%X~ea&=?1){A?JK;sDXZ4P)Z7qTEX8dn@Y=?OM)SRv3TU zMw_;0pj<=Jpq-3%+ZFLKmmq&0e2g>(o*#Sx%z2e2Xh#1m%+z>z8;lnqgzMr9yTX~G z4e!ZCRyPxkVL5zFOHN+Y9MB+wJ&|m_>fAjM0fLLJ;14$$+ckHLr2N1y=4-1NTHh9Q zA14Qvwb3Tb_W8Wg^M9kUYPXC~Ix_OII`MTGZ|HPv`go~zv?(u_3(+fOu?JB!c$Ude zhXi66)OE8KMEB2l-u-Wl@c#2q@sW40)6C99^V9_#l~ zSTsu-l@GZXk6fP(5Kpg{&l<*wx9!6ii#$$!B$7^k5mH#j-L<5iUezvk8)8!Vqm*Laf3Bb0CTFaqMWP0%*2h2AwHLjNanH9@CI z0+WJnD+3_0iMUl*Uq-SrHtm*z};}1hvAFf3qXQTY(nF z_&dB}l=J7!4%V-8=~gpM8c}$h%$nF?!f->vST%N&Xt!a~D;5tP1paPDl_ zEB+Bnv3u~x0XhoqP$5o2%x(R(8-8TYQdPEfKEje78xfRe9fld2FdSEG(l7rthVL@# zG&4Tv;|TeFm>_X6##lb46mv^tK-{AkN%S}=&YPz^L?b^WVRn%RBMa*0v!jWZzN5(G&?%%)}M76 z2Cc(3rGDiWrdoF!YXfM$8w|;n1`!MPES-vP7YF{smauw%sG5>D&^PynZv>+2G^4Ha|yZC5dB>5`JCsiE`iM zE?E!qca9N)&VY)u6q3@DfYCbEsyrv9V3LH&4JYvZ`bSSyDEAi>jnA-Nblh01ojIf8Q3xfLq~Gwx zZMkwd|1cb&pq6biZ#Z(WuS7}23LrH#>|QxaiWFeIc`%`4qPDqus}P206R&T4h2%@U zR+u%9IT>{4&ee>)GzJlbq^L}dCzb}{w}U^J>r5#IQP9n1_S`BHKhuz3` zC!6zmrA@wqYIWL8SH)dms+41L^03;1NwtdHduHG8ZbWIT&1hXUQYpwF`I1~*TW+jL zB6iLzCKJ`l>>Im6RXuLHEr_bDO=CA}xU{+;y2BJF@0lZeH|`>6k0vNcrg<+G-RdS$ zG@}&>s26oEjML%;J!dx_v{4-DKN$liU1pQ%vpy*<>z3(gf`q5=V_eGrZlmYULNE2A zv?|ekORs>guzWE;+B8|n-B-?|TTDtDp0Nn|W6}5{*PwDK+a&1+;?B z1x3U^^h|P3JGz$Ojw@Ra#wKt}wdm&~Dum?J=*Ptt#QOmo-h%gE_nGIS$X&{Jlz5bR zo&2J_q|rpk+K>!~-E>&f46N34dLHt>gI0buu4^j_^XNqbORoJJimEF`g^mlf<9^WI z%?Q~YSk{0ZTrV2x@$9i}7}&tHl^vZ6(PZ9{IoyXp8$hD6pATn}ecm$xG)53Xs9(G7@~Po%!;QVC zdmq5R)PKQu8`H5#0u@j01I~^e#Mw%b47ZliY9f7=m{y1YRHjdxqmy}2^rj_}vJQQT zuXR>*lg3Z)N!1{nKu|>cRRRB8WQ_Rr)_AsnS?;S>S=b`D<+c?P9Gg=)I_=nhTw9C8 zcL!ncr~MM03kH^T$ih2{bAiOitiNprKc`mNri*D5x$L9YNPLx_>HhwpL_U~CftAvd zM((^lnu-l8ySf@>3D;7Du#L=UN4ElXUt-j5hF@2GZ;w=+wQmhf;$=Ck4SVwf0I`HS zZ$Rm1WRu6_2tvHa6-Tk($AfDnQ5NqNfpsHiM#YxE4tEPE95Qi-i5XU1uoRu`(7MwX zT0@#4`_udEykxH;t0#t8Eefqc5V014Gx6rGADFtQrSS~r(8KciA=Feaqi+=;G}!>q z5v7Sf%r&m3p44Y2L5rB-Cwn( zbJcS!d-rl|&VvF{hNG>Zu*uw6{p_6V{|`<|wRDg;kR|OEoI{iKQZE8>G*~ke2W70Z zk(01eKUx@REjH7q7t3GrbpC_r%S@J#Cy+^O9DBqFDU|&$=dg915q5F~=_5wIqq7YwV$rUZJ+`SR6Qsn+f%OqiD7oPsqyX0P`vbr>9b?T~TZWpz=+iB{)b z>-bq~!CuYK(Q?7QOEkueX?w|s*4d>!y!mQGj>pZ@YMud`Vo9~Lut(XDrN> zo-dOkmp70Sx>X?67QTVc&;oDbJ2kBe=T_b=vk?ePrIn&v=$@R4yc407Dh>a65aT;< zE~S~*1p^ph_rnaZr=`XTb3^#lI}61QEhS62GoP6$aOxT;K4bT++Xu``@dz~gNe17n9h_e;AWB(B)G$l&!lB>SF?q2 zvG?D6Jm`yKEI!Eh97dx}HUCeczd>_7utOc&YG737%T`-#=8jugv@qFB`ea1ZEe54K zF08z>&`wA`lmyNSY4M)UJQPEuFh~TkhCu61)9CKW{?dzW!4ODL?bvm4HguT0`P-sf z=1WJ9FkPqCk1*jFD$cq+kG*)V!cJtb4Ad)LyU}1dtt$Z4ZkxEPP-db_S%R4Y0&f=q zFt=cfse!S<^dU5C!6i3dIuHrFQmZrfZGLaNwe{tFTs3?sR5-XIv@`%fO-(SW;Bq-u zxEqr^6-;K!LxYl>XUu`Ud##+Pen~H`{V5hIz&iZ9xT*V4LU{rQGJO0^SpMCSelh z8+~%|U)5*{RcL{kim9aYb>$p~efr(^csf~)UaAJoST#2D703!N2|aOamVP{)jBYfL zJO+MMmgPj+bdD-(SBGw z1$EP?WXy%cbI8?7JS`hj`-D-QyWn0^wPTclHOu*383IejbdMa=wS&5*x0NC(p7D$@ zd5WU(Z=3h3@&k2)@kE)mE*QR8gc3-fo%-*SC40_+axR)nGd+tvZxU%iPAOlAG;S_d zQXyGb^#Yv{H4-|R4IypPdJX$q)d`Vo)*n%|TqzRKTEr&YBOYQ?fck9!tZe%@U_=8FgQPnHsEn<@iY zbp!c2B}$LTcETq{{tDV_i6Rbo&nZ8JU{D4qXde-A{zVX?#MuM1UPsvB{?m9|A+vM{ zy?AX_*Vsetn@<5PmnfF?E+uknh+#~9Pd4ciR+4HvhP$x!)94D2ePg;FhcXUh5oPB9 zhaU1YE20I02JV=y2h<_`B{YQK)vBrv*>t^niBS$+j`o_4SU&rddrAPVU(E0Wjj49y zjRX-;YiBT^WEU~>XMm5C-y@g&N|7Y43Cag)>Il3eH8#SWUr6wV_%h&Q$a%pR-$+_oDct(`Hw= zrpW_z0h&(bW+VGpj=ehcHE}pL1bNgBeDPcGJ&>QtGO&lQgR5yeylno{(4Nt7Tg6UA zjUur`KVq>F3&Pd+0{mD#O6aY6MXQ?ZO~EbuQ7S9Ql5WU2E7n;){A-(aydJpFv5BrV z=T3x1qrk=n{PL`PVsz2mFj8-rR}Y_3Cr#8wBL&{#U0+_fHzE>@hV^Z720HZasFgSG*)C5J>@O4=u%rbIi` zi^uqre)!1#($1=)mk1|P*xK_SsLci ztUW;g4#OPm|V38w<&ALQyL9%t9dQ7*!0H{|y)8H`A zDOI@ZTqI6JSRx?dn{uuk{KR&H{s zi8NdPe_~WC^*RXu3V^WaK?d!!Eo8_-jk>9RqW>X^F=V08)TnmixnaI$2UuD-SUOQi zG6=6-{ve%b4);@U^~-JF?R$}$ zS^;@fk}_H{LA$i~KkkINNr{ENS=DQQ-<>_X3Tp+aD$Xdkr0$UVh4s%9dnz3;r@lL$ z3pAo)bL$L>UscOoSD#D8gEXV(4IB|tzwfHhQD(X$6FGzNl+V)4`g+Ga7zHgYiB0S4 zcFBIAywbk;>;#H(Sm_mPqO_fVT@0Hq1P>inNQC+QFJ27cb9=2aRUr#81SQ@*z^}Tu`AT&4hXl9y5j88Wl9f3$W^|xzDAP1_4;)ZIXGiqmVLQ46 z{7U|<_qfU4?n(?XyYk$Vu+`$lIXmZ@V=vTIQqjDn|!S8W>W8*PivQJs?e z@MoGHiXR9yESi;NSLF&kex(aQJoCKDBIB4M|k~ltwWr?r+{y&Vb30xTW;;8Kc&v4 zsc|LszjBU*-B~CuZrLcLcNjWF)W%?hNtP4hcv>>9#K=f`b!_YS64H*>(!CY#mA&UVC0N%CeiMP?a4J2=o z@vQe#V+!9+l7NY~j{HX~-&OBQ7NH1{{?=Z~AyU>mc0UjpdRL3N!P}5Itboul#`nwp z6jqP)a223#AOC;xtE2rWS4*Orl;0Yrv#1{1MB3;pacq0scGz!;&}x7hm@-wkr~cNk0|w*a}n}?7u-L zQ7P^t{(6|YnFawR&cZmgOwhEKl%9g7j9Ntl7(d~1WCKoC2gW#6v;KKnkl2@)_1EsT zXhjyEUCo^TR?Q;;M`rmJti$6@*Mk|0!0pmJ4Q7zJZ!TiUSNp-j&F#X6oWgjV@i~f! z>(tHh2dDW9p=inl$OeD&@1cCEG>3{IyN8e)&D|_f%?!7uKEsBG<}Y4UuaVHz^Y8An z^6G*I*^_WrIOpT)?s{rig7AooxHLrus;FL$HY~Jhvoz(sm9MVJQly|tb=HJC5?E_X zg*er?XIHG@wm;2HS@6_?Fwzi`d;fp`Vtsah3V%P(U54pJQTh;DQj8U^GFrJlG#w<* zgz1ZxJ1#=#QyA;eCVmu#1RPLGU&TE<;6OS5Sk!IVN?JB}W@AeiMm4gUfizPvzGZrj z&#H8=hO6TYiOT?0`-yRnI85TEPE8#Ipx!Uo`s~s`GtuNm*X288=Q()bp@`rL&yzFy zvO~9Z6v;gNr|a;rCSM^*fHN7orQHPi!_*hvwnL<%FM+k;dWBOrv=0%&Y%x%kJP;#d zHNnmk6kmDX=9+wbnI8sW{O{nktL-M76)yM9C zr%ubR{L_5@f95Zpowgjg9p*0AugkB)3SPYL2^dd;WiYh}AQ0QK-UMRDXU;eox%1P| z;bX~8uy0dww{MHnZpEml*-T2S!=}eVdfQJ=vf9NEp^J;McOPZC{!JQahnb%-WwxTS zmzG$v5hx~Xt&;7m18GH5q!E=OgrarMLgkFRw_Cs}+D-Tfqey9XQM84*;6YRyWvG&+ zO&}G((-4&5qPD&Ru^oEX#n~J z5?&AgGKe@_oM+BK`*~)tC3lLJcBMN{n#c0fUzGgR4&PQMNq%W!7p#WA<{UsfwDRmw z5-$^#0}rr6eNObH7n`&kSJBZ57BE*~C#uraYJflnRlb(aEwV4;Z%F%4-GjyXu;@Z) zI|vK{S1zy=?A?T4ibF&t`Sc-l2wM-?4x918n@r#DVI3Hs{WtuYGrpvq#v0w>Yh1Jj zt;C3s<$r;m%Sg$#Q~hY{VK`*i`x#7gr6v|z--LEYV;k0UU)fJYJTzi(x0A?QjVx#f zaTuz}{!Rok>Mn*NyRzy>K`I;a7#_jy2qpA;Q$M~|FP6f0oqV5FsUU!os-Sj{_qYi; z+4b=|TBVT>?pC+~yx}2Sb0G_g7{-1e@)bPdrT0&f)OsIO5!6BB{ucvGE(=nP9Y^G%9AP1EJG*PZz_a~lk&kR zYD5!VgPek}!-BVG`Pm0C7CBu{v&YONxZEnB%s##dpM!^qIb-O*e&9zt31}5ObRq9M2zh_B?y{p4?*s~k3}!(o%8?pWieU9v5VjwnL)7os4J(*@| zP2R52_?;53b$K8@cJp?asg-k)fhd|3Zj4;RlyuFeglF1!9j`yDgy_z;25wX`Kj_vd zbHubk=`@G#72%#+uBk5q0TH!Kp!ry4E8AE7rr1Hb%5&rh=iEbg*549Fd$ZpagoV0$ zz~8gl;-yx1shb(z;nx2vQl-RRDLbb9;>u>QFtA|l4Au=)-Wl6sdBp{aFUV!v_IiTA z)tqF_T^JvteUnp%e6?dzZ8}m&KoX?@PzuMBWG6f2xy%UK^4>>ivQzs(w{jm_k=jp- zB`0rX;FPFd6LIen_@>~$0)%L@wH08MRjZuroZ=)b_ktQdoQ};P50s6Vsl5g@_v%QZ zwfr_P)!|sS5nh|*CoT#q`;K?aty;xtcWK^Yo$YY3K05p6cc}S3^>zj`l!eOPGOl34-WD8$(pyFzg@7E+STm-pYw3$hHc}yTMB_o;R<{2R zRwD$9x7{XE+ZrZdmKw_D>g1IUaG=*#)%eq)AtL=d{aS4ccB~p8l5wkd5i!3g=Jt6rF^TuEUCfuQHQx1)4_LjTihS!rp&yZ=mF6&@UpJ zsVUpLFQ@kZNf_|Tn3VMKW@-D`@nJAYR`@TGX`&;FvOr(4xE|R4Qy3)RpDqzCB^p?g zl#kOWtqaA*bt+pZd=8Puwf|^fU{YvGs!GN*3>5{l zXhMkXIe-5<%c|q!WIS)zt&Dt$f*GM`j`V~OZ2N^N=^Nd^%@$I0|hcH6!_;j2(uv%fz8xM#03uSefZHk8d`$~l=Alzc__wE+u(tj!LFfl?w}{A<(J zi>W?`f)usz+R>ZQOVpYTRp~R%gOf5T0f0Yo1$9bzE<|7jg)%$;J*zKU**LDFo}5q= zschqwMi(i*}*F?Obx>1;u#4=P*9F$Qdd)H6lyZFd1(sb5+SE@5P zwsFbjOmu2izX>Hg2?|TsAT6w@h?rOBoO66@ikL!7M8kAA=Y#s3yTkgh{T9uK!O~75 zAFr=kU4@PQPpjU2LYtg{tovozKd@u_o>y@AYp#2|3MjC-FL(Aj39=E~IrFJT5wC8F zsL+9!Ccis>6DPPWNS%_^;S=5Z-z#G-o-q9ZlXccduFhxhGcd2s%$r;3m!cKU zGcY8gdnS58^prqy@M*8Q)^XT|IOB{HGges2C#L?c0(l^FG0;I#GZzO}%o;Ni#x2%4 zeNNElu~Oc%&JYw;kn_?dhC1Iaz>E;)zO_qZn`V`o6R!jCkcqV?gx>@rT3J~i+jBP7 zdikmQLDF;BTHc)Q@{SIedlUWs?q;r)JZTLT*xvHWRg7;QRlv8L4%CxJ1DEWv^$cSd zHF_<8nwfGX$#~qvj5yF4VdJEn405%LxKXh5t(TS-yF!>+>Y}2!Bh*`RhGDUkVs}`c zp_~Hs@+S>Hy*ZIQq@pOB4Cx%Pk<;n7-cDrdRmN@p{sfw+f;sJ>Z zDH5rWqo&#ttQN6DIWyT8EO`ZT+BfI4PB8U3;nRI_dL-^Ol}*TB@|P#s9$Yh4Oe`?0 z5B0GE-jwMjf8jqHr~Q3f@(?6)ijZ7;Mk7CW(@moWJLZ7Tl@*pIYnHWHKqAY8q$Iws zKCqIv7Xg5&w2Su9PRDUmKHM|(FIeDusw~E|p>PMq8GbTcj{;Qr0(x~$>LWZJ$NXtP z40s$aAK#Dn5&Wg(ML4~S7p3hPi@i(3J86Ro#dyG&NJx{%`nw9m2K}3=XZL*bWL#}J zcG-fkn!u&cERb zxxCbVvWTgrgJ5TXwWJxZ;H*kH`d9n@y!}sRlx|d)aGsCdHnbF)C|JIgc)zLd9x2$M z(YqN%>=6uI(9dRER9B0SKc@5zTRoRz3qE1$)7vcHnZ=wPwA|5Z;6#TOGp&Z&nr@l8a4Blgy+i zn^7~S07^i}$f>GBV?~^Ic-UaL*g3kNnd#{Zvk_P61dQyGDRBM5Xp2+r$BCRQQ3;({ z@3^NLryp@5Mgy_@L%*oG@_e)!+9iDe#yMJIQp*Hl5Mc4-->y0;UNn*AB>Vh>Hy>Nge8Ia)$VI>_#V zJQMQ$G0%3Zxr!lEvXNKkDiFpCp`Jsnqm0jhzwMq#r3RWOa(LUF#T1uw9|n1+BZgk# zm^IHwI!;7ty=KDu6-FQkm5OyxdzN&qR>;dJz5T_6)(nqoaIr{q~tU+q76ey|I(cPnvwM=)LyNMoi*lEUvecOC11^7^)ZNhTA-)#%dkO#BN zcTsMkZkW!F&81Fa$zep}xc+4KV*glXaJ00KRXWjTG8@I|%(g%nz4ro!hv2NR0DdRy zstx$0uvGyhS}1S#-2=6YDIN}kJqbdHn)LdN=ngul5lkSiJ&aeKkvRf?<|HViZst8d zxPm=mDM(+2I2L|QyII)bdJmh@=-o`SIUn#zxv|A9bMAlS ziBF);(AqtKaejs}W^3uB49Sjx!~FBG$mTfU7gpO0R^~^@&|$00SHf_n05Ro?rua#I z;>8B75gmV0t(YHGtyVBox&3b~<1ezsjA z1(>9ZL9L*(AQ?j3A=Q^Vi&O@ct2hGtvP5k}8YHmMlmP1ICyOA$M@NWnv?nTxZrS%7 z6i7tPnyaRQRL7P;=zrb2o#y&N9HvV@$M5 z((9ROO@jjAt|ND6V&uBtXo=Z;iA)g9XVpq>QoeR&D9)Jc{#wqBoQ|q3w=n#z8PFR9 zPstNK8i`BihVb`}DpS0`Qs29t3U_s{Zx_dHpP}zWd--?nD)4M@L6K*t$?cHzt8 z`zY+$zexik1CI5i7@09iqyT`(?)FbM`5kYpKVvs7YEuMM z16HEsycxlLiH5{*L=n(mTg>Aqvkpa4l(qR}bT*CJow`*kREQ-lZ~J0ca!4cULEG$j z)(HE0^BF({Z!Mv#^cy~_??#Eyzv9xq{c*VRCybZ0XU6zSXU>W21)^ir=wx+TY>P-W zz`gMYfyR%8Dxw>XA|Gk!?gOm6CBc8^E)&bZQ_HTOitkXO0JnBQf;u2BeAe*Asy*HF z{FFNL%F&Tu)}NOJ@3+2ke$FNF!oGQq->i{4VIS%9-}^^r%~!8;&Gw_0V{?QpjV|7>1F4jw`i;=;KCI7f$y)-x1~zink5mObozib8n-y2b`bf%;2=Q#%WDBR zC@V5d0A;-Wvv|ZK>gKVLN^@O(Qd|4c{;Ss!Y}+{I96GENuuv+PG1Lg}!B^9LYeQC~ zY%^W1dqC=X-5?i^4)1?M9OFwoG3QWSFlYee&WJG$`|X-~bKDrQ*<4B2-K>hMmYlP- z5wvC4`j8`)<`hB9eyGCg&34>Vaj_-dIdFfHOlweRK{>du^s{s?ip+9peMJG%=ra!A zMN+c5oB8K44n|oZSRUCJD#e>1-n2({>9u%QOlkKwNhMw3|5Hsn^e04`NAQdekcHz& z+_l8}NlqNI$V=1`;F}(rL(Cc}%@b_lgysv&bmy3{1&YGXa&7fp6`J<1GN1LD%NdK| z1JUL!_ejwiTGW!P9SmMaWat9 zO9b|L`L0dKR=#)Bnr8r^_{sD_F>AbY8w9(sWzR1vkf>net2Kz8IH^v=PvveyrB-u_ zSt<7Hc*Qa!Bu0=P2z-4p@?6*+VwF{N`R)%Hx2O4k))iS0IbmfS#g@RU_YLaC$MA2q z9Fezd1$g9BhxZbcxo1!iD?U$5&g;8lX~#h4_dVyjkjoU6c%w z^B*K#cA=*R1FCo@bmk>Iw|-l{as`8w5}m&;xd>8qKl5f80&bsB!)G%YXdvC-VaIu2 z=ohK~2~T)(YBNZ(ZEyx6rMZ{|q&P27hbjhQdM5rS(HLA{ zm=6Y>Z$gFb>_A+3a93Rp#rl0jnBM!xXa{>D1UtD#?AG#;N(IA8DA1;MV85|!)^y2n zS<%-r)L$shZRNflMXfg?V<>AaP2?76u@en{rre=fG;8uf*JRH%yOUih{}#}<((q%# zccO@1V#KzcC%g97B-;nrKqATqZLAMjDC!o=NkMq9T{xM6yHm?D8^w_Lgf+7d39?Tn zl9$85#!Q=)@wkYZJTx>H$ZsjI><0Z1QL7GKQ$%yFF;v{i!7{kwBdgy@3Lo9fZOIfE zF{rvm>tpGia`(Z-NLG@ND%R4(y??^54aF^CQ$7uS&FjTqA-4Ht9cm&0nKkRZo%4Q#JaI@i3Ef$ zN}fY;iTMa~fFxdHZvEPF)axf>bYcKM$4y7r$UP z`S6Sy@W-E}FPl@`fs}RRS|eBq?gJ~JEvLieDnO0_S?)TDt4_cr0_5DK>PfM#?3*e^ z&xD<74jbi&cG-o?BqO14(pbc0v|7oaI(A5G{OhG-+9LC; z6wn3(go1q+@$nX?(`rI#t@calYM}Stw+d9(_7ihsV?W11;^+-Iq~Ra*Fy7lgVgZRjXa9H4d@eHZ2nvr6ML2<>TBgDii0&ekm{_?!`Ll^vEKHjZ~|KsS$aoVCyz^lL@X@PY!MKw zz}f$crJO3a)lLbV^PfgK~wn*c;&5eE(VGf5i6W~(*r)t~aAq-LW_U2xbpuew>i%*p*QZ=RSe$MER_PJhL|7eD|`EWH% zC9(*L)~N*$OB0iC+WQfnb-hWvc$|{Ut@Z`^U=h&7qa4}`6<8fFb$!PdVLM?~$?Tf{4$URPB81Y2SIHjExS0k+vFB*s&nB^7L z!b~Oyp=mkGc6nOmNyK_Ic?^{cm}&SF^S2@^1Uw2IkGtEUy}+@hq|~3LBc&?|$Q*Ms zf9{#9OxqrmiTdWtjLAV%pN3IVE9F?=2i2o}tTR){69kviB&~=~GBQ`H4n!(1yPvSa z;7M%+Y?5b~%3ek={*S%2zQCr?Ul76^89EA9cNwC47Erp%0=GEEsJ0M6v6AxSZ=nSz zybRMs%zIvwBEie<)URY}+>d|(E60oo=aLkX<24n`^(RuW+yzS>?Cvp_RXBk!ln&cq zWTEb5u|9+9p(x|uz}q%v(ruJCOErk7^gG^b&Ot4cH1rgK=jm(+wTZ=v)mhUe=``oW zL+l(jgMyrw&?2lel|Dkaj-kW?m?9IY%ZSyK+B!XT)gFZnCP{YM z(#UFN$W(}PRYjOuU5^mgfu~$SuV4A2!$Q9eXdPw zo+X&_lE^(A4da%W0e%{v!AD0%g6Nl~biE)*atC>P&r1+$u?arcoa}!nqq6YeFiXqo zF`d8qgfOyZg1*9L0|5s+q5AqZ!I!XJ?1+)ARW8=rJxjGWAoD!6N#@!q;u@tz)CXq8E!nWH!@8 zFe-R!XM%MFe`YoM{~YYsFH&Ro)X1hq5Yb1Dx9d=lc%U8?v|k9#M**0jQ5?&1*Tj?sc@=_@j- z)~WcRYB<01r#p9RKnC`<=*gY5R_iJ#JBipn&FSQlR}w=?Rs{GLyEe71k51%n)Z9_xapJf!4e}!4)#}4HR;LD_Z- zmx>gpC2-9xV@LzuL~(SOf$f<<7q9iMsi5hsM{(nM_UH*zPSXf}B&jHBShFRI^1hb6 z!{$Y6dp8p72)KD-=$<2drXACN>n?w?Z{yLw^+YeJ&MbIu60g0rY+CoFye1#{ zWD+GH!acU{C_sY8!cxT&2z^mW1FVCwvx>^r=f$^Bu*n=cV_2H~OTH_O#}XxjTiNni zMVkU@p=HnRxonn?5i`6$xBX)%OgPU3{VKw&{Sr#}JT!!zyx&|4>}!{&225m-LV-3B z9YUL$9(t&dlsRCK%Ks*c{Ub6~)vx$?yzGcG{a&u8hq+nG6w{`eYI?lCXo+r!3Rc6w z?ER7@eCTNi_(1f4O`MU43b4MVI7PZ_QT-AMO)l)+yAPMR!MhFxtQR>TU7!K$yn#2q zW7z|sa+?69n&u~HD;$d^$2AVKTUO1SM^4R4pNw?$t?reR2mfnQPUf3FHcCx?Ht z!2XMi0PaZFfrNSv=0h#Z$k&h6DR0&+Ms?6+q)^FdvU-5b!eyYNh33QDETLrr> z9;pPq3vukmCE-WjwS6SsLUY3+OOk67`wrXdJB*f-{vEUGl2bFW7H)4*_^jH;G4FJ4VDHU_>V9+u-P=di`R_aRR9aIY@ZJ-e4=QIYHTh(oI?_>VS%UyvGe~ z$_K)foLz;>Le#e*pU`IrJ_NrbC`V{k9$HMECDw~k2XtF)>ANO*t=?BHHT*3ae@zb)^c&W|Xb_EMh}$mDj=O3BL_GEFma zkR8|AWs{Ea4uswnlxwV3g(FKJHPWK)TV(}^KlJH zeGI?wIt(U4eU=m)?^bBLf5S`zd;r1F%q5G;+J}G&E*Sc(wW+J z?X!6>heY`J&zsa6$!gT$D2-1L)-tG?``co2#4EoF0sHPavulg=3HYkAakVPtqSBA# z5_@(DMJIJ4NH~r6d(A-4F1T&=7CFKh)%_#MWJ}4&K}Tq~%;AyF^}G+w1GoQ3W|w@L zp>)5;a>INrd!x{%uO>(1qLE4y&~f=2PKq==leEWf;RtM!Zt|KUE@*vJd$jCwFyeJv zG<)Zn(XjO|Q-$df5+XGU;HUq8y7SNqIQ_8PQ6GT%5RdZjzrwct1h$IH{$ z-sjKkP6Un9Kia)?cvbXEevve&whfJn;!_bK+1|^F*y=Ak9dbr~-M&a0pe2v-9-ZIo zLaXe*PAo@yj!Ugub43z=pQtC1EgH&?rULAfG4