/************************************ * POINTERS - Test pointer.h02 Library * ************************************/ #include "include/vic20.h02" #include #include char savelo, savehi; //Pointer Storage Variable char ptemp; //Memory Marker for Compare main: //Set Pointer to Cassette Buffer putstr("SET POINTER TO TBFFR"); ptrset(&tbffr); prpntr(); newlin(); //Demonstrate Compare putstr("COMPARE AGAINST"); outstr(" TEMP0 $"); prbyte(ptrcmp(&temp0)); newlin(); outstr(" TBFFR $"); prbyte(ptrcmp(&tbffr)); newlin(); outstr(" PTEMP $"); prbyte(ptrcmp(&ptemp)); newlin(); newlin(); anykey(); //Demonstrate Get, Put, Inc, and Dec putstr("PUT '*' AT POINTER"); ptrput('*'); prpntr(); putstr("DECREMENT POINTER"); ptrdec(); prpntr(); outstr("GOT FROM POINTER: "); putchr(ptrget()); newlin(); prpntr(); putstr("INCREMENT POINTER"); ptrinc(); prpntr(); newlin(); //Demonstrate Add and Subtract putstr("ADD $FF TO POINTER"); ptradd($FF); prpntr(); putstr("SUBTRACT $FF"); ptrsub($FF); prpntr(); newlin(); anykey(); //Demonstrate Save and Restore putstr("SAVE POINTER"); savelo = ptrlo; savehi = ptrhi; putstr("CLEAR POINTER"); ptrlo = 0; ptrhi = 0; prpntr(); putstr("RESTORE FROM PSAVE"); ptrlo = savelo; ptrhi = savehi; prpntr(); goto exit; //Print Pointer Contents void prpntr() { outstr(" POINTER IS NOW "); prbyte(ptrhi); prbyte(ptrlo); newlin(); } //Wait for Keypress void anykey() { putstr("PRESS ANY KEY..."); getchr(); newlin(); newlin(); }