215 lines
7.8 KiB
NASM
215 lines
7.8 KiB
NASM
;===================================================================================================
|
|
; New file because of the enormous table
|
|
;===================================================================================================
|
|
;--------------------------------------------------------------------------------
|
|
; HexToDec
|
|
; in: A(w) - Word to Convert
|
|
; out: HexToDecDigit1 - HexToDecDigit5 (high - low)
|
|
;--------------------------------------------------------------------------------
|
|
HexToDec:
|
|
PHP
|
|
REP #$30
|
|
PHX
|
|
PHA
|
|
|
|
CMP.w #1000
|
|
BCS .over_1000
|
|
|
|
ASL
|
|
TAX
|
|
|
|
LDA.l FastHexTable,X
|
|
|
|
SEP #$20
|
|
|
|
AND.b #$0F
|
|
STA.l HexToDecDigit5
|
|
|
|
LDA.l FastHexTable,X
|
|
LSR
|
|
LSR
|
|
LSR
|
|
LSR
|
|
STA.l HexToDecDigit4
|
|
|
|
XBA
|
|
AND.b #$0F
|
|
STA.l HexToDecDigit3
|
|
|
|
REP #$20
|
|
|
|
LDA.l #$0000
|
|
STA.l HexToDecDigit1
|
|
|
|
PLA
|
|
PLX
|
|
PLP
|
|
RTL
|
|
|
|
;---------------------------------------------------------------------------------------------------
|
|
|
|
.over_1000
|
|
; get remainder mod100
|
|
STA.l $4204
|
|
|
|
SEP #$20
|
|
LDA.b #100
|
|
STA.l $4206
|
|
|
|
PHD
|
|
PLD
|
|
REP #$20
|
|
XBA
|
|
LDA.l $4216
|
|
AND.w #$7F
|
|
ASL
|
|
TAX
|
|
|
|
SEP #$20
|
|
LDA.l FastHexTable,X
|
|
AND.b #$0F
|
|
STA.l HexToDecDigit5
|
|
|
|
LDA.l FastHexTable,X
|
|
AND.b #$F0
|
|
LSR
|
|
LSR
|
|
LSR
|
|
LSR
|
|
STA.l HexToDecDigit4
|
|
|
|
REP #$20
|
|
|
|
LDA.l $4214
|
|
ASL
|
|
TAX
|
|
|
|
LDA.l FastHexTable,X
|
|
|
|
SEP #$20
|
|
|
|
AND.b #$0F
|
|
STA.l HexToDecDigit3
|
|
|
|
LDA.l FastHexTable,X
|
|
LSR
|
|
LSR
|
|
LSR
|
|
LSR
|
|
STA.l HexToDecDigit2
|
|
|
|
XBA
|
|
AND.b #$0F
|
|
STA.l HexToDecDigit1
|
|
|
|
REP #$20
|
|
PLA
|
|
PLX
|
|
PLP
|
|
RTL
|
|
|
|
;===================================================================================================
|
|
|
|
FastHexTable:
|
|
dw $000, $001, $002, $003, $004, $005, $006, $007, $008, $009
|
|
dw $010, $011, $012, $013, $014, $015, $016, $017, $018, $019
|
|
dw $020, $021, $022, $023, $024, $025, $026, $027, $028, $029
|
|
dw $030, $031, $032, $033, $034, $035, $036, $037, $038, $039
|
|
dw $040, $041, $042, $043, $044, $045, $046, $047, $048, $049
|
|
dw $050, $051, $052, $053, $054, $055, $056, $057, $058, $059
|
|
dw $060, $061, $062, $063, $064, $065, $066, $067, $068, $069
|
|
dw $070, $071, $072, $073, $074, $075, $076, $077, $078, $079
|
|
dw $080, $081, $082, $083, $084, $085, $086, $087, $088, $089
|
|
dw $090, $091, $092, $093, $094, $095, $096, $097, $098, $099
|
|
dw $100, $101, $102, $103, $104, $105, $106, $107, $108, $109
|
|
dw $110, $111, $112, $113, $114, $115, $116, $117, $118, $119
|
|
dw $120, $121, $122, $123, $124, $125, $126, $127, $128, $129
|
|
dw $130, $131, $132, $133, $134, $135, $136, $137, $138, $139
|
|
dw $140, $141, $142, $143, $144, $145, $146, $147, $148, $149
|
|
dw $150, $151, $152, $153, $154, $155, $156, $157, $158, $159
|
|
dw $160, $161, $162, $163, $164, $165, $166, $167, $168, $169
|
|
dw $170, $171, $172, $173, $174, $175, $176, $177, $178, $179
|
|
dw $180, $181, $182, $183, $184, $185, $186, $187, $188, $189
|
|
dw $190, $191, $192, $193, $194, $195, $196, $197, $198, $199
|
|
dw $200, $201, $202, $203, $204, $205, $206, $207, $208, $209
|
|
dw $210, $211, $212, $213, $214, $215, $216, $217, $218, $219
|
|
dw $220, $221, $222, $223, $224, $225, $226, $227, $228, $229
|
|
dw $230, $231, $232, $233, $234, $235, $236, $237, $238, $239
|
|
dw $240, $241, $242, $243, $244, $245, $246, $247, $248, $249
|
|
dw $250, $251, $252, $253, $254, $255, $256, $257, $258, $259
|
|
dw $260, $261, $262, $263, $264, $265, $266, $267, $268, $269
|
|
dw $270, $271, $272, $273, $274, $275, $276, $277, $278, $279
|
|
dw $280, $281, $282, $283, $284, $285, $286, $287, $288, $289
|
|
dw $290, $291, $292, $293, $294, $295, $296, $297, $298, $299
|
|
dw $300, $301, $302, $303, $304, $305, $306, $307, $308, $309
|
|
dw $310, $311, $312, $313, $314, $315, $316, $317, $318, $319
|
|
dw $320, $321, $322, $323, $324, $325, $326, $327, $328, $329
|
|
dw $330, $331, $332, $333, $334, $335, $336, $337, $338, $339
|
|
dw $340, $341, $342, $343, $344, $345, $346, $347, $348, $349
|
|
dw $350, $351, $352, $353, $354, $355, $356, $357, $358, $359
|
|
dw $360, $361, $362, $363, $364, $365, $366, $367, $368, $369
|
|
dw $370, $371, $372, $373, $374, $375, $376, $377, $378, $379
|
|
dw $380, $381, $382, $383, $384, $385, $386, $387, $388, $389
|
|
dw $390, $391, $392, $393, $394, $395, $396, $397, $398, $399
|
|
dw $400, $401, $402, $403, $404, $405, $406, $407, $408, $409
|
|
dw $410, $411, $412, $413, $414, $415, $416, $417, $418, $419
|
|
dw $420, $421, $422, $423, $424, $425, $426, $427, $428, $429
|
|
dw $430, $431, $432, $433, $434, $435, $436, $437, $438, $439
|
|
dw $440, $441, $442, $443, $444, $445, $446, $447, $448, $449
|
|
dw $450, $451, $452, $453, $454, $455, $456, $457, $458, $459
|
|
dw $460, $461, $462, $463, $464, $465, $466, $467, $468, $469
|
|
dw $470, $471, $472, $473, $474, $475, $476, $477, $478, $479
|
|
dw $480, $481, $482, $483, $484, $485, $486, $487, $488, $489
|
|
dw $490, $491, $492, $493, $494, $495, $496, $497, $498, $499
|
|
dw $500, $501, $502, $503, $504, $505, $506, $507, $508, $509
|
|
dw $510, $511, $512, $513, $514, $515, $516, $517, $518, $519
|
|
dw $520, $521, $522, $523, $524, $525, $526, $527, $528, $529
|
|
dw $530, $531, $532, $533, $534, $535, $536, $537, $538, $539
|
|
dw $540, $541, $542, $543, $544, $545, $546, $547, $548, $549
|
|
dw $550, $551, $552, $553, $554, $555, $556, $557, $558, $559
|
|
dw $560, $561, $562, $563, $564, $565, $566, $567, $568, $569
|
|
dw $570, $571, $572, $573, $574, $575, $576, $577, $578, $579
|
|
dw $580, $581, $582, $583, $584, $585, $586, $587, $588, $589
|
|
dw $590, $591, $592, $593, $594, $595, $596, $597, $598, $599
|
|
dw $600, $601, $602, $603, $604, $605, $606, $607, $608, $609
|
|
dw $610, $611, $612, $613, $614, $615, $616, $617, $618, $619
|
|
dw $620, $621, $622, $623, $624, $625, $626, $627, $628, $629
|
|
dw $630, $631, $632, $633, $634, $635, $636, $637, $638, $639
|
|
dw $640, $641, $642, $643, $644, $645, $646, $647, $648, $649
|
|
dw $650, $651, $652, $653, $654, $655, $656, $657, $658, $659
|
|
dw $660, $661, $662, $663, $664, $665, $666, $667, $668, $669
|
|
dw $670, $671, $672, $673, $674, $675, $676, $677, $678, $679
|
|
dw $680, $681, $682, $683, $684, $685, $686, $687, $688, $689
|
|
dw $690, $691, $692, $693, $694, $695, $696, $697, $698, $699
|
|
dw $700, $701, $702, $703, $704, $705, $706, $707, $708, $709
|
|
dw $710, $711, $712, $713, $714, $715, $716, $717, $718, $719
|
|
dw $720, $721, $722, $723, $724, $725, $726, $727, $728, $729
|
|
dw $730, $731, $732, $733, $734, $735, $736, $737, $738, $739
|
|
dw $740, $741, $742, $743, $744, $745, $746, $747, $748, $749
|
|
dw $750, $751, $752, $753, $754, $755, $756, $757, $758, $759
|
|
dw $760, $761, $762, $763, $764, $765, $766, $767, $768, $769
|
|
dw $770, $771, $772, $773, $774, $775, $776, $777, $778, $779
|
|
dw $780, $781, $782, $783, $784, $785, $786, $787, $788, $789
|
|
dw $790, $791, $792, $793, $794, $795, $796, $797, $798, $799
|
|
dw $800, $801, $802, $803, $804, $805, $806, $807, $808, $809
|
|
dw $810, $811, $812, $813, $814, $815, $816, $817, $818, $819
|
|
dw $820, $821, $822, $823, $824, $825, $826, $827, $828, $829
|
|
dw $830, $831, $832, $833, $834, $835, $836, $837, $838, $839
|
|
dw $840, $841, $842, $843, $844, $845, $846, $847, $848, $849
|
|
dw $850, $851, $852, $853, $854, $855, $856, $857, $858, $859
|
|
dw $860, $861, $862, $863, $864, $865, $866, $867, $868, $869
|
|
dw $870, $871, $872, $873, $874, $875, $876, $877, $878, $879
|
|
dw $880, $881, $882, $883, $884, $885, $886, $887, $888, $889
|
|
dw $890, $891, $892, $893, $894, $895, $896, $897, $898, $899
|
|
dw $900, $901, $902, $903, $904, $905, $906, $907, $908, $909
|
|
dw $910, $911, $912, $913, $914, $915, $916, $917, $918, $919
|
|
dw $920, $921, $922, $923, $924, $925, $926, $927, $928, $929
|
|
dw $930, $931, $932, $933, $934, $935, $936, $937, $938, $939
|
|
dw $940, $941, $942, $943, $944, $945, $946, $947, $948, $949
|
|
dw $950, $951, $952, $953, $954, $955, $956, $957, $958, $959
|
|
dw $960, $961, $962, $963, $964, $965, $966, $967, $968, $969
|
|
dw $970, $971, $972, $973, $974, $975, $976, $977, $978, $979
|
|
dw $980, $981, $982, $983, $984, $985, $986, $987, $988, $989
|
|
dw $990, $991, $992, $993, $994, $995, $996, $997, $998, $999
|
|
|
|
;=================================================================================================== |