aki_iic’s blog

己の欲せざる処人に施す事無かれ、狂人の真似するは即ち狂人なり

asl

 fusionPCBから基板が届いたし如月が終わる前に少しずつでもデバックの下準備でもしようかと久々(多分15年以上振り:)に68000系のアセンブラに触る。クロスアセンブラgnuのasではなく、万能汎用クロスアセンブラOSSな有名処のaslを使わせて頂く。何よりlinuxでもmakeでインプリ出来るのが有り難い。

john.ccac.rwth-aachen.de

 このクロスアセンブラ、対応していないターゲットが無いとは言わぬが極めて少ない(サポートしていないプロセサが:)のでは?が特徴でcopyrightからするに日本人の開発者も参加されておられる模様。感謝、感謝であります(心から)。

1.最初のハーウェアテストプログラム

 motorola系なら bra 自分(6800/6809なら20 fe,68000系なら60 fe)だろうと言うことで:

    cpu    68020

ssp    equ    $0007fff0
base    equ    $0

    org    base    

    dc.l    ssp
    dc.l    resvec

    org    base+$400    

resvec:

loop    bra    loop

    end

 あな、懐かしや。

2.アセンブル

 これをaslでアセンブル、ヘキサファイル生成。これを1コマンドで出来るのがaslの楽な処でクロスアセンブラに徹した今時珍しく、有り難い硬派なクロスアセンブラ(開発者がトイツ系故?)で何度感謝してもし足りない程。このクロスアセンブラのおかげで68hc11,8051,z80,8085,8049,CDP1802,TMS9995,80186,そして68030と15年前にOlimexでボード作りまくっていた頃には本当にお世話になったツールが15年後の今でもサポートされているのは本当に本当に有り難く、感謝の言葉しかない(心から)。

asl tp0.asm -L

p2hex tp0

 -L はリスティングファイル生成、p2hexはhexファイル生成(デフォルトでMotora S-format:懐かし:)で生成されたhexファイルが:

S0030000FC
S5030001FB
S10B00000007FFF000000400FA
S5030001FB
S105040060FE98
S9030000FC

 あな、懐かしや(2回目)。S9レコードなんてモトローラ系の組み込みプロセサ関係の方でないと知られてないロストテクノロジかもとか思ったり(ARMプロセサのヘキサファイルのフォーマット何でしたっけ?)。まあそんな事は無くて、社会基盤や組み込み機器を支えるマイコン技術者さんはご承知の筈。昔話はさておきリストファイル:

 AS V1.42 Beta [Bld 238] - Source File tp0.asm - Page 1 - 23/02/23 13:05:12


       1/       0 :                         cpu    68020
       2/       0 :                     
       3/       0 : =$7FFF0              ssp    equ    $0007fff0
       4/       0 : =$0                  base    equ    $0
       5/       0 :                     
       6/       0 :                         org    base    
       7/       0 :                     
       8/       0 : 0007 FFF0               dc.l    ssp
       9/       4 : 0000 0400               dc.l    resvec
      10/       8 :                     
      11/     400 :                         org    base+$400    
      12/     400 :                     
      13/     400 :                     resvec:
      14/     400 :                     
      15/     400 : 60FE                loop    bra    loop
      16/     402 :                     
      17/     402 :                         end
  AS V1.42 Beta [Bld 238] - Source File tp0.asm - Page 2 - 23/02/23 13:05:12


  Symbol Table (* = unused):
  --------------------------

*ARCHITECTURE :                                      "x86_64-unknown-linux" - |
 BASE :                           0 - | *CASESENSITIVE :                  0 - |
*COMPMODE :                       0 - | *CONSTPI :        3.141592653589793 - |
*DATE :                  "23/02/23" - | *FALSE :                          0 - |
*FULLPMMU :                       1 - | *HAS64 :                          1 - |
*HASFPU :                         0 - | *HASPMMU :                        0 - |
*INSUPMODE :                      0 - | *LISTON :                         1 - |
 LOOP :                         400 C | *MACEXP :                         7 - |
*MOMCPU :                     68020 - | *MOMCPUNAME :               "68020" - |
*NESTMAX :                      100 - | *PADDING :                        1 - |
*RELAXED :                        0 - |  RESVEC :                       400 C |
 SSP :                        7FFF0 - | *TIME :                  "13:05:12" - |
*TRUE :                           1 - | *VERSION :                     142F - |

     25 symbols
     21 unused symbols

  AS V1.42 Beta [Bld 238] - Source File tp0.asm - Page 3 - 23/02/23 13:05:12


  Code Pages:
  ----------

STANDARD (0 changed characters)

1 code page

0.05 seconds assembly time

     18 lines source file
      2 passes
      0 errors
      0 warnings

 あな、懐かし(3回目)。こういうのを見てニヤニヤしている自分を反芻するに、俺ってまだ終わっていないのかもしれない・・・とか思ったりする(単なる妄想です:)。

 実はPSDのabelソースもCPLDverilog修正もまだやってない(故にsspのアドレスは変更の可能性あり:)のでまあ、ちょぼちょぼと。。。