CALC -- KALKYL-program f|r ABC80 - med 80-teckenssk{rm och utbyggt
minne (32Kbyte) av S-] Abrahamsson


BESKRIVNING:
===========

Programmet best}r av f|ljande filer:

   1. CALC.80K              Startmodul med menyval av ny kalkyl/ 
                            befintlig kalkyl/hj{lptext/sluta.
   2. CALC1.80K             Rutin som visar denna hj{lptext via
                            menyn och ger }terhopp till 
                            CALC.80K.
   3. CALC3.80K             Huvudmodul med printerrutin.
   4. CALCOM.DAT            Kontrollfil som skapas och l{ses av
                            programmet.
   5. CALC.TXT              Denna textfil.
   6. CALCEX.CA3            Ett litet kalkylexempel.

Filerna CALC.80K, CALC3.80K och CALCOM.DAT har h{mtats fr}n
ABC-monitorn i Stockholm.

Efter bearbetning och komplettering med CALC1.80K, CALC.TXT
och CALCEX.CA3 presenteras nu filerna som ett programpaket.

Programmet {r av typ "spredsheet" dvs Du kan lagra text, v{rden
och formler i ett rutn{t.
All text och alla v{rden kan {ndras varefter omkalkylering sker
med de nya v{rdena. Formlerna kan {ndras. Storleken p} den valda
matrisen kan dock ej {ndras.

Rutn{tet {r numrerat p} f|ljande s{tt:

             rader:      AA, AB, AC,...AJ
                         BA, BB, BC,...BJ etc
             kolumner:   00, 01, 02,....nn

Rutan l{ngst upp till v{nster {r allts} AA00.

I varje ruta kan Du anv{nda EN funktion av en typ. Villkors-
satser kan ej anv{ndas i rutorna.

I rutorna kan Du skriva text, siffror eller skiljetecken. 

HANTERING: 
=========

Programmet startas med RUN CALC.80K. I huvudmenyn kan Du v{l-
ja att skapa ny kalkylmodell, l{sa in en befintlig kalkyl,
l{sa hj{lptexten eller sluta.

1. Ny kalkylmodell.

   Ange antal rader, kolumner och hur m}nga tecken varje f{lt 
   skall inneh}lla.
   F{lten beh|ver inte vara st|rre {n att text, v{rden och resul-
   tat ryms.
   Programmet kontrollerar att matrisen ryms och ger annars m|j-
   lighet att minska n}got av v{rdena.
   Om allt {r ok skrivs kontrollfilen "CALCOM.DAT" ut p} dis-
   ketten varefter huvudprogrammet chainas in.

2. Befintlig kalkyl.

   Ange kalkylnamn utan extension. Namnet kontrolleras. Om filen
   inte finns ange nytt namn. Return g}r tillbaks till menyn.

3. L{sa hj{lptext.

   Du kan l{sa den h{r hj{lptexten via 3. i menyn som g|r "CHAIN"
   p} CALC1.80K.
   N{r texten kommer upp p} sk{rmen mata raderna med mellanslag.
   Med S eller s stoppas l{sningen och du hamnar i en minimeny
   med val av }terg}ng till huvudmeny eller uprepad l{sning av
   hj{lptexten.

4. Sluta.

   Detta {r utg}ngen ur programmet.

 
I huvudprogrammet finns det tv} olika "mod" A  - man|vermod och
B - funktionsmod. 

   A. I man|vermod visas f|ljande kommandorad |verst p} sk{rmen.

                  ->  <-  ^  <RET>  $

      Man|verkommandona betyder:

      ->  (h|gerpil)     Flytta mark|ren en ruta }t h|ger.
      <-  (v{nsterpil)   Flytta mark|ren en ruta }t v{nster.
      ^                  Flyttar mark|ren en ruta upp}t.
      <RET>              Flyttar mark|ren en ruta ned}t.
      $                  \verg}ng till funktionsl{ge.

      \vriga tangenter ger text i rutan.


   B. I funktionsmod visas f|ljande kommandorad |verst p} sk{rmen.

      A  C  D  G  L  N  P  R  S  X  +  -  *  /  H  U  K

      Funktionskommmandona betyder:

      A   Average   - ber{kna medelv{rde.
      C   Calculate - kalkylera matrisen.
      D   Delete    - Radera v{rden och funktioner i den ruta 
                      som Du befinner Dig i.
      G   GOTO      - G} till ruta.
      L   Load      - Ladda in den ursprungliga kalkylen.
      N             - Radera hela rutn{tet.
      R   Repeat    - Repetera rutans inneh}ll och tillh|rande
                      funktion i angivna rutor.
      S   Save      - Spara kalkylen p} skiva. F|rsta tecken av
                      max 8 skall vara en bokstav. Extension
                      s{tts av programmet till "CA3".
      X             - G} ur funktionsmod.
      +             - inleder "+"-funktion (addition).
      -             - inleder "-"-funktion (subtraktion). 
      *             - inleder "*"-funktion (multiplikation).
      /             - inleder "/"-funktion (division).
      H             - Anv{ndes inte
      U             - Utskrift p} printer av formler/ och eller
                      text med 69 tkn/rad.
      K             - Avbryter och g}r tillbaks till menyfunk-
                      tionen. 

   Det finns s}ledes 6 olika funktionstyper som kan definieras
   i rutorna.

                      A    Average
                      R    Repeat
                      +    Addition
                      -    Subtraktion
                      *    Multiplikation
                      /    Division

   Du kan anv{nda en funktionstyp i varje ruta. Definiera en 
   funktion genom att f|rst g} till den ruta som funktionen skall
   vara i. G} sedan |ver i funktionsmod med "$".
   Definieringen inleds d{refter med n}got av tecknen
   "A R + - * /".
   Dessa 6 funktioner kan ber{kna v{rdet av inneh}llet i en
   f|ljd av rutor. Om man avser att endast summera tex rutorna
   AA00 och AA01 och l{gga resultatet i AC00 s} blir kommando-
   str{ngen:

   AC00 = AA00 + AA01...AA01 D 2

   Efter bokstaven D anger man antalet decimaler.

   Enda s{ttet att klara "dubbelfunktioner" {r att mellanlagra
   den f|rsta funktionens v{rde i en ruta som sedan anropas av
   n{sta funktion.

   Ett tips {r: lagra konstanter i rutor p} f|rsta eller sista
   raden.

   N{r rutn{tet fyllts i med text och v{rden kan det sparas med
   kommandot "S". F|re avslut med kommandot "K" kommer fr}gan
   SPARA P] FIL J/N. [ven h{r kan matrisen sparas p} disketten.

   F|re utskrift p} printer b|r l{mplig printerkod s{ttas i
   CALC3.80K.

KALKYLERING:
=========== 

   Bygg f|rst upp din kalkyl p} ett rutat papper. Det ger Dig m|j-
   lighet att t{nka igenom uppl{ggningen innan Du l{gger in funk-
   tioner och konstanter i rutorna. 

   Matrisen kalkyleras i "ASCII-aritmetik".  Tomma rutor ger
   "noll"  vid funktionerna + - *.  Vid division p} tomma rutor
   blir det sakl|st Error liksom vid division med noll.

   Ett s{tt att f|rhindra s}dana fel {r att g|ra en "noll-
   matris".

   Fyll alla rutor med 0 (noll) p} f|ljande s{tt.

     -  Skriv in 0 i ruta AA00 i den tomma matrisen.
     -  G} |ver i kommandomod med $ och ange "R".
     -  Ange sedan AA00 och efter det "R" som kommer upp
        AA00...AC02, om matrisen har 3 rader och 3 kolumner.

   Om hela kolumn 0 skall reserveras f|r text, vilket {r ganska
   vanligt byts AA00...AC02 ovan ut mot AA01...AC02. N{r s}
   |vriga rutor {r fyllda med "0" raderas ruta AA00.

   P} motsvarande s{tt kan man spara den |versta raden f|r
   text genom att repetera AA00 till AB01...AC02.
   Kalkyleringen av matrisen sker i ordningen rader - kolumner.
   Detta medf|r att kalkylerade v{rden som skall anropas av en
   ruta m}ste finnas i en ruta som redan passerats.


CALC.TXT 19850429.2216 Bengt Sandgren <2776>
