Changeset 84c0125 in buchla-68k


Ignore:
Timestamp:
08/07/2017 01:05:57 PM (2 years ago)
Author:
Thomas Lopatic <thomas@…>
Branches:
master
Children:
8325447
Parents:
15854f1
Message:

Fix * in comments.

Files:
24 edited

Legend:

Unmodified
Added
Removed
  • lib700/blkfill.s

    r15854f1 r84c0125  
    55|       void
    66|       blkfill(where, what, count)
    7 |       char |where;
     7|       char *where;
    88|       char what;
    99|       short count;
  • lib700/blkmove.s

    r15854f1 r84c0125  
    55|       void
    66|       blkmove(to, from, n)
    7 |       char |to, |from;
     7|       char *to, *from;
    88|       short n;
    99
  • lib700/rand24.s

    r15854f1 r84c0125  
    1313
    1414| Computes:
    15 |               S = [S | C] + K
     15|               S = [S * C] + K
    1616
    1717| Where:
  • prolog/fsmain.s

    r15854f1 r84c0125  
    103103                .page
    104104
    105 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     105|************************************************************************
    106106|               Data Area                                               |
    107 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     107|************************************************************************
    108108
    109109                .data
     
    111111pmsg1:          .asciz  "  returned from Croot() "
    112112
    113 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     113|************************************************************************
    114114|               BSS Area                                                |
    115 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     115|************************************************************************
    116116
    117117                .bss
  • ram/execkey.s

    r15854f1 r84c0125  
    3838| Register variables
    3939| ------------------
    40 A_FP            =       A5              | LONG -- struct idfnhdr |
     40A_FP            =       A5              | LONG -- struct idfnhdr *
    4141A_FPU           =       A4              | LONG -- FPU base address
    42 A_SMP           =       A3              | LONG -- struct sment |
     42A_SMP           =       A3              | LONG -- struct sment *
    4343
    4444R_FPMANT        =       D7              | WORD -- FPU time mantissa
     
    5050| Local (stack) variables
    5151| -----------------------
    52 PT              =       -4              | LONG -- instpnt |
    53 VEP             =       -8              | LONG -- struct valent |
     52PT              =       -4              | LONG -- instpnt *
     53VEP             =       -8              | LONG -- struct valent *
    5454OLDI            =       -10             | WORD -- old IPL  (sr)
    5555OCTYPE          =       -12             | WORD -- oscillator 1 mode / scratch
     
    6161TFPVAL          =       -24             | WORD -- temporary FPU value
    6262LTMP            =       -28             | LONG -- long temporary
    63 IP              =       -32             | LONG -- struct instdef |
     63IP              =       -32             | LONG -- struct instdef *
    6464GROUP           =       -34             | WORD -- group number << 4
    6565
     
    200200                move.l  4(A_SMP),4(A0)
    201201
    202 |               smp->prv = (struct sment |)vep;
     202|               smp->prv = (struct sment *)vep;
    203203
    204204                move.l  VEP(A6),4(A_SMP)
     
    460460                .page
    461461
    462 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     462|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    463463
    464464F00L137:        move.l  PT(A6),A0
     
    794794                move.l  4(A_SMP),4(A0)
    795795
    796 |               smp->prv = (struct sment |)vep;
     796|               smp->prv = (struct sment *)vep;
    797797
    798798                move.l  VEP(A6),4(A_SMP)
     
    10541054                .page
    10551055
    1056 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     1056|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    10571057
    10581058F01L137:        move.l  PT(A6),A0
     
    13431343                move.l  4(A_SMP),4(A0)
    13441344
    1345 |               smp->prv = (struct sment |)vep;
     1345|               smp->prv = (struct sment *)vep;
    13461346
    13471347                move.l  VEP(A6),4(A_SMP)
     
    16031603                .page
    16041604
    1605 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     1605|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    16061606
    16071607F02L137:        move.l  PT(A6),A0
     
    18921892                move.l  4(A_SMP),4(A0)
    18931893
    1894 |               smp->prv = (struct sment |)vep;
     1894|               smp->prv = (struct sment *)vep;
    18951895
    18961896                move.l  VEP(A6),4(A_SMP)
     
    21522152                .page
    21532153
    2154 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     2154|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    21552155
    21562156F03L137:        move.l  PT(A6),A0
     
    24682468                move.l  4(A_SMP),4(A0)
    24692469
    2470 |               smp->prv = (struct sment |)vep;
     2470|               smp->prv = (struct sment *)vep;
    24712471
    24722472                move.l  VEP(A6),4(A_SMP)
     
    27472747                .page
    27482748
    2749 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     2749|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    27502750
    27512751F04L137:        move.l  PT(A6),A0
     
    30553055                move.l  4(A_SMP),4(A0)
    30563056
    3057 |               smp->prv = (struct sment |)vep;
     3057|               smp->prv = (struct sment *)vep;
    30583058
    30593059                move.l  VEP(A6),4(A_SMP)
     
    33053305                .page
    33063306
    3307 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     3307|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    33083308
    33093309F05L137:        move.l  PT(A6),A0
     
    36143614                move.l  4(A_SMP),4(A0)
    36153615
    3616 |               smp->prv = (struct sment |)vep;
     3616|               smp->prv = (struct sment *)vep;
    36173617
    36183618                move.l  VEP(A6),4(A_SMP)
     
    38643864                .page
    38653865
    3866 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     3866|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    38673867
    38683868F06L137:        move.l  PT(A6),A0
     
    41394139                move.l  4(A_SMP),4(A0)
    41404140
    4141 |               smp->prv = (struct sment |)vep;
     4141|               smp->prv = (struct sment *)vep;
    41424142
    41434143                move.l  VEP(A6),4(A_SMP)
     
    43894389                .page
    43904390
    4391 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     4391|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    43924392
    43934393F07L137:        move.l  PT(A6),A0
     
    46644664                move.l  4(A_SMP),4(A0)
    46654665
    4666 |               smp->prv = (struct sment |)vep;
     4666|               smp->prv = (struct sment *)vep;
    46674667
    46684668                move.l  VEP(A6),4(A_SMP)
     
    49144914                .page
    49154915
    4916 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     4916|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    49174917
    49184918F08L137:        move.l  PT(A6),A0
     
    51895189                move.l  4(A_SMP),4(A0)
    51905190
    5191 |               smp->prv = (struct sment |)vep;
     5191|               smp->prv = (struct sment *)vep;
    51925192
    51935193                move.l  VEP(A6),4(A_SMP)
     
    54395439                .page
    54405440
    5441 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     5441|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    54425442
    54435443F09L137:        move.l  PT(A6),A0
     
    57145714                move.l  4(A_SMP),4(A0)
    57155715
    5716 |               smp->prv = (struct sment |)vep;
     5716|               smp->prv = (struct sment *)vep;
    57175717
    57185718                move.l  VEP(A6),4(A_SMP)
     
    59645964                .page
    59655965
    5966 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     5966|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    59675967
    59685968F10L137:        move.l  PT(A6),A0
     
    62396239                move.l  4(A_SMP),4(A0)
    62406240
    6241 |               smp->prv = (struct sment |)vep;
     6241|               smp->prv = (struct sment *)vep;
    62426242
    62436243                move.l  VEP(A6),4(A_SMP)
     
    64896489                .page
    64906490
    6491 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     6491|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    64926492
    64936493F11L137:        move.l  PT(A6),A0
     
    67646764                move.l  4(A_SMP),4(A0)
    67656765
    6766 |               smp->prv = (struct sment |)vep;
     6766|               smp->prv = (struct sment *)vep;
    67676767
    67686768                move.l  VEP(A6),4(A_SMP)
     
    70147014                .page
    70157015
    7016 |               ltmp = (ltmp | pt->ipvmlt) >> 15;
     7016|               ltmp = (ltmp * pt->ipvmlt) >> 15;
    70177017
    70187018F12L137:        move.l  PT(A6),A0
  • ram/sedisp.s

    r15854f1 r84c0125  
    44
    55|       se_disp(ep, sd, gdstb, cf)
    6 |       struct s_entry |ep;
     6|       struct s_entry *ep;
    77|       short sd;
    8 |       struct gdsel |gdstb[];
     8|       struct gdsel *gdstb[];
    99|       short cf;
    1010
     
    111111| gdsel structure definitions
    112112| ---------------------------
    113 G_NEXT          =       0               | long - 'next' field   (struct gdsel |)
     113G_NEXT          =       0               | long - 'next' field   (struct gdsel *)
    114114G_NOTE          =       4               | word - 'note' field   (short)
    115115G_CODE          =       6               | word - 'code' field   (short)
     
    206206                clr.b   numstr+3                | terminate string
    207207                move.w  d1,d0                   | col = group
    208                 asl.w   #2,d0                   | ... | 5
     208                asl.w   #2,d0                   | ... * 5
    209209                add.w   d1,d0                   | ...
    210210                add.w   #6,d0                   | ... + 6
     
    251251                clr.w   d2                      | d2 = ep->group
    252252                move.b  E_GROUP(a0),d2          | ...
    253                 lsl.w   #2,d2                   | ... | 4
     253                lsl.w   #2,d2                   | ... * 4
    254254                movea.l P_SL(a6),a2             | a2 points at gdstb
    255255                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[ep->group]
     
    304304                clr.w   d2                      | get group in d2
    305305                move.b  E_GROUP(a0),d2          | ...
    306                 lsl.w   #2,d2                   | ... | 4
     306                lsl.w   #2,d2                   | ... * 4
    307307                move.l  0(a2,d2.W),d0           | check gdstb[ep->group]
    308308                beq     dsexit
     
    353353                movea.l d0,a1                   | a1 = gdsp
    354354                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    355                 move.w  #48,d2                  | d2 = event PRIORITY | 4
     355                move.w  #48,d2                  | d2 = event PRIORITY * 4
    356356                movea.l P_SL(a6),a2             | a2 points at gdstb
    357357                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    376376                movea.l d0,a1                   | a1 = gdsp
    377377                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    378                 move.w  #48,d2                  | d2 = event PRIORITY | 4
     378                move.w  #48,d2                  | d2 = event PRIORITY * 4
    379379                movea.l P_SL(a6),a2             | a2 points at gdstb
    380380                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    394394                movea.l d0,a1                   | a1 = gdsp
    395395                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    396                 move.w  #48,d2                  | d2 = event PRIORITY | 4
     396                move.w  #48,d2                  | d2 = event PRIORITY * 4
    397397                movea.l P_SL(a6),a2             | a2 points at gdstb
    398398                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    428428                movea.l d0,a1                   | a1 = gdsp
    429429                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    430                 move.w  #52,d2                  | d2 = event PRIORITY | 4
     430                move.w  #52,d2                  | d2 = event PRIORITY * 4
    431431                movea.l P_SL(a6),a2             | a2 points at gdstb
    432432                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    491491                move.w  d1,-(a7)                | save group number on stack
    492492                add.w   d0,d0                   | calculate column
    493                 add.w   d0,d1                   | ... = 5 | group
     493                add.w   d0,d1                   | ... = 5 * group
    494494                addi.w  #5,d1                   | ... + 5
    495495                move.w  #AT11,-(a7)             | vputs(obj8, 3, col, numstr, atr11)
     
    519519                movea.l d0,a1                   | a1 = gdsp
    520520                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    521                 move.w  #52,d2                  | d2 = event PRIORITY | 4
     521                move.w  #52,d2                  | d2 = event PRIORITY * 4
    522522                movea.l P_SL(a6),a2             | a2 points at gdstb
    523523                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    548548                move.w  d1,-(a7)                | save group number
    549549                move.w  (a7),d0                 | col = group number
    550                 add.w   d0,d0                   | ... | 5
     550                add.w   d0,d0                   | ... * 5
    551551                add.w   d0,d0                   | ...
    552552                move.w  (a7)+,d2                | ...  (d2 = group number)
     
    583583                movea.l d0,a1                   | a1 = gdsp
    584584                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    585                 move.w  #52,d2                  | d2 = event PRIORITY | 4
     585                move.w  #52,d2                  | d2 = event PRIORITY * 4
    586586                movea.l P_SL(a6),a2             | a2 points at gdstb
    587587                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    612612                move.w  d1,-(a7)                | save group number
    613613                move.w  (a7),d0                 | col = group number
    614                 add.w   d0,d0                   | ... | 5
     614                add.w   d0,d0                   | ... * 5
    615615                add.w   d0,d0                   | ...
    616616                move.w  (a7)+,d2                | ...  (d2 = group number)
     
    647647                movea.l d0,a1                   | a1 = gdsp
    648648                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    649                 move.w  #52,d2                  | d2 = event PRIORITY | 4
     649                move.w  #52,d2                  | d2 = event PRIORITY * 4
    650650                movea.l P_SL(a6),a2             | a2 points at gdstb
    651651                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    683683                move.w  d1,-(a7)                | save variable number
    684684                move.w  d1,d0                   | calculate display offset
    685                 lsl.w   #3,d0                   | ... (var | 9) + 6
     685                lsl.w   #3,d0                   | ... (var * 9) + 6
    686686                add.w   d0,d1                   | ... in d1
    687687                addq.w  #6,d1                   | ...
     
    707707                movea.l d0,a1                   | a1 = gdsp
    708708                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    709                 move.w  #52,d2                  | d2 = event PRIORITY | 4
     709                move.w  #52,d2                  | d2 = event PRIORITY * 4
    710710                movea.l P_SL(a6),a2             | a2 points at gdstb
    711711                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    743743                move.w  d1,-(a7)                | save variable number
    744744                move.w  d1,d0                   | calculate display offset
    745                 lsl.w   #3,d0                   | ... (var | 9) + 8
     745                lsl.w   #3,d0                   | ... (var * 9) + 8
    746746                add.w   d0,d1                   | ... in d1
    747747                addi.w  #8,d1                   | ...
     
    791791                movea.l d0,a1                   | a1 = gdsp
    792792                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    793                 move.w  #52,d2                  | d2 = event PRIORITY | 4
     793                move.w  #52,d2                  | d2 = event PRIORITY * 4
    794794                movea.l P_SL(a6),a2             | a2 points at gdstb
    795795                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    834834                movea.l d0,a1                   | a1 = gdsp
    835835                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    836                 move.w  #56,d2                  | d2 = event PRIORITY | 4
     836                move.w  #56,d2                  | d2 = event PRIORITY * 4
    837837                movea.l P_SL(a6),a2             | a2 points at gdstb
    838838                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    880880                movea.l d0,a1                   | a1 = gdsp
    881881                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    882                 move.w  #56,d2                  | d2 = event PRIORITY | 4
     882                move.w  #56,d2                  | d2 = event PRIORITY * 4
    883883                movea.l P_SL(a6),a2             | a2 points at gdstb
    884884                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    918918                movea.l d0,a1                   | a1 = gdsp
    919919                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    920                 move.w  #56,d2                  | d2 = event PRIORITY | 4
     920                move.w  #56,d2                  | d2 = event PRIORITY * 4
    921921                movea.l P_SL(a6),a2             | a2 points at gdstb
    922922                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    955955                movea.l d0,a1                   | a1 = gdsp
    956956                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    957                 move.w  #56,d2                  | d2 = event PRIORITY | 4
     957                move.w  #56,d2                  | d2 = event PRIORITY * 4
    958958                movea.l P_SL(a6),a2             | a2 points at gdstb
    959959                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    978978                movea.l d0,a1                   | a1 = gdsp
    979979                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    980                 move.w  #60,d2                  | d2 = event PRIORITY | 4
     980                move.w  #60,d2                  | d2 = event PRIORITY * 4
    981981                movea.l P_SL(a6),a2             | a2 points at gdstb
    982982                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    10081008                move.w  d1,-(a7)                | save group number
    10091009                move.w  (a7),d0                 | col = group number
    1010                 add.w   d0,d0                   | ... | 5
     1010                add.w   d0,d0                   | ... * 5
    10111011                add.w   d0,d0                   | ...
    10121012                move.w  (a7)+,d2                | ...  (d2 = group number)
     
    10501050                movea.l d0,a1                   | a1 = gdsp
    10511051                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    1052                 move.w  #60,d2                  | d2 = event PRIORITY | 4
     1052                move.w  #60,d2                  | d2 = event PRIORITY * 4
    10531053                movea.l P_SL(a6),a2             | a2 points at gdstb
    10541054                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    11001100                movea.l d0,a1                   | a1 = gdsp
    11011101                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    1102                 move.w  #60,d2                  | d2 = event PRIORITY | 4
     1102                move.w  #60,d2                  | d2 = event PRIORITY * 4
    11031103                movea.l P_SL(a6),a2             | a2 points at gdstb
    11041104                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
     
    11501150                movea.l d0,a1                   | a1 = gdsp
    11511151                move.l  G_NEXT(a1),_gdfsep      | gdfsep = gdsp->next
    1152                 move.w  #60,d2                  | d2 = event PRIORITY | 4
     1152                move.w  #60,d2                  | d2 = event PRIORITY * 4
    11531153                movea.l P_SL(a6),a2             | a2 points at gdstb
    11541154                move.l  0(a2,d2.W),G_NEXT(a1)   | gdsp->next = gdstb[pri]
  • ram/seexec.s

    r15854f1 r84c0125  
    33| Version 40 -- 1988-10-06 -- D.N. Lynx Crowe
    44
    5 |       struct s_entry |
     5|       struct s_entry *
    66|       se_exec(ep, sd)
    7 |       struct s_entry |ep;
     7|       struct s_entry *ep;
    88|       short sd;
    99
     
    143143nbegex:         clr.w   d1                      | clear d1
    144144                move.b  E_GROUP(a0),d1          | get group number
    145                 add.w   d1,d1                   | ... | 2
     145                add.w   d1,d1                   | ... * 2
    146146                lea     _grpstat,a1             | point at grpstat
    147147                tst.w   0(a1,d1.W)              | see if group is enabled
     
    181181nendex:         clr.w   d1                      | clear d1
    182182                move.b  E_GROUP(a0),d1          | get group number
    183                 add.w   d1,d1                   | ... | 2
     183                add.w   d1,d1                   | ... * 2
    184184                lea     _grpstat,a1             | point at grpstat
    185185                tst.w   0(a1,d1.W)              | check group status
     
    188188                move.b  E_NOTE(a0),d1           | d1 = note number nn (0..127)
    189189                move.w  #LCL_PCH,d2             | put port and channel in d2
    190                 add.w   d1,d2                   | d2 = trg | 2
     190                add.w   d1,d2                   | d2 = trg * 2
    191191                add.w   d2,d2                   | ...
    192192                lea     _trgtab,a1              | set trigger table entry off
  • ram/serintr.s

    r15854f1 r84c0125  
    166166
    167167calldcd1:       move.w  d0,-(a7)                | Call the footswitch processor
    168                 jsr     (a2)                    | ... (|footX)(status)
     168                jsr     (a2)                    | ... (*footX)(status)
    169169                tst.w   (a7)+                   | ...
    170170                rts                             | Return to caller
     
    524524| DCD interrupt processor vectors
    525525| -------------------------------
    526 _foot1:         .ds.l   1                       | short (|foot1)();
    527 _foot2:         .ds.l   1                       | short (|foot2)();
    528 _pulse1:        .ds.l   1                       | short (|pulse1)();
    529 _pulse2:        .ds.l   1                       | short (|pulse2)();
     526_foot1:         .ds.l   1                       | short (*foot1)();
     527_foot2:         .ds.l   1                       | short (*foot2)();
     528_pulse1:        .ds.l   1                       | short (*pulse1)();
     529_pulse2:        .ds.l   1                       | short (*pulse2)();
    530530
    531531                .end
  • rom/bios.s

    r15854f1 r84c0125  
    1 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    2 |                                                                              |
    3 | bios.s -- BIOS for the Buchla 700 and NASA 3D Helmet Display                 |
    4 | ------    --------------------------------------------------                 |
    5 |                                                                              |
    6 | See VM1,VM2 and VDATE for version and date                                   |
    7 | Written by D.N. Lynx Crowe                                                   |
    8 |                                                                              |
    9 | Very loosely based on ideas from:                                            |
    10 |                                                                              |
    11 |       "Atari ST Internals", by Abacus Software,                              |
    12 |       "A Hitchhiker's Guide to the BIOS", by Atari,                          |
    13 |       "DOS Technical Reference", by IBM,                                     |
     1|*******************************************************************************
     2|                                                                              *
     3| bios.s -- BIOS for the Buchla 700 and NASA 3D Helmet Display                 *
     4| ------    --------------------------------------------------                 *
     5|                                                                              *
     6| See VM1,VM2 and VDATE for version and date                                   *
     7| Written by D.N. Lynx Crowe                                                   *
     8|                                                                              *
     9| Very loosely based on ideas from:                                            *
     10|                                                                              *
     11|       "Atari ST Internals", by Abacus Software,                              *
     12|       "A Hitchhiker's Guide to the BIOS", by Atari,                          *
     13|       "DOS Technical Reference", by IBM,                                     *
    1414|       "DOS/360", by IBM,
    15 |       "CP/M" , by Digital Research, and, of course,                          |
    16 |       "Unix (tm)", by AT&T, et al.                                           |
    17 |                                                                              |
    18 | After all,  Why re-invent the wheel?                                         |
    19 |                                                                              |
    20 | Some of the functions are the same as Ataris, but quite a few are different, |
    21 | and our I/O configuration is much different, so BEWARE!  Make no             |
    22 | assumptions, and read the documentation and comments very carefully.         |
    23 |                                                                              |
    24 | Especially watch out for the extended BIOS functions.  Most of them          |
    25 | are nothing at all like the Atari / GEMDOS extended bios functions,          |
    26 | and even the ones that are similar have different numbers.                   |
    27 ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     15|       "CP/M" , by Digital Research, and, of course,                          *
     16|       "Unix (tm)", by AT&T, et al.                                           *
     17|                                                                              *
     18| After all,  Why re-invent the wheel?                                         *
     19|                                                                              *
     20| Some of the functions are the same as Ataris, but quite a few are different, *
     21| and our I/O configuration is much different, so BEWARE!  Make no             *
     22| assumptions, and read the documentation and comments very carefully.         *
     23|                                                                              *
     24| Especially watch out for the extended BIOS functions.  Most of them          *
     25| are nothing at all like the Atari / GEMDOS extended bios functions,          *
     26| and even the ones that are similar have different numbers.                   *
     27|*******************************************************************************
    2828
    2929                .text
     
    3939
    4040FL_SKR          =       0x00            | Seek rate  (WD1772, 6Ms/step)
    41 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     41|************************************************************************
    4242
    4343                .page
     
    15951595fastcopy:       move.l  4(a7),a0                | Get source pointer
    15961596                move.l  8(a7),a1                | Get destination pointer
    1597                 move.w  0x3F,d0                 | 512 bytes  (63+1)|8
     1597                move.w  0x3F,d0                 | 512 bytes  (63+1)*8
    15981598
    15991599fastcpy1:       move.b  (a0)+,(a1)+             | Move 8 bytes
     
    16151615_hdvini:        link    a6,#-18                 | Reserve space on stack
    16161616                movem.l d3-d7/a3-a5,-(a7)       | Preserve registers
    1617                 move.l  #300,maxactim           | maxactim = 300 | 20ms
     1617                move.l  #300,maxactim           | maxactim = 300 * 20ms
    16181618                clr.w   d0                      | Put zeros in ...
    16191619                move.w  d0,nflops               | ... nflops
     
    17591759                move.w  d0,24(a5)               | Set dspt
    17601760                move.w  20(a5),d0               | Get dnsides
    1761                 muls.w  24(a5),d0               | ... | dspt
     1761                muls.w  24(a5),d0               | ... * dspt
    17621762                move.w  d0,22(a5)               | Set dspc
    17631763                move.l  #buffer+28,(a7)         | Convert number of hidden sects
     
    18391839media4:         move.l  _hz_200,d0              | Get time in d0
    18401840                movea.w d7,a1                   | Calculate acctim table address
    1841                 add.l   a1,a1                   | ... = drive # | 4
     1841                add.l   a1,a1                   | ... = drive # * 4
    18421842                add.l   a1,a1                   | ...
    18431843                add.l   #acctim,a1              | ... + acctim base address
     
    19871987                movem.l d2-d7/a5,-(a7)          | Save registers
    19881988                move.w  16(a6),d0               | Drive number to d0
    1989                 asl.w   #5,d0                   | Shift ( |32 )
     1989                asl.w   #5,d0                   | Shift ( *32 )
    19901990                ext.l   d0                      | Sign extend it, too
    19911991                move.l  d0,a5                   | Result in a5
     
    26882688floplk01:       moveq.l #0,d7                   | Clear out d7
    26892689                move.w  ccount(a5),d7           | Get ccount
    2690                 lsl.w   #8,d7                   | ... | sector length  (512)
     2690                lsl.w   #8,d7                   | ... * sector length  (512)
    26912691                lsl.w   #1,d7                   | ...
    26922692                move.l  cdma(a5),a0             | Get DMA start address
     
    33093309
    33103310                .page
    3311 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     3311|************************************************************************
    33123312|                                                                       |
    33133313|                       Constant definitions                            |
    33143314|                       --------------------                            |
    3315 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     3315|************************************************************************
    33163316
    33173317                .even
     
    36583658
    36593659                .page
    3660 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     3660|************************************************************************
    36613661|                                                                       |
    36623662|                       RAM storage definitions                         |
    36633663|                       -----------------------                         |
    3664 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
     3664|************************************************************************
    36653665
    36663666                .bss
     
    37363736rsarea:         .ds.l   1               | Dummy long word at top of save area
    37373737
    3738 | ||||| end of the permanently assigned bios variables |||||
     3738| ***** end of the permanently assigned bios variables *****
    37393739
    37403740                .page
  • vlib/glcplot.s

    r15854f1 r84c0125  
    2828
    2929_GLCplot:       link    a6,#0                   | Link stack frames
    30                 moveq   #63,d0                  | d0 = (63-y) | 85
     30                moveq   #63,d0                  | d0 = (63-y) * 85
    3131                sub.w   YLOC(a6),d0             | ...
    3232                mulu    #85,d0                  | ...
     
    3434                move.w  XLOC(a6),d1             | ...
    3535                divu    #6,d1                   | ...
    36                 add.w   d1,d0                   | d0 = (63-y)|85 + (x/6)
     36                add.w   d1,d0                   | d0 = (63-y)*85 + (x/6)
    3737                swap    d1                      | d2 = 7 - (x%6) % 8
    3838                moveq   #7,d2                   | ...
  • vlib/tsplot4.s

    r15854f1 r84c0125  
    77
    88|       tsplot4(obase, nw, fg, row, col, str. pitch)
    9 |       int |obase, nw, fg, row, col, pitch;
    10 |       char |str;
     9|       int *obase, nw, fg, row, col, pitch;
     10|       char *str;
    1111
    1212|               Outputs characters from the string at 'str' to an 'nw'
     
    7777                move.w  ROW(a6),d0      | Calculate output address
    7878                move.w  PITCH(a6),d1    | ... PITCH
    79                 mulu    d1,d0           | ... | ROW
     79                mulu    d1,d0           | ... * ROW
    8080                add.w   #VPIX-1,d0      | ... + VPIX-1
    81                 mulu    d5,d0           | ... | NW
     81                mulu    d5,d0           | ... * NW
    8282                clr.l   d1              | ...
    8383                move.w  COL(a6),d1      | ... +
    84                 lsl.w   #2,d1           | ... COL | 4
     84                lsl.w   #2,d1           | ... COL * 4
    8585                add.l   d1,d0           | ...
    8686                add.l   OBASE(a6),d0    | ... + OBASE
     
    9595                adda.l  #HCW,a3         | Update output pointer for next char.
    9696                lea     _cgtable,a0     | Establish CG pointer in a0
    97                 lsl.w   #1,d0           | ... 2 | character
     97                lsl.w   #1,d0           | ... 2 * character
    9898                adda.w  d0,a0           | ... + _cgtable address
    9999                move.w  #VPIX-1,d6      | Set scan line counter in d6
  • vlib/vclrav.s

    r15854f1 r84c0125  
    66
    77|       vclrav(adr, row, col, atr, len)
    8 |       unsigned int |adr, row, col, atr, len;
     8|       unsigned int *adr, row, col, atr, len;
    99
    1010|               Clears attribute 'atr' at ('row', 'col') in the
     
    2828                move.w  P_COL(a6),d1    | Get col
    2929                add.l   d1,d0           | Add col into d0 to get char. #
    30                 move.l  d0,d1           | Develop cw = (cn/2)|6 in d1
     30                move.l  d0,d1           | Develop cw = (cn/2)*6 in d1
    3131                andi.l  #0xFFFFFFFE,d1  | ...
    3232                move.l  d1,d2           | ...
  • vlib/vcputs.s

    r15854f1 r84c0125  
    66
    77|       vcputs(obase, nw, fg, bg, row, col, str)
    8 |       int |obase, nw, fg, bg, row, col;
    9 |       char |str;
     8|       int *obase, nw, fg, bg, row, col;
     9|       char *str;
    1010
    1111|               Outputs characters from the string at 'str' to an 'nw'
     
    7373                move.w  ROW(a6),d0      | Calculate output address
    7474                move.w  #VPIX,d1        | ... VPIX
    75                 mulu    d1,d0           | ... | ROW
     75                mulu    d1,d0           | ... * ROW
    7676                add.w   #VPIX-1,d0      | ... + VPIX-1
    77                 mulu    d5,d0           | ... | NW
     77                mulu    d5,d0           | ... * NW
    7878                clr.l   d1              | ...
    7979                move.w  COL(a6),d1      | ... +
    80                 lsl.w   #2,d1           | ... COL | 4
     80                lsl.w   #2,d1           | ... COL * 4
    8181                add.l   d1,d0           | ...
    8282                add.l   OBASE(a6),d0    | ... + OBASE
     
    9191                adda.l  #HCW,a3         | Update output pointer for next char.
    9292                lea     _cgtable,a0     | Establish CG pointer in a0
    93                 lsl.w   #1,d0           | ... 2 | character
     93                lsl.w   #1,d0           | ... 2 * character
    9494                adda.w  d0,a0           | ... + _cgtable address
    9595                move.w  #VPIX-1,d6      | Set scan line counter in d6
  • vlib/vcputsv.s

    r15854f1 r84c0125  
    77
    88|       vcputsv(obase, nw, fg, bg, row, col, str. pitch)
    9 |       int |obase, nw, fg, bg, row, col, pitch;
    10 |       char |str;
     9|       int *obase, nw, fg, bg, row, col, pitch;
     10|       char *str;
    1111
    1212|               Outputs characters from the string at 'str' to an 'nw'
     
    8080                move.w  ROW(a6),d0      | Calculate output address
    8181                move.w  PITCH(a6),d1    | ... PITCH
    82                 mulu    d1,d0           | ... | ROW
     82                mulu    d1,d0           | ... * ROW
    8383                add.w   #VPIX-1,d0      | ... + VPIX-1
    84                 mulu    d5,d0           | ... | NW
     84                mulu    d5,d0           | ... * NW
    8585                clr.l   d1              | ...
    8686                move.w  COL(a6),d1      | ... +
    87                 lsl.w   #2,d1           | ... COL | 4
     87                lsl.w   #2,d1           | ... COL * 4
    8888                add.l   d1,d0           | ...
    8989                add.l   OBASE(a6),d0    | ... + OBASE
     
    9898                adda.l  #HCW,a3         | Update output pointer for next char.
    9999                lea     _cgtable,a0     | Establish CG pointer in a0
    100                 lsl.w   #1,d0           | ... 2 | character
     100                lsl.w   #1,d0           | ... 2 * character
    101101                adda.w  d0,a0           | ... + _cgtable address
    102102                move.w  #VPIX-1,d6      | Set scan line counter in d6
  • vlib/vputa.s

    r15854f1 r84c0125  
    66
    77|       vputa(sbase, row, col, attrib)
    8 |       unsigned int |sbase, row, col, attrib;
     8|       unsigned int *sbase, row, col, attrib;
    99
    1010|               Stores attribute value 'attrib' for the character
     
    2828                andi.l  #0x0000003F,d1  | Mask down to 6 bits
    2929                or.l    d1,d0           | OR into d0 to get char. #
    30                 move.w  d0,d1           | Develop cw = (cn/2)|6 in d1
     30                move.w  d0,d1           | Develop cw = (cn/2)*6 in d1
    3131                andi.l  #0xFFFFFFFE,d1  | ...
    3232                move.l  d1,d2           | ...
  • vlib/vputc.s

    r15854f1 r84c0125  
    66
    77|       vputc(sbase, row, col, c, attrib)
    8 |       unsigned int |sbase, row, col, c, attrib;
     8|       unsigned int *sbase, row, col, c, attrib;
    99
    1010|               Stores character c at (row,col) in sbase with
     
    2323                andi.l  #0x0000003F,d1  | Mask down to 6 bits
    2424                or.l    d1,d0           | OR into d0 to get char. #
    25                 move.w  d0,d1           | Develop cw = (cn/2)|6 in d1
     25                move.w  d0,d1           | Develop cw = (cn/2)*6 in d1
    2626                andi.l  #0xFFFFFFFE,d1  | ...
    2727                move.l  d1,d2           | ...
  • vlib/vputcv.s

    r15854f1 r84c0125  
    66
    77|       vputcv(adr, row, col, chr, atr, cols)
    8 |       unsigned int |adr, row, col, chr, atr, cols;
     8|       unsigned int *adr, row, col, chr, atr, cols;
    99
    1010|               Stores character 'chr' at ('row', 'col') in the
     
    3232                move.w  P_COL(a6),d1    | Get col
    3333                add.l   d1,d0           | Add col into d0 to get char. #
    34                 move.l  d0,d1           | Develop cw = (cn/2)|6 in d1
     34                move.l  d0,d1           | Develop cw = (cn/2)*6 in d1
    3535                andi.l  #0xFFFFFFFE,d1  | ...
    3636                move.l  d1,d2           | ...
  • vlib/vputp.s

    r15854f1 r84c0125  
    66|       int
    77|       vputp(octad, xloc, yloc, val)
    8 |       struct octent |octad;
     8|       struct octent *octad;
    99|       int xloc, yloc;
    1010
  • vlib/vsetav.s

    r15854f1 r84c0125  
    66
    77|       vsetav(adr, row, col, atr, len)
    8 |       unsigned int |adr, row, col, atr, len;
     8|       unsigned int *adr, row, col, atr, len;
    99
    1010|               Sets attribute 'atr' at ('row', 'col') in the
     
    2828                move.w  P_COL(a6),d1    | Get col
    2929                add.l   d1,d0           | Add col into d0 to get char. #
    30                 move.l  d0,d1           | Develop cw = (cn/2)|6 in d1
     30                move.l  d0,d1           | Develop cw = (cn/2)*6 in d1
    3131                andi.l  #0xFFFFFFFE,d1  | ...
    3232                move.l  d1,d2           | ...
  • vlib/vsetcv.s

    r15854f1 r84c0125  
    66
    77|       vsetcv(adr, row, col, cfb, len)
    8 |       unsigned int |adr, row, col, cfb, len;
     8|       unsigned int *adr, row, col, cfb, len;
    99
    1010|               Sets colors 'cfb' at ('row', 'col') in the
     
    2828                move.w  P_COL(a6),d1    | Get col
    2929                add.l   d1,d0           | Add col into d0 to get char. #
    30                 move.l  d0,d1           | Develop cw = (cn/2)|6 in d1
     30                move.l  d0,d1           | Develop cw = (cn/2)*6 in d1
    3131                andi.l  #0xFFFFFFFE,d1  | ...
    3232                move.l  d1,d2           | ...
  • vlib/vsplot4.s

    r15854f1 r84c0125  
    77
    88|       vsplot4(obase, nw, fg, row, col, str, pitch, ht, cgtab)
    9 |       uint |obase, nw, fg, row, col, pitch, ht, cgtab[][256];
    10 |       char |str;
     9|       uint *obase, nw, fg, row, col, pitch, ht, cgtab[][256];
     10|       char *str;
    1111
    1212|               Outputs characters from the string at 'str' to an 'nw'
     
    7878                move.w  ROW(a6),d0      | Calculate output address
    7979                move.w  PITCH(a6),d1    | ... PITCH
    80                 mulu    d1,d0           | ... | ROW
     80                mulu    d1,d0           | ... * ROW
    8181                add.w   HT(a6),d0       | ... + HT-1
    8282                subq.w  #1,d0           | ...
    83                 mulu    d5,d0           | ... | NW
     83                mulu    d5,d0           | ... * NW
    8484                clr.l   d1              | ...
    8585                move.w  COL(a6),d1      | ... +
    86                 lsl.w   #2,d1           | ... COL | 4
     86                lsl.w   #2,d1           | ... COL * 4
    8787                add.l   d1,d0           | ...
    8888                add.l   OBASE(a6),d0    | ... + OBASE
     
    9797                adda.l  #HCW,a3         | Update output pointer for next char.
    9898                movea.l CGTAB(a6),a0    | Establish CG pointer in a0
    99                 lsl.w   #1,d0           | ... 2 | character
     99                lsl.w   #1,d0           | ... 2 * character
    100100                adda.w  d0,a0           | ... + cgtab address
    101101                move.w  HT(a6),d6       | Set scan line counter in d6
  • vlib/vvputsv.s

    r15854f1 r84c0125  
    77
    88|       vvputsv(obase, nw, fg, bg, row, col, str, pitch, ht, cgtab)
    9 |       uint |obase, nw, fg, bg, row, col, pitch, ht, cgtab[][256];
    10 |       char |str;
     9|       uint *obase, nw, fg, bg, row, col, pitch, ht, cgtab[][256];
     10|       char *str;
    1111
    1212|               Outputs characters from the string at 'str' to an 'nw'
     
    7979                move.w  ROW(a6),d0      | Calculate output address
    8080                move.w  PITCH(a6),d1    | ... PITCH
    81                 mulu    d1,d0           | ... | ROW
     81                mulu    d1,d0           | ... * ROW
    8282                add.w   HT(a6),d0       | ... + HT-1
    8383                subq.w  #1,d0           | ...
    84                 mulu    d5,d0           | ... | NW
     84                mulu    d5,d0           | ... * NW
    8585                clr.l   d1              | ...
    8686                move.w  COL(a6),d1      | ... +
    87                 lsl.w   #2,d1           | ... COL | 4
     87                lsl.w   #2,d1           | ... COL * 4
    8888                add.l   d1,d0           | ...
    8989                add.l   OBASE(a6),d0    | ... + OBASE
     
    9898                adda.l  #HCW,a3         | Update output pointer for next char.
    9999                movea.l CGTAB(a6),a0    | Establish CG pointer in a0
    100                 lsl.w   #1,d0           | ... 2 | character
     100                lsl.w   #1,d0           | ... 2 * character
    101101                adda.w  d0,a0           | ... + cg table address
    102102                move.w  HT(a6),d6       | Set scan line counter in d6
  • vlib/vwputp.s

    r15854f1 r84c0125  
    66|       int
    77|       vwputp(octad, xloc, yloc, val)
    8 |       struct octent |octad;
     8|       struct octent *octad;
    99|       int xloc, yloc;
    1010
  • vlib/vwputs.s

    r15854f1 r84c0125  
    66
    77|       vwputs(obase, nw, fg, bg, row, col, str)
    8 |       int |obase, nw, fg, bg, row, col;
    9 |       char |str;
     8|       int *obase, nw, fg, bg, row, col;
     9|       char *str;
    1010
    1111|               Outputs characters from the string at 'str' to an 'nw'
     
    6767                move.w  ROW(a6),d0      | Calculate output address
    6868                move.w  #VPITCH,d1      | ...
    69                 mulu    d1,d0           | ... ROW | VPITCH
     69                mulu    d1,d0           | ... ROW * VPITCH
    7070                add.w   #NVPIX-1,d0     | ... + NVPIX-1
    71                 mulu    d5,d0           | ... | NW
     71                mulu    d5,d0           | ... * NW
    7272                clr.l   d1              | ...
    73                 move.w  COL(a6),d1      | ... + (COL | 2)
     73                move.w  COL(a6),d1      | ... + (COL * 2)
    7474                lsl.l   #1,d1           | ...
    7575                add.l   d1,d0           | ...
     
    8686                adda.l  #2,a3           | Update output pointer for next char.
    8787                lea     _cgtable,a0     | Establish CG pointer in a0
    88                 lsl.w   #1,d0           | ... 2 | character
     88                lsl.w   #1,d0           | ... 2 * character
    8989                adda.w  d0,a0           | ... + _cgtable address
    9090                move.w  #NVPIX-1,d6     | Set scan line counter in d6
Note: See TracChangeset for help on using the changeset viewer.