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

  1. .page
  2. .sbttl /The ZAPPLE-CORE Monitor/
  3. BEGIN:    sei
  4.     ldx    #0FF
  5.     txs
  6.     ldy    #0
  7. AHEAD:
  8. IOINIC:    jsr    IOINIT
  9. ERROR:    ldx    #0FF
  10.     txs
  11.     lda    #"*"
  12.     jsr    CO
  13. ;
  14. START:    nop
  15.     lda    #START>8
  16.     pha
  17.     lda    #START
  18.     pha
  19.     jsr    NXTLIN
  20.     lda    #"."
  21.     jsr    CO
  22. STAR0:    jsr    TI
  23.     beq    STAR0
  24.     sbc    #"@"-1
  25.     bmi    STAR0
  26.     cmp    #"Z"-"@"+1
  27.     bcs    ..rts
  28.     asla
  29.     tax
  30.     lda    TBL+1,X
  31.     pha
  32.     lda    TBL,X
  33.     pha
  34.     ldy    #0
  35. ..rts:    rts
  36. ;
  37. ;;
  38. ATSUM:    jsr    EXPR2
  39.     sty    ptrC
  40. ..atsu:    clc
  41.     lda    ptrC
  42.     adc    @ptrHL,Y
  43.     sta    ptrC
  44.     jsr    HILO
  45.     bcc    ..atsu
  46.     lda    ptrC
  47.     jmp    LBYTE
  48. ;
  49. ;;
  50. GOTO:    sty    saveBP
  51.     jsr    EXPR2
  52.     lda    ptrD
  53.     ora    ptrE
  54.     beq    ..goto
  55.     lda    @ptrDE,Y
  56.     sta    saveBP
  57. ..goto:    jmp    @ptrHL
  58. ;
  59. ;;
  60. MOVE:    jsr    EXPR3
  61. ..mov0:    lda    @ptrHL,Y
  62.     sta    @ptrBC,Y
  63.     jsr    INXBC
  64.     jsr    HILOX
  65.     bcc    ..mov0
  66. ;
  67. ;;
  68. ZSIZE:    jsr    BLK
  69.     jsr    MEMCK
  70. SIZEHL:    stx    ptrL
  71.     sta    ptrH
  72.     jmp    HLSP
  73. ;
  74. ;;
  75. PUTA:    jsr    EXPR1
  76.     jsr    NXTLIN
  77. ..put1:    jsr    CI
  78.     and    #7F
  79.     cmp    #3    ;ctrl C
  80.     beq    LFADR
  81.     cmp    #7F
  82.     beq    ..put3
  83.     sta    @ptrHL,Y
  84.     jsr    INXHL
  85. ..put2:    jsr    CO
  86.     jmp    ..put1
  87. ;
  88. ..put3:    jsr    DCXH
  89.     lda    @ptrHL,Y
  90.     jmp    ..put2
  91. ;
  92. ;;
  93. LBYTBK:    jsr    LBYTE
  94.     jmp    BLK
  95. ;
  96. LFADR:    jsr    NXTLIN
  97. HLSP:    jsr    LADR
  98. BLK:    lda    #" "
  99.     bne    OUTCO    ;jump
  100. ;
  101. PRBLNK:    ldx    #3
  102. PRBL2:    lda    #" "
  103. PRBL3:    jsr    CO
  104.     dex
  105.     bne    PRBL2
  106.     rts
  107. ;;
  108. EXPR3:    jsr    EXPR2
  109.     jsr    EXPR0
  110.     stx    ptrC
  111.     sta    ptrB
  112. ;
  113. ;fall into NXTLIN
  114. ;
  115. NXTLIN:    lda    #0D
  116.     jsr    CO
  117.     lda    #0A
  118.     jsr    CO
  119.     jsr    CSTS
  120.     bne    CCHK
  121. CRTS:    rts
  122. ;
  123. CCHK:    jsr    CI
  124.     and    #7F
  125.     cmp    #3
  126.     bne    CRTS
  127. ;
  128. HEXN:    jsr    EXPR2
  129.     clc
  130.     lda    ptrL
  131.     adc    ptrE
  132.     tax
  133.     lda    ptrH
  134.     adc    ptrD
  135.     jsr    SIZEHL
  136.     sec
  137.     lda    ptrL
  138.     sbc    ptrE
  139.     tax
  140.     lda    ptrH
  141.     sbc    ptrD
  142. LADRHL:    stx    ptrL
  143.     sta    ptrH
  144. ;
  145. ;fall into LADR
  146. ;
  147. LADR:    lda    ptrH
  148.     jsr    LBYTE
  149.     lda    ptrL
  150. LBYTE:    pha
  151.     lsra
  152.     lsra
  153.     lsra
  154.     lsra
  155.     jsr    LBYTE2
  156.     pla
  157. LBYTE2:    jsr    CONV
  158. OUTCO:    jmp    CO
  159. ;
  160. CONV:    and    #0F
  161.     ora    #"0"
  162.     cmp    #3A
  163.     bcc    ..lb2
  164.     adc    #6
  165. ..lb2:    rts
  166. ;
  167. ;;
  168. SHOWIT:    and    #7F
  169.     cmp    #" "
  170.     bcs    ..typ2
  171.     lda    #"."
  172. ..typ2:    jsr    CO
  173. ;
  174. ;fall into HILOX
  175. ;
  176. HILOX:    jsr    HILO
  177.     bcc    ..rts
  178.     pla
  179.     pla
  180. ..rts:    rts
  181. ;
  182. HILO:    jsr    INXHL
  183.     lda    ptrH
  184.     ora    ptrL
  185.     sec
  186.     beq    ..rts
  187.     lda    ptrE
  188.     sbc    ptrL
  189.     lda    ptrD
  190.     sbc    ptrH
  191.     bcs    ..clc
  192.     sec
  193. ..rts:    rts
  194. ..clc:    clc
  195.     rts
  196. ;
  197. ;;
  198. ;
  199. EXPR1:    jsr    EXPR0
  200.     stx    ptrL
  201.     sta    ptrH
  202.     rts
  203. ;
  204. ;;
  205. EXPR2:
  206. EXPR:    jsr    EXPR1
  207.     jsr    EXPR0
  208.     stx    ptrE
  209.     sta    ptrD
  210.     rts
  211. ;
  212. EXPR0:    sty    regL
  213.     sty    regH
  214. EXPRx:    jsr    TI
  215. EXPRA:    sta    regB
  216.     jsr    NIBBLE
  217.     bcs    EXPRC
  218.     ldx    #4
  219. ..loop:
  220.     pha    ;dad    H
  221.     clc
  222.     lda    regL
  223.     adc    regL
  224.     sta    regL
  225.     lda    regH
  226.     adc    regH
  227.     sta    regH
  228.     pla
  229. ;
  230.     dex
  231.     bne    ..loop
  232.     ora    regL
  233.     sta    regL
  234.     jmp    EXPRx
  235. ;
  236. EXPRC:    lda    regB
  237.     jsr    QCHK
  238.     bcs    ..exit
  239.     jmp    ERROR
  240. ..exit:    ldx    regL
  241.     lda    regH
  242.     rts
  243. ;
  244. ;;
  245. COPCK:    lda    #"-"
  246.     jsr    CO
  247. PCHK:    jsr    TI
  248. QCHK:    cmp    #" "
  249.     beq    ..rts
  250.     cmp    #","
  251.     beq    ..rts
  252.     cmp    #0D
  253.     sec
  254.     beq    ..rts
  255. ..clc:    clc
  256. ..rts:    rts
  257. ;
  258. ;;
  259. TI:    jsr    CI
  260.     and    #7F
  261.     beq    ..rts
  262.     cmp    #0D
  263.     beq    ..rts
  264.     jsr    CO
  265.     cmp    #"A"-1
  266.     bcc    ..rts
  267.     cmp    #"z"+1
  268.     bcs    ..rts
  269.     and    #5F
  270. ..rts:    rts
  271. ;
  272. ;;
  273. NIBBLE:    sec
  274.     sbc    #"0"
  275.     bcc    ..sec
  276.     cmp    #"G"-"0"
  277.     bcs    ..sec
  278.     cmp    #0A
  279.     bcc    ..rts
  280.     sbc    #"A"-"9"-1
  281.     cmp    #0A
  282.     bcc    ..sec
  283. ..clc:    clc
  284. ..rts:    rts
  285. ..sec:    sec
  286.     rts
  287. ;
  288. SUBS:    jsr    EXPR1
  289. ..sub0:    lda    @ptrHL,Y
  290.     jsr    LBYTE
  291.     jsr    COPCK
  292.     cmp    #" "
  293.     beq    ..sub1
  294.     cmp    #","
  295.     beq    ..sub1
  296.     cmp    #0D
  297.     beq    ..rts
  298.     cmp    #7F
  299.     beq    ..sub2
  300.     jsr    exprA
  301.     lda    regL
  302.     sta    @ptrHL,Y
  303.     lda    regB
  304.     cmp    #0D
  305.     beq    ..rts
  306. ..sub1:    jsr    INXHL
  307. ..sub3:    lda    ptrL
  308.     and    #7
  309.     bne    ..sub0
  310.     jsr    LFADR
  311.     jmp    ..sub0
  312. ..sub2:    jsr    DCXH
  313.     jmp    ..sub3
  314. ;
  315. ..rts:    rts
  316. ;
  317. ;;
  318. FILL:    jsr    EXPR3
  319. ..fil0:    lda    ptrC
  320.     sta    @ptrHL,Y
  321.     jsr    HILO
  322.     bcc    ..fil0
  323.     jmp    ERROR
  324. ;
  325. ;;
  326. VERIFY:    jsr    EXPR3
  327. ..ver1:    lda    @ptrBC,Y
  328.     cmp    @ptrHL,Y
  329.     beq    ..ver2
  330.     jsr    VERR
  331.     jsr    BLK
  332.     jsr    LADR
  333.     jsr    NXTLIN
  334. ..ver2:    jsr    INXBC
  335.     jsr    HILOX
  336.     bcc    ..ver1
  337. ;
  338. VERR:    pha
  339.     jsr    HLSP
  340.     lda    @ptrHL,Y
  341.     jsr    LBYTBK
  342.     pla
  343.     jmp    LBYTE
  344. ;
  345. ;;
  346. DISPLA:    jsr    EXPR2
  347. DISP0:    jsr    LFADR
  348. DISP1:    jsr    BLK
  349.     lda    @ptrHL,Y
  350.     jsr    LBYTE
  351.     jsr    HILOX
  352.     lda    ptrL
  353.     and    #DISPM
  354.     bne    DISP1
  355.     beq    DISP0
  356. ;
  357. ;;
  358. TYPE:    jsr    EXPR2
  359. TYPE0:    jsr    LFADR
  360.     ldx    #TYPEW
  361. TYPE1:    lda    @ptrHL,Y
  362.     jsr    SHOWIT
  363.     dex
  364.     bne    TYPE1
  365.     beq    TYPE0
  366. ;
  367. ;;
  368. INXBC:    inc    ptrC
  369.     bne    ..rts
  370.     inc    ptrB
  371. ..rts:    rts
  372. ;
  373. INXHL:    inc    ptrL
  374.     bne    ..rts
  375.     inc    ptrH
  376. ..rts:    rts
  377. ;
  378. DCXH:    pha
  379.     lda    ptrL
  380.     bne    ..neq
  381.     dec    ptrH
  382. ..neq:    dec    ptrL
  383.     pla
  384.     rts
  385. ;
  386. ;;
  387. .page
  388. .sbttl /The Trace Function/
  389. ;The Trace Function
  390. CHTBL:    .ascii    "CZID81VN"
  391. REGTBL:    .ascii    "AXYS"
  392. ;
  393. IRQ:    sta    ACC
  394.     pla
  395.     pha
  396.     asla
  397.     asla
  398.     asla
  399.     bmi    BREAK
  400.     jmp    @IRQLOC
  401. ;
  402. BREAK:    PLP
  403.     jsr    SAV1
  404.     pla
  405.     sta    pcLO
  406.     pla
  407.     sta    pcHI
  408.     jmp    @BRKV
  409. OLDBRK:
  410. XBRK:    jsr    INSDS1
  411.     jsr    DSPREG
  412.     jmp    START
  413. ;
  414. ;;
  415. BRANCH:    clc
  416.     ldy    #1
  417.     lda    @pcLO,Y
  418.     jsr    PCADJ3
  419.     sta    pcLO
  420.     tya
  421.     sec
  422.     bcs    PCINC2
  423. NBRNCH:    jsr    SAVE
  424.     sec
  425.     bcs    PCINC3
  426. ;
  427. ;;
  428. SCRN2:    bcc    ..skz
  429.     lsra
  430.     lsra
  431.     lsra
  432.     lsra
  433. ..skz:    and    #0F
  434.     rts
  435. ;
  436. ;;
  437. EXECUT:    dec    YSAV
  438. ;
  439. NEXTIN:    jsr    EXPR1
  440.     ldx    #2
  441.     jsr    A1PC
  442. STEP:    jsr    INSDSP
  443.     pla
  444.     sta    RTNL
  445.     pla
  446.     sta    RTNH
  447.     ldx    #8
  448. XQINIT:    lda    INITBL-1,X
  449.     sta    XQT,X
  450.     dex
  451.     bne    XQINIT
  452.     lda    @pcLO,X
  453.     beq    XBRK
  454.     ldy    LENGTH
  455.     cmp    #20
  456.     beq    XJSR
  457.     cmp    #60
  458.     beq    XRTS
  459.     cmp    #4C
  460.     beq    XJMP
  461.     cmp    #6C
  462.     beq    XJMPAT
  463.     cmp    #40
  464.     beq    XRTI
  465.     and    #1F
  466.     eor    #14
  467.     cmp    #4
  468.     beq    XQ2
  469. XQ1:    lda    @pcLO,Y
  470. XQ2:    .byte    99
  471.     .byte    XQT
  472.     .byte    0    ;    sta    pgz,Y
  473.     dey
  474.     bpl    XQ1
  475.     jsr    RSTORE
  476.     jmp    XQTNZ
  477. ;
  478. ;
  479. XRTI:    clc
  480.     pla
  481.     sta    STATUS
  482. XRTS:    pla
  483.     sta    pcLO
  484.     pla
  485. PCINC2:    sta    pcHI
  486. PCINC3:    lda    LENGTH
  487.     jsr    PCADJ3
  488.     sty    pcHI
  489.     clc
  490.     bcc    NEWPCL
  491. ;
  492. XJSR:    clc
  493.     jsr    PCADJ2
  494.     tax
  495.     tya
  496.     pha
  497.     txa
  498.     pha
  499.     ldy    #2
  500. XJMP:    clc
  501. XJMPAT:    lda    @pcLO,Y
  502.     tax
  503.     dey
  504.     lda    @pcLO,Y
  505.     stx    pcHI
  506. NEWPCL:    sta    pcLO
  507.     bcs    XJMP
  508. RTNJMP:    lda    RTNH
  509.     pha
  510.     lda    RTNL
  511.     pha
  512. REGDSP:    jsr    NXTLIN
  513. DSPREG:
  514.     jsr    HLSP
  515.     lda    STATUS
  516. ;
  517.     ldx    #8
  518. ..shf:    rola
  519.     pha
  520.     bcc    ..prz
  521.     lda    CHTBL-1,X
  522.     jsr    CO
  523.     clv
  524.     bvc    ..pla
  525. ..prz:    lda    #"0"
  526.     jsr    CO
  527. ..pla:    pla
  528.     dex
  529.     bne    ..shf
  530. ;
  531. ..prl:    jsr    BLK
  532.     lda    REGTBL,X
  533.     jsr    CO
  534.     lda    #"="
  535.     jsr    CO
  536.     lda    ACC,X
  537.     jsr    LBYTE
  538.     inx
  539.     cpx    #4
  540.     bne    ..prl
  541.     jmp    NXTLIN
  542. ;
  543. ;
  544. ;;
  545. RESET:    cld
  546.  NEWMON:    lda    SOFTEV+1
  547.     eor    #0A5
  548.     cmp    PWREDUP
  549.     bne    PWRUP
  550.     lda    SOFTEV
  551.     bne    NOFIX
  552.     lda    #0E0
  553.     cmp    SOFTEV+1
  554.     bne    NOFIX
  555. FIXSEV:    ldy    #3
  556.     sty    SOFTEV
  557. ;    jmp    SAM76
  558. NOFIX:    jmp    @SOFTEV
  559. ;
  560. ;;
  561. PWRUP:    lda    SOFTEV+1
  562.     eor    #0A5
  563.     sta    PWREDUP
  564.     ldx    #5
  565. SETPLP:    lda    PWRCON-1,X
  566.     STA    BRKV-1,X
  567.     dex
  568.     bne    SETPLP
  569.     jmp    FIXSEV
  570. ;
  571. ;;
  572. PWRCON:     .word    OLDBRK
  573.     .byte    0,0E0,45
  574. DISKID:    .byte    20,0FF,0,0FF,03,0FF,3C
  575. ;
  576. ;;
  577. INITBL:    nop
  578.     nop
  579.     jmp    NBRNCH
  580.     jmp    BRANCH
  581. RTBL:    .byte    0C1
  582.     .byte    0D8
  583.     .byte    0D9
  584.     .byte    0D0
  585.     .byte    0D3
  586. ;
  587. ;;
  588. .page
  589. .sbttl    /Disassembler/
  590. ;
  591. .ifdef %SEG2,[
  592. .loc    0F800]
  593. CODEL:    jsr    EXPR1
  594. CODE1:    lda    #LISTHT
  595. CODE2:    pha
  596.     jsr    INSDSP
  597.     jsr    PCADJ
  598.     sta    pcLO
  599.     sty    pcHI
  600.     pla
  601.     sec
  602.     sbc    #1
  603.     bne    CODE2
  604.     jsr    TI
  605.     cmp    #" "
  606.     beq    CODE1
  607.     rts
  608. ;
  609. FMT1:
  610. .byte    4,20,54,30,0D
  611. .byte    80,4,90,3,22
  612. .byte    54,33,0D,80,4
  613. .byte    90,4,20,54,33
  614. .byte    0D,80,4,90,4
  615. .byte    20,54,3B,0D,80
  616. .byte    4,90,0,22,44
  617. .byte    33,0D,0C8,44,0
  618. .byte    11,22,44,33,0D
  619. .byte    0C8,44,0A9,1,22
  620. .byte    44,33,0D,80,4
  621. .byte    90,1,22,44,33
  622. .byte    0D,80,4,90
  623. .byte    26,31,87,9A
  624. ;
  625. FMT2:
  626. .byte    0    ;err
  627. .byte    21    ;imm
  628. .byte    81    ;Zpage
  629. .byte    82    ;abs
  630. .byte    0    ;implied
  631. .byte    0    ;accumulator
  632. .byte    59    ;@zpag,X
  633. .byte    4D    ;@zpag,Y
  634. .byte    91    ;zpag,X
  635. .byte    92    ;abs,X
  636. .byte    86    ;abs,Y
  637. .byte    4A    ;@abs
  638. .byte    85    ;zpag,Y
  639. .byte    9D    ;relative
  640. ;
  641. ;;
  642. CHAR1:    .ascii    ",),#($"
  643. CHAR2:    .byte    "Y",0,"X","$","$",0
  644. ;
  645. ;;
  646. MNEML:
  647. .byte    1C,8A,1C,23,5D,8B
  648. .byte    1B,0A1,9D,8A,1D,23
  649. .byte    9D,8B,1D,0A1,0,29
  650. .byte    19,0AE,69,0A8,19,23
  651. .byte    24,53,1B,23,24,53,19,0A1    ;A format
  652. .byte    0,1A,5B,5B,0A5,69,24,24        ;B format
  653. .byte    0AE,0AE,0A8,0AD,29,0,7C,0    ;C format
  654. .byte    15,9C,6D,9C,0A5,69,29,53    ;D format
  655. .byte    84,13,34,11,0A5,69,23,0A0    ;E format
  656. ;
  657. ;
  658. MNEMR:
  659. .byte    0D8,62,5A,48,26,62
  660. .byte    94,88,54,44,0C8,54
  661. .byte    68,44,0E8,94,0,0B4
  662. .byte    8,084,74,0B4,28,6E
  663. .byte    74,0F4,0CC,4A,72,0F2,0A4,8A    ;A format
  664. .byte    0,0AA,0A2,0A2,74,74,74,72    ;B format
  665. .byte    44,68,0B2,32,0B2,0,22,0        ;C format
  666. .byte    1A,1A,26,26,72,72,88,0C8    ;D format
  667. .byte    0C4,0CA,26,48,44,44,0A2,0C8    ;E format
  668. ;
  669. ;;
  670. INSDS1:    jsr    NXTLIN
  671.     ldx    pcLO
  672.     ldy    pcHI
  673.     jsr    PRNTYX
  674.     jsr    PRBLNK
  675.     lda    @pcLO,X
  676. INSDS2:    tay
  677.     lsra
  678.     bcc    ..even
  679.     rora
  680.     bcs    ..erb
  681.     cmp    #0A2
  682.     beq    ..erb
  683.     and    #87
  684. ..even:    lsra
  685.     tax
  686.     lda    FMT1,X
  687.     jsr    SCRN2
  688.     bne    GETFMT
  689. ..erb:    ldy    #80
  690.     lda    #0
  691. GETFMT:    tax
  692.     lda    FMT2,X
  693.     sta    FORMAT
  694.     and    #03
  695.     sta    LENGTH
  696.     tya
  697.     and    #8F
  698.     tax
  699.     tya
  700.     ldy    #3
  701.     cpx    #8A
  702.     beq    ..dx3
  703. ..dx1:    lsra
  704.     bcc    ..dx3
  705.     lsra
  706. ..dx2:    lsra
  707.     ora    #20
  708.     dey
  709.     bne    ..dx2
  710.     iny
  711. ..dx3:    dey
  712.     bne    ..dx1
  713.     rts
  714. ;
  715. ;;
  716. INSDSP:    jsr    INSDS1
  717.     pha
  718. PRNTOP:    lda    @pcLO,Y
  719.     jsr    LBYTE
  720.     ldx    #1
  721. ..tbl:    jsr    PRBL2
  722.     cpy    LENGTH
  723.     iny
  724.     bcc    PRNTOP
  725.     ldx    #3
  726.     cpy    #4
  727.     bcc    ..tbl
  728.     pla
  729.     tay
  730.     lda    MNEML,Y
  731.     sta    LMNEM
  732.     lda    MNEMR,Y
  733.     sta    RMNEM
  734. ..nm1:    lda    #0
  735.     ldy    #5
  736. ..nm2:    asl    RMNEM
  737.     rol    LMNEM
  738.     rola
  739.     dey
  740.     bne    ..nm2
  741.     adc    #0BF
  742.     jsr    CO
  743.     dex
  744.     bne    ..nm1
  745.     jsr    PRBLNK
  746.     ldy    LENGTH
  747.     ldx    #6
  748. ADR1:    cpx    #3
  749.     beq    ADR5
  750. ADR2:    asl    FORMAT
  751.     bcc    ..adr3
  752.     lda    CHAR1-1,X
  753.     jsr    CO
  754.     lda    CHAR2-1,X
  755.     beq    ..adr3
  756.     jsr    CO
  757. ..adr3:    dex
  758.     bne    ADR1
  759.     rts
  760. ;
  761. ADR4:    dey
  762.     bmi    ADR2
  763.     jsr    LBYTE
  764. ADR5:    lda    FORMAT
  765.     cmp    #0E8
  766.     lda    @pcLO,Y
  767.     bcc    ADR4
  768. RELADR:    jsr    PCADJ3
  769.     tax
  770.     inx
  771.     bne    PRNTYX
  772.     iny
  773. PRNTYX:    tya
  774. PRNTAX:    jsr    LBYTE
  775. PRNTX:    TXA
  776.     jmp    LBYTE
  777. ;
  778. ;;
  779. PCADJ:    sec
  780. PCADJ2:    lda    LENGTH
  781. PCADJ3:    ldy    pcHI
  782.     tax
  783.     bpl    ..adj4
  784.     dey
  785. ..adj4:    adc    pcLO
  786.     bcc    ..rts
  787.     iny
  788. ..rts:    rts
  789. ;
  790. ;
  791. ;;
  792. RSTORE:    lda    STATUS
  793.     pha
  794.     lda    ACC
  795. RESTR1:    ldx    Xreg
  796.     ldy    Yreg
  797.     plp
  798.     rts
  799. ;
  800. SAVE:    sta    ACC
  801. SAV1:    stx    Xreg
  802.     sty    Yreg
  803.     php
  804.     pla
  805.     sta    STATUS
  806.     tsx
  807.     stx    SPNT
  808.     cld
  809.     rts
  810. ;
  811. ;;
  812. A1PC:    txa
  813.     beq    ..rts
  814. ..pclp:    lda    XQT,X
  815.     sta    pcLO,X
  816.     dex
  817.     bpl    ..pclp
  818. ..rts:    rts
  819. ;
  820. ;;
  821. .ifndef %BITS,[
  822. .XLIST]
  823. ;
  824. .ifdef %BITS,[
  825. BITS:    ldx    #8
  826. ..bit2:    rola
  827.     pha
  828.     lda    #"0"
  829.     bcc    ..clr
  830.     adc    #1
  831. ..clr:    jsr    CO
  832.     pla
  833.     dex
  834.     bne    ..bit2
  835.     rts]
  836. ;
  837. ;;
  838. .ifndef %XAM,[
  839. RETRP:    nop
  840.     nop
  841.     nop
  842. XAMIN:    php
  843.     jmp    REGDSP]
  844. ;
  845. ;;
  846. .ifdef %XAM,[
  847. .page
  848. .sbttl /Break Point Routine/
  849. ;Reference Dr. Dobb's V2 N6 P26 - Willi Kusche
  850. ;
  851. RETRP:    nop
  852.     nop
  853.     nop
  854. XAMIN:    php
  855.     jsr    SAVE
  856.     lda    #0
  857.     sta    saveBP
  858.     beq    BRKEN1
  859. BRKENT:    jsr    SAVE
  860. BRKEN1:    pla
  861.     sta    pcLO
  862.     pla
  863.     sta    pcHI
  864.     jsr    BLK
  865.     lda    saveBP
  866.     beq    ..bypa
  867.     lda    pcLO
  868.     bne    ..alt1
  869.     dec    pcHI
  870. ..alt1:    dec    pcLO
  871.     bne    ..alt2
  872.     dec    pcHI
  873. ..alt2:    dec    pcLO
  874. ..bypa:
  875.     jsr    DSPREG
  876. ;
  877.     ldx    #0
  878.     lda    saveBP
  879.     beq    ..skip
  880.     sta    @pcLO,X
  881.     stx    saveBP
  882.     ldx    SPNT
  883.     txs
  884.     lda    pcHI
  885.     pha
  886.     lda    pcLO
  887.     pha
  888.     jsr    RSTORE
  889.     rts
  890. ;
  891. ..skip:    jmp    START]
  892. ;
  893. ;;
  894. .list
  895.