cbm610-6.html

来自「cc65 的编译器文档」· HTML 代码 · 共 50 行

HTML
50
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD> <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.20"> <TITLE>Commodore 610 specific information for cc65: Limitations</TITLE> <LINK HREF="cbm610-7.html" REL=next> <LINK HREF="cbm610-5.html" REL=previous> <LINK HREF="cbm610.html#toc6" REL=contents></HEAD><BODY><A HREF="cbm610-7.html">Next</A><A HREF="cbm610-5.html">Previous</A><A HREF="cbm610.html#toc6">Contents</A><HR><H2><A NAME="limitations"></A> <A NAME="s6">6.</A> <A HREF="cbm610.html#toc6">Limitations</A></H2><H2><A NAME="ss6.1">6.1</A> <A HREF="cbm610.html#toc6.1">Kernal and hardware access</A></H2><P>Since the program runs in bank 1, and the kernal and all I/O chips are locatedin bank 15, calling ROM routines or accessing hardware needs special code. Thecc65 runtime implements wrappers for all functions in the kernal jump table.While this simplifies things, it should be noted that the wrappers do havequite an impact on performance: A cross bank call has an extra 300&micro;spenalty added by the wrapper.</P><H2><A NAME="ss6.2">6.2</A> <A HREF="cbm610.html#toc6.2">Interrupts</A></H2><P>Compiled programs contain an interrupt handler that runs in the program bank.This has several advantages, one of them being performance (see cross bankcall overhead mentioned above). However, this introduces one problem:Interrupts are lost while the CPU executes code in the kernal bank. As aresult, the clock may go wrong and (worse) serial interrupts may get lost.</P><P>Since the cc65 runtime does only call the kernal for disk I/O, this means thata program should not do file I/O while it depends on interrupts.</P><HR><A HREF="cbm610-7.html">Next</A><A HREF="cbm610-5.html">Previous</A><A HREF="cbm610.html#toc6">Contents</A></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?