Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!ECNCDC.BITNET!MSRS002 From: MSRS002@ECNCDC.BITNET ("THE DOCTOR.") Newsgroups: comp.lang.modula2 Subject: Logitech->JPI Message-ID: Date: 19 May 89 21:47:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Modula2 List Organization: The Internet Lines: 37 Translating the graphics package should be pretty easy to do. JPI includes all you need for interrupt calls, port manipulation and manipulating memory. I don't know Logitech at all, but here's answers to questions 1-3. I think you will have to recode all the interrupt calls. The module Lib has a procedure Intr, which is passed a data structure ( SYSTEM.Registers ), and an interrupt number. Before the interrupt is taken, it sets all the registers according to the data structure. When it returns, the data structure will reflect the registers returned. See page 165 of the TopSpeed User's Manual. Your code will look something like this: VAR R : SYSTEM.Registers ; BEGIN R.AH := ( whatever ) ; R.AL := ( something else ) ; R.CX := ( some 16 bit quantity ) ; ... and so on ... Lib.Intr( R, 1CH ) ; ( you can now inspect R.whatever to see what happened ) Do you have the TopSpeed manuals? I have modified their Graph module to support EGA ( and therefore VGA ) a little better to allow you to use the second page in graphic modes. If you already have it, I don't think they would mind me sending it to you, even though I would be violating the copyright. . +---------------------+---------------------------------------+ Tom Ruby Any resemblance between reality and MSRS002@ECNCDC my concept of reality is strictly coincidental. +---------------------+---------------------------------------+