?login_element?

Subversion Repositories NedoOS

Rev

Rev 818 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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