📄 datapage.lst
字号:
242: #if defined(__EPAGE__)
243:
244: #ifdef __cplusplus
245: extern "C"
246: #endif
247: #pragma NO_ENTRY
248: #pragma NO_EXIT
249: #pragma NO_FRAME
250:
251: static void NEAR _GET_PAGE_REG(void) { /*lint -esym(528, _GET_PAGE_REG) used in asm code */
252: __asm {
253: L_EPAGE:
254: CPY #EPAGE_LOW_BOUND ;// test of lower bound of EPAGE
255: BLO L_NOPAGE
256: CPY #EPAGE_HIGH_BOUND ;// test of higher bound of EPAGE
257: BHI L_NOPAGE
258: FOUND_EPAGE:
259: LDX #EPAGE_ADDR ;// load page register address and clear zero flag
260: RTS
261:
262: L_NOPAGE: ;// not in any allowed page area
263: ;// its a far access to a non paged variable
264: ORCC #0x04 ;// sets zero flag
265: RTS
266: }
267: }
268:
269: #endif /* defined(__EPAGE__) */
270: #endif /* defined(__PPAGE__) */
271: #endif /* defined(__DPAGE__) */
272:
273: #endif /* USE_SEVERAL_PAGES */
274:
275: /*--------------------------- _SET_PAGE --------------------------------
276: Runtime routine to set the right page register. This routine is used if the compiler
277: does not know the right page register, i.e. if the option -Cp is used for more than
278: one pageregister or if the runtime option is used for one of the -Cp options.
279:
280: Arguments :
281: - offset part of an address in the Y register
282: - page part of an address in the B register
283:
284: Result :
285: - page part written into the correct page register.
286: - the old page register content is destroyed
287: - all processor registers remains unchanged
288: --------------------------- _SET_PAGE ----------------------------------*/
289:
290: #ifdef __cplusplus
291: extern "C"
292: #endif
293: #pragma NO_ENTRY
294: #pragma NO_EXIT
295: #pragma NO_FRAME
296:
297: void NEAR _SET_PAGE(void) {
Function: _SET_PAGE
Source : D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources\datapage.c
Options : -CPUHCS12 -D__NO_FLOAT__ -Env"GENPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\prm;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\cmd;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"OBJPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Env"TEXTPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Lasm=%n.lst -Mb -ObjN="D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\9S12DP256_Vector_Remapping_Jul262006_Data\Full_Chip_Simulation\ObjectCode\datapage.c.o"
298: #if USE_SEVERAL_PAGES
299: __asm {
300: PSHX ;// save X register
301: __PIC_JSR(_GET_PAGE_REG)
302: BEQ L_NOPAGE
303: STAB 0,X ;// set page register
304: L_NOPAGE:
305: PULX ;// restore X register
306: RTS
307: }
308: #else /* USE_SEVERAL_PAGES */
309: __asm {
310: STAB PAGE_ADDR ;// set page register
0000 5b30 [2] STAB 48
311: RTS
0002 3d [5] RTS
312: }
313: #endif /* USE_SEVERAL_PAGES */
314: }
315:
316: /*--------------------------- _LOAD_FAR_8 --------------------------------
317: This runtime routine is used to access paged memory via a runtime function.
318: It may also be used if the compiler option -Cp is not used with the runtime argument.
319:
320: Arguments :
321: - offset part of an address in the Y register
322: - page part of an address in the B register
323:
324: Result :
325: - value to be read in the B register
326: - all other registers remains unchanged
327: - all page register still contain the same value
328: --------------------------- _LOAD_FAR_8 ----------------------------------*/
329:
330: #ifdef __cplusplus
331: extern "C"
332: #endif
333: #pragma NO_ENTRY
334: #pragma NO_EXIT
335: #pragma NO_FRAME
336:
337: void NEAR _LOAD_FAR_8(void) {
Function: _LOAD_FAR_8
Source : D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources\datapage.c
Options : -CPUHCS12 -D__NO_FLOAT__ -Env"GENPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\prm;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\cmd;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"OBJPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Env"TEXTPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Lasm=%n.lst -Mb -ObjN="D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\9S12DP256_Vector_Remapping_Jul262006_Data\Full_Chip_Simulation\ObjectCode\datapage.c.o"
338: #if USE_SEVERAL_PAGES
339: __asm {
340: PSHX ;// save X register
341: __PIC_JSR(_GET_PAGE_REG)
342: BEQ L_NOPAGE
343: PSHA ;// save A register
344: LDAA 0,X ;// save page register
345: STAB 0,X ;// set page register
346: LDAB 0,Y ;// actual load, overwrites page
347: STAA 0,X ;// restore page register
348: PULA ;// restore A register
349: PULX ;// restore X register
350: RTS
351: L_NOPAGE:
352: LDAB 0,Y ;// actual load, overwrites page
353: PULX ;// restore X register
354: RTS
355: }
356: #else /* USE_SEVERAL_PAGES */
357: __asm {
358: PSHA ;// save A register
0000 36 [2] PSHA
359: LDAA PAGE_ADDR ;// save page register
0001 9630 [3] LDAA 48
360: STAB PAGE_ADDR ;// set page register
0003 5b30 [2] STAB 48
361: LDAB 0,Y ;// actual load, overwrites page
0005 e640 [3] LDAB 0,Y
362: STAA PAGE_ADDR ;// restore page register
0007 5a30 [2] STAA 48
363: PULA ;// restore A register
0009 32 [3] PULA
364: RTS
000a 3d [5] RTS
365: }
366: #endif /* USE_SEVERAL_PAGES */
367: }
368:
369: /*--------------------------- _LOAD_FAR_16 --------------------------------
370: This runtime routine is used to access paged memory via a runtime function.
371: It may also be used if the compiler option -Cp is not used with the runtime argument.
372:
373: Arguments :
374: - offset part of an address in the Y register
375: - page part of an address in the B register
376:
377: Result :
378: - value to be read in the Y register
379: - all other registers remains unchanged
380: - all page register still contain the same value
381: --------------------------- _LOAD_FAR_16 ----------------------------------*/
382:
383: #ifdef __cplusplus
384: extern "C"
385: #endif
386: #pragma NO_ENTRY
387: #pragma NO_EXIT
388: #pragma NO_FRAME
389:
390: void NEAR _LOAD_FAR_16(void) {
Function: _LOAD_FAR_16
Source : D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources\datapage.c
Options : -CPUHCS12 -D__NO_FLOAT__ -Env"GENPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\prm;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\cmd;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"OBJPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Env"TEXTPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Lasm=%n.lst -Mb -ObjN="D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\9S12DP256_Vector_Remapping_Jul262006_Data\Full_Chip_Simulation\ObjectCode\datapage.c.o"
391: #if USE_SEVERAL_PAGES
392: __asm {
393: PSHX ;// save X register
394: __PIC_JSR(_GET_PAGE_REG)
395: BEQ L_NOPAGE
396: PSHA ;// save A register
397: LDAA 0,X ;// save page register
398: STAB 0,X ;// set page register
399: LDY 0,Y ;// actual load, overwrites address
400: STAA 0,X ;// restore page register
401: PULA ;// restore A register
402: PULX ;// restore X register
403: RTS
404: L_NOPAGE:
405: LDY 0,Y ;// actual load, overwrites address
406: PULX ;// restore X register
407: RTS
408: }
409: #else /* USE_SEVERAL_PAGES */
410: __asm {
411: PSHA ;// save A register
0000 36 [2] PSHA
412: LDAA PAGE_ADDR ;// save page register
0001 9630 [3] LDAA 48
413: STAB PAGE_ADDR ;// set page register
0003 5b30 [2] STAB 48
414: LDY 0,Y ;// actual load, overwrites address
0005 ed40 [3] LDY 0,Y
415: STAA PAGE_ADDR ;// restore page register
0007 5a30 [2] STAA 48
416: PULA ;// restore A register
0009 32 [3] PULA
417: RTS
000a 3d [5] RTS
418: }
419: #endif /* USE_SEVERAL_PAGES */
420: }
421: /*--------------------------- _LOAD_FAR_24 --------------------------------
422: This runtime routine is used to access paged memory via a runtime function.
423: It may also be used if the compiler option -Cp is not used with the runtime argument.
424:
425: Arguments :
426: - offset part of an address in the Y register
427: - page part of an address in the B register
428:
429: Result :
430: - value to be read in the Y:B registers
431: - all other registers remains unchanged
432: - all page register still contain the same value
433: --------------------------- _LOAD_FAR_24 ----------------------------------*/
434:
435: #ifdef __cplusplus
436: extern "C"
437: #endif
438: #pragma NO_ENTRY
439: #pragma NO_EXIT
440: #pragma NO_FRAME
441:
442: void NEAR _LOAD_FAR_24(void) {
Function: _LOAD_FAR_24
Source : D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources\datapage.c
Options : -CPUHCS12 -D__NO_FLOAT__ -Env"GENPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\prm;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\cmd;D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\Sources;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\lib;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\src;D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"LIBPATH=D:\Program Files\Freescale\CW for HC12 V4.5\lib\HC12c\include" -Env"OBJPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Env"TEXTPATH=D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\bin" -Lasm=%n.lst -Mb -ObjN="D:\Chg\Tech\FSL_Support\from ChatRoom\9S12DP256_Vector Remapping_Jul262006\9S12DP256_Vector_Remapping_Jul262006_Data\Full_Chip_Simulation\ObjectCode\datapage.c.o"
443: #if USE_SEVERAL_PAGES
444: __asm {
445: PSHX ;// save X register
446: __PIC_JSR(_GET_PAGE_REG)
447: BEQ L_NOPAGE
448: PSHA ;// save A register
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -