🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #2544

8051 - Archimedes Assembler

#2544
From: Pszemol
Date: Tue, 10 Jul 2012 14:36
101 lines
4664 bytes
Witam - szukam kogoś kto miał kiedyś do czynienia ze starszym softem dla 
8051...
Mam tu do rozgryzienia kod napisany w assemblerze 8051 Archimedes z 1990 
roku.

Nie mogę nigdzie znaleźć dokumentacji do tego asemblera, do składni makro
-instrukcji itp. Składnię ma dosyć dziwną, część można się domyślić, część 
nie.

Ktoś wie może co oznaczają w poniższym przykładzie odnośniki do "\0+1"?
Albo jak rozumieć "\0_TL0_2"? No i kto widział nazwę etykiety conv2\.:    ?

Przykład:

       MACRO   %convert_data   ;
       mov     a,\0+1          ; If tl0 = ff and next read of tl0
       cjne    a,#0ffh,conv1\@ ; = 00 then dec th0.
            ;
       mov     a,\0_TL0_2   ;
       jnz     conv1\.      ;
            ;
       mov     a,\0_TH0_2      ; Jump if th0 2nd reading <> th0.
       cjne    a,\0,conv1\.    ;
            ;
       setb    c      ;
       sjmp    conv2\.         ; Jump to decrement TH0.
            ;
conv1\.:         ;

       mov     a,\0+2          ;zb.  P1 (LC04-LC11) to A
       anl     a,#0f0h         ;zb.  Mask off lower 4 bits; leave LC11-LC8
       cjne    a,#0f0h,conv4\. ;zb. if not equal to 0x0F
       sjmp    conv5\.         ;zb. if equal to 0x0F jump to decrement T0 
counter, (to fast overflow)

conv4\.:
       mov     a,\0_ROC        ;
       jnb     acc.5,conv3\.   ; Jump if ROC not set.
            ;
       mov     a,\0_TL0_2      ;
       cjne    a,\0+1,conv3\.  ; Jump if not equal.
            ;
       mov     a,\0+2       ; Jump if p1  = 0   if p1 = 0 then internal
       jz      conv3\.      ; counter have rolled over. ignore p3.5.
            ;
conv5\.:
       clr     c            ; Decrement Timer 0.
       mov     a,\0+1       ; Sub 1 from low order.
       subb    a,#1         ;
       mov     \0+1,a       ; Resave low count.
            ;
conv2\.:         ; Decrement TH0.
       mov     a,\0+0      ; Sub 0 with borrow from high count.
       subb    a,#0        ;
       mov     \0+0,a      ; Resave high count.
       mov     a,\0_overflow   ; Clear overflow if still borrowed.
       subb    a,#0        ;
       mov     \0_overflow,a   ; Resave overflow.
       sjmp    conv\.      ;
            ;
conv3\.:         ;
conv\<:            ;
       anl     \0+3,#0fh   ; Mask off upper 4 bits of P2 data.
       mov     a,\0+2      ; Get low byte from p1.
       anl     A,#0fh      ; Mask off upper 4 bits.
       swap    a      ; Move lower 4 bits to upper 4 bits.
       orl     \0+3,A      ; Create lsb byte of count.
            ;
       mov     a,\0+2      ; Get high count from P1 data.
       swap    a      ;
       anl     a,#0fh      ;
       mov     \0+2,a      ; Moved to lsb.
       mov     a,\0+1      ; Get low byte from timer 0 msb.
       anl     A,#0fh      ; Mask off upper 4 bits.
       swap    a      ; Move lower 4 bits to upper 4 bits.
       orl     \0+2,A      ; Create next significant bit of data.
            ;
       mov     a,\0+1      ; Get high count from timer 0 data.
       swap    a      ;
       anl     a,#0fh      ;
       mov     \0+1,a      ; Moved to lsb.
       mov     a,\0+0      ; Get low byte from timer 0 high.
       anl     A,#0fh      ; Mask off upper 4 bits.
       swap    a      ; Move lower 4 bits to upper 4 bits.
       orl     \0+1,A      ; Create next significant bit of data.
            ;
       mov     a,\0      ;
       swap    a      ;
       anl     a,#0fh      ;
       mov     \0,a      ;
            ;
       mov     a,\0_overflow   ;
       cjne    a,#TRUE,conv\@   ;
            ;
       mov     \0_overflow,#00   ;
conv\<:            ;
       nop         ;
            ;
       ENDMAC

 
Technical Details
Message-ID: <jtheks$edm$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mail
From: "Pszemol" <Pszemol@PolBox.com>
Newsgroups: pl.comp.lang.asm
Subject: 8051 - Archimedes Assembler
Date: Tue, 10 Jul 2012 09:36:09 -0500
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 102
Message-ID: <jtheks$edm$1@inews.gazeta.pl>
Reply-To: "Pszemol" <Pszemol@BigFoot.com>
NNTP-Posting-Host: gw.petrovend.com
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1341930972 14774 204.248.56.195 (10 Jul 2012 14:36:12 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Tue, 10 Jul 2012 14:36:12 +0000 (UTC)
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416
X-Priority: 3
X-User: pszemol70
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Windows Live Mail 14.0.8117.416
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit