// IFUProms.bcpl external [ JunkIOProms; IFUProms ] get "DoradoProms.defs" structure Mouse[ blank bit 8 MX1 bit MX2 bit MY1 bit MY2 bit MX1dly bit MX2dly bit MY1dly bit MY2dly bit ] //The Mouse Prom places a number to indicate X and Y mouse motion as follows: // Prom=0: Y=0, X=0 // Prom=1: Y=0, X=X+1 // Prom=2: Y=0, X=X-1 // Prom=3: Y=Y+1, X=0 // Prom=4: Y=Y+1, X=X+1 // Prom=5: Y=Y+1, X=X-1 // Prom=6: Y=Y-1, X=0 // Prom=7: Y=Y-1, X=X+1 // Prom=8: Y=Y-1, X=X-1 let IFUProms(mem) be [ let buff = vec 300 if StEq(mem,"IFU") then mem!0 = DoAll if StEq(mem,"DSel") & ICtype eq MC10139 then//define the Data Select Prom [ MakeDataSelect(buff) Header("Data-Select",8,buff,32,8) PromCommand("IFU-a06") ] ] and JunkIOProms(mem) be [ let buff = vec 300 if StEq(mem,"JunkIO") then mem!0 = DoAll if StEq(mem,"IFU") then mem!0 = DoAll if StEq(mem,"Mouse-Motion") & ICtype eq MC10149 then//define the MouseMotion Prom [ MakeMouseMotion(buff) Header("Mouse-Motion",4,buff,256,12) PromCommand("IFU-i03") ] if StEq(mem,"Keyboard-Map") & ICtype eq I3601 then//define the KeyboardMap Prom [ MakeKeyboardMap(buff) Header("Keyboard-Map",8,buff,128,8) PromCommand("IFU-k05") PromCommand("IFU-l05","4") //command for right nibble ] ] and MakeMouseMotion(buff) be [ Zero(buff,256) let Ydir,Xdir = nil,nil for addr = 0 to 255 do [ Xdir = 0 if addr<