Subversion Repositories NedoOS

Rev

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

  1. ;эх тъы■ўрхь gfxmode, ўЄюс√ idle эшъюуфр эх яюыєўры Їюъєё
  2. ;яю єьюыўрэш■ ёЄюшЄ ЄхъёЄьюф
  3.         ld sp,#4000 ;эхы№ч  эшцх #3b00 ш эхы№ч  яхЁхёхў№ё  ё resident (хёыш ь√ т pgtrdosfs)
  4.         ld e,7
  5.         OS_CLS
  6.         ;хёыш ёфхырЄ№ SETGFX, Єю яюёых ттхфхэш  ЄхЁьшэрыют яю тшЄё  ыш°эшщ ЄхЁьшэры яюф idle
  7.        
  8.         OS_GETMAINPAGES
  9. ;dehl=эюьхЁр ёЄЁрэшЎ т 0000,4000,8000,c000
  10.         push hl
  11.         OS_DELPAGE
  12.         pop hl
  13.         push hl
  14.         ld e,h
  15.         OS_DELPAGE
  16.         pop hl
  17.         ld e,l
  18.         OS_DELPAGE
  19.  
  20.         ld e,0
  21. mountdrives0
  22.         push de
  23.         ld a,e
  24.         add a,'0'
  25.         ld (tdrivemounted_drive),a
  26.         OS_MOUNT
  27.         or a
  28.         jr nz,mountdrives_fail
  29.         ld hl,tdrivemounted
  30.         call prtext
  31. mountdrives_fail
  32.         pop de
  33.         inc e
  34.         ld a,e
  35.         cp 8;5
  36.         jr nz,mountdrives0
  37.  
  38. idle_runcmd
  39.         OS_SETSYSDRV
  40.  
  41.         ld de,fcb
  42.          ;jr $
  43.         OS_FOPEN
  44.         or a
  45.         jr nz,execcmd_error
  46.        
  47.         ld hl,tcmdloading
  48.         call prtext
  49.        
  50.         OS_NEWAPP
  51. ;dehl=эюьхЁр ёЄЁрэшЎ т 0000,4000,8000,c000 эютюую яЁшыюцхэш , b=id, a=error
  52.         push bc ;b=id
  53.  
  54.         ld a,d
  55.         SETPG32KHIGH
  56.         push de
  57.         push hl
  58.         ld hl,cmdbuf
  59.         ld de,#c080
  60.         ld bc,128  
  61.         ldir ;command line
  62.         pop hl
  63.         pop de
  64.  
  65.         call readfile_pages_dehl
  66.  
  67.         ld de,fcb
  68.         OS_FCLOSE
  69.  
  70.         pop af ;id
  71.         ld e,a
  72.         OS_RUNAPP
  73.        
  74. ;яюэшчшЄ№ яЁшюЁшЄхЄ ёхсх
  75.         ld e,1
  76.         OS_FREEZEAPP
  77.        
  78. idleloop
  79.         ;ld a,1
  80.         ;out (#fe),a
  81.        
  82.         ld a,#fe
  83.         in a,(#fe)
  84.         bit 3,a ;'c'
  85.         jr nz,idleloop
  86.         ld a,#7f
  87.         in a,(#fe)
  88.         bit 2,a ;'m'
  89.         jr nz,idleloop
  90.         ld a,#fd
  91.         in a,(#fe)
  92.         bit 2,a ;'d'
  93.         jr nz,idleloop
  94.         ld e,7
  95.         OS_CLS
  96.         ;jr $
  97.         jp idle_runcmd
  98.  
  99. execcmd_error
  100.         ld hl,tcmdnotfound
  101.         call prtext
  102.         jr idleloop
  103.  
  104. tcmdnotfound
  105.         db "cmd.com not found",#0d,#0a,0
  106. tcmdloading
  107.         db "loading cmd.com",#0d,#0a,0
  108. tdrivemounted
  109.         db "Drive "
  110. tdrivemounted_drive
  111.         db "N mounted",#0d,#0a,0
  112.  
  113. cmdbuf
  114.         ;db "cmd autoexec.bat",0
  115.         db "autoexec.bat autoexec.bat",0 ;ўЄюс√ яюЄюь тїюфшЄ№ т шэЄхЁръЄштэ√щ Ёхцшь (cmd яЁютхЁ хЄ яхЁтюх ёыютю), шэрўх яЁшф╕Єё  яЁюяшёрЄ№ т autoexec.bat ъюьрэфє cmd ш шьхЄ№ фтх чрфрўш cmd (юфэє тшё ∙є■ т юцшфрэшш фЁєуюую cmd)
  116.        
  117. prtext
  118. prtext0
  119.         ld a,(hl)
  120.         or a
  121.         ret z
  122.         push hl
  123.         PRCHAR ;testing (351/352t) (was 986/987t)
  124.         pop hl
  125.         inc hl
  126.         jr prtext0
  127.  
  128.        
  129.        
  130. readfile_pages_dehl
  131.         ld a,d
  132.         SETPG32KHIGH
  133.         ld a,#c100/256
  134.         ld b,#3f00/128
  135.         call cmd_loadpage
  136.         or a
  137.         ret nz
  138.        
  139.         ld a,e
  140.         SETPG32KHIGH
  141.         ld a,#c000/256
  142.         ld b,#4000/128
  143.         call cmd_loadpage
  144.         or a
  145.         ret nz
  146.        
  147.         ld a,h
  148.         SETPG32KHIGH
  149.         ld a,#c000/256
  150.         ld b,#4000/128
  151.         call cmd_loadpage
  152.         or a
  153.         ret nz
  154.        
  155.         ld a,l
  156.         SETPG32KHIGH
  157.         ld a,#c000/256
  158.         ld b,#4000/128
  159.  
  160. cmd_loadpage
  161. ;out: a=error
  162. ;keeps hl,de
  163.         push de
  164.         push hl
  165.         push bc
  166.         ld d,a
  167.         ld e,0
  168.         OS_SETDTA
  169.         pop bc
  170. cmd_loadpage0      
  171.         push bc
  172.         ld de,fcb
  173.          ;jr $
  174.         OS_FREAD
  175.         pop bc
  176.         or a
  177.         jr nz,cmd_loadpageq
  178.         djnz cmd_loadpage0
  179. cmd_loadpageq
  180.         pop hl
  181.         pop de
  182.         ret
  183.  
  184. fcb
  185.         db 0
  186. fcb_filename
  187.         db "cmd     com"
  188.         ds FCB_sz-1-11
  189. stack
  190.         ds 64
  191. endstack
  192.