Subversion Repositories NedoOS

Rev

Rev 681 | 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.         CP '0'
  1680.         jr Z,EDSM0
  1681.         CP '+'
  1682.         jr Z,EDsPLU
  1683.        SUB '0';1
  1684.        CP 9;8
  1685.         RET NC
  1686.        LD (OCT),A
  1687. EDSMOq  CALL PROCORN
  1688.         JP SHOLK
  1689. EsX=$+1
  1690. EDsPLU  LD A,0
  1691.         INC A
  1692.         RET Z
  1693.         CALL EsGadr
  1694.         PUSH HL
  1695.         POP IX
  1696.         LD L,(IX)
  1697.         ld H,(IX+1)
  1698.         CALL NEGHL
  1699.         JR EDSMNQ
  1700. EDSM0
  1701.         CALL EsGadr
  1702.         LD A,(EsX)
  1703.         INC A
  1704.         jr NZ,EDsNOI0
  1705.         INC L
  1706.         inc L
  1707.         LD A,(HL)
  1708.         AND #E0
  1709.         LD (HL),A
  1710.         JR EDsNOIQ
  1711. EDsNOI0 XOR A
  1712.         LD (HL),A
  1713.         INC L
  1714.         LD (HL),A
  1715.         JR EDSMKQ
  1716. EDSMNUM
  1717.         LD A,(EsX)
  1718.         INC A
  1719.         jr Z,EDSMNOI
  1720.         CALL EsGadr
  1721.         PUSH HL
  1722.         POP IX
  1723.         LD L,(IX)
  1724.         ld H,(IX+1)
  1725.         ADD HL,BC
  1726.         LD A,H
  1727.         OR A
  1728.         LD B,#F
  1729.         JP P,EDSMNOK
  1730.         CALL NEGHL
  1731.         LD A,H
  1732.         AND B
  1733.         LD H,A
  1734.         CALL NEGHL
  1735.         JR $+4
  1736. EDSMNOK  AND B
  1737.          LD H,A
  1738. EDSMNQ  LD (IX),L
  1739.         ld (IX+1),H
  1740. EDSMKQ  CALL EsPRNUM
  1741.         JP SHOLK
  1742. EDSMNOI
  1743.         CALL EsGadr
  1744.         INC L
  1745.         inc L
  1746.         LD A,(HL)
  1747.         SUB C
  1748.         XOR (HL)
  1749.         AND 31
  1750.         XOR (HL)
  1751.         LD (HL),A
  1752. EDsNOIQ CALL EsPRNOI
  1753.         JP SHOLK
  1754. EsGadr
  1755.         LD H,EDORbf/256
  1756.         ld A,(EsTOP)
  1757.         ld D,A
  1758. EsLIN=$+1
  1759.         LD A,0
  1760.         PUSH AF
  1761.         SUB D
  1762.         LD E,A
  1763.         POP AF
  1764.         ADD A,A
  1765.         add A,A
  1766.         LD L,A
  1767.         RET
  1768. ;3
  1769. PRSMLIN
  1770.         PUSH AF
  1771.         push AF
  1772.         LD D,1
  1773.         CALL toOO
  1774.         LD D,8
  1775.         POP AF
  1776.         ADD A,A
  1777.         add A,A
  1778.         LD HX,EDORbf/256
  1779.         ld LX,A
  1780.         LD A,(IX+1)
  1781.         OR A
  1782.         LD L,(IX)
  1783.         ld H,(IX+1)
  1784.         LD B,'+'
  1785.         CALL M,ldbminusNEGHL
  1786.         LD A,'+'+'-'
  1787.         SUB B
  1788.         CALL PRADD
  1789.         INC D
  1790.         CALL toOOOO
  1791.         INC D
  1792.         inc D
  1793.         LD A,(IX+2)
  1794.         PUSH AF
  1795.         AND 31
  1796.         CALL toOO
  1797.         INC D
  1798.         inc D
  1799.         POP AF
  1800.         CALL PRTNE
  1801.         LD A,(IX+3)
  1802.         CALL PRVTN
  1803.         POP AF
  1804.         JP PRSMVOL
  1805. EsPRNUM
  1806.         CALL EsGadr
  1807.         LD D,8
  1808.         ld A,(HL)
  1809.         INC L
  1810.         LD H,(HL)
  1811.         ld L,A
  1812.         ld A,H
  1813.        RLA
  1814.         LD B,'-'
  1815.        jr NC,$+7
  1816.          LD B,'+'
  1817.          CALL NEGHL
  1818.         LD A,B
  1819.         CALL PRADD
  1820.         INC D
  1821.         JP toOOOO
  1822. EsPRNOI
  1823.         CALL EsGadr
  1824.         ADD A,2
  1825.         LD L,A
  1826.         ld D,#E
  1827.         ld A,(HL)
  1828.         AND 31
  1829.         JP toOO
  1830. TNEVTN
  1831.         LD H,EDORbf/256
  1832. TNEVTNl=$+1
  1833.         LD L,0
  1834. TNEVTNy=$+1
  1835.         LD DE,#1100
  1836.         LD A,(HL)
  1837.         INC HL
  1838.         LD B,(HL)
  1839.         PUSH BC
  1840.         CALL PRTNE
  1841.         POP AF
  1842.         JR PRVTN
  1843. PRTNE
  1844.         LD L,A
  1845.         ld H,'-'
  1846.         AND #80
  1847.         LD A,'T'
  1848.         jr Z,$+3
  1849.          LD A,H
  1850.         CALL PRADD
  1851.         INC D
  1852.         LD A,L
  1853.         AND 64
  1854.         LD A,'N'
  1855.         jr Z,$+3
  1856.          LD A,H
  1857.         CALL PRADD
  1858.         INC D
  1859.         LD A,L
  1860.         AND 32
  1861.         LD A,'E'
  1862.         jr Z,$+3
  1863.          LD A,H
  1864.         JP PRADD
  1865. PRVTN
  1866.         LD D,4
  1867.         ld C,A
  1868.         RLA
  1869.         LD A,'0'
  1870.         jr NC,PRVTN0
  1871.         BIT 6,C
  1872.         LD A,'-'
  1873.         jr Z,$+4
  1874.          LD A,'+'
  1875. PRVTN0  CALL PRADD
  1876.         LD A,32
  1877.         CALL PRVTNPP
  1878.         LD A,16
  1879. PRVTNPP AND C
  1880.         LD A,'0'
  1881.         jr Z,$+4
  1882.          LD A,'+'
  1883.         INC D
  1884.         JP PRADD
  1885. EsFITN
  1886.         LD B,32
  1887.         CP +(SMPX<<3)+#1C
  1888.         jr C,$+7
  1889. EsFIfN   LD B,16
  1890.          CP 64
  1891.          RET NC
  1892.         INC HL
  1893.         LD A,(HL)
  1894.         XOR B
  1895.         JR EsFIVTQ
  1896. EsFIx
  1897.         SBC A,A
  1898.         ex af,af'
  1899.        CALL GsMRK7
  1900.        LD A,(EsFIlin)
  1901.        ld (EsLIN),A
  1902.        ex af,af'
  1903.         LD (EsX),A
  1904.         CALL GsMRK56
  1905.         JP SHOLK
  1906. EsNfix
  1907.         CALL EDSMFIp
  1908.         XOR A
  1909.         JR EsFIfN
  1910. EsTfix
  1911.         CALL EDSMFIp
  1912.         XOR A
  1913.         JR EsFITN
  1914. EsAfix
  1915.         CALL EDSMFIp
  1916.         JR EsFIV
  1917. EsTi
  1918.         CALL EDSMFIp
  1919.         XOR A
  1920.         JR Es_T
  1921. EsNi
  1922.         CALL EDSMFIp
  1923.         XOR A
  1924.         JR Es_N
  1925. EsEi
  1926.         CALL EDSMFIp
  1927.         JR Es_E
  1928. EsFIVTN
  1929.         CP (SMPX<<3)+#38
  1930.         CCF
  1931.         jr C,EsFIx ;смещ.шума
  1932.         CP (SMPX<<3)+#28
  1933.         jr NC,EsFIx ;цикл
  1934.         CP (SMPX<<3)+#14
  1935.         RET C ;слева от VTN
  1936.         CP (SMPX<<3)+#18
  1937.         jr NC,EsFITN
  1938. EsFIV   INC HL
  1939.         LD A,(HL)
  1940.         ld C,A
  1941.         LD B,#80
  1942.         AND B
  1943.         jr NZ,$+6
  1944.          LD A,C
  1945.          OR B
  1946.          JR EsFIVTQ
  1947.         LD A,C
  1948.         XOR 64
  1949.         LD C,A
  1950.         AND 64
  1951.         LD A,C
  1952.         jr NZ,$+4
  1953.          AND 63
  1954. EsFIVTQ LD (HL),A
  1955.         JR EsFIQ
  1956. EDSMPFI
  1957.         LD HL,(ARXY)
  1958.         ld A,L
  1959.         SUB (SMPY+1)<<3;#38
  1960.         CP SMPH<<3
  1961.         RET NC
  1962.         RES 0,H
  1963.         res 1,H
  1964.         RRA
  1965.         RRA
  1966.         RRA
  1967.         AND #1F
  1968.         LD B,A
  1969.         CP 0
  1970.         LD ($-1),A
  1971.         LD A,H
  1972.         jr NZ,EDSMFIn
  1973. EDSMFIh=$+1
  1974.         CP 0
  1975. EDSMFIn LD ($-1),A
  1976.         RET Z
  1977.        CALL EDSMFIP
  1978.         CP (SMPX<<3)+#48
  1979.         jr C,EsFIVTN
  1980.         CP (SMPX<<3)+#54
  1981.         jr NC,EsFIVOL
  1982. Es_T    LD B,#80
  1983.         CP (SMPX<<3)+#4C
  1984.         jr C,EsFINUM
  1985. Es_N    LD B,64
  1986.         CP (SMPX<<3)+#50
  1987.         jr C,$+4
  1988. Es_E     LD B,32
  1989. EsFINUM LD A,(HL)
  1990.         XOR B
  1991.         LD (HL),A
  1992. EsFIQ   CALL TNEVTN
  1993.         JP SHOLK
  1994. EDSMFIp
  1995.         LD A,(EsLIN)
  1996.         ld HL,EsTOP
  1997.         SUB (HL)
  1998.         LD B,A
  1999. EDSMFIP LD A,(EsTOP)
  2000.         ADD A,B
  2001.         LD (EsFIlin),A
  2002.         ADD A,A
  2003.         add A,A
  2004.         add A,2
  2005.         LD L,A
  2006.         ld (TNEVTNl),A
  2007.         LD A,B
  2008. EDSpQ   LD (TNEVTNy),A
  2009.         LD A,H
  2010.         ld H,EDORbf/256
  2011.         RET
  2012. EsVOLi
  2013.         CALL EDSMFIp
  2014.         INC HL
  2015.         LD A,(HL)
  2016.         INC A
  2017.         JR EsVOLQ
  2018. EsVOLd
  2019.         CALL EDSMFIp
  2020.         INC HL
  2021.         LD A,(HL)
  2022.         DEC A
  2023.         JR EsVOLQ
  2024. EsFIVOL
  2025.         SUB (SMPX<<3)+#54
  2026.         CP #40
  2027.         RET NC
  2028.         RRA
  2029.         RRA
  2030.         INC HL
  2031. EsVOLQ  AND #F
  2032.         LD E,A
  2033.         ld A,(HL)
  2034.         AND #F0
  2035.         OR E
  2036.         LD (HL),A
  2037.         LD A,(TNEVTNy)
  2038.         ld E,A
  2039. EsFIlin=$+1
  2040.         LD A,0
  2041.         CALL PRSMVOL
  2042.         JP SHOLK
  2043. EDsSCUP
  2044.         LD DE,+((SMPATR&#300)<<3)+(SMPATR&0xff)+#4001+SMPX
  2045.         LD HL,+(((SMPATR+32)&#300)<<3)+((SMPATR+32)&0xff)+#4001+SMPX
  2046.         LD A,+(SMPH<<3)-8
  2047. EDsSCU0
  2048.         CALL EDsLDI
  2049.         CALL DHL
  2050.         call DDE
  2051.         ex af,af'
  2052.        jr NZ,EDsSCU0
  2053.        RET
  2054. EDsSCDN
  2055.        LD DE,+((SMPBOT&#300)<<3)+(SMPBOT&0xff)+#4001+SMPX
  2056.        LD HL,+(((SMPBOT-32)&#300)<<3)+((SMPBOT-32)&0xff)+#4001+SMPX
  2057.        LD A,+(SMPH<<3)-8
  2058. EDsSCD0
  2059.        CALL EDsLDI
  2060.        CALL UHL
  2061.        call UDE
  2062.        ex af,af'
  2063.         jr NZ,EDsSCD0
  2064.         RET
  2065. EDsLDI
  2066.         DEC A
  2067.         ex af,af'
  2068.        LD BC,19
  2069.        PUSH HL
  2070.        push DE
  2071.        LDIR
  2072.        POP DE
  2073.        pop HL
  2074.        RET
  2075. EDsUP
  2076.        cp key_up ;DEC A
  2077.        RET NZ
  2078.        CALL GsMRK7
  2079.        LD A,(EsLIN)
  2080.        DEC A
  2081.        JP M,EDsCQ
  2082.        LD B,A
  2083.        ld A,(EsTOP)
  2084.        ld C,A
  2085.        DEC A
  2086.        CP B
  2087.        jr NZ,EDsUQ
  2088.        PUSH BC
  2089.        CALL EDsSCDN
  2090.        POP BC
  2091.        LD A,C
  2092.        DEC A
  2093.        LD (EsTOP),A
  2094.        PUSH BC
  2095.        LD E,0
  2096.        CALL PRSMLIN
  2097.        POP BC
  2098. EDsUQ   LD A,B
  2099.        ld (EsLIN),A
  2100.        JR EDsCQ
  2101. EDsLR
  2102.        CALL GsMRK7
  2103.        LD HL,EsX
  2104.        ld A,(HL)
  2105.        CPL
  2106.        LD (HL),A
  2107. EDsCQ   CALL GsMRK56
  2108.        JP SHOLK
  2109. EDSMCUR
  2110.        CALL BIT5
  2111.        RET Z
  2112.        CP kA;'A'
  2113.       JP Z,EsAfix
  2114.        CP '9'
  2115.       JP Z,EsTfix
  2116.        CP kF;'F'
  2117.       JP Z,EsNfix
  2118.        CP ')'
  2119.       JP Z,EsVOLi
  2120.        CP '('
  2121.       JP Z,EsVOLd
  2122.        CP kIns
  2123.       jr Z,EDsINS
  2124.        CP kDelLn
  2125.       JP Z,EDsDELLN
  2126.        CP kKpos;'K'
  2127.       JP Z,EDsBEG
  2128.        CP kLpos;'L'
  2129.       JP Z,EDsEND
  2130.        CP kY;'Y'
  2131.       JP Z,EsTi
  2132.        CP kU;'U'
  2133.       JP Z,EsNi
  2134.        CP kI;'I'
  2135.       JP Z,EsEi
  2136.      ; SUB 4
  2137.      ; JZ EDsTRU
  2138.      ; DEC A
  2139.      ; JP Z,EDsINV
  2140.        cp key_left ;SUB 3+5
  2141.        jr Z,EDsLR
  2142.        cp key_right ;DEC A
  2143.        jr Z,EDsLR
  2144.        cp key_down ;DEC A
  2145.        JP NZ,EDsUP
  2146.        CALL GsMRK7
  2147.        LD A,(EsLIN)
  2148.        INC A
  2149.        AND 63
  2150.        jr Z,EDsCQ
  2151.        LD BC,(EsTOP)
  2152.        ld B,A
  2153.        SUB C
  2154.        CP SMPH
  2155.        jr NZ,EDsDQ
  2156.        PUSH BC
  2157.        CALL EDsSCUP
  2158.        POP BC
  2159.        LD A,C
  2160.        INC A
  2161.        LD (EsTOP),A
  2162.        PUSH BC
  2163.        LD E,SMPH-1
  2164.        ADD A,E
  2165.        CALL PRSMLIN
  2166.        POP BC
  2167. EDsDQ   LD A,B
  2168.        ld (EsLIN),A
  2169.        JP EDsCQ
  2170.       IF 0
  2171. EDsTRU
  2172.        CALL GsMRK7
  2173.        LD HL,EsLIN
  2174.        ld A,(HL)
  2175.        SUB SMPH
  2176.        LD (HL),A
  2177.        LD DE,EsTOP
  2178.        ld A,(DE)
  2179.        SUB SMPH
  2180.        jr NC,$+4
  2181.         XOR A
  2182.         LD (HL),A
  2183.        JR EDsInE
  2184.       ENDIF
  2185. EDsINS
  2186.        CALL EsGadr
  2187.        LD A,-4
  2188.        SUB L
  2189.        RET Z
  2190.        LD L,-5
  2191.        ld D,H
  2192.        ld E,-1
  2193.        ld B,0
  2194.        ld C,A
  2195.        LDDR
  2196.       INC L
  2197.       SRL L
  2198.       srl L
  2199.        LD DE,EsLOOP
  2200.        CALL incCOR
  2201.       jr Z,$+4
  2202.       jr NC,EDsINVQ
  2203.        ex de,hl
  2204.        INC HL
  2205.       DEC A
  2206.        ADD A,(HL)
  2207.        CP E
  2208.        jr C,EDsINVQ
  2209.        CP 63
  2210.        jr NC,$+3
  2211.         INC (HL)
  2212.        JR EDsINVQ
  2213. EDsDELLN
  2214.        CALL EsGadr
  2215.        LD D,H
  2216.        ld A,L
  2217.        ADD A,4
  2218.        LD E,A
  2219.        ex de,hl
  2220.        XOR A
  2221.        LD B,A
  2222.        SUB L
  2223.        RET Z
  2224.        LD C,A
  2225.       LD A,L
  2226.        LDIR
  2227.       LD L,A
  2228.       SRL L
  2229.       srl L
  2230.        LD DE,EsLOOP
  2231.        CALL decCOR
  2232.       jr NC,EDsINVQ
  2233.        ex de,hl
  2234.        INC HL
  2235.        ADD A,(HL)
  2236.        CP E
  2237.        jr C,$+3
  2238.         DEC (HL)
  2239.       IF 0
  2240.        JR EDsINVQ
  2241. EDsINV
  2242.        CALL GsMRK7
  2243.        LD HL,EsLIN
  2244.        ld A,(HL)
  2245.        ADD A,SMPH
  2246.        LD (HL),A
  2247.        ld DE,EsTOP
  2248.        ld A,(DE)
  2249.        ADD A,SMPH
  2250.        CP 65-SMPH
  2251.        jr C,EDsInE
  2252.        LD (HL),63
  2253.        LD A,64-SMPH
  2254. EDsInE  LD (DE),A
  2255.       ENDIF
  2256. EDsINVQ CALL SHOLK
  2257.        CALL PRSMP
  2258. GsMRK56
  2259.        LD E,56
  2260.        JR GsmpMRK
  2261. GsMRK7
  2262.        LD E,7
  2263. GsmpMRK
  2264.        LD A,(EsLIN)
  2265. EsTOP=$+1
  2266.        SUB 0
  2267.        ADD A,A
  2268.        add A,A
  2269.        add A,A
  2270.        LD L,A
  2271.        ld H,0
  2272.        ld BC,SMPATR;#58E4
  2273.        ADD HL,HL
  2274.        add HL,HL
  2275.        add HL,BC
  2276.        LD A,(EsX)
  2277.        OR A
  2278.        LD A,5
  2279.        jr Z,$+4
  2280.         LD A,7
  2281.        ADD A,L
  2282.        LD L,A
  2283.        LD (HL),E
  2284.        INC L
  2285.        LD (HL),E
  2286.        RET
  2287. PRORNos
  2288.       LD A,(OCT)
  2289.       ADD A,'0'
  2290.        LD DE,#E11
  2291.        CALL PRADD
  2292.        LD A,(EoSMP)
  2293.        CALL HEXDIG
  2294.        LD D,#18
  2295.        JP PRADD
  2296. PROCORN
  2297.       LD A,(OCT)
  2298.       ADD A,'0'
  2299.        LD DE,#1000+SMPH
  2300.        CALL PRADD
  2301.        LD A,(EsORN)
  2302.        CALL HEXDIG
  2303.        LD D,#1C
  2304.        JP PRADD
  2305. PRSMP
  2306.        LD E,0
  2307.        LD A,(EsTOP)
  2308.        ADD A,SMPH
  2309.        LD (PRSMPe),A
  2310.        SUB SMPH
  2311. PRSMP0  PUSH AF
  2312.        push DE
  2313.        CALL PRSMLIN
  2314.        POP DE
  2315.        pop AF
  2316.        INC E,A
  2317. PRSMPe=$+1
  2318.        CP 0
  2319.        jr NZ,PRSMP0
  2320.        RET
  2321. PRSMVOL
  2322.        PUSH DE
  2323.        push AF
  2324.        CALL PRADDPP
  2325.        LD D,11+SMPX
  2326.        CALL DE2SCR
  2327.        INC H
  2328.        ex de,hl
  2329.        LD H,EDORbf/256
  2330.        POP AF
  2331.        ADD A,A
  2332.        add A,A
  2333.        add A,3
  2334.        LD L,A
  2335.        ld A,(HL)
  2336.        AND #F
  2337.        LD (PRSMVa),A
  2338.        ex de,hl
  2339.        PUSH AF
  2340.        push HL
  2341.        LD A,#22
  2342.        ld B,7
  2343.        CALL BLOBER
  2344.        INC L
  2345.        DJNZ $-4
  2346.        LD A,#20
  2347.        CALL BLOBER
  2348.        POP HL
  2349.        pop AF
  2350.        LD E,A
  2351.        RRA
  2352.        PUSH AF
  2353.        AND 7
  2354.        jr Z,PRVOL7
  2355.        LD B,A
  2356.        ld A,#77
  2357. PRVOL0  LD D,H
  2358.       DUP 5
  2359.        LD (HL),A
  2360.        INC H
  2361.       EDUP
  2362.        LD (HL),A
  2363.        ld H,D
  2364.        INC L
  2365.        DJNZ PRVOL0
  2366. PRVOL7  LD A,E
  2367.        CP #F
  2368.        LD E,#72
  2369.        jr NZ,$+4
  2370.         LD E,#70
  2371.        POP AF
  2372.        LD A,E
  2373.        CALL C,BLOBER7
  2374. PRSMVa=$+1
  2375.        LD A,0
  2376.        POP DE
  2377.        LD D,#25
  2378.        JP D2HEX
  2379.