uaa

kanji ROM downloader for MSX-DOS

uaa
Jun 5th, 2015
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. ;
  2. ; kanji rom downloader v0.01
  3. ; (C) JG1UAA/XnK 1995
  4. ;
  5.  
  6. WBOOT equ 0000H
  7. BDOS equ 0005H
  8. sysfcb equ 005CH
  9.  
  10. io_jis1 equ 0D8H
  11. io_jis2 equ 0DAH
  12.  
  13.  
  14. ORG 0100H
  15.  
  16.  
  17. start: ld sp,(BDOS+1)
  18. ld c,9
  19. ld de,title
  20. call BDOS
  21.  
  22. chkopt: ld a,(sysfcb+1)
  23. and 11111100b
  24. cp 30h
  25. jr z,dlmain
  26.  
  27. ld c,9
  28. ld de,usage
  29. call BDOS
  30. ld c,9
  31. ld de,msgj1
  32. call BDOS
  33. ld c,9
  34. ld de,msgj2
  35. call BDOS
  36.  
  37. jp WBOOT
  38.  
  39. dlmain:
  40. mk_fcb: ld a,(sysfcb)
  41. ld (fcb),a
  42.  
  43. ld de,buf
  44. ld c,1ah ;set DTA
  45. call BDOS
  46.  
  47. ld a,(sysfcb+1)
  48. cp '2'
  49. jr z,jis2
  50.  
  51.  
  52. ;JIS Class-1
  53. jis1: ld a,'1'
  54. ld (fcb+8),a
  55. ld de,fcb
  56. ld c,16h ;file create
  57. call BDOS
  58. ld hl,0001h
  59. ld (fcb+14),hl
  60. dec hl
  61. ld (fcb+33),hl
  62. ld (fcb+35),hl
  63.  
  64. or a
  65. jr nz,abt
  66.  
  67. ld c,9
  68. ld de,msgj1
  69. call BDOS
  70.  
  71. ld c,io_jis1
  72. call kdmain
  73.  
  74. ld de,fcb
  75. ld c,10h ;file close
  76. call BDOS
  77.  
  78. ld a,(sysfcb+1)
  79. cp '1'
  80. jr z,fin
  81.  
  82. ;JIS Class-2
  83. jis2: ld a,'2'
  84. ld (fcb+8),a
  85. ld de,fcb
  86. ld c,16h ;file create
  87. call BDOS
  88. ld hl,0001h
  89. ld (fcb+14),hl
  90. dec hl
  91. ld (fcb+33),hl
  92. ld (fcb+35),hl
  93.  
  94. or a
  95. jr nz,abt
  96.  
  97. ld c,9
  98. ld de,msgj2
  99. call BDOS
  100.  
  101. ld c,io_jis2
  102. call kdmain
  103.  
  104. ld de,fcb
  105. ld c,10h ;file close
  106. call BDOS
  107.  
  108. fin: ld c,9
  109. ld de,endmsg
  110. call BDOS
  111.  
  112. jp WBOOT
  113.  
  114. abt: ld de,fcb
  115. ld c,10h ;file close
  116. call BDOS
  117.  
  118. ld c,9
  119. ld de,errmsg
  120. call BDOS
  121. jp WBOOT
  122.  
  123. kdmain: ; C:port_adr
  124. ld de,0000h
  125. ld b,16
  126.  
  127. loop_1: push bc
  128. ld b,0 ;256
  129. ld hl,buf
  130.  
  131. loop_r: push bc
  132. ld a,e ;l_6bit
  133. and 00111111b
  134. out (c),a
  135. inc c ;port#=port#+1
  136. ld a,e ;h_6bit
  137. and 11000000b
  138. ld b,a
  139. ld a,d
  140. and 00111111b
  141. or b
  142. rlca
  143. rlca
  144. out (c),a
  145.  
  146. ld b,32
  147. inir
  148.  
  149. dec c ;port#=port#(C)
  150. inc de ;kcode=kcode+1
  151. pop bc
  152. djnz loop_r
  153.  
  154. push de
  155.  
  156. dwrite: ld de,fcb
  157. ld hl,2000h
  158. ld c,26h
  159. call BDOS
  160.  
  161. pop de
  162. pop bc
  163.  
  164. or a
  165. jr nz,abret
  166.  
  167. djnz loop_1
  168.  
  169. ret
  170.  
  171. abret:
  172. pop hl ;for stack
  173. jr abt
  174.  
  175. title: DB 'Kanji-ROM downloader v0.01',0dh,0ah
  176. DB ' (C) JG1UAA/XnK 1995',0dh,0ah
  177. DB 0dh,0ah,'$'
  178.  
  179. usage: DB 'Usage: KROMDL [d:][1|2|3]',0dh,0ah,0dh,0ah
  180. DB ' This will make Kanji-ROM image file:',0dh,0ah
  181. DB '$'
  182.  
  183. msgj1: DB ' JIS Class 1 -> KROMJIS1.FNT',0dh,0ah
  184. DB '$'
  185.  
  186. msgj2: DB ' JIS Class 2 -> KROMJIS2.FNT',0dh,0ah
  187. DB '$'
  188.  
  189. errmsg: DB 0dh,0ah
  190. DB '### File open/write error',0dh,0ah,'$'
  191.  
  192. endmsg: DB 0dh,0ah
  193. DB ' Finished.',0dh,0ah,'$'
  194.  
  195. ;*** for file
  196.  
  197. fcb: DB 00H,'KROMJIS1FNT',00H
  198. DS 24
  199.  
  200. buf: DB '(^^)'
  201. DS 2000H-4
  202.  
  203. END
Add Comment
Please, Sign In to add comment