?login_element?

Subversion Repositories NedoOS

Rev

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