Subversion Repositories NedoOS

Rev

Rev 864 | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
8 dimkam 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;        
507 alone 2
 
3
sys_newapp_forBDOS
4
        ld a,(iy+app.id)
538 alone 5
       push af ;parent id
613 alone 6
         push iy ;parent app
507 alone 7
          di ;����� findfreeid+findfreeappstruct � ����������� iy+app.id ����� ��४����� �����!!! ;TODO critical section
8
        call sys_findfreeid ;����� iy
875 alone 9
         pop hl ;parent app
507 alone 10
        push af ;id
875 alone 11
         push hl ;parent app
507 alone 12
        call sys_findfreeappstruct ;�����頥� iy = ���� ��ࢮ� ᢮������ �������� app ;TODO error
613 alone 13
         pop ix ;parent app
538 alone 14
         ld a,(ix+app.stdin)
15
         ld (iy+app.stdin),a
16
         ld a,(ix+app.stdout)
17
         ld (iy+app.stdout),a
18
         ld a,(ix+app.stderr)
19
         ld (iy+app.stderr),a
20
         ld l,(ix+app.textcuraddr)
21
         ld h,(ix+app.textcuraddr+1)
507 alone 22
         ;jr nz,BDOS_newapp_fail
23
         jr z,sys_newapp_forBDOS2
24
;BDOS_newapp_fail
25
        pop af
538 alone 26
       pop af
507 alone 27
        ld a,0xff
28
          ei
29
        ret
30
 
31
sys_newapp_forBDOS2
32
        pop af ;id
33
        push af ;id
34
        ld e,0xff ;auto page
35
        ;hl=textcuraddr
36
        call sys_newapp
37
          ei
38
         push iy
39
         pop de
40
         ld hl,(appaddr)
41
         ld bc,app.vol
42
         add hl,bc
43
         ex de,hl
44
         add hl,bc
45
         ex de,hl
46
         ld bc,5;DIR_sz
47
         ldir ;����஢��� ⥪�騩 vol � dircluster
48
        call BDOS_getmainpages_iy
49
        pop bc ;b=id
538 alone 50
       pop af ;parent id
507 alone 51
        ld (iy+app.parentid),a
52
        xor a
53
        ret ;success
8 dimkam 54
 
55
sys_newapp
56
;iy=app
57
;a=id
147 alone 58
;e=page (0xff = auto)
8 dimkam 59
;hl=textcuraddr
345 alone 60
;� �� �६� ����� ��४����� �����, ���� �������� ����� ��१�墠���!
8 dimkam 61
        ;TODO priority
345 alone 62
        ld (iy+app.id),a ;��१�ࢨ஢��� ����
63
        ld (iy+app.flags),0 ;���� ��� 0, ������ ���� �� �㤥� �ண���
147 alone 64
        ;ld hl,0xc1c0
8 dimkam 65
        ld (iy+app.textcuraddr),l
66
        ld (iy+app.textcuraddr+1),h
67
        ;TODO curmsg
68
        ;TODO endmsg
69
        ;TODO next
70
        ld a,e
71
        inc a
660 alone 72
       push af
8 dimkam 73
        call z,BDOS_newpage_iy
74
        ld (iy+app.mainpg),e
75
 
506 alone 76
        ld a,e
77
        call sys_setpgc000
8 dimkam 78
 
79
        ld hl,wasuserkernel
147 alone 80
        ld de,0+0xc000
8 dimkam 81
        ld bc,userkernel_sz
82
        ldir
660 alone 83
       pop af
84
       jr nz,sys_newapp_nokillcmdline ;for idle
8 dimkam 85
        xor a
147 alone 86
        ld (0xc000+COMMANDLINE),a ;command line
660 alone 87
sys_newapp_nokillcmdline
505 alone 88
        call disablescreeninapp
8 dimkam 89
 
90
        call BDOS_newpage_iy
91
        ld a,e
147 alone 92
        ld (curpg16k+0xc000),a
8 dimkam 93
        call BDOS_newpage_iy
94
        ld a,e
147 alone 95
        ld (curpg32klow+0xc000),a
8 dimkam 96
        call BDOS_newpage_iy
97
        ld a,e
147 alone 98
        ld (curpg32khigh+0xc000),a
660 alone 99
 
100
        call sys_setpgc000
101
        ld hl,0x0100
102
        ld (0xfffe),hl ;���� ��室�
8 dimkam 103
 
104
        ld (iy+app.curcolor),7
105
        ld (iy+app.screen),fd_user
147 alone 106
        ;ld (iy+app.gfxmode),0xa8;%10101000 ;320x200 mode
211 alone 107
                IFDEF NOTURBO
108
        ld (iy+app.gfxmode),0xa6;%10101110 ;textmode
109
                ELSE
147 alone 110
        ld (iy+app.gfxmode),0xae;%10101110 ;textmode
211 alone 111
                ENDIF
8 dimkam 112
        push iy
113
        pop de
114
        ld hl,app.pal
115
        add hl,de
116
        ex de,hl
117
        ld hl,standardpal
118
        ld bc,32
119
        ldir
120
 
345 alone 121
        ;ld a,SYSDRV ;TODO ���� �ࠩ� �� ⥪�饣� app
122
        ;call BDOS_setvol_rootdir ;�ॡ�� PGFATFS
436 dimkam 123
                ld a,(SYSDRV_VAL)
124
         ld (iy+app.vol),a      ;SYSDRV ;TODO ���� �ࠩ� �� ⥪�饣� app
660 alone 125
         ld (iy+app.dircluster),b;0
126
         ld (iy+app.dircluster+1),b;0
127
         ld (iy+app.dircluster+2),b;0
128
         ld (iy+app.dircluster+3),b;0
8 dimkam 129
 
660 alone 130
        ld (iy+app.border),b;0
212 alone 131
 
864 alone 132
        ld a,pgkillable
133
         ld (iy+app.scr0low),a;0
134
         ld (iy+app.scr0high),a;0
135
         ld (iy+app.scr1low),a;0
136
         ld (iy+app.scr1high),a;0
137
 
660 alone 138
        ;ld a,(iy+app.mainpg)
139
        ;ld (iy-safestack_sz+1),a
140
        ;ld a,(iy+app.screen)
141
        ;ld (iy-safestack_sz+7),a
142
        ld (iy-2),0xf8
143
        ld (iy-1),0xff ;sp=-8 � ����⥫� ����� (⠬ 3 ॣ.���� � ���� ��室�)
144
        ;jr $
8 dimkam 145
        ret
146
 
147
makeidle
148
        ld iy,app1
149
        ld (appaddr),iy
150
        ld a,1 ;id
151
        ld e,pgtrdosfs ;pgidle
147 alone 152
        ld hl,0xc1c0
8 dimkam 153
        call sys_newapp
660 alone 154
        ;ld a,'i' ;idle
155
        ;ld (0xc000+COMMANDLINE),a ;command line
345 alone 156
         ;ld (iy+app.vol),SYSDRV ;���� � ᠬ�� idle
8 dimkam 157
        set factive,(iy+app.flags)
158
        ret
159
 
160
standardpal
161
        STANDARDPAL
527 alone 162
 
163
        if PS2KBD==0
531 dimkam 164
                        include "syskey2.asm"
165
                else
166
                        include "ps2drv.asm"
527 alone 167
        endif
8 dimkam 168
 
169
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
31 Alone 170
                if INETDRV
522 dimkam 171
        include "w5300.asm"
141 dimkam 172
        else
31 Alone 173
wiznet_open
174
wiznet_close
175
wiznet_read
176
wiznet_write
32 Alone 177
        ld hl,0xffff
544 alone 178
        ld a,l
31 Alone 179
        ret
522 dimkam 180
                ENDIF