00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PPI_H
00021 #define PPI_H
00022
00023 #include "types.h"
00024
00025
00027
00029 class Ppi
00030 {
00031
00032 public:
00033 enum FlagB
00034 {
00035 Triumph = 2,
00036 Saisho = 4 ,
00037 Solavox = 6 ,
00038 Awa = 8 ,
00039 Schneider = 10 ,
00040 Orion = 12 ,
00041 Amstrad = 14,
00042 VSyncOccured = 1,
00043 Refresh50Hz = 16,
00044 Expansion = 32,
00045 PrnterNotReady = 64,
00046 TapeRead = 128
00047 };
00048
00049 Ppi();
00050 ~Ppi() {}
00051
00052 void init();
00053
00054 UBYTE portA() {return mPortA;}
00055 UBYTE portB() {return mPortB;}
00056 UBYTE portC() {return mPortC;}
00057 UBYTE control() {return mControl;}
00058 UBYTE jumpers() {return mJumpers;}
00059
00060 void setA(UBYTE val) {mPortA=val;}
00061 void setB(UBYTE val) {mPortB=val;}
00062 void setC(UBYTE val) {mPortC=val;}
00063 void setControl(UBYTE val) {mControl=val;}
00064 void setJumpers(UBYTE val) {mJumpers=val;}
00065
00066 void addB(UBYTE flags) {mPortB |= flags;}
00067 void removeB(UBYTE flags) {mPortB &= ~flags;}
00068
00069 private:
00070 UBYTE mPortA;
00071 UBYTE mPortB;
00072 UBYTE mPortC;
00073 UBYTE mControl;
00074
00075 UBYTE mJumpers;
00076 };
00077
00078 #endif //PPI_H