📄 multitask.lst
字号:
179
0090 180 TIMER_INTERRUPT_0_FOR_MULTI_TASK_COPY_STACK_LOOP_1:
0090 E6 181 MOV A,@R0
0091 F7 182 MOV @R1,A
183
0092 08 184 INC R0
0093 09 185 INC R1
186
187 ;Next
0094 DAFA 188 DJNZ R2,TIMER_INTERRUPT_0_FOR_MULTI_TASK_COPY_STACK_LOOP_1
189
190 ;PSW,A,B
191 MOV PSW, VAR_TASK_BUFFER_PSW
*** ERROR #7 IN 191 (MULTITASK.INC, LINE 191): UNDEFINED SYMBOL
*** ERROR #18 IN 191 (MULTITASK.INC, LINE 191): DATA-ADDRESS EXPECTED
192 MOV ACC, VAR_TASK_BUFFER_ACC
*** ERROR #7 IN 192 (MULTITASK.INC, LINE 192): UNDEFINED SYMBOL
*** ERROR #18 IN 192 (MULTITASK.INC, LINE 192): DATA-ADDRESS EXPECTED
193 MOV B, VAR_TASK_BUFFER_B
*** ERROR #7 IN 193 (MULTITASK.INC, LINE 193): UNDEFINED SYMBOL
*** ERROR #18 IN 193 (MULTITASK.INC, LINE 193): DATA-ADDRESS EXPECTED
194
195 ;Data pointer
196 MOV DPL, VAR_TASK_BUFFER_DPL
*** ERROR #7 IN 196 (MULTITASK.INC, LINE 196): UNDEFINED SYMBOL
*** ERROR #18 IN 196 (MULTITASK.INC, LINE 196): DATA-ADDRESS EXPECTED
197 MOV DPH, VAR_TASK_BUFFER_DPH
*** ERROR #7 IN 197 (MULTITASK.INC, LINE 197): UNDEFINED SYMBOL
*** ERROR #18 IN 197 (MULTITASK.INC, LINE 197): DATA-ADDRESS EXPECTED
198
199 ;R0~7
200 MOV R0, VAR_TASK_BUFFER_R0
*** ERROR #7 IN 200 (MULTITASK.INC, LINE 200): UNDEFINED SYMBOL
*** ERROR #18 IN 200 (MULTITASK.INC, LINE 200): DATA-ADDRESS EXPECTED
201 MOV R1, VAR_TASK_BUFFER_R1
*** ERROR #7 IN 201 (MULTITASK.INC, LINE 201): UNDEFINED SYMBOL
*** ERROR #18 IN 201 (MULTITASK.INC, LINE 201): DATA-ADDRESS EXPECTED
202 MOV R2, VAR_TASK_BUFFER_R2
*** ERROR #7 IN 202 (MULTITASK.INC, LINE 202): UNDEFINED SYMBOL
*** ERROR #18 IN 202 (MULTITASK.INC, LINE 202): DATA-ADDRESS EXPECTED
203 MOV R3, VAR_TASK_BUFFER_R3
*** ERROR #7 IN 203 (MULTITASK.INC, LINE 203): UNDEFINED SYMBOL
*** ERROR #18 IN 203 (MULTITASK.INC, LINE 203): DATA-ADDRESS EXPECTED
204 MOV R4, VAR_TASK_BUFFER_R4
A51 MACRO ASSEMBLER MULTITASK 04/04/2009 22:01:21 PAGE 5
*** ERROR #7 IN 204 (MULTITASK.INC, LINE 204): UNDEFINED SYMBOL
*** ERROR #18 IN 204 (MULTITASK.INC, LINE 204): DATA-ADDRESS EXPECTED
205 MOV R5, VAR_TASK_BUFFER_R5
*** ERROR #7 IN 205 (MULTITASK.INC, LINE 205): UNDEFINED SYMBOL
*** ERROR #18 IN 205 (MULTITASK.INC, LINE 205): DATA-ADDRESS EXPECTED
206 MOV R6, VAR_TASK_BUFFER_R6
*** ERROR #7 IN 206 (MULTITASK.INC, LINE 206): UNDEFINED SYMBOL
*** ERROR #18 IN 206 (MULTITASK.INC, LINE 206): DATA-ADDRESS EXPECTED
207 MOV R7, VAR_TASK_BUFFER_R7
*** ERROR #7 IN 207 (MULTITASK.INC, LINE 207): UNDEFINED SYMBOL
*** ERROR #18 IN 207 (MULTITASK.INC, LINE 207): DATA-ADDRESS EXPECTED
208
209 ;SP
210 MOV SP, VAR_TASK_BUFFER_SP
*** ERROR #7 IN 210 (MULTITASK.INC, LINE 210): UNDEFINED SYMBOL
*** ERROR #18 IN 210 (MULTITASK.INC, LINE 210): DATA-ADDRESS EXPECTED
211
212 ;PC counter
213 ;Note: here must PUSH PC counter
214 ;because the SP is next goto by MCU when interrupt function return
215 ;Don't worry that if a task function no loop, it will return and end, the
216 ;task will goto TASK_FINISHED function and Kill task
217 ;But don't forget SP = Start address must
218 PUSH VAR_TASK_BUFFER_PCL
*** ERROR #7 IN 218 (MULTITASK.INC, LINE 218): UNDEFINED SYMBOL
*** ERROR #18 IN 218 (MULTITASK.INC, LINE 218): DATA-ADDRESS EXPECTED
219 PUSH VAR_TASK_BUFFER_PCH
*** ERROR #7 IN 219 (MULTITASK.INC, LINE 219): UNDEFINED SYMBOL
*** ERROR #18 IN 219 (MULTITASK.INC, LINE 219): DATA-ADDRESS EXPECTED
220
221 ;Eanble Timer0 interrup
00BC D28C 222 SETB TR0
00BE D2A9 223 SETB ET0
224
225 LJMP TIMER_INTERRUPT_0_FOR_MULTI_TASK__TASK_SWITCH_RETURN
*** ERROR #7 IN 225 (MULTITASK.INC, LINE 225): UNDEFINED SYMBOL
*** ERROR #16 IN 225 (MULTITASK.INC, LINE 225): CODE-ADDRESS EXPECTED
226 ;RET ;RET return by youself
227
228 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
229 ;Switch current task to next
230 ;Move task buffer
00C3 231 TASK_SWITCH_BUFFER_:
00C3 0200CC 232 LJMP TASK_CURRENT_SAVE_TO_XDATA_
00C6 233 TASK_SWITCH_BUFFER__TASK_CURRENT_SAVE_TO_XDATA_RETURN:
234
00C6 0200EF 235 LJMP TASK_NEXT_GET_XDATA_
00C9 236 TASK_SWITCH_BUFFER__TASK_NEXT_GET_XDATA_RETURN:
237
00C9 020089 238 LJMP TIMER_INTERRUPT_0_FOR_MULTI_TASK__TASK_SWITCH_BUFFER_RETURN
239 ;RET return by youself
240
241 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
242 ;Save current task buffer data(in the RAM) to external memory
00CC 243 TASK_CURRENT_SAVE_TO_XDATA_:
244 MOV A,VAR_TASK_CURRENT_ID
*** ERROR #7 IN 244 (MULTITASK.INC, LINE 244): UNDEFINED SYMBOL
*** ERROR #18 IN 244 (MULTITASK.INC, LINE 244): DATA-ADDRESS EXPECTED
245 MOV B,#DEFINE_TASK_XDATA_BLOCK
*** ERROR #7 IN 245 (MULTITASK.INC, LINE 245): UNDEFINED SYMBOL
00D1 A4 246 MUL AB
00D2 F8 247 MOV R0,A ;offset
248
249 MOV DPTR,#DEFINE_TASK_XDATA_ADDRESS
*** ERROR #7 IN 249 (MULTITASK.INC, LINE 249): UNDEFINED SYMBOL
00D6 C3 250 CLR C
A51 MACRO ASSEMBLER MULTITASK 04/04/2009 22:01:21 PAGE 6
251
00D7 E582 252 MOV A,DPL
00D9 38 253 ADDC A,R0
00DA F582 254 MOV DPL,A ;+offset
255
00DC E583 256 MOV A,DPH
00DE 3400 257 ADDC A,#00
00E0 F583 258 MOV DPH,A
259
260 MOV R0,#DEFINE_TASK_XDATA_BLOCK
*** ERROR #7 IN 260 (MULTITASK.INC, LINE 260): UNDEFINED SYMBOL
261 MOV R1,#VAR_TASK_BUFFER_START_ADDRESS
*** ERROR #7 IN 261 (MULTITASK.INC, LINE 261): UNDEFINED SYMBOL
262
00E6 263 TASK_CURRENT_SAVE_TO_XDATA__COPY_DATA_LOOP:
00E6 E7 264 MOV A,@R1
00E7 F0 265 MOVX @DPTR,A
00E8 A3 266 INC DPTR
00E9 09 267 INC R1
268 ;Next
00EA D8FA 269 DJNZ R0,TASK_CURRENT_SAVE_TO_XDATA__COPY_DATA_LOOP
270
00EC 0200C6 271 LJMP TASK_SWITCH_BUFFER__TASK_CURRENT_SAVE_TO_XDATA_RETURN
272 ;RET return by youself
273
274 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
275 ;Get next task xdata, the first get next task id
00EF 276 TASK_NEXT_GET_XDATA_:
00EF 0200F8 277 LJMP TASK_NEXT_GET_NEXT_ID_
00F2 278 TASK_NEXT_GET_XDATA__TASK_NEXT_GET_NEXT_ID_RETURN:
279
00F2 020127 280 LJMP TASK_NEXT_RESUME_FROM_XDATA_
00F5 281 TASK_NEXT_GET_XDATA__TASK_NEXT_RESUME_FROM_XDATA_RETURN:
282
00F5 0200C9 283 LJMP TASK_SWITCH_BUFFER__TASK_NEXT_GET_XDATA_RETURN
284 ;RET return by youself
285
286 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
287 ;Get next task id, if no found the currrent id don't be changed
00F8 288 TASK_NEXT_GET_NEXT_ID_:
289 MOV R0,#DEFINE_TASK_MAX
*** ERROR #7 IN 289 (MULTITASK.INC, LINE 289): UNDEFINED SYMBOL
290 MOV R1,VAR_TASK_CURRENT_ID
*** ERROR #7 IN 290 (MULTITASK.INC, LINE 290): UNDEFINED SYMBOL
*** ERROR #18 IN 290 (MULTITASK.INC, LINE 290): DATA-ADDRESS EXPECTED
291
00FC 292 TASK_NEXT_GET_NEXT_ID__GET_NEXT_ID_LOOP:
00FC 09 293 INC R1 ;Next Task ID
294
295 CJNE R1,#DEFINE_TASK_MAX,TASK_NEXT_GET_NEXT_ID__GET_NEXT_ADRRESS
*** ERROR #7 IN 295 (MULTITASK.INC, LINE 295): UNDEFINED SYMBOL
296 MOV R1,#0x00 ;Task 0
*** ERROR #3 IN 296 (MULTITASK.INC, LINE 296): ILLEGAL CHARACTER IN NUMERIC CONSTANT
297
0100 298 TASK_NEXT_GET_NEXT_ID__GET_NEXT_ADRRESS:
0100 E9 299 MOV A,R1
300 MOV B,#DEFINE_TASK_XDATA_BLOCK
*** ERROR #7 IN 300 (MULTITASK.INC, LINE 300): UNDEFINED SYMBOL
0104 A4 301 MUL AB ;offset
302
303 MOV DPTR,#DEFINE_TASK_XDATA_ADDRESS
*** ERROR #7 IN 303 (MULTITASK.INC, LINE 303): UNDEFINED SYMBOL
0108 C3 304 CLR C
305
0109 3582 306 ADDC A,DPL
010B F582 307 MOV DPL,A
A51 MACRO ASSEMBLER MULTITASK 04/04/2009 22:01:21 PAGE 7
308
010D E583 309 MOV A,DPH
310 ADDC A,#0x00
*** ERROR #3 IN 310 (MULTITASK.INC, LINE 310): ILLEGAL CHARACTER IN NUMERIC CONSTANT
010F F583 311 MOV DPH,A ;+offset
312
0111 E0 313 MOVX A,@DPTR ;PCL
314
0112 6005 315 JZ TASK_NEXT_GET_NEXT_ID__PCH
316 MOV VAR_TASK_CURRENT_ID,R1
*** ERROR #7 IN 316 (MULTITASK.INC, LINE 316): UNDEFINED SYMBOL
0116 020124 317 LJMP TASK_NEXT_GET_NEXT_ID__RETURN
318
0119 319 TASK_NEXT_GET_NEXT_ID__PCH:
0119 A3 320 INC DPTR
011A E0 321 MOVX A,@DPTR ;PCH
322
011B 6005 323 JZ TASK_NEXT_GET_NEXT_ID__GET_NEXT_ID_LOOP_NEXT
324 MOV VAR_TASK_CURRENT_ID,R1
*** ERROR #7 IN 324 (MULTITASK.INC, LINE 324): UNDEFINED SYMBOL
011F 020124 325 LJMP TASK_NEXT_GET_NEXT_ID__RETURN
326
0122 327 TASK_NEXT_GET_NEXT_ID__GET_NEXT_ID_LOOP_NEXT:
328 ;Next
0122 D8D8 329 DJNZ R0,TASK_NEXT_GET_NEXT_ID__GET_NEXT_ID_LOOP
330
0124 331 TASK_NEXT_GET_NEXT_ID__RETURN:
0124 0200F2 332 LJMP TASK_NEXT_GET_XDATA__TASK_NEXT_GET_NEXT_ID_RETURN
333 ;RET return by youself
334
335 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
336 ;Resume data from external memory to current task buffer data(in the RAM)
0127 337 TASK_NEXT_RESUME_FROM_XDATA_:
338 MOV R0,VAR_TASK_CURRENT_ID
*** ERROR #7 IN 338 (MULTITASK.INC, LINE 338): UNDEFINED SYMBOL
*** ERROR #18 IN 338 (MULTITASK.INC, LINE 338): DATA-ADDRESS EXPECTED
339
0129 E8 340 MOV A,R0
341 MOV B,#DEFINE_TASK_XDATA_BLOCK
*** ERROR #7 IN 341 (MULTITASK.INC, LINE 341): UNDEFINED SYMBOL
012D A4 342 MUL AB ;offset
343
344 MOV DPTR,#DEFINE_TASK_XDATA_ADDRESS
*** ERROR #7 IN 344 (MULTITASK.INC, LINE 344): UNDEFINED SYMBOL
0131 C3 345 CLR C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -