home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol006 / zap5.ins < prev    next >
Text File  |  1984-04-29  |  3KB  |  264 lines

  1. LOAD:    jsr    EXPR2
  2. ..ld0:    ldx    #4
  3. ..ld1:    jsr    RI
  4.     cmp    #0FF
  5.     bne    ..ld0
  6.     dex
  7.     bne    ..ld1
  8. ..ld2:    jsr    RI
  9.     cmp    #0FF
  10.     beq    ..ld2
  11.     bne    ..ld3
  12. ;
  13. ..loop:    jsr    RI
  14. ..ld3:    sta    @ptrHL,Y
  15.     jsr    SHOWIT
  16.     jmp    ..loop
  17. ;
  18. UNLD:    jsr    EXPR2
  19.     jsr    MARK
  20. ..loop:    lda    @ptrHL,Y
  21.     jsr    PO
  22.     jsr    SHOWIT
  23.     jmp    ..loop
  24. ;
  25. MARK:    ldx    #8
  26. ..mrk:    lda    #0FF
  27.     jsr    PO
  28.     dex
  29.     bne    ..mrk
  30.     rts
  31. ;
  32. MEMCK:
  33. MEMSIZ:    sty    ptrL
  34.     sty    ptrH
  35.     dec    ptrL
  36. ..mem0:    inc    ptrH
  37.     lda    @ptrHL,Y
  38.     eor    #0FF
  39.     sta    @ptrHL,Y
  40.     cmp    @ptrHL,Y
  41.     bne    ..mem1
  42.     eor    #0FF
  43.     sta    @ptrHL,Y
  44.     jmp    ..mem0
  45. ;
  46. ..mem1:    dec    ptrH
  47.     ldx    ptrL
  48.     lda    ptrH
  49.     rts
  50. ;
  51. ;;
  52. ;;;********
  53. ASSIGN:
  54. BFUNCT:
  55. CFUNCT:
  56. EFUNCT:
  57. JTEST:
  58. NFUNCT:
  59. IUSER:
  60. OUSER:
  61. QUERY:
  62. READ:
  63. WRITE:
  64. YSRCH:
  65.     lda    #"?"
  66.     jmp    CO
  67. ;
  68. ;;
  69. .sbttl    /IO subroutines/
  70. .page
  71. .ife %type-1,[
  72. CI:    jsr    CSTS
  73.     beq    CI
  74.     lda    CONPRT
  75.     clc
  76.     rts
  77. ;
  78. CSTS:    lda    CONSTS
  79.     rora
  80.     bcs    ..none
  81.     lda    #0FF
  82.     rts
  83. ;
  84. ..none:    clc
  85.     lda    #00
  86.     rts
  87. ;
  88. ;;
  89. CO:    and    #0FF
  90.     beq    ..rts
  91.     pha
  92. ..wait:    lda    CONSTS
  93.     rola
  94.     bcs    ..wait
  95.     pla
  96.     sta    CONPRT
  97. ..rts:    rts
  98. ;
  99. ;;
  100. IOINIT:    lda    #BREAK
  101.     sta    IRQLOC
  102.     lda    #BREAK>8
  103.     sta    IRQLOC+1
  104.     lda    #OLDBRK
  105.     sta    BRKV
  106.     lda    #OLDBRK>8
  107.     sta    BRKV+1
  108.     rts
  109. ;
  110. ;;
  111. RI:
  112. PO:
  113. LO:
  114. IOGET:
  115. IOSET:
  116.     rts
  117. ;;
  118. ;
  119. ;;
  120. .loc    0FFFA
  121. .WORD    TRAP
  122. .WORD    ZAPPLE
  123. .WORD    IRQ
  124. ]
  125. .ife %type-2,[
  126. PRTSTS    =    0C080
  127. PRTDAT    =    0C081
  128. KEYBD    =    0C000
  129. KBDSTB    =    0C010
  130. COUT    =    0FDF0
  131. %READ    =    0FEFD
  132. %WRITE    =    0FECD
  133. ;
  134. CI:    lda    KEYBD
  135.     bpl    CI
  136.     bit    KBDSTB
  137.     clc
  138.     rts
  139. ;
  140. CSTS:    lda    KEYBD
  141.     bmi    ..rts
  142.     lda    #0
  143. ..rts:    rts
  144. ;
  145. ;;
  146. CO:    sta    regA
  147.     and    #0FF
  148.     beq    ..pla
  149.     cmp    #0A
  150.     beq    ..pla
  151.     and    #7F
  152.     cmp    #"`"
  153.     bcc    ..notl
  154.     sbc    #20
  155. ..notl:    ora    #80
  156.     jsr    COUT
  157. ..pla:    lda    regA
  158.     rts
  159. ;
  160. ;;
  161. RI:    ldx    SLOTN
  162. ..noac:    lda    KEYBD
  163.     bpl    ..nxt
  164.     jsr    CI
  165.     cmp    #03    ;ctl C
  166.     bne    ..nxt
  167.     jmp    ERROR
  168. ;
  169. ..nxt:    lda    PRTSTS,X
  170.     lsra
  171.     bcc    ..noac
  172.     lda    PRTDAT,X
  173.     rts
  174. ;
  175. ;;
  176. PO:    sta    regA
  177.     ldx    SLOTN
  178. ..po:    lda    PRTSTS,X
  179.     and    #2
  180.     beq    ..po
  181.     lda    regA
  182.     sta    PRTDAT,X
  183.     rts
  184. ;
  185. IOINIT:    lda    #BREAK
  186.     sta    IRQLOC
  187.     lda    #BREAK>8
  188.     sta    IRQLOC+1
  189.     lda    #OLDBRK
  190.     sta    BRKV
  191.     lda    #OLDBRK>8
  192.     sta    BRKV+1
  193.     lda    #2*10
  194.     sta    SLOTN
  195.     lda    #11    ;300baud
  196.     sta    BAUDR
  197. ACINIT:    ldx    SLOTN
  198.     lda    #3
  199.     sta    PRTSTS,X
  200.     lda    BAUDR
  201.     sta    PRTSTS,X
  202.     rts
  203. ;
  204. ;;
  205. IOGET:
  206. IOSET:
  207. LO:    rts
  208. RESTRT:    JMP    ENTRY
  209. ]
  210. .ife %type,[
  211. tempx=    4E
  212. tempy=    4F
  213. chin=    50
  214. LOUT=    3
  215. COUT=    1
  216. KBDSTS=    2
  217. KBDSTB=    0
  218. ;
  219. CI:    stx    tempx
  220.     sty    tempy
  221. ..sts:    jsr    kbdsts
  222.     sta    chin
  223.     lda    chin
  224.     beq    ..sts
  225.     jsr    kbdstb
  226.     ldy    tempy
  227.     ldx    tempx
  228.     sta    chin
  229.     lda    chin
  230.     clc
  231. IOINIT:    rts
  232. ;
  233. CO:    and    #0FF
  234.     beq    ..rts
  235.     stx    tempx
  236.     sty    tempy
  237.     jsr    COUT
  238.     ldy    tempy
  239.     ldx    tempx
  240.     and    #7F
  241. ..rts:    rts
  242. ;
  243. CSTS:    stx    tempx
  244.     sty    tempy
  245.     jsr    kbdsts
  246.     ldy    tempy
  247.     ldx    tempx
  248.     sta    chin
  249.     lda    chin
  250.     bne    ..rts
  251.     lda    #0
  252. ..rts:    rts
  253. ;
  254. RI:
  255. PO:
  256. LO:
  257. IOGET:
  258. IOSET:
  259.     rts
  260. ;
  261. RESTRT:    jmp    BEGIN]
  262. ;
  263. ;;
  264.