Subversion Repositories NedoOS

Rev

Rev 683 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1.        IF gs
  2. INIGS
  3.         SC #32 ;stop module
  4.         WC
  5.         RET
  6.        ENDIF
  7. EDORN
  8.         XOR A
  9.         LD (volA),A
  10.         ld (volC),A
  11.         LD BC,mEDORN
  12.         CALL WINDUM
  13.         LD HL,tEDORN
  14.         ld DE,#800
  15.         CALL PRMENU
  16.        ;LD HL,tORNKEY,DE,#12
  17.        ;CALL PRMENU
  18.         LD HL,tORNo_s
  19.         ld DE,#711
  20.         CALL PRMENU
  21.         CALL OUT4
  22.         CALL HLORN
  23.         LD (ornadr),HL
  24.         LD DE,EDORbf
  25.         LD BC,64
  26.         LDIR
  27.         CALL PRORNos
  28.         LD A,(ORN)
  29.         ld HL,TORNSZ
  30.         ADD A,A
  31.         add A,L
  32.         LD L,A
  33.         ld A,(HL)
  34.         ld B,A
  35.         ld (EoLOOP),A
  36.         INC L
  37.         LD A,(HL)
  38.         SUB B
  39.         LD (EoLPlen),A
  40.        PUSH HL
  41.         CALL PRORN
  42.         XOR A
  43.         LD (EoLIN),A
  44.         ld (EoMflag),A
  45.         CALL GornMRK
  46. EDORN0
  47.        CALL RESHALT
  48.         CALL EORNCUR
  49.         CALL EoCHMRK
  50.         CALL EoPRMRK
  51.         CALL EDORNKY
  52.         LD A,(ORN)
  53.         ld (piaORN),A
  54. EoSMP=$+1
  55.         LD A,0
  56.         ld (piaSMP),A
  57.         ADD A,A
  58.         LD L,A
  59.         ld H,TSMPSZ/256
  60.         LD A,(HL)
  61.         ld (piSLOOP),A
  62.         INC L
  63.         LD A,(HL)
  64.         ld (piSEND),A
  65.         LD A,(EoLPlen)
  66.         ld B,A
  67.         LD A,(EoLOOP)
  68.         ld (piOLOOP),A
  69.         ADD A,B
  70.         LD (piOEND),A
  71.         CALL OUT4
  72.         LD HL,EDORbf
  73. ornadr=$+1
  74.         LD DE,0
  75.         ld BC,64
  76.         LDIR
  77.         CALL PIANO
  78.         CALL TSTFIRE
  79.         jr NC,EDORN0
  80.        CALL DOWNMER
  81.        POP HL
  82. ORNQU
  83.         LD A,(EoLOOP)
  84.         ld B,A
  85.         LD A,(EoLPlen)
  86. ORNQ    ADD A,B
  87.         LD (HL),A
  88.         DEC L
  89.         LD (HL),B
  90.        CALL CLOSWIN
  91.        LD A,(OCT)
  92.        JP PROCT
  93. HEXDIG
  94.         ADD A,'0'
  95.         CP ':'
  96.         RET C
  97.         ADD A,'A'-':' ;TODO daa? + 3 other places
  98.         RET
  99. PRMEMOS
  100. memol=$+1
  101.         LD DE,0x060c;#60E
  102.         CALL PRMEMO
  103.         LD HL,Tmemo
  104. memo=$+1
  105.         LD B,0
  106.         DJNZ $+4
  107.          LD D,6
  108.         DJNZ $+4
  109.          LD D,11
  110.         DJNZ $+4
  111.          LD D,#E+2
  112.         DJNZ $+4
  113.          LD D,#18+8
  114.         DJNZ $+4
  115.          LD D,#22+14
  116.         LD (memol),DE
  117.         JP PRMENU
  118. EPsseP
  119.         LD A,(CURX)
  120.         LD E,1
  121.         LD BC,#200
  122.         CP 4
  123.         RET C
  124.         INC E
  125.         LD BC,#102
  126.         CP 6
  127.         RET C
  128.         LD BC,#503
  129.         INC E
  130.         CP 11+4
  131.         RET C
  132.         LD C,8
  133.         INC E
  134.         CP 16+8
  135.         RET C
  136.         LD C,13
  137.         INC E
  138.         RET
  139. EPsse
  140.         CALL EPsseP
  141.         LD A,E
  142.         ld (memo),A
  143.         PUSH BC
  144.         CALL PRMEMOS
  145.         LD A,(EPAT)
  146.         ld B,A
  147.         ld C,0
  148.         CALL GETnADR
  149.         LD DE,BUF
  150.         LD BC,#480
  151.         LDIR
  152.         CALL OUT6
  153.         LD HL,BUF
  154.         POP BC
  155.         LD A,B
  156.         ld B,0
  157.         ADD HL,BC
  158.         LD C,A
  159.         LD DE,MEMOBUF
  160.         LD A,64
  161. EPsse0  PUSH BC
  162.         PUSH HL
  163.         LDIR
  164.         POP HL
  165.         LD C,18
  166.         ADD HL,BC
  167.         POP BC
  168.         DEC A
  169.         jr NZ,EPsse0
  170.         RET
  171. EPssr
  172.         CALL EPsseP
  173.         LD A,(memo)
  174.         CP E
  175.         jr Z,EPssrE
  176.         CP 3
  177.         RET C
  178.         LD A,E
  179.         CP 3
  180.         RET C
  181. EPssrE
  182.         PUSH BC
  183.         LD A,(EPAT)
  184.         LD B,A
  185.         ld C,0
  186.         CALL GETnADR
  187.         LD (EPssrDE),HL
  188.         LD DE,BUF
  189.         LD BC,#480
  190.         LDIR
  191.         LD A,(curpg32khigh) ;ok ;(pg) ;pat
  192.         ex af,af'
  193.        CALL OUT6
  194.        LD HL,BUF
  195.        POP BC
  196.        LD A,B
  197.        ld B,0
  198.        ADD HL,BC
  199.        LD C,A
  200.        LD DE,MEMOBUF
  201.        ex de,hl
  202.        LD A,64
  203. EPssr0  PUSH BC
  204.        PUSH DE
  205.        LDIR
  206.        POP DE
  207.        ex de,hl
  208.        LD C,18
  209.        ADD HL,BC
  210.        ex de,hl
  211.        POP BC
  212.        DEC A
  213.        jr NZ,EPssr0
  214.        ex af,af'
  215.         SETPG32KHIGH;CALL OUTME
  216.         LD HL,BUF
  217. EPssrDE=$+1
  218.         LD DE,0
  219.         LD BC,#480
  220.         LDIR
  221.         JP PRPATU
  222. EXCHANG
  223.         CALL FROMSZ
  224.         PUSH AF
  225.         LD A,(pat1)
  226.         LD B,A
  227.         CALL GETnADR
  228.         PUSH HL
  229.         POP IX
  230.         CALL CHN1PP
  231.         ADD HL,BC
  232.         LD A,(chn2)
  233.         LD C,3
  234.         DEC A
  235.         jr Z,EXCHX2
  236.         LD C,8
  237.         DEC A
  238.         jr Z,$+4
  239.          LD C,13
  240. EXCHX2  ADD IX,BC
  241.         POP AF
  242. EXCH0   ex af,af'
  243.        PUSH HL
  244.        LD DE,BUF
  245.        LD BC,5
  246.        LDIR
  247.        POP DE
  248.        PUSH DE
  249.        push IX
  250.        POP HL
  251.        LD C,5
  252.        LDIR
  253.        LD HL,BUF
  254.        PUSH IX
  255.        POP DE
  256.        LD C,5
  257.        LDIR
  258.        POP HL
  259.        LD C,18
  260.        ADD HL,BC
  261.        ADD IX,BC
  262.        ex af,af'
  263.         DEC A
  264.         jr NZ,EXCH0
  265.         JP PRPATO
  266. CATBAR
  267.         LD HL,#48B5
  268.         XOR A
  269.         LD (CATBf),A
  270.         LD B,A
  271.         ld C,A
  272.         LD E,#81
  273.         LD A,(catH)
  274.         OR A
  275.         jr NZ,CATBNZ
  276.         INC A
  277.         LD D,A
  278.         JR CATBARP
  279. CATBNZ  ADD A,A
  280.         DEC A
  281.         LD D,A
  282.         LD A,(cattop)
  283.         OR A
  284.         CALL NZ,CATBARP
  285.         LD E,#BD
  286.         LD A,(catH)
  287.         CP 9
  288.         jr C,CATBARP
  289.         LD A,8
  290.         CALL CATBARP
  291.         LD A,(catH)
  292. cattop=$+1
  293.        SUB 0
  294.        SUB 8
  295.         LD E,#81
  296.         RET Z
  297. CATBARP ex af,af'
  298. CATBf=$+1
  299. CATBAR0 LD A,0
  300.        XOR -1
  301.        LD (CATBf),A
  302.        jr Z,$+6
  303.         LD (HL),E
  304.         CALL DHL
  305.        SCF
  306.        LD A,C
  307.        ADC A,D
  308.        LD C,A
  309.        jr NC,CATBAR0
  310.        ex af,af'
  311.         DEC A
  312.         jr NZ,CATBARP
  313.         RET
  314. USEBAR
  315.         LD A,(catH)
  316.        CP 9
  317.         RET C
  318.         ex af,af'
  319.        CALL FIRE
  320.        RET Z
  321.        LD A,(ARX)
  322.        SUB #A8
  323.        CP 8
  324.        RET NC
  325.        LD A,(ARXY)
  326.        SUB #68
  327.        CP #40
  328.        RET NC
  329.        LD L,A
  330.        XOR A
  331.        LD (USEBf),A
  332.        LD E,A
  333.        ld C,A
  334.        ld H,A
  335.        LD A,(catH)
  336.        ADD A,A
  337.        DEC A
  338.        LD D,A
  339. USEBAR0 LD A,E
  340.        CP L
  341.        jr NC,USEBok
  342. USEBf=$+1
  343. USEBAR1 LD A,0
  344.        XOR -1
  345.        LD (USEBf),A
  346.        jr Z,$+3
  347.         INC E
  348.        SCF
  349.        LD A,C
  350.        ADC A,D
  351.        LD C,A
  352.        jr NC,USEBAR1
  353.        INC H
  354.        JR USEBAR0
  355. USEBok  LD B,0
  356.        ex af,af'
  357.         LD C,A
  358.         OR A
  359.         RET Z
  360.         SUB 9
  361.         jr C,USEBARQ
  362.         LD B,H
  363.         ld A,H
  364.         ADD A,7
  365.         CP C
  366.         jr C,$+6
  367.          LD A,C
  368.          SUB 8
  369.          LD B,A
  370. USEBARQ LD A,B
  371.         ld (cattop),A
  372.         JP PRCAT
  373. AUDATER
  374.         LD C,#7F
  375.         LD DE,AUTO2
  376.         LD A,(DE)
  377.         CP C
  378.         jr Z,AUDnS
  379.         AND #80
  380.         LD B,A
  381.         LD A,(HL)
  382.         AND C
  383.         OR B
  384.         LD (HL),A
  385.         INC HL
  386.         inc HL
  387.         inc HL
  388.         LD A,(DE)
  389.         AND #7F
  390.         RRCA
  391.         RRCA
  392.         RRCA
  393.         RRCA
  394.         LD B,A
  395.         LD A,(HL)
  396.         AND #F
  397.         OR B
  398.         LD (HL),A
  399.         JR $+5
  400. AUDnS    INC HL
  401.          inc HL
  402.          inc HL
  403.         INC DE
  404.         LD A,(DE)
  405.         CP C
  406.         jr Z,AUDnT
  407.         LD B,A
  408.         LD A,(HL)
  409.         AND #F0
  410.         OR B
  411.         LD (HL),A
  412. AUDnT   INC DE
  413.         inc HL
  414.         LD A,(DE)
  415.         CP C
  416.         jr Z,AUDnO
  417.         RRCA
  418.         RRCA
  419.         RRCA
  420.         RRCA
  421.         LD B,A
  422.         LD A,(HL)
  423.         AND #F
  424.         OR B
  425.         LD (HL),A
  426. AUDnO   INC DE
  427.         LD A,(DE)
  428.         CP C
  429.         RET Z
  430.         LD B,A
  431.         LD A,(HL)
  432.         AND #F0
  433.         OR B
  434.         LD (HL),A
  435.         RET
  436. AENVER
  437.         CP E
  438.         jr Z,AEnres
  439.         LD HL,ead
  440.         RES 7,(HL)
  441.         INC L
  442.         RES 7,(HL)
  443. AEnres
  444. AENVFRQ=$+1
  445.         LD HL,0
  446. AENVnot=$+1
  447.        LD DE,0
  448.         INC HL
  449.         inc HL
  450.         inc HL
  451.         LD A,(HL)
  452.        AND 9
  453.        SUB 8
  454.         RET NZ
  455.        OR E
  456.        RET Z
  457. div=$+1
  458.         LD B,0
  459.         LD A,23
  460.         DJNZ $+4
  461.          LD A,28  ;3:4
  462.         DJNZ $+4
  463.          LD A,35  ;1:2
  464.         DJNZ $+4
  465.          LD A,47  ;1:4
  466.         DJNZ $+4
  467.          LD A,4   ;3:1
  468.         DJNZ $+4
  469.          LD A,7   ;5:2
  470.         DJNZ $+4
  471.          LD A,11  ;2:1
  472.         DJNZ $+4
  473.          LD A,16  ;3:2
  474.         ADD A,E
  475.         LD B,0
  476.          INC B
  477.          SUB 12
  478.         jr NC,$-3
  479.         LD E,A
  480. ;00,01->+0
  481. ;10,11->+1
  482.         LD HL,FrTab+24-512
  483.         ADD HL,DE
  484.         add HL,DE
  485.         LD A,(HL)
  486.         INC L
  487.         LD E,(HL)
  488.         SRL E
  489.         RRA
  490.         DJNZ $-3
  491.         ADC A,D
  492.         LD D,A
  493. AENVadr=$+2
  494.         LD (0),DE
  495.         RET
  496. EPdelln
  497.         CALL XPPSCF
  498.         RET NC
  499.         LD HL,(CURY)
  500.         ld H,L
  501.         INC L
  502.         LD A,201
  503.         ld (COPQJP),A
  504.         CALL EPdellnP
  505.         LD A,195
  506.         ld (COPQJP),A
  507.         CALL PRPATU
  508.         JR TSTNROL
  509. TSTnSSL
  510.         LD A,(ead)
  511.         RLA
  512.         jr C,AEskip
  513.         LD A,(HL)
  514.         AND #80
  515.         OR D
  516.         LD (HL),A
  517. AEskip
  518.        LD A,D
  519. TSTSSLQ
  520.        LD (AENVnot),A
  521.         INC E
  522.         jr Z,TSTNQ
  523. auto=$+1
  524.         LD A,-1
  525.         OR A
  526.         CALL Z,AUDATER
  527.         LD A,(ead)
  528.         RLA
  529.         SBC A,A
  530.         CPL
  531. aenv=$+1
  532.         LD E,-1
  533.         AND E
  534.         CALL Z,AENVER
  535. TSTNQ   CALL PRCU7
  536.        ;LD A,(EPAT),B,A
  537.        ;LD A,(CURY),E,#13
  538.        ;CALL STROKA
  539.        CALL PRPATUU
  540.         LD A,(iycurkey);(23560)
  541.         CP kL
  542.         jr Z,$+4
  543.          CP kssL
  544.         CALL NZ,PLNOTE
  545. TSTNROL LD A,(roll)
  546.         OR A
  547.         LD L,A ;how many lines down
  548.         JP NZ,ROLLPATFON
  549.         LD HL,CURX
  550.        LD A,(HL)
  551.        CP 3
  552.        RET Z
  553.        CP 5
  554.        RET NC
  555.        ;LD A,2;(curite)
  556.        ;CP (HL)
  557.        ;RET C
  558.         INC (HL)
  559.         RET
  560. TSTNnot
  561.         LD (AENVadr),HL
  562.         XOR A
  563.         LD B,A
  564.         ADD HL,BC
  565.         LD (AENVFRQ),HL
  566.         LD E,-1
  567.         OR D
  568.         jr Z,TSTnNOT
  569.         CP 97
  570.         jr NC,TSTnNOT
  571.         INC E
  572.        CP 25
  573.        LD A,(HL)
  574.        RES 7,A
  575.        jr Z,TSTSSLQ
  576.         CALL NotOct
  577. TSTnNOT
  578.        ;LD A,D
  579.         SUB 99
  580.         jr Z,TSTk
  581.         INC A
  582.         JP NZ,TSTnSSL
  583.         LD (HL),A
  584.         INC HL
  585.         LD (HL),A
  586.         INC HL
  587.         LD (HL),A
  588. TSTk    INC HL
  589.         LD (HL),A
  590.         INC HL
  591.         LD (HL),A
  592.         ;LD (IY-50),kssL
  593.         ld a,kssL
  594.         ld (iycurkey),a
  595.         JP TSTSSLQ
  596. EPdellnP
  597.         LD A,64
  598.         SUB H
  599.         LD DE,(EPAT)
  600.         ld D,A
  601.         ld A,E
  602.         DEC BC
  603.         LD B,C
  604.         RET Z
  605.         JP COPYU
  606. EPins
  607.         CALL XPPSCF
  608.         RET NC
  609.         LD HL,(CURY)
  610.         ld H,L
  611.         INC H
  612.         CALL EPdellnP
  613.        LD A,(chnall)
  614.        OR A
  615.        jr Z,insNALL
  616.        LD BC,(CURY)
  617.        CALL GETnADR
  618.        ex de,hl
  619.        LD HL,BUF+#480 ;тут нули
  620.        LD BC,18
  621.        LDIR
  622. insNALL
  623.         YIELD
  624.         ;LD (IY-50),kssL
  625.         ld a,kssL
  626.         ld (iycurkey),a
  627. TSTNOTE
  628.         LD BC,(CURY)
  629.         CALL GETnADR
  630.         CALL NOTEKEY
  631.         BIT 7,D
  632.         CALL Z,XPPSCF
  633.         DEC BC
  634.         jp Z,TSTNnot
  635.        LD A,D
  636.        CP 98
  637.        jr Z,$-5
  638.         CALL RECHEX
  639.         INC D
  640.         jr NZ,TSTnDIG
  641.         LD C,D
  642.         ld B,D
  643.         ld D,A
  644.         LD A,(CURX)
  645.         OR A
  646.         CALL TSTnPPz
  647.         CALL TSTnP
  648.         LD C,6
  649.         CALL TSTnPPdecadeca
  650.         LD C,4
  651.         CALL TSTnPPdeca
  652.         LD C,11
  653.         CALL TSTnPPdecadeca
  654.         LD C,9
  655.         CALL TSTnPPdeca
  656.         LD C,16
  657.         CALL TSTnPPdecadeca
  658.         LD C,14
  659.         CALL TSTnPPdeca
  660. TSTnDIG
  661.        LD A,D
  662.        CP 9 ;key '9' - overlaying copy on/off
  663.        jr Z,EVENODD
  664.         CALL RECopq
  665.         INC D
  666.         RET NZ
  667.         LD D,A
  668.         OR A
  669.         CALL XPP
  670.         RET NZ
  671.         INC C
  672.         inc C
  673.         LD B,0
  674.         ADD HL,BC
  675.        LD A,(HL)
  676.        LD (HL),D
  677.        RLD
  678.         SCF
  679.         JR TSTs0
  680. EVENODD
  681. ;switch overlaying copy
  682.         LD HL,COPSCF
  683.         LD A,(HL)
  684.         XOR 128
  685.         LD (HL),A
  686.         LD HL,0x483a;#485A ;screen addr
  687.         LD C,2
  688.         CALL INVSYMS
  689.         POP AF
  690.         RET
  691. ;2(EDSONG,EPEXT)
  692. MELINV
  693. ;switch edit melody
  694.         LD HL,#40EA ;screen addr
  695.         LD C,6
  696. INVSYMS
  697.         PUSH HL
  698.         LD B,8
  699. invsym0 LD A,(HL)
  700.         CPL
  701.         LD (HL),A
  702.         INC H
  703.         DJNZ invsym0
  704.         POP HL
  705.         INC L
  706.         DEC C
  707.         JR NZ,INVSYMS
  708.         RET
  709. TSTL
  710.         POP AF
  711.         ADD HL,BC
  712.        LD A,(HL)
  713.        LD (HL),D
  714.        RLD
  715.        OR A
  716.         CALL XPP
  717.         jr Z,oraTSTs0
  718.        CP -7
  719.        jr NZ,tstnq
  720.        LD A,(CURX)
  721.        OR A
  722.        jr Z,tstnq
  723.         LD A,D
  724.         OR A
  725.         jr Z,tstnq
  726.        PUSH AF
  727.        LD A,(ORN)
  728.        LD (ORN2),A
  729.        XOR A
  730.        CALL ONCORN2
  731.        POP AF
  732.         LD (ORN),A
  733.         XOR A
  734.         CALL ONCORN
  735. tstnq   JP TSTNQ
  736. oraTSTs0
  737.         OR A
  738. TSTs0   DEC HL
  739.         dec HL
  740.         dec HL
  741.         RL (HL)
  742.         RRC (HL)
  743.         LD A,(HL)
  744.         RRA
  745.         RRA
  746.         RRA
  747.         AND 16
  748.         OR D
  749.         jr Z,tstnq
  750.        PUSH AF
  751.        LD A,(smp)
  752.        LD (SMP2),A
  753.        XOR A
  754.        CALL ONCSMP2
  755.        POP AF
  756.         LD (smp),A
  757.         XOR A
  758.         CALL ONCSMP
  759.         JP tstnq
  760. TSTnPPdecadeca
  761.         DEC A
  762. TSTnPPdeca
  763.         dec A
  764. TSTnPPz
  765.         jr Z,TSTL
  766.         DEC A
  767.         jr Z,TSTR
  768. TSTnP   INC BC
  769.         DEC A
  770.         jr Z,TSTL
  771.         DEC A
  772.         RET NZ
  773. TSTR    POP AF
  774.         ADD HL,BC
  775.         LD A,(HL)
  776.         AND #F0
  777.         OR D
  778.         LD (HL),A
  779.         JP TSTNQ
  780. RECopq
  781.         LD DE,0x0000+'O'
  782.         LD A,(iycurkey);(23560)
  783.          cp 'a'
  784.          jr c,RECopq_noletter
  785.          cp 'z'+1
  786.          jr nc,RECopq_noletter
  787.          sub 0x20
  788. RECopq_noletter
  789.         CP ';'
  790.         jr Z,RECopY
  791.         CP E
  792.         RET Z
  793.         INC E
  794.         CP #22
  795.         jr Z,RECopY
  796.         CP E
  797.         RET Z
  798.         CP 'G'
  799.         RET C
  800.         CP 'W'
  801.         RET NC
  802.         LD E,A
  803.         XOR 'Q'
  804.         CALL Z,cs_8026 ;csQ instead of Q
  805.         RET C
  806. RECopY  LD A,E
  807.         SUB 'G'
  808.         DEC D
  809.         RET
  810. RECHEX
  811.         LD D,0
  812.         LD A,(iycurkey);(23560)
  813.          cp 'a'
  814.          jr c,RECHEX_noletter
  815.          cp 'z'+1
  816.          jr nc,RECHEX_noletter
  817.          sub 0x20
  818. RECHEX_noletter
  819.         CP '0'
  820.         RET C
  821.         CP 'G'
  822.         RET NC
  823.         CP ':'
  824.         jr NC,$+6
  825.          SUB '0'
  826.          DEC D
  827.          RET
  828.         CP 'A'
  829.         RET C
  830.         SUB #37
  831.         DEC D
  832.         RET
  833. D0TO_
  834.         LD A,(HL)
  835.         CP '0'
  836.         jr C,d0TO0
  837.         CP ':'
  838.         jr NC,$+5
  839.          SUB '0'
  840.          RET
  841.         CP 'A'
  842.         jr C,d0TO0
  843.         CP 'G'
  844.         jr NC,$+5
  845.          SUB #37
  846.          RET
  847. d0TO0   LD (HL),'-'
  848.         LD A,#7F
  849.         RET
  850. ENVFL
  851. ;switch transparent envelope
  852.         LD HL,ead
  853.         ld A,(HL)
  854.         XOR 128
  855.         LD (HL),A
  856.         INC L
  857.         LD (HL),A
  858.         RET
  859. TSTOCT
  860.         LD A,(iycurkey);(23560)
  861.         CP kE
  862.         jr Z,ENVFL
  863.         SUB '1'
  864.         CP 9
  865.         RET NC
  866.        ;CALL NEWOCT
  867.        ;JP SHOLK
  868. ;NEWOCT
  869.         AND 7
  870.         INC A
  871.         LD (OCT),A
  872. ;1
  873. PROCT   LD DE,0x2f00;#D08
  874.         JP PRBCD
  875. POSEDIT
  876.         LD BC,mPOS
  877.         CALL WINDUM
  878.         LD HL,tPOS
  879.         LD DE,0
  880.         CALL PRMENU
  881.         XOR A
  882.         LD (EpMflag),A
  883.         LD (EpY),A
  884.         LD A,(POS)
  885.         CALL EDPOSR
  886. POSED0
  887.        CALL RESHALT
  888.         LD A,#28
  889.         CALL EpPRCUR
  890.         CALL EDPOSKY
  891.         LD A,5
  892.         CALL EpPRCUR
  893.         CALL EpCHMRK
  894.         CALL EpPRMRK
  895.         CALL TSTFIRE
  896.         jr NC,POSED0
  897.         LD A,(EsTOP)
  898.         ld B,A
  899.         LD A,(EpY)
  900.         ADD A,B
  901.         LD (POS),A
  902.         LD L,A
  903.         ld H,TPOSS/256
  904.         LD A,(HL)
  905.         ld (EPAT),A
  906.         LD L,A
  907.         INC H
  908.         LD A,(HL)
  909.         ld (PATLEN),A
  910.         CALL CLOSWIN
  911.         CALL POSFON
  912.         JP PRPAT
  913. EpPRMRK
  914.         LD HL,#58C3
  915.         LD BC,(LOOP)
  916.         LD DE,32
  917.         LD A,(EsTOP)
  918.         ex af,af'
  919.        LD A,16
  920. EpPRMR0 ex af,af'
  921.         CP C
  922.         jr NC,EpPRMR1+1
  923. EpPRMRQ LD (HL),#28
  924.         INC A
  925.         ex af,af'
  926.        ADD HL,DE
  927.        DEC A
  928.        jr NZ,EpPRMR0
  929.        RET
  930. EpPRMR1 ex af,af'
  931.         CP B
  932.         jr NC,EpPRMRQ
  933.         LD (HL),#55
  934.         INC A
  935.         ex af,af'
  936.        ADD HL,DE
  937.        DEC A
  938.        jr NZ,EpPRMR1
  939.        RET
  940. EpCHMRK
  941.        LD A,(EpMflag)
  942.        OR A
  943.        CALL NZ,EpCHEND
  944.        LD A,(NOPKA)
  945.        OR A
  946.        RET Z
  947.        XOR A
  948. EpMflag=$+1
  949.        CP 0
  950.        jr NZ,EpCHMRQ
  951.        CALL EpARPOS
  952.        RET C
  953.        LD (LOOP),A
  954.        CPL
  955. EpCHMRQ LD (EpMflag),A
  956.        RET
  957. EpCHEND CALL EpARPOS
  958.        RET C
  959.        LD HL,LOOP
  960.        CP (HL)
  961.        jr NC,$+3
  962.         LD A,(HL)
  963.        INC A
  964.        inc HL
  965.        LD (HL),A
  966.        RET
  967. ;1
  968. EsCHMRK
  969.        LD A,(EsMflag)
  970.        OR A
  971.        CALL NZ,esCHEND
  972.        LD A,(NOPKA)
  973.        OR A
  974.        RET Z
  975.        XOR A
  976. EsMflag=$+1
  977.        CP 0
  978.        jr NZ,esCHMRQ
  979.        CALL EsARPOS
  980.        RET C
  981.        LD (EsLOOP),A
  982.        CPL
  983. esCHMRQ LD (EsMflag),A
  984.        RET
  985. esCHEND
  986.        CALL EsARPOS
  987.        RET C
  988.       LD HL,EsLOOP
  989.       SUB (HL)
  990.        RET C
  991.        INC A
  992.        LD (EsLEN),A
  993.        RET
  994. ;1
  995. EoCHMRK
  996.        LD A,(EoMflag)
  997.        OR A
  998.        CALL NZ,eoCHEND
  999.        LD A,(NOPKA)
  1000.        OR A
  1001.        RET Z
  1002.        XOR A
  1003. EoMflag=$+1
  1004.        CP 0
  1005.        jr NZ,eoCHMRQ
  1006.        CALL EoARLOP
  1007.        RET C
  1008.        LD (EoLOOP),A
  1009.        CPL
  1010. eoCHMRQ LD (EoMflag),A
  1011.        RET
  1012. eoCHEND CALL EoARLOP
  1013.        RET C
  1014.        LD HL,EoLOOP
  1015.        SUB (HL)
  1016.        RET C
  1017.        INC A
  1018.        LD (EoLPlen),A
  1019.        RET
  1020. EpARPOS
  1021.        LD BC,#610
  1022.        LD L,3
  1023.        JR psARPOS
  1024. EsARPOS
  1025.        LD BC,+((SMPY+1)<<8)+SMPH
  1026.        LD L,1+SMPX
  1027. psARPOS LD A,(ARXY)
  1028.        RRA
  1029.        RRA
  1030.        RRA
  1031.        AND 31
  1032.        SUB B
  1033.        CP C
  1034.        CCF
  1035.        RET C
  1036.        LD C,A
  1037.        LD A,(ARX)
  1038.        RRA
  1039.        RRA
  1040.        RRA
  1041.        AND 31
  1042.        CP L
  1043.        jr NZ,SCFRET
  1044.        LD A,(EsTOP)
  1045.        ADD A,C
  1046.        RET
  1047. EoARLOP
  1048.        LD A,1
  1049. EoARPOS
  1050.        LD E,A
  1051.        LD HL,(ARXY)
  1052.        LD A,L
  1053.        RRA
  1054.        RRA
  1055.        RRA
  1056.        AND 31
  1057.        SUB 3
  1058.        RET C
  1059.        CP 16
  1060.        CCF
  1061.        RET C
  1062.        LD D,A
  1063.        LD A,H
  1064.        RRA
  1065.        RRA
  1066.        RRA
  1067.        AND 31
  1068.        LD BC,#400
  1069. EoARp0  CP E
  1070.        jr Z,EoARpQ
  1071.        SUB 4
  1072.        INC C
  1073.        DJNZ EoARp0
  1074. SCFRET  SCF
  1075.        RET
  1076. EoARpQ  LD A,C
  1077.        ADD A,A
  1078.        add A,A
  1079.        add A,A
  1080.        add A,A
  1081.        add A,D
  1082.        RET
  1083. decCOR
  1084.        LD A,(DE)
  1085.        CP L
  1086.        RET C
  1087.        DEC A
  1088.        LD (DE),A
  1089.        RET
  1090. incCOR
  1091.        LD A,(DE)
  1092.        CP L
  1093.        RET C
  1094.        RET Z
  1095.        INC A
  1096.        RET Z
  1097.        LD (DE),A
  1098.        RET
  1099. EDPOSB
  1100.        CALL EpGadr
  1101.        LD (LOOP),A
  1102.        RET
  1103. EDPOSE
  1104.        CALL EpGadr
  1105.        LD (LENG),A
  1106.        RET
  1107. EpPRCUR
  1108.        ex af,af'
  1109.         LD A,(EpY)
  1110.         ADD A,A
  1111.         add A,A
  1112.         add A,A
  1113.         add A,A
  1114.         LD L,A
  1115.         ld H,0
  1116.         ADD HL,HL
  1117.         LD DE,#58C6
  1118.         ADD HL,DE
  1119.         ex af,af'
  1120.        LD (HL),A
  1121.        INC L
  1122.        LD (HL),A
  1123.        INC L
  1124.        LD (HL),A
  1125.        RET
  1126. EpGadr
  1127.        LD A,H
  1128.        ADD A,L
  1129.        LD L,A
  1130.        LD H,TPOSS/256
  1131.        RET
  1132. EDPOSDQ
  1133.        LD (EpY),A
  1134.        JP SHOLK
  1135. EDPOSKY
  1136.        CALL BIT5
  1137.        RET Z
  1138.        LD HL,(EsTOP)
  1139. EpY=$+1
  1140.        LD H,0
  1141.        CALL RECHEX
  1142.        INC D
  1143.        jr Z,EDpDIG
  1144.        LD A,(iycurkey);(23560)
  1145.        CP kKpos;'K'
  1146.        jr Z,EDPOSB
  1147.        CP kLpos;'L'
  1148.        jr Z,EDPOSE
  1149.        cp key_left;SUB 8
  1150.        jr NZ,EDPOSNL
  1151.        LD A,L
  1152.        SUB 15
  1153.        jr NC,$+3
  1154.         XOR A
  1155.        JR EDPOSTO
  1156. EDPOSNL cp key_right ;DEC A
  1157.        jr NZ,EDPOSNR
  1158.        LD A,L
  1159.        ADD A,15
  1160. EDPOSR  CP -16
  1161.        jr C,$+4
  1162.         LD A,-16
  1163.        JR EDPOSTO
  1164. EDPOSNR cp key_down ;DEC A
  1165.        jr NZ,EDPOSND
  1166.        LD A,H
  1167.        INC A
  1168.        AND 15
  1169.        jr NZ,EDPOSDQ
  1170.        LD A,L
  1171.        INC A
  1172.        CP -15
  1173.        RET Z
  1174.        JR EDPOSTO
  1175. EDPOSND cp key_up ;DEC A
  1176.        jr NZ,EDPOSNU
  1177.        LD A,H
  1178.        DEC A
  1179.        JP P,EDPOSDQ
  1180.        LD A,L
  1181.        SUB 1
  1182.        RET C
  1183. EDPOSTO LD (EsTOP),A
  1184.        JR PRPOS
  1185. EDPOSNU CP kDelLn;-11
  1186.        jr NZ,EDpNdelln
  1187.        CALL EpGadr
  1188.        LD D,H
  1189.        ld E,L
  1190.        INC L
  1191.        RET Z
  1192.        PUSH HL
  1193.         LD A,(HL)
  1194.         ld (DE),A
  1195.         INC E
  1196.         inc L
  1197.        jr NZ,$-4
  1198.        POP HL
  1199.        LD DE,LOOP
  1200.        CALL decCOR
  1201.        LD DE,LENG
  1202.        CALL decCOR
  1203.        JR PRPOS
  1204. EDpDIG
  1205.        LD D,A
  1206.        CALL EpGadr
  1207.        LD A,(HL)
  1208.        LD B,4
  1209.         ADD A,A
  1210.         jr C,EpDIGo
  1211.        DJNZ $-3
  1212.        ADD A,D
  1213.        CP PATS
  1214.        jr C,$+3
  1215. EpDIGo   LD A,D
  1216.        LD (HL),A
  1217. PRPOS
  1218.        LD HL,(EsTOP)
  1219.        ld H,TPOSS/256
  1220.        LD A,16
  1221.        ld DE,#41C3
  1222. PRPOS0  PUSH AF
  1223.        push DE
  1224.        LD A,L
  1225.        PUSH HL
  1226.        CALL PRF8
  1227.        POP HL
  1228.        INC E
  1229.        inc E
  1230.        inc E
  1231.        LD A,(HL)
  1232.        INC L
  1233.        PUSH HL
  1234.        CALL PRF8
  1235.        POP HL
  1236.        pop DE
  1237.        LD A,D
  1238.        ADD A,6
  1239.        LD D,A
  1240.        CALL DDE
  1241.        INC D
  1242.        POP AF
  1243.        DEC A
  1244.        jr NZ,PRPOS0
  1245.        JP SHOLK
  1246. EDpNdelln
  1247.        cp key_ins ;CP 201-11
  1248.        RET NZ
  1249.        CALL EpGadr
  1250.        XOR -1
  1251.        RET Z
  1252.        PUSH HL
  1253.        LD C,A
  1254.        ld B,0
  1255.        LD DE,bf240
  1256.        PUSH HL
  1257.        push DE
  1258.        LDIR
  1259.        LD C,A
  1260.        POP HL
  1261.        pop DE
  1262.        INC E
  1263.        LDIR
  1264.        POP HL
  1265.        LD DE,LOOP
  1266.        CALL incCOR
  1267.        LD DE,LENG
  1268.        CALL incCOR
  1269.        JR PRPOS
  1270. EoGadr
  1271. EoLIN=$+1
  1272.        LD A,0
  1273. ornADR=$+1
  1274.        LD HL,EDORbf
  1275.        ADD A,L
  1276.        LD L,A
  1277.        LD A,(HL)
  1278.        RET
  1279. EDOR_p
  1280.        POP AF
  1281.        pop HL
  1282.        CALL ORNQU
  1283.        CALL DECORN ;+print
  1284.        JP EDORN
  1285. EDOR_n
  1286.        POP AF
  1287.        pop HL
  1288.        CALL ORNQU
  1289.        CALL INCORN ;+print
  1290.        JP EDORN
  1291. EDORNKY
  1292.        CALL BIT5
  1293.        RET Z
  1294.        LD B,1
  1295.       CP key_pgup;4
  1296.       jr Z,EDOR_p
  1297.       CP key_pgdown;5
  1298.       jr Z,EDOR_n
  1299.        CP ssI;172;i
  1300.        jr Z,EDORSMP
  1301.        CP kE;'E'
  1302.        jr Z,EDORNUM
  1303.        LD B,-1
  1304.        CP ssU;197;u
  1305.        jr Z,EDORSMP
  1306.        CP kW;'W'
  1307.        jr Z,EDORNUM
  1308.        LD B,12
  1309.        CP kT;'T'
  1310.        jr Z,EDORNUM
  1311.        LD B,-12
  1312.        CP kR;'R'
  1313.        jr Z,EDORNUM
  1314.        CP '0'
  1315.        jr Z,EDOR0
  1316.        CP kIns
  1317.       jr Z,EDoINS
  1318.        CP kDelLn
  1319.       JP Z,EDoDELLN
  1320.        CP kKpos;'K'
  1321.       JP Z,EDoBEG
  1322.        CP kLpos;'L'
  1323.       JP Z,EDoEND
  1324.        CP '+'
  1325.        jr Z,EDoPLU
  1326.       SUB '0';1
  1327.       CP 9;8
  1328.        RET NC
  1329.       LD (OCT),A
  1330. EDORSq  CALL PRORNos
  1331.        JP SHOLK
  1332. EDoPLU  CALL EoGadr
  1333.        JR EDORNEG
  1334. EDORSMP
  1335.        LD HL,EoSMP
  1336.        ld A,(HL)
  1337.        ADD A,B
  1338.        AND 31
  1339.        LD (HL),A
  1340.        JR EDORSq
  1341. EDORNUM
  1342.        CALL EoGadr
  1343.        ADD A,B
  1344.        LD B,0
  1345.        JP P,$+6
  1346.         INC B
  1347.         NEG
  1348.       AND 127
  1349.       CP 96
  1350.       jr C,$+4
  1351.         LD A,96
  1352.        DJNZ $+4
  1353. EDORNEG
  1354.        NEG
  1355.        LD (HL),A
  1356.        CALL ORNline
  1357.        JP SHOLK
  1358. EDOR0
  1359.        CALL EoGadr
  1360.        XOR A
  1361.        JR EDORNEG
  1362. EDoINS
  1363.        CALL EoGadr
  1364.        LD A,63
  1365.        SUB L
  1366.        RET Z
  1367.        LD L,62
  1368.        ld E,63
  1369.        ld D,H
  1370.        ld B,0
  1371.        ld C,A
  1372.        LDDR
  1373.       INC L
  1374.        LD DE,EoLOOP
  1375.        CALL incCOR
  1376.       jr Z,$+4
  1377.       jr NC,EDoz
  1378.        ex de,hl
  1379.        INC HL
  1380.       DEC A
  1381.        ADD A,(HL)
  1382.        CP E
  1383.        jr C,EDoz
  1384.        CP 63
  1385.        jr NC,$+3
  1386. EDoINSQ INC (HL)
  1387.        JR EDoz
  1388. EDoDELLN
  1389.        CALL EoGadr
  1390.        LD D,H
  1391.        ld E,L
  1392.        INC L
  1393.        LD A,64
  1394.        SUB L
  1395.        RET Z
  1396.        LD B,0
  1397.        ld C,A
  1398.        ld A,L
  1399.        LDIR
  1400.        LD L,A
  1401.        LD DE,EoLOOP
  1402.        CALL decCOR
  1403.       jr NC,EDoz
  1404.        ex de,hl
  1405.        INC HL
  1406.        ADD A,(HL)
  1407.        CP E
  1408.        jr C,EDoz
  1409.        DEC (HL)
  1410.        jr Z,EDoINSQ
  1411. EDoz
  1412.        CALL PRORN
  1413.        JP SHOLK
  1414. EDoBEG
  1415.        LD A,(EoLIN)
  1416.       LD HL,EoLOOP
  1417. EDoBEGQ LD C,(HL)
  1418.       LD (HL),A
  1419.       INC HL
  1420.       SUB C
  1421.       NEG
  1422.       ADD A,(HL)
  1423.       LD (HL),A
  1424.        RET
  1425. EDoEND
  1426.        LD HL,EoLOOP
  1427.        LD A,(EoLIN)
  1428.        SUB (HL)
  1429.        INC HL
  1430.        LD (HL),A
  1431.        RET
  1432. EDsBEG
  1433.        LD A,(EsLIN)
  1434.       LD HL,EsLOOP
  1435.       JR EDoBEGQ
  1436. EDsEND
  1437.        LD HL,EsLOOP
  1438.        LD A,(EsLIN)
  1439.        SUB (HL)
  1440.        INC HL
  1441.        LD (HL),A
  1442.        RET
  1443. PRORN
  1444.        LD HL,EDORbf
  1445.        LD E,1
  1446.        ld C,16
  1447. PRORN0  PUSH HL
  1448.        LD D,1
  1449.        ld B,4
  1450. PRORN1  PUSH BC
  1451.        LD A,L
  1452.        CALL toOO
  1453.        INC D
  1454.        inc D
  1455.        PUSH HL
  1456.        LD A,(HL)
  1457.        ld L,A
  1458.        OR A
  1459.        LD B,'+'
  1460.        CALL M,ldbminusNEGHL
  1461.        LD A,B
  1462.        CALL PRADD
  1463.        INC D
  1464.        LD A,L
  1465.        CALL toOO
  1466.        INC D
  1467.        inc D
  1468.        inc D
  1469.        POP HL
  1470.        LD BC,16
  1471.        ADD HL,BC
  1472.        POP BC
  1473.        DJNZ PRORN1
  1474.        INC E
  1475.        POP HL
  1476.        INC L
  1477.        DEC C
  1478.        jr NZ,PRORN0
  1479.        RET
  1480. EORNCUR
  1481.        CALL BIT5
  1482.        RET Z
  1483.        cp key_left ;SUB 8
  1484.        LD B,-16
  1485.        jr Z,EORNC
  1486.        cp key_right ;DEC A
  1487.        LD B,16
  1488.        jr Z,EORNC
  1489.        cp key_down ;DEC A
  1490.        LD B,1
  1491.        jr Z,EORNC
  1492.        cp key_up ;DEC A
  1493.        LD B,-1
  1494.        RET NZ
  1495. EORNC   LD A,(EoLIN)
  1496.        ADD A,B
  1497.        AND 63
  1498. EORNCQ  ex af,af'
  1499.         LD E,7
  1500.         CALL GornMRK+2
  1501.         ex af,af'
  1502.        LD (EoLIN),A
  1503.        LD HL,SHOLK
  1504.        PUSH HL
  1505. GornMRK LD E,56
  1506.        ld A,(EoLIN)
  1507.        LD BC,16
  1508.        LD H,B
  1509.         INC B
  1510.         SUB C
  1511.        jr NC,$-2
  1512.        ADD A,C
  1513.        add A,3
  1514.        ADD A,A
  1515.        add A,A
  1516.        add A,A
  1517.        LD L,A
  1518.        ADD HL,HL
  1519.        add HL,HL
  1520.        LD A,H
  1521.        SUB -88
  1522.        LD H,A
  1523.        ld A,B
  1524.        ADD A,A
  1525.        add A,A
  1526.        SUB 2
  1527.        OR L
  1528.        LD L,A
  1529.        ld (HL),E
  1530.        INC L
  1531.        LD (HL),E
  1532.        RET
  1533. ORNline
  1534.        LD A,(EoLIN)
  1535.        ld BC,16
  1536.         INC B
  1537.         SUB C
  1538.        jr NC,$-2
  1539.        ADC A,C
  1540.        LD E,A
  1541.        ld A,B
  1542.        ADD A,A
  1543.        add A,A
  1544.        add A,A
  1545.        SUB 4
  1546.        LD D,A
  1547.        LD HL,(ornADR)
  1548.        LD A,(EoLIN)
  1549.        ADD A,L
  1550.        LD L,A
  1551.        ld A,(HL)
  1552.        ld L,A
  1553.        OR A
  1554.        LD B,'+'
  1555.        CALL M,ldbminusNEGHL
  1556.        LD A,B
  1557.        CALL PRADD
  1558.        INC D
  1559.        LD A,L
  1560.        JP toOO
  1561. EoPRMRK
  1562.        LD A,(NOPKA)
  1563.        OR A
  1564.        LD A,3
  1565.        CCF
  1566.        CALL NZ,EoARPOS
  1567.        CALL NC,EORNCQ
  1568. EoLOOP=$+1
  1569. EoLPlen=$+2
  1570.        LD BC,0
  1571.        ld DE,32
  1572.        XOR A
  1573.        LD HL,#5861
  1574. PRoLP0  CP C
  1575.        jr Z,PRoLPQ
  1576.        LD (HL),5
  1577.        CALL PRoLPP
  1578.        jr NZ,PRoLP0
  1579.        RET
  1580. PRoLPQ  LD (HL),#5D
  1581.        CALL PRoLPP
  1582.        RET Z
  1583.        DJNZ PRoLPQ
  1584.        JR PRoLP0
  1585. PRoLPP  INC A
  1586.        PUSH AF
  1587.        AND 15
  1588.        jr NZ,PRoLPE
  1589.        LD A,L
  1590.        AND 31
  1591.        LD H,88
  1592.        ADD A,#44
  1593.        LD L,A
  1594. PRoLPE  ADD HL,DE
  1595.        POP AF
  1596.        AND 63
  1597.        RET
  1598. EsPRMRK
  1599.        LD HL,SMPATR+1;#58E5
  1600. EsLOOP=$+1
  1601. EsLEN=$+2
  1602.        LD BC,#100
  1603.        ld A,C
  1604.        ADD A,B
  1605.        LD B,A
  1606.        ld DE,32
  1607.        LD A,(EsTOP)
  1608.        ex af,af'
  1609.         LD A,SMPH
  1610. EsPRMR0 ex af,af'
  1611.        CP C
  1612.        jr NC,EsPRMR1_
  1613. EsPRMRQ LD (HL),5
  1614.        INC A
  1615.        ex af,af'
  1616.         ADD HL,DE
  1617.         DEC A
  1618.         jr NZ,EsPRMR0
  1619.         RET
  1620. EsPRMR1exa
  1621.         ex af,af'
  1622. EsPRMR1_
  1623.        CP B
  1624.        jr NC,EsPRMRQ
  1625.        LD (HL),#5D
  1626.        INC A
  1627.        ex af,af'
  1628.         ADD HL,DE
  1629.         DEC A
  1630.         jr NZ,EsPRMR1exa
  1631.         RET
  1632. EDSMORN
  1633.         LD HL,EsORN
  1634.         ld A,(HL)
  1635.         ADD A,C
  1636.         AND #F
  1637.         LD (HL),A
  1638.         JR EDSMOq
  1639. EDSM_p
  1640.         POP AF
  1641.         pop HL
  1642.         CALL SMPQU
  1643.         CALL DECSMP
  1644.         JP EDSMP
  1645. EDSM_n
  1646.         POP AF
  1647.         pop HL
  1648.         CALL SMPQU
  1649.         CALL INCSMP
  1650.         JP EDSMP
  1651. EDSMPKY
  1652.         CALL FIRE
  1653.         JP NZ,EDSMPFI
  1654.         XOR A
  1655.         LD (EDSMFIh),A
  1656.         CALL BIT5
  1657.         RET Z
  1658.        CP key_pgup ;4
  1659.        jr Z,EDSM_p
  1660.        CP key_pgdown ;5
  1661.        jr Z,EDSM_n
  1662.         LD BC,32
  1663.         CP kR;'R'
  1664.         jr Z,EDSMNUM
  1665.         LD C,1
  1666.         CP ssI;172;i
  1667.         jr Z,EDSMORN
  1668.         CP kW;'W'
  1669.         jr Z,EDSMNUM
  1670.         DEC BC
  1671.         dec BC
  1672.         CP ssU;197;u
  1673.         jr Z,EDSMORN
  1674.         CP kE;'E'
  1675.         jr Z,EDSMNUM
  1676.         LD C,-32
  1677.         CP kT;'T'
  1678.         jr Z,EDSMNUM
  1679.        LD c,0;bc,-256
  1680.        CP 'T'
  1681.        jr Z,EDSMNUM
  1682.        LD b,1;bc,256
  1683.        CP 'R'
  1684.        jr Z,EDSMNUM
  1685.         CP '0'
  1686.         jr Z,EDSM0
  1687.         CP '+'
  1688.         jr Z,EDsPLU
  1689.        SUB '0';1
  1690.        CP 9;8
  1691.         RET NC
  1692.        LD (OCT),A
  1693. EDSMOq  CALL PROCORN
  1694.         JP SHOLK
  1695. EsX=$+1
  1696. EDsPLU  LD A,0
  1697.         INC A
  1698.         RET Z
  1699.         CALL EsGadr
  1700.         PUSH HL
  1701.         POP IX
  1702.         LD L,(IX)
  1703.         ld H,(IX+1)
  1704.         CALL NEGHL
  1705.         JR EDSMNQ
  1706. EDSM0
  1707.         CALL EsGadr
  1708.         LD A,(EsX)
  1709.         INC A
  1710.         jr NZ,EDsNOI0
  1711.         INC L
  1712.         inc L
  1713.         LD A,(HL)
  1714.         AND #E0
  1715.         LD (HL),A
  1716.         JR EDsNOIQ
  1717. EDsNOI0 XOR A
  1718.         LD (HL),A
  1719.         INC L
  1720.         LD (HL),A
  1721.         JR EDSMKQ
  1722. EDSMNUM
  1723.         LD A,(EsX)
  1724.         INC A
  1725.         jr Z,EDSMNOI
  1726.         CALL EsGadr
  1727.         PUSH HL
  1728.         POP IX
  1729.         LD L,(IX)
  1730.         ld H,(IX+1)
  1731.         ADD HL,BC
  1732.         LD A,H
  1733.         OR A
  1734.         LD B,#F
  1735.         JP P,EDSMNOK
  1736.         CALL NEGHL
  1737.         LD A,H
  1738.         AND B
  1739.         LD H,A
  1740.         CALL NEGHL
  1741.         JR $+4
  1742. EDSMNOK  AND B
  1743.          LD H,A
  1744. EDSMNQ  LD (IX),L
  1745.         ld (IX+1),H
  1746. EDSMKQ  CALL EsPRNUM
  1747.         JP SHOLK
  1748. EDSMNOI
  1749.         CALL EsGadr
  1750.         INC L
  1751.         inc L
  1752.         LD A,(HL)
  1753.         SUB C
  1754.         XOR (HL)
  1755.         AND 31
  1756.         XOR (HL)
  1757.         LD (HL),A
  1758. EDsNOIQ CALL EsPRNOI
  1759.         JP SHOLK
  1760. EsGadr
  1761.         LD H,EDORbf/256
  1762.         ld A,(EsTOP)
  1763.         ld D,A
  1764. EsLIN=$+1
  1765.         LD A,0
  1766.         PUSH AF
  1767.         SUB D
  1768.         LD E,A
  1769.         POP AF
  1770.         ADD A,A
  1771.         add A,A
  1772.         LD L,A
  1773.         RET
  1774. ;3
  1775. PRSMLIN
  1776.         PUSH AF
  1777.         push AF
  1778.         LD D,1
  1779.         CALL toOO
  1780.         LD D,8
  1781.         POP AF
  1782.         ADD A,A
  1783.         add A,A
  1784.         LD HX,EDORbf/256
  1785.         ld LX,A
  1786.         LD A,(IX+1)
  1787.         OR A
  1788.         LD L,(IX)
  1789.         ld H,(IX+1)
  1790.         LD B,'+'
  1791.         CALL M,ldbminusNEGHL
  1792.         LD A,'+'+'-'
  1793.         SUB B
  1794.         CALL PRADD
  1795.         INC D
  1796.         CALL toOOOO
  1797.         INC D
  1798.         inc D
  1799.         LD A,(IX+2)
  1800.         PUSH AF
  1801.         AND 31
  1802.         CALL toOO
  1803.         INC D
  1804.         inc D
  1805.         POP AF
  1806.         CALL PRTNE
  1807.         LD A,(IX+3)
  1808.         CALL PRVTN
  1809.         POP AF
  1810.         JP PRSMVOL
  1811. EsPRNUM
  1812.         CALL EsGadr
  1813.         LD D,8
  1814.         ld A,(HL)
  1815.         INC L
  1816.         LD H,(HL)
  1817.         ld L,A
  1818.         ld A,H
  1819.        RLA
  1820.         LD B,'-'
  1821.        jr NC,$+7
  1822.          LD B,'+'
  1823.          CALL NEGHL
  1824.         LD A,B
  1825.         CALL PRADD
  1826.         INC D
  1827.         JP toOOOO
  1828. EsPRNOI
  1829.         CALL EsGadr
  1830.         ADD A,2
  1831.         LD L,A
  1832.         ld D,#E
  1833.         ld A,(HL)
  1834.         AND 31
  1835.         JP toOO
  1836. TNEVTN
  1837.         LD H,EDORbf/256
  1838. TNEVTNl=$+1
  1839.         LD L,0
  1840. TNEVTNy=$+1
  1841.         LD DE,#1100
  1842.         LD A,(HL)
  1843.         INC HL
  1844.         LD B,(HL)
  1845.         PUSH BC
  1846.         CALL PRTNE
  1847.         POP AF
  1848.         JR PRVTN
  1849. PRTNE
  1850.         LD L,A
  1851.         ld H,'-'
  1852.         AND #80
  1853.         LD A,'T'
  1854.         jr Z,$+3
  1855.          LD A,H
  1856.         CALL PRADD
  1857.         INC D
  1858.         LD A,L
  1859.         AND 64
  1860.         LD A,'N'
  1861.         jr Z,$+3
  1862.          LD A,H
  1863.         CALL PRADD
  1864.         INC D
  1865.         LD A,L
  1866.         AND 32
  1867.         LD A,'E'
  1868.         jr Z,$+3
  1869.          LD A,H
  1870.         JP PRADD
  1871. PRVTN
  1872.         LD D,4
  1873.         ld C,A
  1874.         RLA
  1875.         LD A,'0'
  1876.         jr NC,PRVTN0
  1877.         BIT 6,C
  1878.         LD A,'-'
  1879.         jr Z,$+4
  1880.          LD A,'+'
  1881. PRVTN0  CALL PRADD
  1882.         LD A,32
  1883.         CALL PRVTNPP
  1884.         LD A,16
  1885. PRVTNPP AND C
  1886.         LD A,'0'
  1887.         jr Z,$+4
  1888.          LD A,'+'
  1889.         INC D
  1890.         JP PRADD
  1891. EsFITN
  1892.         LD B,32
  1893.         CP +(SMPX<<3)+#1C
  1894.         jr C,$+7
  1895. EsFIfN   LD B,16
  1896.          CP 64
  1897.          RET NC
  1898.         INC HL
  1899.         LD A,(HL)
  1900.         XOR B
  1901.         JR EsFIVTQ
  1902. EsFIx
  1903.         SBC A,A
  1904.         ex af,af'
  1905.        CALL GsMRK7
  1906.        LD A,(EsFIlin)
  1907.        ld (EsLIN),A
  1908.        ex af,af'
  1909.         LD (EsX),A
  1910.         CALL GsMRK56
  1911.         JP SHOLK
  1912. EsNfix
  1913.         CALL EDSMFIp
  1914.         XOR A
  1915.         JR EsFIfN
  1916. EsTfix
  1917.         CALL EDSMFIp
  1918.         XOR A
  1919.         JR EsFITN
  1920. EsAfix
  1921.         CALL EDSMFIp
  1922.         JR EsFIV
  1923. EsTi
  1924.         CALL EDSMFIp
  1925.         XOR A
  1926.         JR Es_T
  1927. EsNi
  1928.         CALL EDSMFIp
  1929.         XOR A
  1930.         JR Es_N
  1931. EsEi
  1932.         CALL EDSMFIp
  1933.         JR Es_E
  1934. EsFIVTN
  1935.         CP (SMPX<<3)+#38
  1936.         CCF
  1937.         jr C,EsFIx ;смещ.шума
  1938.         CP (SMPX<<3)+#28
  1939.         jr NC,EsFIx ;цикл
  1940.         CP (SMPX<<3)+#14
  1941.         RET C ;слева от VTN
  1942.         CP (SMPX<<3)+#18
  1943.         jr NC,EsFITN
  1944. EsFIV   INC HL
  1945.         LD A,(HL)
  1946.         ld C,A
  1947.         LD B,#80
  1948.         AND B
  1949.         jr NZ,$+6
  1950.          LD A,C
  1951.          OR B
  1952.          JR EsFIVTQ
  1953.         LD A,C
  1954.         XOR 64
  1955.         LD C,A
  1956.         AND 64
  1957.         LD A,C
  1958.         jr NZ,$+4
  1959.          AND 63
  1960. EsFIVTQ LD (HL),A
  1961.         JR EsFIQ
  1962. EDSMPFI
  1963.         LD HL,(ARXY)
  1964.         ld A,L
  1965.         SUB (SMPY+1)<<3;#38
  1966.         CP SMPH<<3
  1967.         RET NC
  1968.         RES 0,H
  1969.         res 1,H
  1970.         RRA
  1971.         RRA
  1972.         RRA
  1973.         AND #1F
  1974.         LD B,A
  1975.         CP 0
  1976.         LD ($-1),A
  1977.         LD A,H
  1978.         jr NZ,EDSMFIn
  1979. EDSMFIh=$+1
  1980.         CP 0
  1981. EDSMFIn LD ($-1),A
  1982.         RET Z
  1983.        CALL EDSMFIP
  1984.         CP (SMPX<<3)+#48
  1985.         jr C,EsFIVTN
  1986.         CP (SMPX<<3)+#54
  1987.         jr NC,EsFIVOL
  1988. Es_T    LD B,#80
  1989.         CP (SMPX<<3)+#4C
  1990.         jr C,EsFINUM
  1991. Es_N    LD B,64
  1992.         CP (SMPX<<3)+#50
  1993.         jr C,$+4
  1994. Es_E     LD B,32
  1995. EsFINUM LD A,(HL)
  1996.         XOR B
  1997.         LD (HL),A
  1998. EsFIQ   CALL TNEVTN
  1999.         JP SHOLK
  2000. EDSMFIp
  2001.         LD A,(EsLIN)
  2002.         ld HL,EsTOP
  2003.         SUB (HL)
  2004.         LD B,A
  2005. EDSMFIP LD A,(EsTOP)
  2006.         ADD A,B
  2007.         LD (EsFIlin),A
  2008.         ADD A,A
  2009.         add A,A
  2010.         add A,2
  2011.         LD L,A
  2012.         ld (TNEVTNl),A
  2013.         LD A,B
  2014. EDSpQ   LD (TNEVTNy),A
  2015.         LD A,H
  2016.         ld H,EDORbf/256
  2017.         RET
  2018. EsVOLi
  2019.         CALL EDSMFIp
  2020.         INC HL
  2021.         LD A,(HL)
  2022.         INC A
  2023.         JR EsVOLQ
  2024. EsVOLd
  2025.         CALL EDSMFIp
  2026.         INC HL
  2027.         LD A,(HL)
  2028.         DEC A
  2029.         JR EsVOLQ
  2030. EsFIVOL
  2031.         SUB (SMPX<<3)+#54
  2032.         CP #40
  2033.         RET NC
  2034.         RRA
  2035.         RRA
  2036.         INC HL
  2037. EsVOLQ  AND #F
  2038.         LD E,A
  2039.         ld A,(HL)
  2040.         AND #F0
  2041.         OR E
  2042.         LD (HL),A
  2043.         LD A,(TNEVTNy)
  2044.         ld E,A
  2045. EsFIlin=$+1
  2046.         LD A,0
  2047.         CALL PRSMVOL
  2048.         JP SHOLK
  2049. EDsSCUP
  2050.         LD DE,+((SMPATR&#300)<<3)+(SMPATR&0xff)+#4001+SMPX
  2051.         LD HL,+(((SMPATR+32)&#300)<<3)+((SMPATR+32)&0xff)+#4001+SMPX
  2052.         LD A,+(SMPH<<3)-8
  2053. EDsSCU0
  2054.         CALL EDsLDI
  2055.         CALL DHL
  2056.         call DDE
  2057.         ex af,af'
  2058.        jr NZ,EDsSCU0
  2059.        RET
  2060. EDsSCDN
  2061.        LD DE,+((SMPBOT&#300)<<3)+(SMPBOT&0xff)+#4001+SMPX
  2062.        LD HL,+(((SMPBOT-32)&#300)<<3)+((SMPBOT-32)&0xff)+#4001+SMPX
  2063.        LD A,+(SMPH<<3)-8
  2064. EDsSCD0
  2065.        CALL EDsLDI
  2066.        CALL UHL
  2067.        call UDE
  2068.        ex af,af'
  2069.         jr NZ,EDsSCD0
  2070.         RET
  2071. EDsLDI
  2072.         DEC A
  2073.         ex af,af'
  2074.        LD BC,19
  2075.        PUSH HL
  2076.        push DE
  2077.        LDIR
  2078.        POP DE
  2079.        pop HL
  2080.        RET
  2081. EDsUP
  2082.        cp key_up ;DEC A
  2083.        RET NZ
  2084.        CALL GsMRK7
  2085.        LD A,(EsLIN)
  2086.        DEC A
  2087.        JP M,EDsCQ
  2088.        LD B,A
  2089.        ld A,(EsTOP)
  2090.        ld C,A
  2091.        DEC A
  2092.        CP B
  2093.        jr NZ,EDsUQ
  2094.        PUSH BC
  2095.        CALL EDsSCDN
  2096.        POP BC
  2097.        LD A,C
  2098.        DEC A
  2099.        LD (EsTOP),A
  2100.        PUSH BC
  2101.        LD E,0
  2102.        CALL PRSMLIN
  2103.        POP BC
  2104. EDsUQ   LD A,B
  2105.        ld (EsLIN),A
  2106.        JR EDsCQ
  2107. EDsLR
  2108.        CALL GsMRK7
  2109.        LD HL,EsX
  2110.        ld A,(HL)
  2111.        CPL
  2112.        LD (HL),A
  2113. EDsCQ   CALL GsMRK56
  2114.        JP SHOLK
  2115. EDSMCUR
  2116.        CALL BIT5
  2117.        RET Z
  2118.        CP kA;'A'
  2119.       JP Z,EsAfix
  2120.        CP '9'
  2121.       JP Z,EsTfix
  2122.        CP kF;'F'
  2123.       JP Z,EsNfix
  2124.        CP ')'
  2125.       JP Z,EsVOLi
  2126.        CP '('
  2127.       JP Z,EsVOLd
  2128.        CP kIns
  2129.       jr Z,EDsINS
  2130.        CP kDelLn
  2131.       JP Z,EDsDELLN
  2132.        CP kKpos;'K'
  2133.       JP Z,EDsBEG
  2134.        CP kLpos;'L'
  2135.       JP Z,EDsEND
  2136.        CP kY;'Y'
  2137.       JP Z,EsTi
  2138.        CP kU;'U'
  2139.       JP Z,EsNi
  2140.        CP kI;'I'
  2141.       JP Z,EsEi
  2142.      ; SUB 4
  2143.      ; JZ EDsTRU
  2144.      ; DEC A
  2145.      ; JP Z,EDsINV
  2146.        cp key_left ;SUB 3+5
  2147.        jr Z,EDsLR
  2148.        cp key_right ;DEC A
  2149.        jr Z,EDsLR
  2150.        cp key_down ;DEC A
  2151.        JP NZ,EDsUP
  2152.        CALL GsMRK7
  2153.        LD A,(EsLIN)
  2154.        INC A
  2155.        AND 63
  2156.        jr Z,EDsCQ
  2157.        LD BC,(EsTOP)
  2158.        ld B,A
  2159.        SUB C
  2160.        CP SMPH
  2161.        jr NZ,EDsDQ
  2162.        PUSH BC
  2163.        CALL EDsSCUP
  2164.        POP BC
  2165.        LD A,C
  2166.        INC A
  2167.        LD (EsTOP),A
  2168.        PUSH BC
  2169.        LD E,SMPH-1
  2170.        ADD A,E
  2171.        CALL PRSMLIN
  2172.        POP BC
  2173. EDsDQ   LD A,B
  2174.        ld (EsLIN),A
  2175.        JP EDsCQ
  2176.       IF 0
  2177. EDsTRU
  2178.        CALL GsMRK7
  2179.        LD HL,EsLIN
  2180.        ld A,(HL)
  2181.        SUB SMPH
  2182.        LD (HL),A
  2183.        LD DE,EsTOP
  2184.        ld A,(DE)
  2185.        SUB SMPH
  2186.        jr NC,$+4
  2187.         XOR A
  2188.         LD (HL),A
  2189.        JR EDsInE
  2190.       ENDIF
  2191. EDsINS
  2192.        CALL EsGadr
  2193.        LD A,-4
  2194.        SUB L
  2195.        RET Z
  2196.        LD L,-5
  2197.        ld D,H
  2198.        ld E,-1
  2199.        ld B,0
  2200.        ld C,A
  2201.        LDDR
  2202.       INC L
  2203.       SRL L
  2204.       srl L
  2205.        LD DE,EsLOOP
  2206.        CALL incCOR
  2207.       jr Z,$+4
  2208.       jr NC,EDsINVQ
  2209.        ex de,hl
  2210.        INC HL
  2211.       DEC A
  2212.        ADD A,(HL)
  2213.        CP E
  2214.        jr C,EDsINVQ
  2215.        CP 63
  2216.        jr NC,$+3
  2217.         INC (HL)
  2218.        JR EDsINVQ
  2219. EDsDELLN
  2220.        CALL EsGadr
  2221.        LD D,H
  2222.        ld A,L
  2223.        ADD A,4
  2224.        LD E,A
  2225.        ex de,hl
  2226.        XOR A
  2227.        LD B,A
  2228.        SUB L
  2229.        RET Z
  2230.        LD C,A
  2231.       LD A,L
  2232.        LDIR
  2233.       LD L,A
  2234.       SRL L
  2235.       srl L
  2236.        LD DE,EsLOOP
  2237.        CALL decCOR
  2238.       jr NC,EDsINVQ
  2239.        ex de,hl
  2240.        INC HL
  2241.        ADD A,(HL)
  2242.        CP E
  2243.        jr C,$+3
  2244.         DEC (HL)
  2245.       IF 0
  2246.        JR EDsINVQ
  2247. EDsINV
  2248.        CALL GsMRK7
  2249.        LD HL,EsLIN
  2250.        ld A,(HL)
  2251.        ADD A,SMPH
  2252.        LD (HL),A
  2253.        ld DE,EsTOP
  2254.        ld A,(DE)
  2255.        ADD A,SMPH
  2256.        CP 65-SMPH
  2257.        jr C,EDsInE
  2258.        LD (HL),63
  2259.        LD A,64-SMPH
  2260. EDsInE  LD (DE),A
  2261.       ENDIF
  2262. EDsINVQ CALL SHOLK
  2263.        CALL PRSMP
  2264. GsMRK56
  2265.        LD E,56
  2266.        JR GsmpMRK
  2267. GsMRK7
  2268.        LD E,7
  2269. GsmpMRK
  2270.        LD A,(EsLIN)
  2271. EsTOP=$+1
  2272.        SUB 0
  2273.        ADD A,A
  2274.        add A,A
  2275.        add A,A
  2276.        LD L,A
  2277.        ld H,0
  2278.        ld BC,SMPATR;#58E4
  2279.        ADD HL,HL
  2280.        add HL,HL
  2281.        add HL,BC
  2282.        LD A,(EsX)
  2283.        OR A
  2284.        LD A,5
  2285.        jr Z,$+4
  2286.         LD A,7
  2287.        ADD A,L
  2288.        LD L,A
  2289.        LD (HL),E
  2290.        INC L
  2291.        LD (HL),E
  2292.        RET
  2293. PRORNos
  2294.       LD A,(OCT)
  2295.       ADD A,'0'
  2296.        LD DE,#E11
  2297.        CALL PRADD
  2298.        LD A,(EoSMP)
  2299.        CALL HEXDIG
  2300.        LD D,#18
  2301.        JP PRADD
  2302. PROCORN
  2303.       LD A,(OCT)
  2304.       ADD A,'0'
  2305.        LD DE,#1000+SMPH
  2306.        CALL PRADD
  2307.        LD A,(EsORN)
  2308.        CALL HEXDIG
  2309.        LD D,#1C
  2310.        JP PRADD
  2311. PRSMP
  2312.        LD E,0
  2313.        LD A,(EsTOP)
  2314.        ADD A,SMPH
  2315.        LD (PRSMPe),A
  2316.        SUB SMPH
  2317. PRSMP0  PUSH AF
  2318.        push DE
  2319.        CALL PRSMLIN
  2320.        POP DE
  2321.        pop AF
  2322.        INC E,A
  2323. PRSMPe=$+1
  2324.        CP 0
  2325.        jr NZ,PRSMP0
  2326.        RET
  2327. PRSMVOL
  2328.        PUSH DE
  2329.        push AF
  2330.        CALL PRADDPP
  2331.        LD D,11+SMPX
  2332.        CALL DE2SCR
  2333.        INC H
  2334.        ex de,hl
  2335.        LD H,EDORbf/256
  2336.        POP AF
  2337.        ADD A,A
  2338.        add A,A
  2339.        add A,3
  2340.        LD L,A
  2341.        ld A,(HL)
  2342.        AND #F
  2343.        LD (PRSMVa),A
  2344.        ex de,hl
  2345.        PUSH AF
  2346.        push HL
  2347.        LD A,#22
  2348.        ld B,7
  2349.        CALL BLOBER
  2350.        INC L
  2351.        DJNZ $-4
  2352.        LD A,#20
  2353.        CALL BLOBER
  2354.        POP HL
  2355.        pop AF
  2356.        LD E,A
  2357.        RRA
  2358.        PUSH AF
  2359.        AND 7
  2360.        jr Z,PRVOL7
  2361.        LD B,A
  2362.        ld A,#77
  2363. PRVOL0  LD D,H
  2364.       DUP 5
  2365.        LD (HL),A
  2366.        INC H
  2367.       EDUP
  2368.        LD (HL),A
  2369.        ld H,D
  2370.        INC L
  2371.        DJNZ PRVOL0
  2372. PRVOL7  LD A,E
  2373.        CP #F
  2374.        LD E,#72
  2375.        jr NZ,$+4
  2376.         LD E,#70
  2377.        POP AF
  2378.        LD A,E
  2379.        CALL C,BLOBER7
  2380. PRSMVa=$+1
  2381.        LD A,0
  2382.        POP DE
  2383.        LD D,#25
  2384.        JP D2HEX
  2385.