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 |