RANK.SRC 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834
  1. ;
  2. ;
  3. ; *** 044 RANKNG ***
  4. ;
  5. ;
  6. XDEF RANKING_DISP
  7. XDEF INIT_NAMING,NAMING
  8. XREF ?A5
  9. ;by MESSAGE
  10. XREF MESS_SET,MESS_SET_INNER,FLAME_WRITE,FLAME_CLR
  11. XREF FLAME_WRITED,FLAME_CLRD
  12. ;by LANG
  13. XREF LANG_SET,LANG_SET_INNER
  14. ;by GAME_DSP
  15. XREF SCORE_DISP
  16. SECT GAME,,C
  17. INCLUDE SYS.INC
  18. INCLUDE NEO_GEO.INC
  19. INCLUDE LABEL.INC
  20. INCLUDE EASY_MAC.INC
  21. INIT_NAMING:
  22. MOVE.B #1,LP_MAIN_RUN(A5)
  23. LEA.L MLWORK1(A5),A6
  24. TST.B STAGE_END_FLAG(A5)
  25. BEQ NON_NAMING
  26. MOVE.L WIN_PLAYER(A5),A0
  27. MOVE.L ANOTHER_PLAYER+HERO_OFFSET(A0),A4
  28. BTST.B #4,PHASE+1(A5)
  29. BNE INIT_NAMING_1
  30. BTST.B #6,PLAYER_STATE+PLAYER_OFFSET(A4)
  31. BNE INIT_NAMING_1
  32. CMP.W #11,STORY_STAGE(A5)
  33. BNE NON_NAMING
  34. MOVE.L ANOTHER_PLAYER(A4),A4
  35. INIT_NAMING_1:
  36. JSR RANK_IN(PC)
  37. TST.W ST_TD_RANK(A5)
  38. BPL.S INIT_NAMING_2
  39. TST.W ST_TL_RANK(A5)
  40. BPL.S INIT_NAMING_2
  41. TST.W VS_TD_RANK(A5)
  42. BPL.S INIT_NAMING_2
  43. TST.W VS_TL_RANK(A5)
  44. BPL.S INIT_NAMING_2
  45. NON_NAMING:
  46. OR.B #10000000B,PHASE+1(A5)
  47. MOVE.W #12,SUB_STEP(A5)
  48. RTS
  49. INIT_NAMING_2:
  50. AND.B #01111111B,PHASE+1(A5)
  51. MOVE.L A4,NAMING_PLAYER(A5)
  52. MOVE.W #0ADH,D0 clear
  53. JSR.S MESS_SET
  54. MOVE.W #6,FLAME_COUNT(A5)
  55. MOVE.W #1,FLAME_TYPE(A5)
  56. MOVE.W #7000H+20H*11+14,FLAME_POS(A5)
  57. MOVE.W #6,FLAME_END(A5)
  58. JSR.S FLAME_WRITED
  59. BSR NAME_INIT
  60. MOVE.W #0AEH,D0 1P 2P
  61. ADD.W PLAYER_No+PLAYER_OFFSET(A4),D0
  62. JSR.S MESS_SET
  63. MOVE.W ST_IN_RANK(A5),D4
  64. BMI.S INIT_NAMING_3
  65. MOVE.W #0B0H,D0
  66. JSR.S MESS_SET
  67. MOVE.W #0B2H,D0
  68. ADD.W D4,D0
  69. JSR.S MESS_SET
  70. INIT_NAMING_3:
  71. MOVE.W VS_IN_RANK(A5),D4
  72. BMI.S INIT_NAMING_4
  73. MOVE.W #0B1H,D0
  74. JSR.S MESS_SET
  75. MOVE.W #0B2H,D0
  76. ADD.W D4,D0
  77. JSR.S MESS_SET
  78. INIT_NAMING_4:
  79. MOVE.W #1600H,WORD_TIMER(A6)
  80. END_NEXT 1,NAMING_1
  81. NAMING:
  82. JSR SCORE_DISP
  83. MOVE.B #1,LP_MAIN_RUN(A5)
  84. LEA.L MLWORK1(A5),A6
  85. MOVE.L NAMING_PLAYER(A5),A4
  86. EASY_START
  87. NAMING_1:
  88. LEA.L WORD_TIMER(A6),A0
  89. JSR.S SEC_TIME_BCD
  90. MOVE.W #0BBH,D0 timer
  91. JSR MESS_SET(PC)
  92. TST.B WORD_TIMER(A6)
  93. BEQ NAMING_END
  94. MOVE.W #0BBH,D0 timer
  95. JSR MESS_SET(PC)
  96. LEA.L INPUT_1(A5),A3
  97. TST.W PLAYER_No+PLAYER_OFFSET(A4)
  98. BEQ.S NAMING_1_1
  99. LEA.L INPUT_2(A5),A3
  100. NAMING_1_1:
  101. BSR NAME_MOVE
  102. LEA.L CAL_MESS+84H(A5),A0
  103. MOVE.W NAME_NAME_POS(A5),D1
  104. LEA.L 0(A0,D1.W),A0
  105. BTST.B #B_B_BUTTON,3(A3)
  106. BNE NAME_BACK
  107. BTST.B #B_A_BUTTON,3(A3)
  108. BNE NAME_NEXT
  109. RTS
  110. NAME_NEXT:
  111. MOVE.W #6AH*2,D0
  112. JSR.S SET_SOUND
  113. CMP.B #41,(A0)
  114. BEQ NAME_BACK_1
  115. CMP.B #42,(A0)
  116. BEQ NAMING_END_1
  117. CMP.W #2,NAME_NAME_POS(A5)
  118. BEQ NAMING_END_1
  119. ADDQ.W #1,NAME_NAME_POS(A5)
  120. JSR RANK_CONV(PC)
  121. RTS
  122. NAME_BACK:
  123. MOVE.W #6AH*2,D0
  124. JSR.S SET_SOUND
  125. NAME_BACK_1:
  126. TST.W NAME_NAME_POS(A5)
  127. BEQ.S NON_BACK
  128. SUBQ.W #1,NAME_NAME_POS(A5)
  129. JSR RANK_CONV(PC)
  130. NON_BACK:
  131. RTS
  132. NAMING_END:
  133. MOVE.W #6AH*2,D0
  134. JSR.S SET_SOUND
  135. NAMING_END_1:
  136. JSR RANK_CONV(PC)
  137. BSR RANK_IN_IN
  138. MOVE.B #30,BYTE_TIMER(A6)
  139. END_NEXT 2,NAMING_2
  140. NAMING_2:
  141. SUBQ.B #1,BYTE_TIMER(A6)
  142. BNE.S NAMING_2_1
  143. MOVE.W #12,SUB_STEP(A5)
  144. OR.B #10000000B,PHASE+1(A5)
  145. NAMING_2_1:
  146. RTS
  147. RANK_IN_IN:
  148. LEA.L RANK_TL_S(A5),A0
  149. LEA.L ST_TL_RANK(A5),A1
  150. MOVE.L HERO_SCORE(A4),D4
  151. BSR RANK_IN_IN_SUB
  152. LEA.L RANK_TL_V(A5),A0
  153. LEA.L VS_TL_RANK(A5),A1
  154. MOVEQ.L #0,D4
  155. MOVE.B HERO_BEAT(A4),D4
  156. BSR RANK_IN_IN_SUB
  157. LEA.L RANK_TD_S(A5),A0
  158. LEA.L ST_TD_RANK(A5),A1
  159. MOVE.L HERO_SCORE(A4),D4
  160. BSR RANK_IN_IN_SUB
  161. LEA.L RANK_TD_V(A5),A0
  162. LEA.L VS_TD_RANK(A5),A1
  163. MOVEQ.L #0,D4
  164. MOVE.B HERO_BEAT(A4),D4
  165. BSR RANK_IN_IN_SUB
  166. RTS
  167. RANK_IN_IN_SUB:
  168. MOVE.W (A1),D1
  169. BMI RIIS_NON
  170. MOVEQ.L #3,D2
  171. BRA.S RIIS_2
  172. RIIS_1:
  173. MOVE.W D2,D0
  174. ADD.W D0,D0
  175. ADD.W D0,D0
  176. ADD.W D0,D0
  177. MOVE.L 0(A0,D0.W),8(A0,D0.W)
  178. MOVE.L 4(A0,D0.W),12(A0,D0.W)
  179. SUBQ.W #1,D2
  180. RIIS_2:
  181. CMP.W D1,D2
  182. BGE.S RIIS_1
  183. ADD.W D1,D1
  184. ADD.W D1,D1
  185. ADD.W D1,D1
  186. MOVE.L D4,0(A0,D1.W)
  187. MOVE.L CAL_MESS+80H(A5),4(A0,D1.W)
  188. RIIS_NON:
  189. RTS
  190. NAME_MOVE:
  191. MOVEQ.L #0FH,D2
  192. AND.B 4(A3),D2
  193. MOVE.B NAME_MOVED(PC,D2.W),D2
  194. BEQ NAME_MOVE_1
  195. MOVE.W #69H*2,D0
  196. JSR.S SET_SOUND
  197. LEA.L CAL_MESS+84H(A5),A0
  198. MOVE.W NAME_NAME_POS(A5),D1
  199. LEA.L 0(A0,D1.W),A0
  200. ADD.B (A0),D2
  201. ADD.B #43,D2
  202. DIVU #43,D2
  203. SWAP D2
  204. MOVE.B D2,(A0)
  205. JSR RANK_CONV(PC)
  206. NAME_MOVE_1:
  207. RTS
  208. NAME_MOVED:
  209. DC.B 0,7,-7,0
  210. DC.B -1,6,-8,0
  211. DC.B 1,8,-6,0
  212. DC.B 0,0,0,0
  213. NAME_INIT:
  214. MOVE.W ST_TL_RANK(A5),D0
  215. BPL.S NAME_INIT_1
  216. MOVE.W ST_TD_RANK(A5),D0
  217. BMI.S NAME_INIT_2
  218. NAME_INIT_1:
  219. MOVE.W D0,ST_IN_RANK(A5)
  220. NAME_INIT_2:
  221. MOVE.W VS_TL_RANK(A5),D0
  222. BPL.S NAME_INIT_3
  223. MOVE.W VS_TD_RANK(A5),D0
  224. BMI.S NAME_INIT_4
  225. NAME_INIT_3:
  226. MOVE.W D0,VS_IN_RANK(A5)
  227. NAME_INIT_4:
  228. MOVE.W #0,NAME_NAME_POS(A5)
  229. MOVE.B #-1,CAL_MESS+83H(A5)
  230. MOVE.B #42,CAL_MESS+84H(A5)
  231. MOVE.B #42,CAL_MESS+85H(A5)
  232. MOVE.B #42,CAL_MESS+86H(A5)
  233. MOVE.B #-1,CAL_MESS+87H(A5)
  234. JSR RANK_CONV(PC)
  235. RTS
  236. RANK_IN:
  237. MOVE.W #-1,ST_TD_RANK(A5)
  238. MOVE.W #-1,ST_TL_RANK(A5)
  239. MOVE.W #-1,VS_TD_RANK(A5)
  240. MOVE.W #-1,VS_TL_RANK(A5)
  241. MOVE.W #-1,ST_IN_RANK(A5)
  242. MOVE.W #-1,VS_IN_RANK(A5)
  243. TST.B MVS_FLAG(A5)
  244. BEQ RANK_IN_1
  245. LEA.L RANK_TL_S(A5),A0
  246. LEA.L ST_TL_RANK(A5),A1
  247. MOVE.L HERO_SCORE(A4),D4
  248. BSR RANK_IN_SUB
  249. LEA.L RANK_TL_V(A5),A0
  250. LEA.L VS_TL_RANK(A5),A1
  251. MOVEQ.L #0,D4
  252. MOVE.B HERO_BEAT(A4),D4
  253. BSR RANK_IN_SUB
  254. RANK_IN_1:
  255. LEA.L RANK_TD_S(A5),A0
  256. LEA.L ST_TD_RANK(A5),A1
  257. MOVE.L HERO_SCORE(A4),D4
  258. BSR RANK_IN_SUB
  259. LEA.L RANK_TD_V(A5),A0
  260. LEA.L VS_TD_RANK(A5),A1
  261. MOVEQ.L #0,D4
  262. MOVE.B HERO_BEAT(A4),D4
  263. BSR RANK_IN_SUB
  264. RTS
  265. RANK_IN_SUB:
  266. MOVEQ.L #0,D1
  267. RIS_1:
  268. CMP.L (A0),D4
  269. BHS.S RIS_IN
  270. ADDQ.L #8,A0
  271. ADDQ.W #1,D1
  272. CMP.W #5,D1
  273. BNE.S RIS_1
  274. RTS
  275. RIS_IN:
  276. MOVE.W D1,(A1)
  277. RTS
  278. RANK_CONV:
  279. LEA.L CAL_MESS+80H(A5),A0
  280. MOVEQ.L #0,D0
  281. MOVEQ.L #3-1,D7
  282. RANK_CONV_1:
  283. MOVE.B 4(A0),D0
  284. MOVE.B RANK_CONV_DATA(PC,D0.W),(A0)+
  285. DBRA D7,RANK_CONV_1
  286. MOVEQ.L #1,D4
  287. JSR MESS_CONVERT(PC)
  288. MOVE.W #0B7H,D0
  289. JSR.S MESS_SET
  290. MOVE.W #0B8H,D0
  291. ADD.W NAME_NAME_POS(A5),D0
  292. JSR.S MESS_SET
  293. RTS
  294. RANK_CONV_DATA:
  295. ; 0123456789ABCDEF
  296. DC.B 'ABCD'
  297. DC.B 'EFGHIJK'
  298. DC.B 'LMNOPQR'
  299. DC.B 'STUVWXYZ'
  300. DC.B '0123456789' 7*6=42
  301. DC.B '+-?!#^_'
  302. DS.W 0
  303. RANKING_DISP:
  304. LEA.L MLWORK2(A5),A6
  305. MOVEP.W WORK_N0(A6),D0
  306. CLR.B D0
  307. CLR.W TYPE(A5,D0.W)
  308. CLR.W 109700H HERO FACE
  309. CLR.W 10A700H
  310. MOVE.W #-1,INSERT_POS(A5)
  311. MOVEQ.L #00000011B,D0
  312. AND.B DEMO_NUMBER(A5),D0
  313. TST.B MVS_FLAG(A5)
  314. BNE.S RD_INIT_1
  315. ADDQ.W #4,D0
  316. RD_INIT_1:
  317. ADD.W D0,D0
  318. ADD.W D0,D0
  319. JMP RD_VECTOR(PC,D0.W)
  320. RD_VECTOR:
  321. JMP RD_TL_V(PC)
  322. JMP RD_TD_S(PC)
  323. JMP RD_TD_V(PC)
  324. JMP RD_TL_S(PC)
  325. JMP RD_TD_V(PC)
  326. JMP RD_TD_S(PC)
  327. JMP RD_TD_V(PC)
  328. JMP RD_TD_S(PC)
  329. RD_TL_S:
  330. LEA.L RANK_TL_S(A5),A0
  331. MOVE.W #0A2H,D0
  332. BRA.S RD_STORY_0
  333. RD_TD_S:
  334. LEA.L RANK_TD_S(A5),A0
  335. MOVE.W #0A1H,D0
  336. RD_STORY_0:
  337. MOVE.L A0,LW_D1(A6)
  338. MOVE.W D0,LW_D0(A6)
  339. MOVE.W #31H,D0
  340. JSR.S MESS_SET clear
  341. MOVE.W #1,FLAME_COUNT(A5)
  342. MOVE.W #0,FLAME_TYPE(A5)
  343. MOVE.W #7000H+20H*3+4,FLAME_POS(A5)
  344. JSR.S FLAME_WRITED
  345. MOVE.W LW_D0(A6),D0
  346. JSR.S MESS_SET
  347. MOVE.W #0,LW_D0(A6)
  348. MOVE.B #1,BYTE_TIMER(A6)
  349. STEP_SAVE 1,RD_STORY
  350. RD_STORY:
  351. MOVE.B #1,LP_MAIN_RUN(A5)
  352. SUBQ.B #1,BYTE_TIMER(A6)
  353. BEQ.S RD_STORY_1
  354. RTS
  355. RD_STORY_1:
  356. MOVE.W LW_D0(A6),D5
  357. MOVE.L LW_D1(A6),A0
  358. JSR ST_RANK_SUB(PC)
  359. MOVE.B #3,BYTE_TIMER(A6)
  360. ADDQ.L #8,LW_D1(A6)
  361. ADDQ.W #1,LW_D0(A6)
  362. CMP.W #5,LW_D0(A6)
  363. BEQ RD_WAIT
  364. RTS
  365. RD_TL_V:
  366. LEA.L RANK_TL_V(A5),A0
  367. MOVE.W #0A4H,D0
  368. BRA.S RD_VS_0
  369. RD_TD_V:
  370. LEA.L RANK_TD_V(A5),A0
  371. MOVE.W #0A3H,D0
  372. RD_VS_0:
  373. MOVE.L A0,LW_D1(A6)
  374. MOVE.W D0,LW_D0(A6)
  375. MOVE.W #31H,D0
  376. JSR.S MESS_SET clear
  377. MOVE.W #1,FLAME_COUNT(A5)
  378. MOVE.W #0,FLAME_TYPE(A5)
  379. MOVE.W #7000H+20H*3+4,FLAME_POS(A5)
  380. JSR.S FLAME_WRITED
  381. MOVE.W LW_D0(A6),D0
  382. JSR.S MESS_SET
  383. MOVE.W #0,LW_D0(A6)
  384. MOVE.B #1,BYTE_TIMER(A6)
  385. STEP_SAVE 1,RD_VS
  386. RD_VS:
  387. MOVE.B #1,LP_MAIN_RUN(A5)
  388. SUBQ.B #1,BYTE_TIMER(A6)
  389. BEQ.S RD_VS_1
  390. RTS
  391. RD_VS_1:
  392. MOVE.W LW_D0(A6),D5
  393. MOVE.L LW_D1(A6),A0
  394. JSR VS_RANK_SUB(PC)
  395. MOVE.B #3,BYTE_TIMER(A6)
  396. ADDQ.L #8,LW_D1(A6)
  397. ADDQ.W #1,LW_D0(A6)
  398. CMP.W #5,LW_D0(A6)
  399. BEQ RD_WAIT
  400. RTS
  401. RD_WAIT:
  402. SEC_TIMER_SET 3,WORD_TIMER
  403. END_NEXT 2,RD_WAIT_1
  404. RD_WAIT_1:
  405. MOVE.B #1,LP_MAIN_RUN(A5)
  406. SEC_TIMER WORD_TIMER
  407. BCC.S RD_WAIT_2
  408. MOVEQ.L #01110000B,D0
  409. AND.B PHASE+1(A5),D0
  410. OR.B #3,D0
  411. MOVE.B D0,PHASE+1(A5)
  412. RD_WAIT_2:
  413. RTS
  414. VS_RANK_SUB:
  415. ; in) A0 org data
  416. ; D5 rank
  417. LEA.L CAL_MESS+80H(A5),A1
  418. MOVE.L #' ',(A1)
  419. MOVE.L #' ',4(A1)
  420. MOVE.L #' ',8(A1)
  421. MOVE.L #' ',12(A1)
  422. MOVE.W #' ',14(A1)
  423. MOVEQ.L #31H,D0
  424. ADD.B D5,D0
  425. MOVE.B D0,(A1)
  426. TST.B LANGUAGE(A5)
  427. BNE VS_RANK_BEAT
  428. ADDQ.L #6,A1
  429. BSR BEAT_SUB
  430. MOVE.B #'&',(A1)+
  431. MOVE.B #'"',(A1)+
  432. MOVE.B #'$',(A1)+
  433. MOVE.B #' ',(A1)+
  434. MOVE.B #' ',(A1)+
  435. JMP RANK_ORDER_SET(PC)
  436. VS_RANK_BEAT:
  437. ADDQ.L #4,A1
  438. MOVE.B #'(',(A1)+
  439. MOVE.B #')',(A1)+
  440. MOVE.B #'*',(A1)+
  441. MOVE.B #',',(A1)+
  442. ADDQ.L #2,A1
  443. BSR BEAT_SUB
  444. MOVE.B #' ',(A1)+
  445. JMP RANK_ORDER_SET(PC)
  446. BEAT_SUB:
  447. MOVE.B 3(A0),D0
  448. LSR.B #4,D0
  449. BEQ.S BEAT_SUB_1
  450. ADD.B #'0',D0
  451. MOVE.B D0,-2(A1)
  452. BEAT_SUB_1:
  453. MOVEQ.L #0FH,D0
  454. AND.B 3(A0),D0
  455. ADD.B #'0',D0
  456. MOVE.B D0,-1(A1)
  457. ADDQ.L #4,A0
  458. RTS
  459. ST_RANK_SUB:
  460. ; in) A0 org data
  461. ; D5 rank
  462. LEA.L CAL_MESS+80H(A5),A1
  463. MOVE.L #' ',(A1)
  464. MOVE.L #' ',4(A1)
  465. MOVE.L #' ',8(A1)
  466. MOVE.L #' ',12(A1)
  467. MOVE.W #' ',14(A1)
  468. MOVEQ.L #31H,D0
  469. ADD.B D5,D0
  470. MOVE.B D0,(A1)
  471. ADDQ.L #2,A1
  472. MOVEQ.L #20H,D1
  473. MOVEQ.L #4-1,D7
  474. STRS_1:
  475. MOVE.B (A0),D0
  476. LSR.B #4,D0
  477. BSR STRS_SUB
  478. MOVE.B (A0)+,D0
  479. BSR STRS_SUB
  480. DBRA D7,STRS_1
  481. MOVE.B #' ',(A1)+
  482. RANK_ORDER_SET:
  483. MOVE.B (A0)+,(A1)+
  484. MOVE.B (A0)+,(A1)+
  485. MOVE.B (A0)+,(A1)+
  486. MOVE.B #0FFH,(A1)
  487. MOVEQ.L #0,D4
  488. JSR MESS_CONVERT(PC)
  489. OR.B #30H,CAL_MESS+00H(A5)
  490. OR.B #30H,CAL_MESS+02H(A5)
  491. OR.B #30H,CAL_MESS+40H(A5)
  492. OR.B #30H,CAL_MESS+42H(A5)
  493. OR.B #30H,CAL_MESS+2CH(A5)
  494. OR.B #30H,CAL_MESS+2EH(A5)
  495. OR.B #30H,CAL_MESS+30H(A5)
  496. OR.B #30H,CAL_MESS+32H(A5)
  497. OR.B #30H,CAL_MESS+34H(A5)
  498. OR.B #30H,CAL_MESS+36H(A5)
  499. OR.B #30H,CAL_MESS+6CH(A5)
  500. OR.B #30H,CAL_MESS+6EH(A5)
  501. OR.B #30H,CAL_MESS+70H(A5)
  502. OR.B #30H,CAL_MESS+72H(A5)
  503. OR.B #30H,CAL_MESS+74H(A5)
  504. OR.B #30H,CAL_MESS+76H(A5)
  505. MOVE.W D5,D0
  506. ADD.W D0,D0
  507. ADD.W D0,D0
  508. MOVE.W SUUSI(PC,D0.W),CAL_MESS+44H(A5)
  509. MOVE.W SUUSI+2(PC,D0.W),CAL_MESS+46H(A5)
  510. MOVE.W #0A5H,D0
  511. ADD.W D5,D0
  512. JSR.S MESS_SET
  513. MOVE.W #0AAH,D0
  514. JSR.S MESS_SET
  515. RTS
  516. SUUSI:
  517. DC.W 3353H,3354H st
  518. DC.W 334EH,3344H nd
  519. DC.W 3352H,3344H rd
  520. DC.W 3354H,3348H th
  521. DC.W 3354H,3348H th
  522. STRS_SUB:
  523. AND.B #0FH,D0
  524. BEQ.S STRS_SUB_1
  525. MOVEQ.L #30H,D1
  526. STRS_SUB_1:
  527. OR.B D1,D0
  528. MOVE.B D0,(A1)+
  529. RTS
  530. MESS_CONVERT:
  531. ; in) CAL_MESS+80H original ascii
  532. ; D4=0 blank 1=beta
  533. ; out) CAL_MESS,CAL_MESS+40H convert chara
  534. LEA.L CAL_MESS+80H(A5),A0
  535. LEA.L CAL_MESS+40H(A5),A1
  536. LEA.L CONV_ASCII(PC),A2
  537. TST.B D4
  538. BEQ.S MC_1
  539. LEA.L CONV_ASCII_BETA(PC),A2
  540. MC_1:
  541. MOVEQ.L #0,D2
  542. MOVE.B (A0)+,D2
  543. CMP.B #0FFH,D2
  544. BEQ MC_2
  545. SUB.B #' ',D2
  546. ADD.W D2,D2
  547. ADD.W D2,D2
  548. MOVE.W 0(A2,D2.W),D0
  549. MOVE.W D0,-40H(A1)
  550. ADD.W #100H,D0
  551. MOVE.W D0,(A1)+
  552. MOVE.W 2(A2,D2.W),D0
  553. MOVE.W D0,-40H(A1)
  554. ADD.W #100H,D0
  555. MOVE.W D0,(A1)+
  556. BRA MC_1
  557. MC_2:
  558. MOVE.W #0FFH,-40H(A1)
  559. MOVE.W #0FFH,(A1)
  560. RTS
  561. CONV_ASCII:
  562. DC.W 0520H,0520H 20H sp
  563. DC.W 3BFAH,3BFBH 21H !
  564. DC.W 3DE5H,3DE6H 22H "=ninnuki
  565. DC.W 355EH,355FH 23H #=nt
  566. DC.W 3DE7H,0520H 24H $=ninnuki
  567. DC.W 3D7EH,3D7FH 25H %=
  568. DC.W 3DE3H,3DE4H 26H &=ninnuki
  569. DC.W 0520H,0520H 27H '
  570. DC.W 3542H,3545H 28H (=beat by
  571. DC.W 3541H,3554H 29H )=beat by
  572. DC.W 0520H,3542H 2AH *=beat by
  573. DC.W 3D7CH,3D7DH 2BH +
  574. DC.W 3559H,0520H 2CH ,=beat by
  575. DC.W 3DBEH,3DBFH 2DH -
  576. DC.W 0520H,0520H 2EH .
  577. DC.W 0520H,0520H 2FH /
  578. DC.W 2362H,2363H 30H 0
  579. DC.W 2364H,2365H 31H 1
  580. DC.W 2366H,2367H 32H 2
  581. DC.W 2368H,2369H 33H 3
  582. DC.W 236AH,236BH 34H 4
  583. DC.W 236CH,236DH 35H 5
  584. DC.W 236EH,236FH 36H 6
  585. DC.W 2370H,2371H 37H 7
  586. DC.W 2372H,2373H 38H 8
  587. DC.W 2374H,2375H 39H 9
  588. DC.W 0520H,0520H 3AH :
  589. DC.W 0520H,0520H 3BH ;
  590. DC.W 0520H,0520H 3CH <
  591. DC.W 0520H,0520H 3DH =
  592. DC.W 0520H,0520H 3EH >
  593. DC.W 3BF8H,3BF9H 3FH ?
  594. DC.W 0520H,0520H 40H @
  595. DC.W 338AH,338BH 41H A
  596. DC.W 338CH,338DH 42H B
  597. DC.W 338EH,338FH 43H C
  598. DC.W 3390H,3391H 44H D
  599. DC.W 3392H,3393H 45H E
  600. DC.W 3394H,3395H 46H F
  601. DC.W 3396H,3397H 47H G
  602. DC.W 3398H,3399H 48H H
  603. DC.W 339AH,339BH 49H I
  604. DC.W 339CH,339DH 4AH J
  605. DC.W 339EH,339FH 4BH K
  606. DC.W 33A0H,33A1H 4CH L
  607. DC.W 33A2H,33A3H 4DH M
  608. DC.W 33A4H,33A5H 4EH N
  609. DC.W 33A6H,33A7H 4FH O
  610. DC.W 33A8H,33A9H 50H P
  611. DC.W 33AAH,33ABH 51H Q
  612. DC.W 33ACH,33ADH 52H R
  613. DC.W 33AEH,33AFH 53H S
  614. DC.W 33B0H,33B1H 54H T
  615. DC.W 33B2H,33B3H 55H U
  616. DC.W 33B4H,33B5H 56H V
  617. DC.W 33B6H,33B7H 57H W
  618. DC.W 33B8H,33B9H 58H X
  619. DC.W 33BAH,33BBH 59H Y
  620. DC.W 33BCH,33BDH 5AH Z
  621. DC.W 0520H,0520H 5BH
  622. DC.W 0520H,0520H 5CH
  623. DC.W 0520H,0520H 5DH
  624. DC.W 0520H,0520H 5EH
  625. DC.W 0520H,0520H 5FH end
  626. CONV_ASCII_BETA:
  627. DC.W 0720H,0720H 20H sp
  628. DC.W 3BF6H,3BF7H 21H !
  629. DC.W 0720H,0720H 22H "
  630. DC.W 375EH,375FH 23H #=nt
  631. DC.W 0720H,0720H 24H $
  632. DC.W 3BF2H,3BF3H 25H %
  633. DC.W 0720H,0720H 26H &
  634. DC.W 0720H,0720H 27H '
  635. DC.W 0720H,0720H 28H (
  636. DC.W 0720H,0720H 29H )
  637. DC.W 0720H,0720H 2AH *
  638. DC.W 3BDAH,3BDBH 2BH +
  639. DC.W 0720H,0720H 2CH ,
  640. DC.W 3D9EH,3D9FH 2DH -
  641. DC.W 0720H,0720H 2EH .
  642. DC.W 0720H,0720H 2FH /
  643. DC.W 3376H,3377H 30H 0
  644. DC.W 3378H,3379H 31H 1
  645. DC.W 337AH,337BH 32H 2
  646. DC.W 337CH,337DH 33H 3
  647. DC.W 337EH,337FH 34H 4
  648. DC.W 3380H,3381H 35H 5
  649. DC.W 3382H,3383H 36H 6
  650. DC.W 3384H,3385H 37H 7
  651. DC.W 3386H,3387H 38H 8
  652. DC.W 3388H,3389H 39H 9
  653. DC.W 0720H,0720H 3AH :
  654. DC.W 0720H,0720H 3BH ;
  655. DC.W 0720H,0720H 3CH <
  656. DC.W 0720H,0720H 3DH =
  657. DC.W 0720H,0720H 3EH >
  658. DC.W 3BF4H,3BF5H 3FH ?
  659. DC.W 0720H,0720H 40H @
  660. DC.W 33BEH,33BFH 41H A
  661. DC.W 33C0H,33C1H 42H B
  662. DC.W 33C2H,33C3H 43H C
  663. DC.W 33C4H,33C5H 44H D
  664. DC.W 33C6H,33C7H 45H E
  665. DC.W 33C8H,33C9H 46H F
  666. DC.W 33CAH,33CBH 47H G
  667. DC.W 33CCH,33CDH 48H H
  668. DC.W 33CEH,33CFH 49H I
  669. DC.W 33D0H,33D1H 4AH J
  670. DC.W 33D2H,33D3H 4BH K
  671. DC.W 33D4H,33D5H 4CH L
  672. DC.W 33D6H,33D7H 4DH M
  673. DC.W 33D8H,33D9H 4EH N
  674. DC.W 33DAH,33DBH 4FH O
  675. DC.W 33DCH,33DDH 50H P
  676. DC.W 33DEH,33DFH 51H Q
  677. DC.W 33E0H,33E1H 52H R
  678. DC.W 33E2H,33E3H 53H S
  679. DC.W 33E4H,33E5H 54H T
  680. DC.W 33E6H,33E7H 55H U
  681. DC.W 33E8H,33E9H 56H V
  682. DC.W 33EAH,33EBH 57H W
  683. DC.W 33ECH,33EDH 58H X
  684. DC.W 33EEH,33EFH 59H Y
  685. DC.W 33F0H,33F1H 5AH Z
  686. DC.W 0720H,0720H 5BH
  687. DC.W 0720H,0720H 5CH
  688. DC.W 0720H,0720H 5DH
  689. DC.W 3BE0H,3BE1H 5EH BS
  690. DC.W 335BH,335CH 5FH end
  691. INCLUDE WORK.INC
  692.