?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1.         device pentagon1024
  2.  
  3.         include "target.asm"
  4.  
  5. colorTop =#47
  6. colorLoad=#46
  7. colorLeft=#04
  8.  
  9.         org #5d3b-17
  10.  
  11. ;чруюыютюъ hobeta, savehob эх шёяюы№чєхЄё  Єръ ъръ эєцэю чрфрЄ№ ртЄюёЄрЁЄ
  12.  
  13. hobeta
  14.         db "boot    B"
  15.         dw line_end-begin
  16.         dw line_end-begin
  17.         db 0,high ((end-begin)+4)
  18.         dw 0    ;ъюэЄЁюы№эр  ёєььр
  19.  
  20.         ;org #5d3b
  21.  
  22. begin
  23.         db 0,1                  ;эюьхЁ ёЄЁюъш
  24.         dw line_end-line_start  ;фышэр ёЄЁюъш т срщЄрї
  25. line_start
  26.         db #f9,#c0,#30  ;randomize usr 0
  27.         db #0e,#00,#00  ;ўшёыю
  28.         dw code_start
  29.         db #00,#3a,#ea  ;:rem
  30.  
  31.  
  32. code_start
  33.         ld sp,#6fff
  34.  
  35.         ;тъы■ўхэшх Ёхцшьр 14 ╠├Ў
  36.  
  37.         ifdef EVO
  38.        
  39.         ld a,1
  40.         out (#bf),a
  41.         ld bc,#ff77
  42.         ld A,%10101011  ;Ёхцшь 6912 ё ярышЄЁющ
  43.         out (c),a
  44.         ld a,#7f                ;юЄъы■ўхэшх тыш эш  #7ffd
  45.         ld bc,#fff7
  46.         out (c),a
  47.         ld a,16 ;3.5/14 MHz
  48.         ld bc,#eff7
  49.         out (c),a
  50.  
  51.         else
  52.        
  53.         ld a,#7f                ;юЄъы■ўхэшх тыш эш  #7ffd
  54.         ld bc,#fff7
  55.         call outshad;out (c),a
  56.        
  57.         endif
  58.        
  59.         ;юўшёЄър ¤ъЁрэр
  60.  
  61.         halt
  62.         xor a
  63.         out (#fe),a
  64.         ld hl,23295
  65.         ld de,23294
  66.         ld bc,6911
  67.         ld (hl),a
  68.         lddr
  69.  
  70.         ;Ёшёютрэшх яюыюёъш
  71.  
  72.         ld a,#ee
  73.         ld hl,20480+4*32+6*256
  74.         call fill32bytes
  75.         inc h
  76.         call fill32bytes
  77.  
  78.         ld hl,20480+5*32
  79.         ld b,4
  80. .l1
  81.         call fill32bytes
  82.         inc h
  83.         djnz .l1
  84.  
  85.         ;т√тюф ёююс∙хэш 
  86.  
  87.         ld de,20480+6*32
  88.         ld ix,messageStr
  89. .l2
  90.         ld a,(ix)
  91.         or a
  92.         jr z,.l4
  93.  
  94.         push de
  95.  
  96.         ld l,a
  97.         ld h,0
  98.         add hl,hl
  99.         add hl,hl
  100.         add hl,hl
  101.         ld bc,15616-32*8
  102.         add hl,bc
  103.         ld b,8
  104. .l3
  105.         ld a,(hl)
  106.         sla a
  107.         or (hl)
  108.         ld (de),a
  109.         inc l
  110.         inc d
  111.         djnz .l3
  112.  
  113.         pop de
  114.         inc e
  115.         inc ix
  116.         jr .l2
  117.  
  118. .l4
  119.         ld hl,22528+22*32
  120.         ld a,7+64
  121.         call fill32bytes
  122.  
  123.         call displayBar
  124.  
  125.         ;єёЄрэютър юсЁрсюЄўшър ю°шсюъ
  126.  
  127.         ld hl,checkError
  128.         ld (23747),hl
  129.         ld a,#c3
  130.         ld (23746),a
  131.  
  132.         ;чруЁєчър сыюъют яю ёяшёъє
  133.  
  134.         ld hl,fileList
  135. loadLoop
  136.         ld a,(hl)
  137.         inc hl
  138.         ld c,(hl)
  139.         inc hl
  140.  
  141.         push af
  142.         push hl
  143.        
  144.         ifdef EVO
  145.        
  146.         ld a,1
  147.         out (#bf),a
  148.         ld a,c          ;тъы■ўрхь ёЄЁрэшЎє C т тхЁїэхь юъэх
  149.         cpl
  150.         ld bc,#f7f7
  151.         out (c),a
  152.        
  153.         else
  154.        
  155.         ld a,c          ;тъы■ўрхь ёЄЁрэшЎє C т тхЁїэхь юъэх
  156.         xor 127;cpl
  157.         ld bc,#fff7;#f7f7
  158.         call outshad;out (c),a
  159.        ld bc,#ff77
  160.        ld a,%10101011   ;Ёхцшь 6912 ё ярышЄЁющ
  161.         call outshad;out (c),a ;shadow ports off
  162.        
  163.         endif
  164.  
  165.         pop hl
  166.         pop af
  167.  
  168.         or a
  169.         jr z,loadDone
  170.  
  171.         push hl
  172.  
  173.         ld de,(23796)   ;єяръютрээ√щ Їрщы чруЁєцрхЄё  т #7000
  174.         ld b,a                  ;эр ёыєўрщ хёыш юэ сюы№°х Ёрёяръютрээюую
  175.         ld c,#05
  176.         ld hl,#7000
  177.         call 15635
  178.  
  179.         call advanceBar
  180.  
  181.         di
  182.         ld hl,#7000
  183.         ld de,#c000
  184.         call DEC40
  185.         ei
  186.  
  187.         call advanceBar
  188.  
  189.         pop hl
  190.         jr loadLoop
  191.  
  192. loadDone
  193.         ld a,(hl)       ;ўшЄрхь рфЁхё чряєёър
  194.         inc hl
  195.         ld h,(hl)
  196.         ld l,a
  197.  
  198.         ld bc,32*256
  199.         ld (progressNow),bc
  200.         call displayBar
  201.  
  202.         ;TR-DOS сюы№°х эх эєцхэ, тъы■ўшЄ№ Єхэхт√х яюЁЄ√
  203.         ;ш ╬╟╙ т эшцэхх юъэю
  204.  
  205.         ifdef EVO
  206.         ld a,1
  207.         out (#bf),a
  208.         else
  209.         call shadowports_on
  210.         endif
  211.  
  212.         ld bc,#3ff7
  213.         ld a,#7f
  214.         out (c),a
  215.  
  216.         jp (hl)
  217.  
  218.  
  219.         ifdef ATM
  220.        
  221. outshad
  222.         ld ix,#2a53;#3ff0 ;out (c),a
  223.         push ix
  224.         jp #3d2f
  225.  
  226. shadowports_on
  227.         ld bc,#2a53;#3ff0 ;out (c),a
  228.         push bc
  229.         ld bc,#bd77;#4177
  230.         ld a,%10101011  ;Ёхцшь 6912 ё ярышЄЁющ
  231.         jp #3d2f
  232.        
  233.         endif
  234.  
  235. fill32bytes
  236.         push bc
  237.         push hl
  238.         ld b,32
  239. .l1
  240.         ld (hl),a
  241.         inc l
  242.         djnz .l1
  243.         pop hl
  244.         pop bc
  245.         ret
  246.  
  247.  
  248.  
  249. displayBar
  250.         ld a,(progressNow+1)
  251.         cp 32
  252.         jr c,$+4
  253.         ld a,32
  254.  
  255.         ld ix,22528+20*32
  256.         ld bc,32*256
  257. .l1
  258.         cp c
  259.         ld de,colorLeft|(colorLeft<<8)
  260.         jr c,.l2
  261.         jr z,.l2
  262.         ld de,colorTop|(colorLoad<<8)
  263. .l2
  264.         ld (ix),e
  265.         ld (ix+32),d
  266.         inc ixl
  267.         inc c
  268.         djnz .l1
  269.  
  270.         ret
  271.  
  272.  
  273.  
  274. advanceBar
  275.         call displayBar
  276.         ld hl,(progressNow)
  277.         ld bc,(progressStep)
  278.         add hl,bc
  279.         ld (progressNow),hl
  280.         ret
  281.  
  282.  
  283.  
  284. checkError
  285.         ld a,(23823)
  286.         or a
  287.         ret z
  288.  
  289. showError
  290.         xor a
  291. .l1
  292.         halt
  293.         push af
  294.         and 7
  295.         out (#fe),a
  296.         pop af
  297.         ld hl,22528
  298.         ld de,22529
  299.         ld bc,767
  300.         ld (hl),a
  301.         ldir
  302.         xor #12
  303.         ld b,25
  304.         halt
  305.         djnz $-1
  306.         jr .l1
  307.  
  308.  
  309.  
  310.         include "unmegalz.asm"
  311.  
  312.  
  313. progressNow     dw 0    ;Єхъє∙шщ яЁюуЁхёё чруЁєчъш 8:8, ёЄрЁ°шщ срщЄ 0-31
  314.  
  315. ;ярЁрьхЄЁ√ чруЁєчъш
  316.  
  317. ;messageStr
  318. ;       db " SOMETHING IS LOADING",0
  319.  
  320. ;progressStep
  321. ;       dw 10   ;°ру фы  яЁюуЁхёёсрЁр
  322.  
  323. ;fileList       ;т ёяшёъх фышэр т ёхъЄюЁрї ш эюьхЁ ёЄЁрэшЎ√ (схч шэтхЁёшш)
  324. ;       db 100,0
  325. ;       db 0,0  ;яюёыхфэ   чряшё№ 0 ёхъЄюЁют, тъы■ўрхЄё  эєцэр  ёЄЁрэшЎр
  326. ;       dw 0    ;рфЁхё чряєёър
  327.  
  328.         include "filelist.asm"
  329.  
  330. line_end
  331.  
  332.         display "Basic length ",/d,$-begin," bytes"
  333.  
  334.         db #80,#aa,#01,#00      ;эюьхЁ ёЄЁюъш фы  ртЄюёЄрЁЄр
  335.  
  336.         ds (($-1-begin)&255)^255,0
  337. end
  338.  
  339.         display "File size ",/d,end-begin," bytes"
  340.  
  341.         savebin "boot.$b",hobeta,end-hobeta