Sig/M.028 A Small Library for Pascal/Z Life/Wumpus Update NAD Accounts Receivable System Simple Doctor Billing Programs Home Remote Control Programs compiled by Charlie Foster -CATALOG.028 contents of Sig/M.028 -CATA028.ACK acknowledgement file CRCKLIST.028 checksum file index size names notes 28.01 4K LIBRARY.DOC A Small Library 28.02 2K ASL.REL / 28.03 1K CHAIN.REL / 28.04 1K CHAIN.SUB / 28.05 1K COMPILE.SUB / 28.06 1K HALT.REL / 28.07 1K HALT.SRC / 28.08 10K LIFE.COM variations of LIFE 28.09 9K LIFE.PAS / 28.10 10K LIFE-C.COM / 28.11 7K LIFE-C.C / 28.12 1K CAVE0 CAVE update 28.13 1K CAVE1 / 28.14 1K CAVE2 / 28.15 1K CAVE3 / 28.16 1K CAVE4 / 28.17 1K CAVE5 / 28.18 6K WADUZIT.COM waduzit do? 28.19 4K WADUZIT.DOC / 28.20 7K WADUZIT.PAS / 28.21 18K NAD.COM NAD Accounts Receivable System 28.22 12K NAD.PAS / 28.23 6K NAME&ADD.DOC / 28.24 25K RECEIVAB.COM / 28.25 17K RECEIVAB.PAS / 28.26 12K ACTTREC.DOC / 28.27 20K DISKBILL.PAS simple doctor billing programs 28.28 9K RECMAKE.PAS / 28.29 1K ANDMSK.SRC home remote control programs 28.30 2K EXORG.SRC / 28.31 3K COMPARE.PAS / 28.32 1K ORMSK.SRC / 28.33 2K REMOTE.SRC / 28.34 2K PROG.DOC / Thió  disë ió aî importanô one®  Raù Penleù haó beeî aô iô again® Reaä hió Library.Doã anä you'lì seå whaô hå haó iî mind®  É agreå witè hií anä verù sooî wå wilì havå á LIBRARÙ DISK®  Ho÷ tï  pasó up-dateó  ió  ouò onlù problem®  Sï iæ yoõ havå anù  suggestions¬ speaë up® Theså  arå  thå  starô  oæ ouò ASÌ (Á Smalì  Library©  mostlù  bù Raù Penley. LIBRARY.DOC ASL.REL HALT.REL CHAIN.REL CHAIN.SUB HALT.SRC COMPILE.SUB Raù  haó  giveî  uó ouò firsô gamå updatå  also®  Thå  caveó  arå froí  Wumpuó  whicè ió oî Sig/M.021®  Cave³ haä ° recordó iî  it® Sï  no÷  Wumpuó wilì bå complete®  Thå Lifå  programó  arå  gameó alsï  buô  witè  á educationaì slant®  You'lì  noticå  thaô  onå ió  iî  Pascal/Ú  buô thå otheò ió iî "C"®  Thå à versioî  seemó tï  bå  faster®  Thå thoughô wå havå ió thaô iô ió thå waù  à ió writteî  ratheò  thaî  aî  inherenô  superiority®   Doeó   anyonå havå anù commenô aó tï thå pro'ó oò con'ó oæ whù thaô is? LIFE.COM LIFE-C.COM CAVE0,1,2,3,4,5 LIFE.PAS LIFE-C.C Foò  thoså  whï likå tï mesó around¬  thå followinç  prograí  waó publisheä anä theî converteä tï "C"¬ Pascaì anä É don'ô kno÷ whaô otheò languages® Itó á real¬ short¬ simplå language® Raù seú itó aî  examplå oæ whaô á higè languagå likå Pascaì caî do®  Reaä thå Doc. WADUZIT.COM/PAS/DOC Craiç   Rudliî  takeó  crediô  foò  theså   wonderfuì   programs® Craiç  isn'ô  tï  faò  ofæ froí beinç ablå tï  puô  hió  programó uð  oî  á commerciaì footing®  Thå firsô ió á  NAÄ  prograí  witè somå  interestinç  technques®  You'lì havå tï bå  alerô  however¬ theù  arå  slightlù  hardwarå dependent®  Thå Cursoò  controì  ió foò á Soroã oò á Televideo®  Naturally¬  witè thå blocë structurå oæ Pascaì thå changeó arå easù tï make®  Thå seconä prograí ió  á smalì  accountó  receivablå modulå thaô workó witè  thå  NAD®  Iî additioî tï thå programó themselves¬  bå surå anä looë aô Craig'ó functionó  anä procedureó (iî facô paù attentioî tï anyone'ó  foò ne÷  sampleó tï use)¬  hå haä á probleí witè EOÆ anä founä á  waù arounä it. NAD.PAS/COM RECEIVAB.PAS/COM NAME&ADD.DOC ACTTREC.DOC Sincå  Craiç donateä thió kerneì foò á starô iî Pascal/Ú businesó softwarå É havå beeî lookinç arounä foò thingó tï add®  É founä á UCSÄ prograí calleä Diskbill®  Iô ió á simplå billinç prograí foò á  Doctoò  sï É addeä iô tï thió bunch® Thå firsô  onå  whï convertó iô tï "Z¢ wilì oæ courså wiî á freå disk. Š DISKBILL.PAS Boâ Miller¬  oæ Saî Jose,Ca¬  donateä theså foò ouò use® Reaä thå Prog.Doã  first®   Iô  provideó  somå  morå  tooló  foò  us®   Aî interestinç piecå ió thå Remote.SRC¬ iô foò thå home remote control units. ANDMSK.SRC EXORG.SRC COMPARE.PAS ORMSK.SRC REMOTE.SRC PROG.DOC LIBRARY MAINTENANCE by Ray Penley Wå  havå founä thaô somå oæ thå memberó arå havinç  problemó creatinç  theiò owî librarieó oæ commonlù useä routines®  Aó yoõ kno÷  iô ió oæ primarù importancå tï havå á librarù  oæ  routineó thaô  yoõ don'ô havå tï keeð writinç oveò anä oveò  again®  Wheî yoõ  writå youò prograí yoõ onlù havå tï referencå thå routinå aó an external and then use the routine freely in your program. Wå  arå  goinç  tï  creatå á librarù  oæ  commonlù  routineó presentlù  founä  iî thå "Ú Useró Group¢ librarù  anä  calì  thió new library ASL.REL (A Small Library). Tï makå á librarù yoõ musô firsô havå á subroutinå assembleä intï á .REÌ file® Iæ yoõ neeä helð witè thió procedure¬ thå texô filå  MAKEREL.DOà founä oî volumå #± shoulä be most helpful. Ruî  thå  linkeò  buô enteò thå  librariaî  modå  bù  typinç /L:filename® Sincå wå wanô tï calì ouò librarù ASÌ letó starô bù typing: A>LINK /L:ASL No÷  yoõ  specifù thå fileó tï bå includeä iî  thå  library® *** REMARKS *** *KEYIN found on volumes #3 and #4 *CHAIN found on Pascal/Z library disk *INPORT found on volume #3 *OUTPORT found on volume #3 *DELAY found on volume #3 *RANDOM found on volume #3 *HALT found on this volume */E Typing /E closes the output file NOTES: Iæ  yoõ makå á mistakå yoõ caî alwayó restarô thå linkeò  bù typing /R. Iæ  á filå witè thå samå namå alreadù existó oî thå disë  iô wilì bå deleteä anä theî á ne÷ filå wilì bå created¬  sï bå  verù carefuì aô thió step. Thå  ordeò  oæ  entrù  intï  thå  librarù  maù  bå  oæ  somå importance®  Sincå  thå librarù ió loadeä iî onå pass¬  á modulå shoulä appeaò afteò iô haó beeî referenceä bù aî externaì  symboì iî otheò modules. .pa Š No÷ iô ió á simplå matteò tï uså ouò ne÷ library®  Letó uså the routine KEYIN in a sample program. Program DRead; { A program to directly read a char from the keyboard.} LABEL 1; VAR CH: CHAR; Procedure KEYIN(VAR C:CHAR); EXTERNAL; BEGIN WHILE TRUE DO BEGIN WRITE('ENTER A CHARACTER '); KEYIN(CH); IF ( ORD(CH)=3 ) THEN GOTO 1; WRITELN('YOU ENTERED A ',CH); END; 1: {EXIT HERE ON CONTROL-C} END.{ of DREAD } Now compile the program: A>PASCAL DREAD.BBB A>ASMBL MAIN,DREAD.BB/REL A>LINK /N:B:DREAD B:DREAD ASL/S /E That'ó alì therå ió tï it¡  Noticå thaô thå ne÷ librarù  ió oî thå samå disë aó PASCAL.COM¬ ASMBL.COM¬ LIB.REÌ ANÄ LINK.COM® É  havå writteî á submiô filå thaô wilì allo÷ yoõ tï compilå á  prograí  anä uð tï ³ additionaì librarù  files®  Executå  thå submiô filå likå so: A>SUBMIT COMPILE PROGRAM DRIVE LIBRARY/S A>SUBMIT COMPILE my PROGRAM on DRIVE using LIBRARY/S We can compile and link our sample program in one step: A>SUBMIT COMPILE DREAD B ASL/S Isn'ô  thaô easy¡  Thå .COÍ filå wilì bå placeä oî thå  samå drivå aó thå Pascaì sourcå program®  Notå thaô yoõ musô calì foò thå  librarù  filå witè thå /Ó optioî elså yoõ loaä iî thå  wholå library. .pa ŠCall this file COMPILE.SUB Pascal $1.$2$2$2 asmbl main,$1.$2$2/rel ERA $2:$1.SRC link /n:$2:$1 $2:$1 $3 $4 $5 lib/s/E ERA $2:$1.REL : FILES $2:$1.* That'ó alì foò now®  Iæ yoõ havå anù questionó feeì freå tï calì må oò droð á note® RAYMOND E. PENLEY 1263 ALLEN COURT WALDORF, MD 20601 (301) 645-9632 (evenings or weekends only) .pa Š WADUZITDO How to write a language in 256 words or less. From BYTE magazine, September 1978. It is highly recommended that you obtain the above magazine. This program is only provided as a learning experience. If you make any changes to the program please provide a copy to your Pascal Users Group. -------------------------------------------------------------- Statement Format What it does -------------------------------------------------------------- type T:text Display text on the terminal. -------------------------------------------------------------- accept A: Input one character from the terminal keyboard. -------------------------------------------------------------- match M:x Compare x to last input character and set match flag to Y if equal, set to N if not equal. -------------------------------------------------------------- jump J:n If n = 0 jump to last accept. If n = 1 thru 9 jump to nth program marker forward from the J. -------------------------------------------------------------- stop S: Terminate program and return to text editor. -------------------------------------------------------------- subroutine S:x Call user machine language program. (Requires program modification). -------------------------------------------------------------- conditionals May precede any operation code. Y Execute only if match flag is 'Y'. N Execute only if match flag is 'N'. -------------------------------------------------------------- program * May precede any statement, serves marker as a jump destination. -------------------------------------------------------------- Table 1: Program instructions for the WADUZITDO -------------------------------------------------------------- Edit character HEX Meaning -------------------------------------------------------------- $ 24 Start program execution -------------------------------------------------------------- \ 5C Move edit pointer to program start. -------------------------------------------------------------- / 2F Display next line of program. -------------------------------------------------------------- % 25 Erase line. Pads with nulls. -------------------------------------------------------------- bs or <- 08 or 5F Backspace to correct typing error. -------------------------------------------------------------- cr 0D End of current statement. -------------------------------------------------------------- any others Character stored in program and edit pointer advances. -------------------------------------------------------------- Table 2: Editing characters used by the built-in text editor. ACCOUNTS RECEIVABLE RECEIVABLE   ió á simplå accountó receivablå prograí foò  uså bù  aî individuaì oò smalì business®  Thå prograí permitó  eitheò postinç tï aî account¬ oò generatinç á monthlù statement. RECEIVABLE   requireó  á  namå anä  addresó  filå  previouslù createä bù thå useò witè thå prograí NAD ® Thå  prograí  ió  initiateä bù  typinç  RECEIVABLES ¬  anä  á carriage return. The screen is cleared and the message ACCOUNTS RECEIVABLE PROGRAM PACKAGE CHOSE FROM EITHER: (1) POST TO AN ACCOUNT (2) GENERATE AN STATEMENT ENTER THE NUMBER OF YOUR CHOICE ió displayed® Regardlesó oæ youò choice¬ thå prograí wilì prompô with the message: ENTER NAME & ADDRESS FILE AS DRIVE:NAME.EXT Enteò  thå  namå  oæ thå filå aó iô waó createä bù thå  namå  anä addresó prograí (e.g®  B:OFFICE.NAD)®  RECEIVABLES wilì nexô asë for the name of the account: ENTER THE NAME OF ACCOUNT _____________________________ Yoõ  shoulä enteò thå namå preciselù aó iô ió listeä iî thå  filå oæ namå anä addresses®  Notå thaô uð tï 3° letteró oò spaceó maù bå useä (numberó arå treateä aó letters)®  Thå prograí wilì theî ask IS THIS A NEW ACCOUNT? Y/N Iæ yoõ enteò á 'Y'¬  Versioî 1.° oæ RECEIVABLES ¬  wilì prompô yoõ tï exiô tï thå CP/Í operatinç systeí (bù typinç á controì C)¬ anä enteò  thå  namå anä addresó (account© intï thå appropriatå  filå prioò  tï runninç RECEIVABLES. Enterinç aî 'N§ wilì  permiô  thå program to search the file for the account. Iæ  yoõ havå selecteä thå firsô menõ option-- posô tï  aî account-- RECEIVABLES wilì prompt IÓ THIÓ THÅ FIRSÔ INVOICÅ EVEÒ POSTEÄ TÏ THIÓ ACCOUNT¿ Y/N Š 1 Bå careful¡ Notå thaô thå questioî isº ió thió thå firsô invoicå EVER posteä  tï thió account®  Excepô foò thå verù firsô timå thå prograí  ió  ruî foò á particulaò account¬  thå  answeò  tï  thió questioî shoulä bå 'N' . Iæ  yoõ havå selecteä thå seconä menõ option-- generatå á statement-- thå latteò questioî ió noô asked. Aô  thió  poinô iî ouò discussion¬  iô  ió  necessarù  tï elaboratå  á  littlå  oî ho÷ RECEIVABLES anä NAD   actuallù  work® Eacè timå á namå anä addresó ió entereä tï thå file¬  NAD assignó aî accounô numbeò tï thå record® (Thå accounô numbeò ió actuallù thå  recorä number.© Afteò yoõ enteò thå namå oæ thå  file¬  anä thå  account¬  RECEIVABLES   locateó thå accounô iî thå  namå  anä addresó  file¬   anä  readó  thå  accounô  number®  Iæ  yoõ  arå generatinç á statement¬ iô searcheó thå assigneä disã (iô assumeó thaô  botè thå namå anä addresó file¬  anä thå filå oæ  invoices¬ arå botè oî thå samå drive!© foò á filå whoså namå ió thå accounô number¬  anä whoså extensioî ió 'INV'® Foò example¬ iæ thå thirä recorä oæ thå namå anä addresó filå B:OFFICE.NAD¬ ió 'ACMÅ LUMBEÒ YARDÓ   234µ  BROADROCË  ROAÄ  RICHMONÄ  VIRGINIÁ  2322¹   SALEÓ MANAGER'¬   RECEIVABLES    wilì   posô  invoiceó   tï   thå   filå 'B:0003.INV'¬  anä  reaä froí thió filå wheî generatinç á monthlù statement. Iæ yoõ wisè tï seå thå currenô invoices¬ anä balance¬ foò á particulaò account¬ buô dï noô wisè tï generatå á statement¬ do NOT selecô menõ optioî twï (generatå á statement)¡ Rather¬ choså thå  firsô optioî (posô tï aî account)¬  anä exiô directlù tï thå filå listinç aó detaileä below. Thió  ió becauså RECEIVABLES automaticallù (l© writeó thå entirå .INÖ filå foò thå accounô tï á ne÷ filå identifieä bù  thå montè oæ thå statement¬ anä (2© re-createó thå .INÖ filå witè thå balancå duå froí thå statement®  Foò example¬  iæ á statemenô ió generateä foò Acmå Lumbeò Yards¬ foò thå montè oæ September¬ and thå totaì duå foò thaô montè (statement© ió 126.89¬  theî alì thå invoiceó  previouslù fileä iî B:0003.INÖ wilì bå writteî intï thå filå  B:0003.SEP¬  anä thå filå B:0003.INÖ wilì contaiî onlù  thå balancå 126.89®  Iî October¬  thå olä balancå wilì bå identifieä oî  thå statemenô aó 'PREVIOUÓ BALACE§ anä addeä tï anù  invoiceó posted during October, to equal the balance due for October. Iô  ió suggested¬  thaô wheî yoõ posô thå paymenô foò thå previouó month'ó statement¬  thaô yoõ uså thå wordó 'PRIOR§ 'BAL- ANCE§ foò thå invoicå numbeò anä purchaså ordeò  number¬  respec- tively®  Thió  wilì neatlù identifù á paymenô oî thå  subsequenô statement (and distinguish a payment from any other credit). Wheî  thå  seconä menõ optioî ió  selected¬  thå  prograí prompts across the top of the screen with MO/DA/YR INVOICE # PURCH ORDER # AMOUNT CORRECT Enteò  eacè  piecå oæ informatioî followeä bù á carriagå  return® Š 2 Excepô  foò thå amount¬  letteró anä numberó arå  considereä  thå same®  Hencå  aî invoicå numbeò oæ R6574-Á ió permissible®  Onlù twï  characteró arå permitteä foò thå month¬  daù oò  year®  Thå invoicå  numbeò maù havå uð tï siø characters¬  anä thå  purchaså ordeò  number¬  uð  tï l0®  Thå amounô ió  considereä  á  'real§ number¬ anä maù havå thå rangå -99,999.9¹ tï +99,999.99® Enteò á '-§ sigî iî fronô oæ thå amounô iæ iô ió á crediô tï thå account® Á  positivå sigî ('+'© doeó noô neeä tï bå entereä iæ thå  amounô ió á debiô tï thå account® Thå prograí wilì automaticalù positioî thå  cursoò afteò eacè entrù (carriagå return)®  Thå lasô entry¬ undeò thå 'CORRECT§ column¬  ió eitheò á 'Y§ oò aî  'N'¬  distin- guishinç  whetheò  thå  informatioî ió correcô  oò  incorrecô  aó entered¬  respectively®  Iæ  yoõ enteò á 'N'¬  thå prograí  wilì prompô witè á menõ representinç eacè entry® Selecô thå numbeò correspondinç  tï thå firsô piecå oæ incorrecô  information¬  anä enteò thå numbeò followeä bù á carriagå return® Thå prograí wilì eraså  thå incorrecô entry¬  repositioî thå cursoò anä awaiô  thå re-entrù  oæ  thå information®  Yoõ maù continuå tï correcô  thå informatioî untiì iô ió entirelù correct®  Aô thaô point¬ selecô thå  numbeò correspondinç tï 'Alì informatioî ió correcô  aó  en- tered'®  Thå prograí wilì eraså thå correctioî promptó anä posi- tioî  thå cursoò foò thå nexô linå oæ information®  Versioî  1.° doeó  noô permiô correctioî oæ thå informatioî afteò iô haó  beeî writteî tï thå disã filå (i.e® afteò yoõ havå answereä 'Y§ tï thå 'CORRECT§ prompt)® Versioî 1.° oæ RECEIVABLES haó onå peculiarity® Thå verù firsô timå ever¬  yoõ posô invoiceó tï á particulaò account¬  yoõ maù  enteò onlù threå beforå thå prograí asë yoõ whetheò yoõ wanô á  listinç oæ thå file®  Iæ thió ió alì yoõ havå tï  post¬  theî decidå whetheò yoõ wanô thå listing¬ and/oò exiô froí thå prograí aó describeä below®  However¬ iæ yoõ havå morå invoiceó tï post¬ answeò  'N§  tï thå listinç prompt¬  anä 'Y§ tï thå  nexô  prompô askinç whetheò yoõ wisè tï posô tï anotheò account® Re-enteò thå account name when prompted, and continue posting. Oncå  yoõ  havå  posteä  tï  á  giveî  account¬  yoõ  maù subsequentlù  enteò  aó manù invoiceó aó yoõ desirå  aô  anù  onå time® RECEIVABLES wilì noô permiô scrollinç oæ thå screeî durinç entrù oæ thå information® Wheî thå screeî ió full¬ iô wilì cleaò thå screen¬  rewritå thå prompts¬  anä repositioî thå cursor¬ foò you to continue. Wheî yoõ havå finisheä enterinç alì thå invoiceó yoõ havå foò á particulaò account¬  enteò á '00' foò thå month¬ á carriagå return¬  anä á carriagå returî foò thå day¬ year¬ invoicå number¬ anä purchaså ordeò number®  Enteò á '0' foò thå amounô anä á 'Y' foò 'CORRECT'® Thå prograí wilì theî prompt DO YOU WANT A LISTING OF THE FILE? Y/N Iæ yoõ saù 'Y'¬ iô wilì asë whetheò yoõ wanô á 'HARDCOPY'® Á 'Y§ wilì  causå  thå prograí tï lisô thå filå (includinç thå  currenô balance© oî youò printer®  Aî 'N§ wilì causå thå prograí tï  lisô thå  filå anä balancå oî youò CRT®  Aó usual¬  scrollinç wilì bå Š 3 inhibited¬  anä  wheî thå screeî ió full¬  yoõ wilì bå  askeä  tï enteò  á carriagå returî tï continue®  Iæ therå ió morå thaî onå pagå oæ listing¬  thå pageó arå numbered®  Iî addition¬  thå ac- counô namå anä addresó ió printeä oò displayeä aô thå toð oæ  thå firsô  page®  Thå  balancå ió writteî aô thå bottoí oæ thå  lasô pagå oæ thå statement® Creditó arå clearlù identified. Afteò thå listinç ió complete¬ oò iæ yoõ havå decideä noô tï  lisô thå file¬  thå prograí wilì asë yoõ whetheò yoõ wisè  tï posô invoiceó tï anotheò account®  Iæ yoõ do¬  enteò á 'Y'¬  anä thå  accounô  namå wheî askeä tï dï so®  Iæ yoõ dï noô  wisè  tï enteò anù furtheò invoices¬  enteò aî 'N'¬  anä thå prograí  wilì exiô tï thå CP/Í operatinç system® Iæ   yoõ  havå  selecteä  menõ  optioî  twï  (generatå  á statement)¬ thå prograí will¬ afteò promptinç yoõ foò thå accounô name¬ anä whetheò iô ió á ne÷ account¬ asë yoõ foò thå month¬ daù anä  yeaò oæ thå statement®  Enteò thió informatioî NUMERICALLY¡ Foò example¬  iæ thå datå oæ thå statemenô ió Septembeò 5¬  l981¬ enteò '09§ carriagå return¬  '05§ carriagå return¬ '81§ carriagå return®  RECEIVABLES useó thió datå tï generatå thå extensioî oæ thå monthlù filå (aó describeä above»  e.g®  B:0003. SEP )¬  anä aó the date for the 'PRIOR BALANCE' written to the .INV file. Aó  witè thå firsô optioî (postinç tï  aî  account)¬  yoõ maù eitheò lisô thå statemenô oî thå CRT¬  oò prinô thå statemenô on your printer. Afteò thå prograí generateó thå statement¬ yoõ wilì agaiî havå thå opportunitù tï eitheò generatå additionaì statementó foò otheò accounts¬ oò exiô tï thå CP/Í operatinç system® DÏ NOÔ FORGEÔ THAÔ THÅ .INÖ FILÅ IÓ RE-WRITTEÎ EACÈ  TIMÅ Á  STATEMENÔ IÓ GENERATED®  Thå informatioî ió noô lost®  Iô ió writteî intï thå accounô filå witè aî extensioî representinç  thå firsô  threå  letteró  foò  thå montè  oæ  thå  statement®  Alsï remembeò thaô thå .NAD¬  .INÖ anä monthlù filå arå alì maintaineä oî thå 'B' drive. 4 THIS DISKETTE CONTAINS THE FOLLOWING FIVE DIFFERENT FILES: 1) ANDMSK.SRC- AN EXTERNAL FUNCTION WHICH WILL DO A BIT-BY-BIT LOGICAL 'AND' FUNCTION OF ITS TWO INTEGER ARGUMENTS. 2) COMPARE.*- A PROGRAM WHICH WILL DO A COMPARE OF TWO DIFFERENT FILES AND LOG THE DIFFERENCES IN A THIRD FILE. ( NOTE THAT CHARACTER COUNT IS IN DECIMAL WHILE THE CHARACTERS ARE IN HEXADECIMAL. ) I CREATED THIS PROGRAM AFTER I USED THE CK.COM FILE FROM A PREVIOUS USER'S GROUP DISK BECAUSE THE CK PROGRAM SAID THE TWO FILES WERE THE SAME. MY PROGRAM SAID AN ENTIRE SECTOR WAS BAD. ( I'D LIKE TO SEE THE SOURCE OF THAT PROGRAM AND FIND OUT WHY THE ALGORITHM DIDN'T FIND SUCH AN OBVIOUS PROBLEM). 3) EXORG.SRC- AN EXTERNAL FUNCTION THAT WILL RETURN THE ADDRESS OF THE ARGUMENT VARIABLE. VERY USEFUL FOR DMA TO GET AN ARRAY'S ADDRESS. 4) ORMSK.SRC- AN EXTERNAL FUNCTION THAT WILL RETURN A LOGICAL BIT-BY-BIT 'OR' OF THE TWO INTEGER ARGUMENTS. 5) REMOTE.SRC- AN EXTERNAL PROCEDURE DESIGNED TO BE USED WITH THE SCITRONICS/BSR HOME REMOTE CONTROL UNITS. ONE INPUTS THE HOUSE CODE, UNIT CODE AND THE FUNCTION TYPE AND THIS PROCEDURE WILL PERFORM THE FUNCTION THRU THE SCITRONICS CONTROLLER.