?login_element?

Subversion Repositories NedoOS

Rev

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

  1. FRIY2  ;DS #404;from ldlens
  2. ldlens  DS 298
  3. ddlens  DS 48
  4. rdlens  DS 28 ;#2AA+256
  5. FRIY2ln=$-FRIY2
  6.  
  7. disp    DS 3
  8.  
  9. ARCBEG  DS 7 ;FIRST 7 BYTES OF RAR
  10.  
  11.         align 256
  12. bdlens=$-19
  13. HEXBUF=$-19;24;TOO MUCH
  14. DECBUF ;DB 0
  15. ;begin
  16. midBT ;круглый адрес!
  17. ;tree added 3,bits sub L(bits=0 оставлено)
  18.       ;L=00   2   4   6   8   A   C   E
  19.      db #00,#03,#00,#04,#00,#05,#00,#06,#00,#07,#00,#08,#00,#09,#00,#0A
  20.         ;10  12  14  16  18  1A  1C  1E
  21.      db #F1,#0B,#EF,#0D,#ED,#0F,#EB,#11,#EA,#13,#E8,#17,#E6,#1B,#E4,#1F
  22.         ;20  22  24  26  28  2A  2C  2E
  23.      db #E3,#23,#E1,#2B,#DF,#33,#DD,#3B,#DC,#43,#DA,#53,#D8,#63,#D6,#73
  24.         ;30  32  34  36
  25.      db #D5,#83,#D3,#A3,#D1,#C3,#CF,#E3
  26.  
  27. ;tree added 1
  28. litBT  db #02,#01,#02,#05,#03,#09,#04,#11,#05,#21,#06,#41,#06,#81,#06,#C1
  29.        DISPLAY litBT,"(don't cross 256)",$
  30. ;added 1
  31. bigBT   db #00,#00,#01,#00
  32.         db #00,#00,#02,#00
  33.         db #00,#00,#03,#00
  34.         db #00,#00,#04,#00
  35.         db #00,#01,#05,#00
  36.         db #00,#01,#07,#00
  37.         db #00,#02,#09,#00
  38.         db #00,#02,#0D,#00
  39.         db #00,#03,#11,#00
  40.         db #00,#03,#19,#00
  41.         db #00,#04,#21,#00
  42.         db #00,#04,#31,#00
  43.         db #00,#05,#41,#00
  44.         db #00,#05,#61,#00
  45.         db #00,#06,#81,#00
  46.         db #00,#06,#C1,#00
  47.         db #00,#07,#01,#01
  48.         db #00,#07,#81,#01
  49.         db #00,#08,#01,#02
  50.         db #00,#08,#01,#03
  51.         db #00,#09,#01,#04
  52.         db #00,#09,#01,#06
  53.         db #00,#0A,#01,#08
  54.         db #00,#0A,#01,#0C
  55.         db #00,#0B,#01,#10
  56.         db #00,#0B,#01,#18
  57.         db #00,#0C,#01,#20
  58.         db #00,#0C,#01,#30
  59.         db #00,#0D,#01,#40
  60.         db #00,#0D,#01,#60
  61.         db #00,#0E,#01,#80
  62.         db #00,#0E,#01,#C0
  63.         db #01,#0F,#01,#00
  64.         db #01,#0F,#01,#80
  65.         db #02,#10,#01,#00
  66.         db #03,#10,#01,#00
  67.         db #04,#10,#01,#00
  68.         db #05,#10,#01,#00
  69.         db #06,#10,#01,#00
  70.         db #07,#10,#01,#00
  71.         db #08,#10,#01,#00
  72.         db #09,#10,#01,#00
  73.         db #0A,#10,#01,#00
  74.         db #0B,#10,#01,#00
  75.         db #0C,#10,#01,#00
  76.         db #0D,#10,#01,#00
  77.         db #0E,#10,#01,#00
  78.         db #0F,#10,#01,#00
  79.                      
  80. DEPK
  81.         if 1==0
  82.         LD HL,s8
  83.         LD DE,8
  84.         LD BC,#105
  85.        ;LD HY,B ;это была защита от im 1, чтобы можно было использовать ly (под мл. байт остатка длины файла) TODO
  86.         CALL DOD
  87.         LD HL,(s8+#E1)
  88.        ;LD A,(doSAVEk)
  89.        ;SUB "y"
  90.        ;JR NZ,$+4
  91.        ;LD H,A,L,A ;depack as trd
  92.         LD (stsec),HL ;начиная с какого сектора пишем
  93.         endif
  94.        
  95.         LD A,128
  96.         EXA
  97.        LD A,(FLAGF)
  98.        AND 16
  99.        JR NZ,DPsol
  100. ;;;nosolid
  101.       CALL PRTHEE
  102.         CALL RdTabs
  103.       LD A,-1
  104.       LD (restoreLAST),A
  105. ;;;~nosolid
  106. DPsol
  107.         if 1==0
  108.         LD HL,(DEPADR)
  109.          LD (gegAD),HL ;for hobeta
  110.        LD A,(doSAVEk)
  111.        CP "$"
  112.         LD A,(curPG)
  113.          LD (gegPG),A
  114.        JR NZ,nohobski
  115.         LD B,17
  116.         INC L
  117.         CALL Z,Lil
  118.         DJNZ $-4
  119.         LD (stAD),HL
  120.         LD (stPG),A
  121. nohobski
  122.         endif
  123.  
  124.         LD HL,uNPremn
  125.         LD A,(HL)
  126.        ;LD (SAVElenLS1),A
  127.         XOR A
  128.         SUB (HL)
  129.         LD lx,a;LY,A ;TODO fix, что-то не так с длиной распакованного файла
  130.         INC HL
  131.         LD A,0
  132.         SBC A,(HL)
  133.         LD (HL),A
  134.         LD C,A
  135.         INC HL
  136.         SBC A,A
  137.         SUB (HL)
  138.         LD (HL),A
  139.         LD B,A
  140.        RET Z
  141.       if frmcnt
  142.         ex af,af'
  143.        push af
  144.          push bc
  145.        push ix
  146.        push iy
  147.        OS_GETTIMER ;hlde=timer
  148.        pop iy
  149.        pop ix
  150.          pop bc
  151.        pop af
  152.        ex af,af'
  153.         LD (wastimer),de
  154.       ENDIF
  155.         XOR A
  156.         LD L,A
  157.         ld H,L
  158.       if frmcnt
  159.       LD (swaps),HL
  160.       ENDIF
  161.         SBC HL,BC
  162.         ;LD (SAVEsz),HL ;??? TODO
  163.         LD (SAVErmn),HL
  164.         CALL OUTcur
  165. DEPADR=$+1
  166.         LD DE,0;THEEND
  167.          CALL DEPK0
  168.         LD (DEPADR),DE
  169.        ;LD IY,23610
  170. ;;;
  171.       if frmcnt
  172.        call RST16
  173.        DB #D,#a,"frames=",0
  174.         OS_GETTIMER ;hlde=timer
  175.         ex de,hl
  176. wastimer=$+1
  177.         ld de,0
  178.         or a
  179.         sbc hl,de
  180.        LD A,5
  181.        CALL PRDEC
  182.        call RST16
  183.        DB "+swaps=",0
  184. swaps=$+1
  185.        LD HL,0
  186.        LD A,5
  187.        CALL PRDEC
  188.       ENDIF
  189.         jp SAVE
  190.  
  191. DEPK0i
  192.         LD HL,uNPremn+1
  193.         INC (HL)
  194.        ;jr $
  195.        JR NZ,DEPK0
  196.        JP GPqI
  197.  
  198.        if retree==0
  199. NEWDEMN
  200. ;?/frame
  201.         ;LD A,(IX)
  202.         ;INC LX
  203.         ;CALL Z,LDAsec
  204.         rarrdbyte
  205.         ;SCF
  206.         RLA
  207.         JR C,DEMNC
  208.         JP DEMNNC
  209.        endif
  210. yBs
  211.         CALL store
  212.         JP yBse
  213. yBYTE
  214.      EXX
  215.      LD (DE),A ;page=curPG
  216.      INC E
  217.      JR Z,yBs
  218. yBse   INC lx;LY
  219.        JR Z,DEPK0i
  220. DEPK0
  221.         EXX
  222. DEPK0X
  223.        if retree
  224.         if 1==0
  225.         exx
  226.         jr $
  227.         ld a,d
  228.         sub 0xc2
  229.         ld d,a
  230.         ld a,e
  231.         sub 0x5e
  232.         or d
  233.         jr z,$
  234.         ld a,d
  235.         add a,0xc2
  236.         ld d,a
  237.         exx
  238.         endif
  239.        
  240.         ex af,af'
  241.        call reld
  242.        ex af,af'
  243.         ld a,c
  244. ;1.5t/frame
  245.        djnz yBYTE
  246.        else
  247.         LD HL,ld
  248.         EXA
  249. DEMN0   ADD A,A
  250.         JR Z,NEWDEMN
  251.         JR NC,$+4 ;ноль
  252. DEMNC   INC L  ;единица
  253.         INC L;HL
  254. DEMNNC  LD C,(HL)
  255.         INC L
  256.         LD H,(HL)
  257.         LD L,C
  258.        IF (ld/256)&#40
  259.         BIT 6,H
  260.        ELSE
  261.        if (ld/256)&#80
  262.         BIT 7,H
  263.        else
  264.        IF (ld/256)&#20
  265.         BIT 5,h
  266.        ENDIF
  267.        endif
  268.        ENDIF
  269.         JP NZ,DEMN0
  270.         EXA
  271.         LD A,C
  272. ;1.5t/frame
  273.        DEC H
  274.        JR NZ,yBYTE
  275.        endif
  276. nBYTE
  277.         SUB 270&0xff
  278.        JP C,m270 ;<270
  279. ;270..297
  280.        ADD A,A
  281.       LD H,midBT/256
  282.        LD L,A
  283.     ;LD BC,midBT
  284.     ;ADD HL,BC
  285.        ADD A,(HL)
  286.       INC L
  287.        LD L,(HL)
  288.       if retree
  289.       ld h,b;0
  290.       else
  291.       LD H,0
  292.       endif
  293.        JP NC,na270
  294.         CALL LDA18
  295.         ADD HL,BC
  296. na270
  297.       ex de,hl;PUSH HL;!!!!!!! ;TODO ex de,hl
  298.         LD HL,dd
  299.         CALL DEHUFF
  300.        SLA L
  301.        sla L
  302.       LD BC,bigBT
  303.       ADD HL,BC
  304.        ;LD H,'bigBT
  305.         XOR A
  306.         OR (HL)
  307.         LD (disp+2),A
  308.        JR NZ,diN0
  309.         INC L
  310.         ADD A,(HL)
  311.        JR Z,diNADD
  312.         INC L
  313.         CALL LDA
  314.         LD A,(HL)
  315.         INC L
  316.         LD H,(HL)
  317.         LD L,A
  318.         ADD HL,BC
  319.         LD (disp),HL
  320.         JR C,dIIputs
  321. ;3t/frame
  322.         LD A,H
  323.       ex de,hl;POP HL ;!!!!!!! ;TODO ex de,hl
  324.         CP #20
  325.        JP C,putsPUT
  326.         INC HL
  327.        JP putsPUT
  328. dIIputs LD A,1
  329.         JP eIIputs
  330. diNADD
  331.         INC L
  332.         LD A,(HL)
  333.         LD (disp),A
  334.         LD HL,0
  335.         LD (disp+1),HL
  336.       ex de,hl;POP HL ;!!!!!!! ;TODO ex de,hl
  337.        JP putsPUT
  338. diN0
  339. ;10t/frame
  340.         INC L
  341.        LD A,(HL) ;#F/#10
  342.         INC L
  343.         CALL LDA
  344.         LD A,(HL)
  345.         INC L
  346.         LD H,(HL)
  347.         LD L,A
  348.         ADD HL,BC
  349.         LD (disp),HL
  350.         LD A,(disp+2)
  351.         ADC A,0
  352. eIIputs
  353.         LD (disp+2),A
  354.       ex de,hl;POP HL ;!!!!!!! ;TODO ex de,hl
  355.         INC HL
  356.         CP 4
  357.        JP C,putsPUT
  358.         INC HL
  359.        JP putsPUT
  360. y269
  361.        EXX
  362.        PUSH DE
  363.         CALL RdTabs
  364.        POP DE
  365.        JP DEPK0
  366.  
  367. m270    INC A
  368.        JR Z,y269 ;269
  369. n256    ADD A,8
  370.        JP C,br261 ;261..268
  371.         ADD A,4
  372.        JP NC,GETPUT;256
  373. ;257..260->0..3
  374.        RRCA
  375.        RRCA
  376.       LD HL,(ind03)
  377.       ADD A,L
  378.       LD L,A
  379.       ;only +5 frames:
  380.       ;LD B,0
  381.       ;DJNZ $
  382.        LD DE,disp
  383.        LDI
  384.        LDI
  385.        LDI
  386.        ;jr $
  387.         LD HL,rd
  388.         CALL DEHUFF
  389.        SLA L
  390.     ;LD BC,midBT
  391.     ;ADD HL,BC
  392.        LD H,midBT/256
  393.        LD A,L
  394.         ADD A,(HL)
  395.         INC L
  396.         LD L,(HL)
  397.        LD BC,0
  398.        LD H,B
  399.         CALL C,LDA18
  400.         ADD HL,BC
  401.         LD A,(disp+2)
  402.         CP 4
  403.         JR C,$+3
  404.         INC HL
  405.       ;INC HL
  406.         OR A
  407.         JR NZ,I1puts
  408.         LD BC,(disp)
  409.         LD A,B
  410.         CP #20
  411.         JR NC,I1puts
  412.        DEC HL
  413.         DEC BC
  414.         DEC B
  415.        JP M,putsPUT
  416. I1puts  INC HL
  417.        JP putsPUT
  418. ;261..268
  419. br261  ADD A,A
  420.        LD HL,litBT
  421.       ADD A,L
  422.        LD L,A
  423.        LD A,(HL)
  424.        INC L
  425.         LD L,(HL)
  426.         CALL LDA18
  427.         LD H,B
  428.         ADD HL,BC
  429.         LD (disp),HL
  430.       XOR A
  431.       LD (disp+2),A
  432.         LD HL,2
  433. putsPUT
  434.        LD (puts),HL
  435. GETPUT
  436. ;2t/frame in haets20.rar
  437. ind03=$+1
  438.        LD HL,TAB44
  439.        LD A,L
  440.        SUB 64
  441.        LD L,A
  442.        LD (ind03),A
  443.         LD A,(disp)
  444.         LD (HL),A
  445.         INC L
  446.         LD BC,(disp+1)
  447.         LD (HL),C
  448.         INC L
  449.         LD (HL),B
  450. _2      LD HL,+(1-INITIALMEMPAGES)*64+(THEEND/256)-256 ;INITIALMEMPAGES;6 = число страниц памяти?
  451.         ADD HL,BC
  452. GPaddrpatch=$+1
  453.         JP NC,GPmem ;подменяется на копию p48 (оригинал p48 копируется поверх окончания GPmem, т.к. изначально инициализатор затирался, и p48 тоже, и так быстрее выход из p48)
  454.         ;jr $ ;сюда не попадаем
  455.        
  456. ;TODO
  457.         if 1==0
  458. GPdisk
  459. ;глючит :(
  460. ;FROM=disk
  461. ;solid shift
  462.         EXX
  463.         PUSH DE
  464.         EXX
  465.         POP HL
  466.        LD BC,(stAD)
  467.        LD B,0
  468.        OR A
  469.        SBC HL,BC
  470. ;
  471.        LD B,A
  472.        LD A,L
  473.        SUB B
  474.        PUSH AF
  475. ;beg.buf on disk=stsecnw
  476. ;sub secs back
  477.        PUSH AF
  478.         LD A,(curPG)
  479.         SLA H
  480.         sla H
  481.       ADC A,0 ;V0.42
  482.         RRA
  483.         RR H
  484.         RRA
  485.         RR H
  486.         LD L,H
  487.         ld H,A
  488.        POP AF
  489.         LD BC,(disp+1)
  490.         SBC HL,BC
  491.      ;LD BC,0   ;#80-'THEEND
  492.      ;ADD HL,BC ;???
  493. ;HL=secs add
  494.         dup 4
  495.         add hl,hl
  496.         edup
  497. stsecnw=$+1 ;C<<4
  498.        LD BC,0
  499.         ADD HL,BC
  500. ;       JR C,notr0
  501. ;       LD A,H
  502. ;       ADD A,160
  503. ;       LD H,A
  504. ;notr0
  505.         LD A,L
  506.         RRCA
  507.         RRCA
  508.         RRCA
  509.         RRCA
  510.         LD L,A
  511.        LD (resec),HL
  512.        EXX
  513.        CALL restore
  514.         POP AF
  515.         LD L,A
  516.        LD BC,(puts)
  517.         ADD A,C
  518.         LD A,(curPG)
  519.         DEC B
  520.        JR Z,GPftor
  521.        JR C,GPftor
  522.         LD B,D
  523.         INC B
  524.        JP NZ,GPmfst
  525.         DEC B ;B=-1
  526. GPftor  INC B
  527.         CALL OUTME
  528. GPf1    LD A,(HL)
  529.         LD (DE),A
  530.         INC L
  531.         CALL Z,restore ;read known sector from destination file
  532.         INC E
  533.         CALL Z,store
  534.         DEC BC
  535.         LD A,B
  536.         OR C
  537.         JR NZ,GPf1
  538.         endif
  539. GPqSLOW
  540.         LD HL,(puts)
  541.         LD C,lx;LY
  542.         LD A,(uNPremn+1)
  543.         LD B,A
  544.         ADD HL,BC
  545.         LD A,L
  546.         LD lx,a;LY,A
  547.         LD A,H
  548.         LD HL,uNPremn+1
  549.         LD (HL),A
  550.        JP NC,DEPK0
  551.        JP GPqI
  552.        
  553. GPmem
  554.         EXX
  555.        LD H,D
  556.        ld L,E
  557.        LD BC,(disp)
  558.         LD A,(curPG)
  559.         SLA H
  560.         sla H ;CY=1
  561.       ADC A,-1;V0.42
  562.         RRA
  563.         RR H ;CY=0
  564.         RRA
  565.         RR H ;CY=0
  566. ;AHL=adrinbuf-hwost
  567.         SBC HL,BC
  568.        EXX
  569.        SBC A,B
  570.        EXX
  571.        ;RL H
  572.        ;RLA
  573.        ;RL H
  574.        ;ADC A,A ;CY=1 or M
  575.        ;JP P,$+5
  576.      ;V0.42
  577.         RL H
  578.         RLA
  579.         RL H
  580.         RLA
  581.         SCF
  582.         RR H
  583.         SCF
  584.         RR H
  585.        CP 128 ;что это? TODO
  586.        JR C,GPendif
  587.         LD C,A ;что это? TODO
  588.         LD A,H
  589.         ADD A,#C0-(THEEND/256)
  590.         JR NC,GPelse
  591.         INC C
  592.         JR Z,GPthen
  593. GPelse  OR 192
  594.         LD H,A
  595. _p1      LD A,INITIALMEMPAGES;6 ;число страниц памяти?
  596.         ADD A,C
  597.         JR C,GPendif
  598. GPthen  RES 6,H
  599.         XOR A
  600. GPendif
  601. GPmemsz=$-GPmem
  602.         LD (frPG),A
  603. puts=$+1
  604.         LD BC,0 ;2..261
  605.         DEC B
  606.        JR Z,GPmtor
  607.         LD B,D
  608.         INC B
  609.        JR Z,GPmt2
  610.         LD B,H
  611.         INC B
  612.        JR Z,GPmt2
  613. curPG=$+1
  614.         CP 0
  615.        JR NZ,GPmt3
  616. GPmfst
  617.         LD B,0
  618.        LD A,C
  619.         LDIR
  620. GPq
  621.        ADD A,lx;LY
  622.        LD lx,a;LY,A
  623.        JP NC,DEPK0
  624.         LD HL,uNPremn+1
  625.         INC (HL)
  626.        JP NZ,DEPK0
  627. GPqI    INC HL
  628.         INC (HL)
  629.        JP NZ,DEPK0
  630.         RET
  631.  
  632. GPm2    LD A,(frPG)
  633. GPmt2   CALL OUTME
  634.         LD B,(HL)
  635.         INC L
  636.         CALL Z,corFROM
  637.         CALL OUTcur
  638.         LD A,B
  639.         LD (DE),A
  640.         INC E
  641.         CALL Z,store
  642.         DEC C
  643.         JP NZ,GPm2
  644.         JR GPe
  645.  
  646. ;t=2f
  647. GPm3    LD A,(frPG)
  648. GPmt3   CALL OUTME
  649.         LD A,(HL)
  650.         PUSH AF
  651.         INC L
  652.         CALL Z,corFROM
  653.         LD B,(HL)
  654.         INC L
  655.         CALL Z,corFROM
  656. curPG2=$+1
  657.         LD A,0
  658.         CALL OUTME
  659.         POP AF
  660.         LD (DE),A
  661.         INC E
  662.         CALL Z,store
  663.         DEC C
  664.         JR Z,GPe
  665.         LD A,B
  666.         LD (DE),A
  667.         INC E
  668.         CALL Z,store
  669.         DEC C
  670.         JP NZ,GPm3
  671. GPe     LD A,(puts)
  672.         JP GPq
  673.  
  674. GPmtor  INC B
  675. GPm0tor LD A,(frPG)
  676.         CALL OUTME
  677.         LD A,(HL)
  678.        PUSH AF
  679.         INC L          ;
  680.         CALL Z,corFROM ;v0.60!
  681.         CALL OUTcur
  682.        POP AF
  683.         LD (DE),A
  684.         INC E
  685.         CALL Z,store
  686.         DEC BC
  687.         LD A,B
  688.         OR C
  689.         JR NZ,GPm0tor
  690.        JP GPqSLOW
  691. store
  692.         INC D
  693.         RET NZ
  694.         LD A,(curPG)
  695.         INC A
  696.         LD D,#C0
  697. _4      CP INITIALMEMPAGES;6 ;число страниц памяти?
  698.         JR Z,storer
  699.         jp OUTMEcu
  700.  
  701. storer
  702. ;first store - ADDR to ENDMEM,
  703. ; ADDR=bufstor+hwostik
  704. ;posledujushie - ADDR to ENDMEM
  705. ;hwostik ENDMEM -> bufstor, save next time
  706. ; iz SAVErmn ne wychitaetsa
  707.  
  708. ;SAVE saves ADDR, (SAVErmn) SECTORS.
  709.        IF border
  710.         LD A,4
  711.         OUT (-2),A
  712.        ENDIF
  713.         PUSH BC,HL
  714.         push iy;IX
  715.         CALL SAVbeg
  716. ;HL=addr,A=page
  717.       PUSH AF
  718. storePG0
  719.         LD A,H
  720.         INC A
  721.         JR NZ,nRAZLOM
  722.         LD DE,bufstor
  723.         PUSH DE
  724.         LD B,A
  725.         SUB L
  726.         LD C,A
  727.        DEC C
  728.        INC BC
  729.         EXA
  730.         INC A
  731. _5      CP INITIALMEMPAGES;6 ;число страниц памяти?
  732.        JR Z,storQQQ
  733.         LDIR
  734.         LD H,#C0 ;V0.42
  735.        PUSH AF
  736.         CALL OUTME
  737.        POP AF
  738.         EXA
  739.         XOR A
  740.         SUB E
  741.         JR Z,$+5
  742.         LD C,A
  743.         LDIR
  744.        DEC H
  745.         LD A,1
  746.         JR yRAZLOM
  747. nRAZLOM
  748.         PUSH HL
  749.         NEG
  750. yRAZLOM LD E,A
  751.         ADD A,H
  752.         LD H,A
  753.         EX (SP),HL
  754.        PUSH DE
  755. ;e=number of sectors to save
  756. ;hl=addr
  757.         if 1==1
  758.         ld d,e
  759.         ld e,0
  760.         call SAVEBLOCK
  761.         else
  762.        
  763.         LD C,6
  764.         LD B,E
  765. stsec=$+1
  766.         LD DE,0
  767.         CALL DOD
  768.         LD HL,(#5CF4)
  769.         LD (stsec),HL
  770.        
  771.         endif
  772.        
  773.        POP DE
  774. SAVErmn=$+1
  775.         LD HL,0
  776.         XOR A
  777.         LD D,A ;de=number of sectors to save (saved)
  778.         SBC HL,DE
  779.         LD (SAVErmn),HL
  780.         POP HL
  781.        JR storePG0
  782. storQQQ
  783.        POP AF ;de
  784.         LD E,L
  785.         PUSH DE
  786.         LDIR
  787.         POP HL
  788.  
  789.         if 1==0
  790. ;TODO это для возможности чтения уже записанного
  791. ;TODO длину сохраняемого файла - SAVErmn*256, сделать SEEK, прочитать, а потом SEEK обратно (будет ли это работать в FATFS? в TRDOSFS не будет)
  792.        PUSH HL
  793.        LD DE,(stsec)
  794.        LD BC,#106
  795.        CALL DOD
  796.         LD HL,(#5CF4)
  797.         LD A,L
  798.         ADD A,A
  799.         add A,A
  800.         add A,A
  801.         add A,A
  802.         LD L,A
  803.         LD (stsecnw),HL
  804.        POP HL
  805.         endif
  806.  
  807.       POP AF
  808.         EXA
  809.         XOR A ;!
  810.        IF border
  811.         OUT (-2),A
  812.        ENDIF
  813.         LD (stPG),A
  814.         LD (stAD),HL
  815.         LD DE,THEEND
  816.         POP iy;IX
  817.         pop HL,BC
  818.         JP OUTMEcu
  819. corFROM
  820.         INC H
  821.         RET NZ
  822. frPG=$+1
  823.         LD A,0
  824.         INC A
  825.         LD (frPG),A
  826.         LD H,#C0
  827. _3      CP INITIALMEMPAGES;6 ;число страниц памяти?
  828.         JP NZ,OUTME
  829.         XOR A
  830.         LD H,THEEND/256
  831.         LD (frPG),A
  832.         JP OUTME
  833.  
  834. Lil     INC H
  835.         RET NZ
  836.         LD H,#C0
  837.         INC A
  838. L_pg    CP 0
  839.         JR NZ,$+5
  840.         XOR A
  841.         LD H,THEEND/256
  842.         LD C,A
  843.         CALL OUTME
  844.         LD A,C
  845.         RET
  846.