EASy68K
http://www.easy68k.com/EASy68Kforum/

String Question
http://www.easy68k.com/EASy68Kforum/viewtopic.php?f=6&t=370
Page 1 of 1

Author:  David [ Sun Mar 18, 2007 1:53 pm ]
Post subject:  String Question

Hello,

I am looking for some help with a 68k program I am creating. I was wondering how to print each line separate string that i have defined as:
Code:
str
    dc.b '   #     '
    dc.b '  # #    '
    dc.b ' #   #   '
    dc.b '#     #  '
    dc.b '#######  '
    dc.b '#     #  '
    dc.b '#     #  '

...


Below is the intented output of the program (each line is 9 characters). Currently my program prints it out to all 1 line. Any suggestions or help would be greatly appricated as i am completely stuck on it.

Code:
   #     
  # #   
 #   #   
#     # 
####### 
#     # 
#     # 

Author:  profkelly [ Sun Mar 18, 2007 2:35 pm ]
Post subject: 

Try something like this and use trap #15 task 13 to display it.

Code:
strA
    dc.b '   #     ' ,$a,8,8,8,8,8,8,8,8,8
    dc.b '  # #    ' ,$a,8,8,8,8,8,8,8,8,8
    dc.b ' #   #   ' ,$a,8,8,8,8,8,8,8,8,8
    dc.b '#     #  ' ,$a,8,8,8,8,8,8,8,8,8
    dc.b '#######  ' ,$a,8,8,8,8,8,8,8,8,8
    dc.b '#     #  ' ,$a,8,8,8,8,8,8,8,8,8
    dc.b '#     #  ' ,0


If you want to display multiple letters on the same line you can position the cursor using trap #15 task 11.

Author:  David [ Sun Mar 18, 2007 7:00 pm ]
Post subject: 

thanks for that i used a nested loop outer loop printing row with Carriage Return and Line Feed and the inner loop printing the characters in each row and it seemed to work.
Code:
STARTNEWLINE     ;create new line
move.b #13,d0
trap    #15
move.b #10,d0
    jsr PRINT
dc.w    1 
rts


How would i go about only printing a certain part of the string i defined, in my program the part of the string output depends on the key input.

Code:
    dc.b '   #     '
    dc.b '  # #    '
    dc.b ' #   #   '
    dc.b '#     #  '
    dc.b '#######  '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '######   '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '######   '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '######   '

Author:  profkelly [ Sun Mar 18, 2007 7:03 pm ]
Post subject: 

Trap #15 Task 0 or Task 1 may be used to display partial strings. Put the number of characters to display in D1.W. Point to the address of the string in A1.

Author:  David [ Mon Mar 19, 2007 7:29 pm ]
Post subject: 

profkelly wrote:
Trap #15 Task 0 or Task 1 may be used to display partial strings. Put the number of characters to display in D1.W. Point to the address of the string in A1.


what is task 0 and task 1 because i am not using EASy68K :oops:

Author:  profkelly [ Mon Mar 19, 2007 10:06 pm ]
Post subject: 

David wrote:
what is task 0 and task 1 because i am not using EASy68K :oops:


:sad2:

Trap #15 Task 0 and 1 are also compatible with the Teeside simulator.

Author:  ABeakyboy [ Tue Mar 20, 2007 3:25 am ]
Post subject: 

profkelly wrote:
David wrote:
what is task 0 and task 1 because i am not using EASy68K :oops:


:sad2:

Trap #15 Task 0 and 1 are also compatible with the Teeside simulator.


there there.....
Image

Author:  lym91914 [ Thu Oct 31, 2013 1:44 am ]
Post subject:  Re: String Question

Hi Prof. kelly

How can i display the string likes the question above

I try to use 'trap #15 task 13 but i cannot do it '
any other way to create the banner format without
modify the string

Code:
STR
    dc.b '   #    '
    dc.b '  # #   '
    dc.b ' #   #  '
    dc.b '#     # '
    dc.b '####### '
    dc.b '#     # '
    dc.b '#     # '
    dc.b '######  '
    dc.b '#     # '
    dc.b '#     # '
    dc.b '######  '
    dc.b '#     # '
    dc.b '#     # '
    dc.b '######  '
    dc.b ' #####  '
    dc.b '#     # '
    dc.b '#       '
    dc.b '#       '
    dc.b '#       '
    dc.b '#     # '
    dc.b ' #####  '

It means i only want the A part not the b and c.?

Any hint?

Author:  profkelly [ Fri Nov 01, 2013 10:37 pm ]
Post subject:  Re: String Question

Here is complete code to display the letter A as a block character. The string is defined with $a (Line Feed) and 8,8,8,... (Backspaces) so it will not erase any other characters when it is displayed.
Code:
    ORG    $1000
START:                  ; first instruction of program
    LEA STR,A1          ; point at character
    MOVE.B #1,D0        ; trap task 1, display n characters at (A1)
    MOVE.W #119,D1      ; n=119
    TRAP #15            ; display character
    SIMHALT             ; halt simulator

* Put variables and constants here
STR
    dc.b '   #    ',$a,8,8,8,8,8,8,8,8
    dc.b '  # #   ',$a,8,8,8,8,8,8,8,8
    dc.b ' #   #  ',$a,8,8,8,8,8,8,8,8
    dc.b '#     # ',$a,8,8,8,8,8,8,8,8
    dc.b '####### ',$a,8,8,8,8,8,8,8,8
    dc.b '#     # ',$a,8,8,8,8,8,8,8,8
    dc.b '#     # ',$a,8,8,8,8,8,8,8,8
    END    START        ; last line of source

Author:  lym91914 [ Sat Nov 02, 2013 3:19 am ]
Post subject:  Re: String Question

Thank you so much Prof kelly, I see what u mean. however I cannot modify the 'str' which is the A block

I wrote a code for this program, but it stuck at the loop_1, i cannot solve and i was thinking about this for 2 days

can give any suggestion? Thank you so much Prof Kelly, really appricated

Code:

******************* SET CONSTANT ***************************************************************************
 
START:                       ORG                  $1000

CR                           EQU                    13
LF                           EQU                    10
MAX                          EQU                    63

A                            EQU                   'A'
F                            EQU                   'F'     

COLUMN                       EQU                   '9'
ROW                          EQU                   '7'

************************************************************************************************************
MAIN                         LEA                 MESSAGE1,A2
                           
                             JSR            PRINTSTR
                             
                             JSR                  INPUT
                       
                             CMP.B                #A,D1
                             
                             BLT                  ERROR
                             
                             CMP.B                #F,D1
                             
                             BGT                  ERROR
                             
                             JSR                  NEWLINE                         
                             
                             JSR                   LOOP_1
                         
               BRA                 MAIN
                             
                             MOVE.L                 #9,D0
                         
                             TRAP                 #15

*************************************************************************************************************
INPUT                    MOVE.B                #5,D0
                            TRAP                  #15
                            RTS

OUTPUT                MOVE.L                #6,d0
                            TRAP                #15
                            RTS
                           


LOOP_1                      LEA                    STR,A2
                            SUB                    #65,D1
                            MULS                   #MAX,D1
                            ADD.L                   D1,A2
                            JSR                     LOOP_2
                            BRA                     MAIN
                   
                           
LOOP_2                 
                           CLR.B                     D4
                           CLR.B                     D5
                     
                           MOVE.B                   (A2)+,D1
                           ADD.B                    #1,D4
                           ADD.B                    #1,D5
                           CMP.B                    COLUMN,D4
                           BEQ                      OUT
                           CMP.B                    ROW,D5
                           BEQ                      OUT
                           BRA                      LOOP_2
                           
                           
                           

OUT                        RTS

ERROR                      LEA                     MESSAGE_ERROR,A2
                           JSR                     PRINTSTR
                           BRA                     MAIN
                           

PRINTSTR                   MOVE.B                  (A2)+,D1
                           BEQ                     OUT
                           JSR                     OUTPUT
                           BRA                     PRINTSTR

                 
*NEWLINE                     MOVE.B            D1,D2
*                           MOVE.B            #CR,D1
*                            JSR            OUTPUT
*                            MOVE.B            #LF,D1
*                            JSR            OUTPUT
*                            CLR.B            D5
*                            MOVE.B            D2,D1
*                            RTS
                           
                         
 
STR
    dc.b '   #     '
    dc.b '  # #    '
    dc.b ' #   #   '
    dc.b '#     #  '
    dc.b '#######  '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '######   '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '######   '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '######   '
    dc.b ' #####   '
    dc.b '#     #  '
    dc.b '#        '
    dc.b '#        '
    dc.b '#        '
    dc.b '#     #  '
    dc.b ' #####   '
    dc.b '######   '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '#     #  '
    dc.b '######   '
    dc.b '#######  '
    dc.b '#        '
    dc.b '#        '
    dc.b '#####    '
    dc.b '#        '
    dc.b '#        '
    dc.b '#######  '
    dc.b '#######  '
    dc.b '#        '
    dc.b '#        '
    dc.b '#####    '
    dc.b '#        '
    dc.b '#        '
    dc.b '#        '


**************************************************************************************************************

MESSAGE1                    DC.B                'PLEASE ENTER A LETTER:',CR,LF,0
MESSAGE_ERROR               DC.B                'PLEASE ENTER A-F ONLY:',0,CR,LF,0
NEWLINE                     DC.B                 CR,LF,0
                           
FINISH                                             
           
                            END                    START
           
           
           

Author:  profkelly [ Sat Nov 02, 2013 12:48 pm ]
Post subject:  Re: String Question

lym91914 wrote:
I noticed this coding error, there may be others. In the following code the CMP.B instructions are missing the immediate mode '#' address modifier. CMP.B #COLUMN,D4 and CMP.B #ROW,D5. Without '#' COLUMN and ROW are treated like addresses.
Code:

                           CMP.B                    COLUMN,D4
                           BEQ                      OUT
                           CMP.B                    ROW,D5
                           BEQ                      OUT

Author:  lym91914 [ Sat Nov 02, 2013 2:19 pm ]
Post subject:  Re: String Question

THANK YOU SO MUCH
How about
Code:
LOOP_1                      LEA                    STR,A2
                                                        SUB                    #65,D1

The program stuck at the 'LEA STR,A2'

Why i cannot load str into a2?

Author:  profkelly [ Sun Nov 03, 2013 7:34 pm ]
Post subject:  Re: String Question

I see many other problems in your code that are very similar to the above issue. Use the debugging tools in EASy68K to step through your code one line at a time and determine if each line is working correctly.

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/