Subversion Repositories NedoOS

Rev

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

  1. prwindow_edit
  2. ;hl=window
  3. ;out: CY=OK, de=filename
  4.         call prwindow_text ;de=YX of last line
  5.         ld hl,tnewfilename ;hl=textaddr
  6.         ld a,tnewfilename_sz ;a=maxsz
  7.         push hl
  8.         call editline
  9.         pop de ;de=filename
  10.         cp key_esc
  11.         ret z ;cancel
  12.         scf
  13.         ret
  14.  
  15.  
  16. prwindow_waitkey
  17. ;hl=window
  18. ;out: CY=OK
  19. ;        ld (prwindow_waitkey_addr),hl; commented by demige 190511
  20.         call prwindow_text; insert by demige 190511
  21. ; comment by demige 190511: for why reprinting window after each keypress? On second print getmarkedfiles returns wrong value.
  22. prwindow_waitkey0
  23. ;prwindow_waitkey_addr=$+1 ; comment by demige 190511
  24. ;        ld hl,0 ; comment by demige 190511
  25. ;        call prwindow_text ; comment by demige 190511
  26.         YIELDGETKEYLOOP
  27.         ld a,c
  28.         cp key_esc
  29.         ret z
  30.         cp 'n'
  31.         ret z
  32.         ;cp 'N'
  33.         ;ret z
  34.         cp key_redraw
  35.         ret z
  36.         cp 'y'
  37.         jr z, prwindow_waitkey_keyyes
  38.         ;cp 'Y'
  39.         ;jr z, prwindow_waitkey_keyyes
  40.         cp key_enter
  41.         jr nz,prwindow_waitkey0
  42. prwindow_waitkey_keyyes
  43.         scf
  44.         ret
  45.  
  46. prwindow_text
  47. ;hl = window text
  48. ;out: ;de=YX of last line
  49.         ld e,(hl) ;x
  50.         inc hl
  51.         ld d,(hl) ;y
  52.         inc hl
  53.         ld c,(hl) ;wid
  54.         inc hl
  55.         ld b,(hl) ;hgt
  56.         inc hl
  57.  
  58.         push hl ;text
  59.  
  60.         push de
  61.         call prwin
  62.         pop de
  63.         inc d
  64.         inc e
  65.         inc e
  66.         call nv_setxy ;keeps de,hl
  67.        
  68.         pop hl ;text
  69. prwindow_waitkey_text0
  70.         ld a,(hl)
  71.         or a
  72.         ret z
  73.         dec a;cp 1
  74.         jr z,prwindow_waitkey_textnfiles
  75.         dec a;cp 2
  76.         jr z,prwindow_waitkey_textoutertext
  77.         dec a;cp 3
  78.         jr z,prwindow_waitkey_textnextline
  79.         push de
  80.         call prtext
  81.         pop de
  82.         jr prwindow_waitkey_text0
  83. prwindow_waitkey_textnfiles
  84.         inc hl
  85.         push de
  86.         push hl
  87.         call getmarkedfiles;countmarkedfiles
  88.         call prdword
  89.         pop hl
  90.         pop de
  91.         jr prwindow_waitkey_text0
  92. prwindow_waitkey_textoutertext
  93.         inc hl
  94.         push de
  95.         ld e,(hl)
  96.         inc hl
  97.         ld d,(hl)
  98.         inc hl
  99.         push hl
  100.         ex de,hl
  101.         call prtext
  102.         pop hl
  103.         pop de
  104.         jr prwindow_waitkey_text0
  105. prwindow_waitkey_textnextline
  106.         inc hl
  107.         inc d
  108.         call nv_setxy ;keeps de,hl
  109.         jr prwindow_waitkey_text0
  110.  
  111. getmarkedfiles
  112. ;ix = panel
  113. ;out: hl'hl = files
  114.         ld hl,0
  115.         exx
  116.         ld l,(ix+PANEL.markedfiles)
  117.         ld h,(ix+PANEL.markedfiles+1)
  118.         ret
  119.  
  120. changemark_hl
  121.         ;jr $
  122.         push hl
  123.         ld a,(hl)
  124.         xor 1
  125.         ld (hl),a
  126.         ld bc,FCB_FSIZE
  127.         add hl,bc
  128.         ld e,(hl)
  129.         inc hl
  130.         ld d,(hl)
  131.         inc hl
  132.         ld c,(hl)
  133.         inc hl
  134.         ld b,(hl)
  135. ;bcde = file size
  136.         ld l,(ix+PANEL.markedfiles)
  137.         ld h,(ix+PANEL.markedfiles+1)
  138.         inc hl
  139.         jr nz,changemark_hlq ;set mark
  140. ;remove mark
  141.         dec hl
  142.         dec hl
  143.         xor a
  144.         sub e
  145.         ld e,a
  146.         ld a,0
  147.         sbc a,d
  148.         ld d,a
  149.         ld a,0
  150.         sbc a,c
  151.         ld c,a
  152.         sbc a,b
  153.         sub c
  154.         ld b,a ;bcde= -bcde
  155. changemark_hlq
  156.         ld a,(ix+PANEL.markedsize)
  157.         add a,e
  158.         ld (ix+PANEL.markedsize),a
  159.         ld a,(ix+PANEL.markedsize+1)
  160.         adc a,d
  161.         ld (ix+PANEL.markedsize+1),a
  162.         ld a,(ix+PANEL.markedsize+2)
  163.         adc a,c
  164.         ld (ix+PANEL.markedsize+2),a
  165.         ld a,(ix+PANEL.markedsize+3)
  166.         adc a,b
  167.         ld (ix+PANEL.markedsize+3),a
  168.         ld (ix+PANEL.markedfiles),l
  169.         ld (ix+PANEL.markedfiles+1),h
  170.         pop hl
  171.         ret
  172.  
  173. getmarkedfilessize
  174. ;ix = panel
  175. ;out: hl'hl = files
  176.         ld l,(ix+PANEL.markedsize+2)
  177.         ld h,(ix+PANEL.markedsize+3)
  178.         exx
  179.         ld l,(ix+PANEL.markedsize)
  180.         ld h,(ix+PANEL.markedsize+1)
  181.         ret
  182.        
  183. getfiles
  184. ;ix = panel
  185. ;out: hl'hl=files (схч ".", "..")
  186.         ld hl,0
  187.         exx
  188.         ld l,(ix+PANEL.filesdirs)
  189.         ld h,(ix+PANEL.filesdirs+1)
  190.         ret
  191.  
  192. countfiles
  193.         ld hl,proc_count
  194.         jp processfiles ;hl'hl=files (схч ".", "..")
  195. proc_count
  196.         inc iy
  197.         ret
  198.  
  199. getfilessize
  200. ;ix = panel
  201.         ;exx
  202.         ld l,(ix+PANEL.totalsize+2)
  203.         ld h,(ix+PANEL.totalsize+3)
  204.         exx
  205.         ld l,(ix+PANEL.totalsize)
  206.         ld h,(ix+PANEL.totalsize+1)
  207.         ret ;hl'hl=size
  208.  
  209. processfiles
  210. ;ix = panel address (kept)
  211. ;hl = procedure address (uses hl=fcb, hl'iy = accumulator)
  212. ;out: hl'hl = result
  213.         ld (processfiles_proc),hl
  214.         ;ld a,(ix+PANEL.pg)
  215.         ;SETPG32KHIGH
  216.         call nv_getpanelfiles_bc
  217.         ld l,(ix+PANEL.pointers)
  218.         ld h,(ix+PANEL.pointers+1)
  219.         exx
  220.         ld hl,0
  221.         exx
  222.         ld iy,0
  223. processfiles0  
  224.         ld a,b
  225.         or c
  226.         jr z,processfilesq
  227.         push bc
  228.         call getfilepointer_de_fromhl
  229.         push hl
  230.         ex de,hl
  231.         call isthisdotdir_hl
  232. processfiles_proc=$+1
  233.         call nz,0 ;copy ьюцхЄ яхЁхъы■ўрЄ№ ёЄЁрэшЎ√ (ёхщўрё эх яхЁхъы■ўрхЄ)
  234.         pop hl
  235.         pop bc
  236.         dec bc
  237.         jp processfiles0
  238. processfilesq
  239.         push iy
  240.         pop hl
  241.         ret
  242.  
  243. gotofilepointer_numberde
  244.         ld l,(ix+PANEL.pointers)
  245.         ld h,(ix+PANEL.pointers+1)
  246.         add hl,de
  247.         add hl,de
  248.         ret
  249.  
  250. getfilepointer_de_fromhl
  251. ;out: hl=next pointer
  252.         ld a,(ix+PANEL.poipg)
  253.         SETPG32KHIGH
  254.         ld e,(hl)
  255.         inc hl
  256.         ld d,(hl)
  257.         inc hl
  258.          ;push bc
  259.         ;ld a,(ix+PANEL.pg) ;TODO from de
  260.         ;SETPG32KHIGH
  261.         ld a,e
  262.         and 31
  263.         add a,(ix+PANEL.pgadd)
  264.         PGW3strpg
  265.         push af
  266.         ld a,e
  267.         and 0xe0
  268.         ld e,a
  269.         pop af
  270.          ;pop bc
  271.         ret
  272.  
  273. putfilepointer_de_tohl
  274. ;out: hl=next pointer
  275.          ;push bc
  276.         ld a,(ix+PANEL.poipg)
  277.         SETPG32KHIGH
  278.          ;pop bc
  279.         ld (hl),e      
  280.         inc hl
  281.         ld (hl),d
  282.         inc hl
  283.         ret
  284.  
  285. swapfilepointers_hl_de
  286. ;out: hl=next pointer
  287.         ld a,(ix+PANEL.poipg)
  288.         SETPG32KHIGH
  289.         ld a,(de)
  290.         ldi
  291.         dec hl
  292.         ld (hl),a
  293.         inc hl
  294.         ld a,(de)
  295.         ldi
  296.         dec hl
  297.         ld (hl),a
  298.         inc hl
  299.         ret
  300.  
  301. isthisdotdir_hl
  302. ;out: z="." or ".."
  303.         inc hl
  304.         ld a,(hl)
  305.         cp '.'
  306.         dec hl
  307.         ret
  308.  
  309. drawpanelfilesandsize
  310. ;ix=panel
  311.         call nv_getpanelxy_de
  312.         ld a,d
  313.         add a,22
  314.         ld d,a
  315.         inc e
  316.         inc e
  317.         call nv_setxy
  318.         ld e,COLOR
  319.         call nv_setcolor
  320.         call getmarkedfiles
  321.         ld a,h
  322.         or l
  323.         push af ;z = no marked
  324.         call z,getfiles
  325.         push ix
  326.         call prdword
  327.         ld hl,wordfiles
  328.         call prtext
  329.         pop ix
  330.         pop af ;z = no marked
  331.         jr nz,drawpanelfilesandsize_markedsize
  332.         call getfilessize
  333.         jr drawpanelfilesandsize_markedsizeq
  334. drawpanelfilesandsize_markedsize
  335.         call getmarkedfilessize
  336. drawpanelfilesandsize_markedsizeq
  337.         push ix
  338.         call prdword
  339.         ld hl,wordbytes
  340.         call prtext
  341.         pop ix
  342.         ret
  343.  
  344. nv_setxy
  345. ;de=yx (kept)
  346. ;keeps hl
  347.         push de
  348.         push hl
  349.         push ix
  350.         OS_SETXY
  351.         pop ix
  352.         pop hl
  353.         pop de
  354.         ret
  355.        
  356. setpanelcolor
  357.         ld e,PANELCOLOR
  358. nv_setcolor
  359. ;e=color
  360.         push ix
  361.         OS_SETCOLOR
  362.         pop ix
  363.         ret
  364.        
  365. getfcbaddrundercursor
  366.         call nv_getdirpos_hl
  367. getfcbaddrunderhl
  368.         ld ix,(curpanel)
  369.         ;ld a,(ix+PANEL.pg)
  370.         ;SETPG32KHIGH
  371.         ex de,hl
  372.         ;ld l,(ix+PANEL.pointers)
  373.         ;ld h,(ix+PANEL.pointers+1)
  374.         ;add hl,de
  375.         ;add hl,de
  376.         call gotofilepointer_numberde
  377.         ;ld a,(hl)
  378.         ;inc hl
  379.         ;ld h,(hl)
  380.         ;ld l,a ;hl=FCB
  381.         call getfilepointer_de_fromhl
  382.         ex de,hl ;hl=FCB
  383.         ret
  384.        
  385. getfcbundercursor
  386.         call getfcbaddrundercursor
  387. getfcbfromhl
  388.         ld de,fcb
  389.         ld bc,FCB_sz
  390.         ldir
  391.         ret
  392.        
  393. panelprtext
  394. ;print max 37 chars (dir)
  395. ;hl = text
  396. ;keeps ix
  397.         push ix
  398. panelprtext0
  399.         ld a,(hl)
  400.         or a
  401.         jr z,panelprtextq
  402.         push bc
  403.         push hl
  404.         PRCHAR
  405.         pop hl
  406.         pop bc
  407.         inc c
  408.         inc hl
  409.         ld a,c
  410.         cp 37
  411.         jp nz,panelprtext0
  412. panelprtextq
  413.         pop ix
  414.         ret
  415.  
  416. prtext
  417. ;out: hl=after terminator
  418. prtext0
  419.         ld a,(hl)
  420.         inc hl
  421.         or a
  422.         ret z
  423.         push hl
  424.         PRCHAR ;testing (351/352t) (was 986/987t)
  425.         pop hl
  426.         jp prtext0
  427.  
  428. cmdprNchars
  429. ;hl=word
  430. ;b=size word
  431.         push bc
  432.         ld a,(hl)
  433.         inc hl
  434.         push hl
  435.         PRCHAR
  436.         pop hl
  437.         pop bc
  438.         djnz cmdprNchars
  439.         ret
  440.  
  441. changedir_fromfcb
  442.         call setcurpaneldir
  443.         ld hl,fcb_filename
  444.         ld de,filenametext
  445.         push de
  446.         call cpmname_to_dotname
  447.         pop de
  448.         OS_CHDIR
  449.         ret
  450.      
  451. readfile_pages_dehl
  452.         ld a,d
  453.         SETPG32KHIGH
  454.         ld a,+(#c000+PROGSTART)/256
  455.         call cmd_loadpage
  456.         or a
  457.         ret nz
  458.        
  459.         ld a,e
  460.         SETPG32KHIGH
  461.         ld a,#c000/256
  462.         call cmd_loadpage
  463.         or a
  464.         ret nz
  465.        
  466.         ld a,h
  467.         SETPG32KHIGH
  468.         ld a,#c000/256
  469.         call cmd_loadpage
  470.         or a
  471.         ret nz
  472.        
  473.         ld a,l
  474.         SETPG32KHIGH
  475.         ld a,#c000/256
  476.         jp cmd_loadpage
  477.  
  478. cmd_savepage
  479. ;hl=size
  480. ;out: a=error
  481.         push hl
  482.         ld de,#8000
  483.         OS_SETDTA
  484.         pop hl
  485.         ld de,fcb2
  486.         OS_FWRITE_NBYTES
  487.         ret
  488.        
  489. prwin
  490. ;de=yx
  491. ;bc=hgt,wid
  492.         ld a,c
  493.         sub 2
  494.         ld (winbeginstroka_wid),a
  495.         ld (winmidstroka_wid),a
  496.         ld (winendstroka_wid),a
  497.         ld hl,winbeginstroka
  498.         call prtableline
  499.         dec b
  500.         dec b
  501. winlineN_0     
  502.         inc d
  503.         ld hl,winmidstroka
  504.         call prtableline
  505.         djnz winlineN_0        
  506.         inc d
  507.         ld hl,winendstroka
  508.         jr prtableline
  509.        
  510. prtable
  511. ;de=yx
  512.         ld hl,prbeginstroka
  513.         call prtableline
  514.         ld b,CONST_HGT_TABLE   
  515. prtable0       
  516.         inc d
  517.         ld hl,prmidstroka
  518.         call prtableline
  519.         djnz prtable0
  520.         inc d
  521.         ld hl,prendstroka
  522. prtableline
  523. ;hl=tableline data
  524. ;de=yx
  525. ;b=hgt
  526. ;keeps bc,de,ix
  527.         push bc
  528.         call nv_setxy ;keeps de,hl
  529. prtableline0   
  530.         ld a,(hl)
  531.         or a
  532.         jr z,prtablelineq
  533.         inc hl
  534.         ld b,(hl)
  535.         inc hl
  536.         call prNsymbol
  537.         jr prtableline0
  538. prtablelineq
  539.         pop bc
  540.         ret
  541.  
  542. prNsymbol
  543. ;a=symbol
  544. ;b=count
  545.         push de
  546.         push hl
  547.         push ix
  548.         ld c,a
  549. prNsymbol0
  550.         push bc
  551.         ld a,c
  552.         PRCHAR
  553.         pop bc
  554.         djnz prNsymbol0
  555.         pop ix
  556.         pop hl
  557.         pop de
  558.         ret
  559.  
  560. ;;;;;;;;;;;;;;;;;;
  561. prNNcmd
  562. ;a=NN
  563.         ld c,10
  564.         call prNcmd
  565.         add a,'0'
  566.         PRCHAR
  567.         ret
  568. prNcmd
  569. ;a=NN
  570. ;c=divisor
  571.         ld b,'0'-1
  572.         sub c
  573.         inc b
  574.         jr nc,$-2
  575.         add a,c
  576.         push af
  577.         ld a,b
  578.         PRCHAR
  579.         pop af
  580.         ret
  581.        
  582. cmdprchar
  583.         push hl
  584.         push ix
  585.         PRCHAR
  586.         pop ix
  587.         pop hl
  588.         ret
  589.  
  590. nv_getpanelxy_de
  591.         ld e,(ix+PANEL.xy)
  592.         ld d,(ix+PANEL.xy+1)
  593.         ret
  594.  
  595. nv_getdirscroll_bc
  596.         ld c,(ix+PANEL.dirscroll)
  597.         ld b,(ix+PANEL.dirscroll+1)
  598.         ret
  599. nv_setdirscroll_bc
  600.         ld (ix+PANEL.dirscroll),c
  601.         ld (ix+PANEL.dirscroll+1),b
  602.         ret
  603.  
  604. nv_getpanelfiles_bc
  605.         ld c,(ix+PANEL.files)
  606.         ld b,(ix+PANEL.files+1)
  607.         ret
  608. nv_getdirpos_hl
  609.         ld l,(ix+PANEL.dirpos)
  610.         ld h,(ix+PANEL.dirpos+1)
  611.         ret
  612.  
  613. cpfiles_setdirpos
  614. ;hl=suggested dirpos (might be >= files)
  615. ;out: hl=dirpos
  616.         call nv_getpanelfiles_bc
  617.         dec bc
  618.         call minhl_bc_tobc
  619.         ld h,b
  620.         ld l,c
  621. nv_setdirpos_hl
  622.         ld (ix+PANEL.dirpos),l
  623.         ld (ix+PANEL.dirpos+1),h
  624.         ret
  625. nv_setdirpos_zero
  626.         ld hl,0
  627.         jr nv_setdirpos_hl
  628.  
  629. count_filecursor_y
  630. ;out: a=y, de=PANEL.xy
  631.         call nv_getpanelxy_de
  632.         ld a,(ix+PANEL.dirpos)
  633.         sub (ix+PANEL.dirscroll)
  634.         add a,d;(ix+PANEL.xy+1) ;y
  635.         ret
  636.  
  637. setfilecursorxy
  638.         push af
  639.         ld ix,(curpanel)
  640.         call count_filecursor_y
  641.         ld d,a
  642.         ;ld e,(ix+PANEL.xy)
  643.         inc d
  644.         inc e
  645.         pop af
  646.         push af
  647.         call nv_setxy
  648.         pop af ;color
  649.         ret
  650.  
  651. prfilecursor
  652. ;a=color
  653.         call setfilecursorxy
  654.         call drawfilecursor ;a=old color
  655.         ld ix,(curpanel)
  656.         ret
  657.  
  658. editcmd_readprompt_setendcmdx
  659.         ld ix,(curpanel)
  660.         call setpaneldir_makeprompt ;->prompt
  661.         ld hl,cmdbuf
  662.         call strlen
  663.         ld a,l
  664.         ld (curcmdx),a
  665.         ret
  666.  
  667. getanotherpanel_ix
  668. curpanel=$+1
  669.         ld bc,leftpanel
  670.         ld hl,0xffff&(leftpanel+rightpanel)
  671.         or a
  672.         sbc hl,bc
  673.         push hl
  674.         pop ix
  675.         ret
  676.        
  677. setanotherpaneldir
  678.         call getanotherpanel_ix
  679.         jr setpaneldir
  680.  
  681. setcurpaneldir
  682.         ld ix,(curpanel)
  683. setpaneldir
  684. ;ix=panel
  685.         push ix
  686.         pop hl
  687.         ld de,PANEL.dir
  688.         add hl,de
  689.         ex de,hl ;de=path
  690.         OS_CHDIR
  691.         ret
  692.        
  693. minhl_bc_tobc
  694.         or a
  695.         sbc hl,bc
  696.         add hl,bc
  697.         ret nc ;bc<=hl
  698.         ld b,h
  699.         ld c,l
  700.         ret
  701.  
  702. drawfilecursor
  703. ;de=yx
  704. ;a=color
  705. ;out: a=oldcolor
  706.         ld b,12
  707. drawfilecursor_sizeb
  708.         ld (drawfilecursor_color),a
  709.         push bc
  710.         push de
  711.         call nv_setxy
  712.         OS_GETATTR
  713.         pop de
  714.         pop bc
  715.         push af ;oldcolor
  716. drawfilecursor0
  717.         push bc
  718.         push de
  719.         call nv_setxy
  720. drawfilecursor_color=$+1
  721.         ld e,FILECURSORCOLOR
  722.         OS_PRATTR
  723.         pop de
  724.         pop bc
  725.         inc e
  726.         djnz drawfilecursor0
  727.         pop af ;oldcolor
  728.         ret
  729.  
  730. nv_openfcb
  731. ;if success, autopush nv_closefcb
  732. ;out: nz=error
  733.         push ix
  734.         ld de,fcb
  735.         OS_FOPEN
  736.         pop ix
  737.         or a
  738.         ret nz ;error
  739.         ld hl,nv_closefcb
  740.         ex (sp),hl
  741.         jp (hl)
  742.  
  743. nv_createfcb2
  744. ;if success, autopush nv_closefcb2
  745. ;out: nz=error
  746.         ld de,fcb2
  747.         push ix
  748.         OS_FCREATE
  749.         pop ix
  750.         or a
  751.         ret nz ;error
  752.         ld hl,nv_closefcb2
  753.         ex (sp),hl
  754.         jp (hl)
  755.  
  756. nv_closefcb2
  757.         ld de,fcb2
  758.         jr nv_closefcb_de
  759. nv_closefcb
  760.         ld de,fcb
  761. nv_closefcb_de
  762. ;out: nz=error
  763.         push ix
  764.         OS_FCLOSE
  765.         pop ix
  766.         or a
  767.         ret
  768.  
  769. copy_to_fcb_filename
  770.         ld de,fcb_filename
  771. copy_to_defcb_filename
  772.         ld bc,11
  773.         ldir
  774.         ret
  775.  
  776. winbeginstroka
  777.         db '╔'
  778.         db 1
  779.         db '═'
  780. winbeginstroka_wid=$
  781.         db 12;wdtcolumn1
  782.         db '╗'
  783.         db 1
  784.         db 0
  785.        
  786. winmidstroka
  787.         db '║'
  788.         db 1
  789.         db ' '
  790. winmidstroka_wid=$
  791.         db 12;wdtcolumn1
  792.         db '║'
  793.         db 1   
  794.         db 0
  795.  
  796. winendstroka
  797.         db '╚'
  798.         db 1
  799.         db '═'
  800. winendstroka_wid=$
  801.         db 12;wdtcolumn1
  802.         db '╝'
  803.         db 1   
  804.         db 0
  805.  
  806. prbeginstroka
  807.         db '╔'
  808.         db 1
  809.         db '═'
  810.         db 12;wdtcolumn1
  811.         db '╤'
  812.         db 1
  813.         db '═'
  814.         db 10;wdtcolumn2
  815.         db '╤'
  816.         db 1
  817.         db '═'
  818.         db 14;wdtcolumn3
  819.         db '╗'
  820.         db 1
  821.         db 0
  822.  
  823. prmidstroka
  824.         db '║'
  825.         db 1
  826.         db ' '
  827.         db 12;wdtcolumn1
  828.         db '│'
  829.         db 1
  830.         db ' '
  831.         db 10;wdtcolumn2
  832.         db '│'
  833.         db 1
  834.         db ' '
  835.         db 14;wdtcolumn3
  836.         db '║'
  837.         db 1   
  838.         db 0
  839.  
  840. prendstroka
  841.         db '╚'
  842.         db 1
  843.         db '═'
  844.         db 12;wdtcolumn1
  845.         db '╧'
  846.         db 1
  847.         db '═'
  848.         db 10;wdtcolumn2
  849.         db '╧'
  850.         db 1
  851.         db '═'
  852.         db 14;wdtcolumn3
  853.         db '╝'
  854.         db 1   
  855.         db 0
  856.