Re: F9dasm and bad 6809 op codes

Sean Conner via Coco <coco-uNHYcr1XS/wmlAP/[email protected]>
Newsgroups gmane.comp.hardware.tandy.coco
Message-ID <[email protected]>
It was thus said that the Great Allen Huffman via Coco once stated:
> Is there such an op code as DEY or PSHX?
> 
> Both are generated by the f9dasm disassembler:
> 
>         LDY     M3AFD                    ;3A04: 10 BE 3A FD    '..:.'
> Z3A08   DEY                              ;3A08: 31 3F          '1?'
>         BNE     GETKEY                   ;3A0A: 26 05          '&.'
> 
> …then later…
> 
>         LEAX    -$05,X                   ;3A6D: 30 1B          '0.'
>         PSHX                             ;3A6F: 34 10          '4.'
>         LDX     #DCOPC                   ;3A71: 8E 00 EA       '...'
> 
> Any op code but experts out there?  The 31 seems to be LEAY $3F,Y,
> perhaps. Unsure about the other. The document I am looking at is not OCR’d
> so I cannot do a search in it.

  The DEY seems to be a macro (why?) for LEAY -1,Y.  PSHX seems to be a
macro for PSHS X.  The author of f9dasm probably didn't like typing, or was
too used to another style CPU (maybe the 6800?).

> https://github.com/allenhuffman/SubEthaSoftware/tree/main/OS-9/MultiBoot/asm
> 
> The dat file (one directory higher) also exists as data numbers in my C
> program, so I used a Python script to spit those data numbers into
> multiboot.bin and am working from that.
> 
> Earlier, I was doing it from an Intel HEX file. I was having problems
> there, too, so switched to the .bin approach - same issues.
> 
> Just me?

  Might need some better tools.  Here's what I was able to do with the
second array.  It seems to assume SECB, so for a Coco 3.

3900 8E   3800   - LDX   #3800              ; -aa0- 
3903 108E 2600   - LDY   #2600              ; -aa0- 
3907 EC   81     - LDD   ,X++               ; -aa0- 
3909 ED   A1     - STD   ,Y++               ; -aa0- 
390B 8C   3900   - CMPX  #3900              ; -aaaa 
390E 25   F7     - BLO   3907               ; ----- backwards unsigned
3910 17   0198   - LBSR  3AAB               ; ----- forwards 
3913 17   01AB   - LBSR  3AC1               ; ----- forwards 

"        MultiBoot V1.12\r"
" by Terry Todd & Allen Huffman\r"
"  Copyright (C) 1993 by\r"
"       Sub-Etha Software\r"

3982 108E 05C0   - LDY   #05C0              ; -aa0- 
3986 109F 88     - STY   88                 ; -aa0- 	; CURPOS
3989 17   0135   - LBSR  3AC1               ; ----- forwards 

"     Use UP/DOWN to scroll\r"
"[ENTER] Selects   [BREAK] Quits"

39C7 F6   3AEB   - LDB   3AEB               ; -aa0- 
39CA 17   0110   - LBSR  3ADD               ; ----- forwards 
39CD CE   04A4   - LDU   #04A4              ; -aa0- 
39D0 F6   3AFF   - LDB   3AFF               ; -aa0- 
39D3 1027 00D1   - LBEQ  3AA8               ; ----- forwards 
39D7 F0   3AEB   - SUBB  3AEB               ; uaaaa 
39DA C1   08     - CMPB  #08                ; uaaaa 
39DC 25   02     - BLO   39E0               ; ----- forwards unsigned
39DE C6   08     - LDB   #08                ; -aa0- 
39E0 34   14     - PSHS  X,B                ; ----- 
39E2 DF   88     - STU   88                 ; -aa0- 
39E4 BD   3AD0   - JSR   3AD0               ; ----- 
39E7 35   14     - PULS  B,X                ; ccccc 
39E9 30   8820   - LEAX  32,X               ; --a-- 
39EC 33   C820   - LEAU  32,U               ; ----- 
39EF 5A          - DECB                     ; -aaa- 
39F0 26   EE     - BNE   39E0               ; ----- backwards 
39F2 B6   3AEA   - LDA   3AEA               ; -aa0- 
39F5 B0   3AEB   - SUBA  3AEB               ; uaaaa 
39F8 C6   20     - LDB   #20                ; -aa0- 
39FA 3D          - MUL                      ; --a-a 
39FB C3   04A3   - ADDD  #04A3              ; -aaaa 
39FE 1F   01     - TFR   D,X                ; ccccc 
3A00 86   6A     - LDA   #6A                ; -aa0- 
3A02 A7   84     - STA   ,X                 ; -aa0- 
3A04 10BE 3AFD   - LDY   3AFD               ; -aa0- 
3A08 31   3F     - LEAY  -1,Y               ; --a-- 
3A0A 26   05     - BNE   3A11               ; ----- forwards 
3A0C 32   62     - LEAS  2,S                ; ----- 
3A0E 16   0097   - LBRA  3AA8               ; ----- forwards 
3A11 AD   9FA000 - JSR   [A000]             ; ----- 
3A15 27   F1     - BEQ   3A08               ; ----- backwards 
3A17 C6   60     - LDB   #60                ; -aa0- 
3A19 E7   84     - STB   ,X                 ; -aa0- 
3A1B C6   FF     - LDB   #FF                ; -aa0- 
3A1D 81   5E     - CMPA  #5E                ; uaaaa 
3A1F 27   11     - BEQ   3A32               ; ----- forwards 
3A21 81   0A     - CMPA  #0A                ; uaaaa 
3A23 27   24     - BEQ   3A49               ; ----- forwards 
3A25 81   0D     - CMPA  #0D                ; uaaaa 
3A27 27   3E     - BEQ   3A67               ; ----- forwards 
3A29 81   03     - CMPA  #03                ; uaaaa 
3A2B 26   C5     - BNE   39F2               ; ----- backwards 
3A2D 0F   71     - CLR   71                 ; -0100 
3A2F 7E   8C1B   - JMP   8C1B               ; ----- ; DLOAD
3A32 B6   3AEA   - LDA   3AEA               ; -aa0- 
3A35 27   BB     - BEQ   39F2               ; ----- backwards 
3A37 F7   0155   - STB   0155               ; -aa0- 
3A3A 4A          - DECA                     ; -aaa- 
3A3B B7   3AEA   - STA   3AEA               ; -aa0- 
3A3E B1   3AEB   - CMPA  3AEB               ; uaaaa 
3A41 24   03     - BHS   3A46               ; ----- forwards unsigned
3A43 7A   3AEB   - DEC   3AEB               ; -aaa- 
3A46 16   FF7E   - LBRA  39C7               ; ----- backwards 
3A49 B6   3AEA   - LDA   3AEA               ; -aa0- 
3A4C 4C          - INCA                     ; -aaa- 
3A4D B1   3AFF   - CMPA  3AFF               ; uaaaa 
3A50 24   A0     - BHS   39F2               ; ----- backwards unsigned
3A52 F7   0156   - STB   0156               ; -aa0- 
3A55 B7   3AEA   - STA   3AEA               ; -aa0- 
3A58 B6   3AEB   - LDA   3AEB               ; -aa0- 
3A5B 8B   07     - ADDA  #07                ; aaaaa 
3A5D B1   3AEA   - CMPA  3AEA               ; uaaaa 
3A60 24   E4     - BHS   3A46               ; ----- backwards unsigned
3A62 7C   3AEB   - INC   3AEB               ; -aaa- 
3A65 20   DF     - BRA   3A46               ; ----- backwards 
3A67 F6   3AEA   - LDB   3AEA               ; -aa0- 
3A6A 5C          - INCB                     ; -aaa- 
3A6B 8D   70     - BSR   3ADD               ; ----- forwards 
3A6D 30   1B     - LEAX  -5,X               ; --a-- 
3A6F 34   10     - PSHS  X                  ; ----- 
3A71 8E   00EA   - LDX   #00EA              ; -aa0- 
3A74 CC   0200   - LDD   #0200              ; -aa0- 
3A77 ED   84     - STD   ,X                 ; -aa0- 
3A79 CC   0001   - LDD   #0001              ; -aa0- 
3A7C ED   02     - STD   2,X                ; -aa0- 
3A7E CC   01DA   - LDD   #01DA              ; -aa0- 
3A81 ED   04     - STD   4,X                ; -aa0- 
3A83 AD   9FC004 - JSR   [C004]             ; ----- 
3A87 6D   06     - TST   6,X                ; -aa0- 
3A89 26   4F     - BNE   3ADA               ; ----- forwards 
3A8B 10AE 04     - LDY   4,X                ; -aa0- 
3A8E 31   A815   - LEAY  21,Y               ; --a-- 
3A91 35   40     - PULS  U                  ; ccccc 
3A93 C6   05     - LDB   #05                ; -aa0- 
3A95 A6   C0     - LDA   ,U+                ; -aa0- 
3A97 A7   A0     - STA   ,Y+                ; -aa0- 
3A99 5A          - DECB                     ; -aaa- 
3A9A 26   F9     - BNE   3A95               ; ----- backwards 
3A9C 86   03     - LDA   #03                ; -aa0- 
3A9E A7   84     - STA   ,X                 ; -aa0- 
3AA0 AD   9FC004 - JSR   [C004]             ; ----- 
3AA4 6D   06     - TST   6,X                ; -aa0- 
3AA6 26   32     - BNE   3ADA               ; ----- forwards 
3AA8 7E   2602   - JMP   2602               ; ----- 
3AAB 86   57     - LDA   #57                ; -aa0- ; patch ECB to force
3AAD B7   95C9   - STA   95C9               ; -aa0- ; black-on-orange text
3AB0 86   10     - LDA   #10                ; -aa0- ; set black-on-orange
3AB2 B7   FF22   - STA   FF22               ; -aa0- ; text
3AB5 CC   3F00   - LDD   #3F00              ; -aa0- 
3AB8 FD   FFBC   - STD   FFBC               ; -aa0- ; set pallette register
3ABB BD   F652   - JSR   F652               ; ----- ; force 32-column screen
3ABE 7E   A928   - JMP   A928               ; ----- ; CLS
3AC1 AE   E4     - LDX   ,S                 ; -aa0- ; point to string
3AC3 A6   80     - LDA   ,X+                ; -aa0- ; get next character
3AC5 27   06     - BEQ   3ACD               ; ----- forwards ; NUL? exit
3AC7 AD   9FA002 - JSR   [A002]             ; ----- ; print character
3ACB 20   F6     - BRA   3AC3               ; ----- backwards ; continue
3ACD AF   E4     - STX   ,S                 ; -aa0- ; save return address
3ACF 39          - RTS                      ; ----- ; return
3AD0 A6   80     - LDA   ,X+                ; -aa0- ; get next character
3AD2 27   FB     - BEQ   3ACF               ; ----- backwards ; NUL? exit
3AD4 AD   9FA002 - JSR   [A002]             ; ----- ; print character
3AD8 20   F6     - BRA   3AD0               ; ----- backwards ;continue
3ADA 7E   D709   - JMP   D709               ; ----- ; signal IO error
3ADD 8E   3B00   - LDX   #3B00              ; -aa0- 
3AE0 5D          - TSTB                     ; -aa0- 
3AE1 27   EC     - BEQ   3ACF               ; ----- backwards 
3AE3 30   8820   - LEAX  32,X               ; --a-- 
3AE6 5A          - DECB                     ; -aaa- 
3AE7 26   FA     - BNE   3AE3               ; ----- backwards 
3AE9 39          - RTS                      ; ----- 

3AEA	fdb	0
3AEC	fdb	0
3AEE	fdb	0
3AF0	fdb	0
3AF2	fdb	0
3AF4	fdb	0
3AF6	fdb	0
3AF8	fdb	0
3AFA	fdb	0
3AFC	fdb	$0042
3AFE	fdb	$4200

  -spc

  

-- 
Coco mailing list
[email protected]
https://pairlist5.pair.net/mailman/listinfo/coco
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.