EASy68K  
It is currently Fri May 29, 2020 4:49 am

All times are UTC




Post new topic Reply to topic  [ 13 posts ] 
Author Message
 Post subject: String Question
PostPosted: Sun Mar 18, 2007 1:53 pm 
Offline

Joined: Sun Mar 18, 2007 12:28 pm
Posts: 3
Location: Hull, UK
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:
   #     
  # #   
 #   #   
#     # 
####### 
#     # 
#     # 


Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 18, 2007 2:35 pm 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1122
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.

_________________
Prof. Kelly


Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 18, 2007 7:00 pm 
Offline

Joined: Sun Mar 18, 2007 12:28 pm
Posts: 3
Location: Hull, UK
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 '######   '


Last edited by David on Mon Mar 19, 2007 7:28 pm, edited 3 times in total.

Top
 Profile  
 
 Post subject:
PostPosted: Sun Mar 18, 2007 7:03 pm 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1122
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.

_________________
Prof. Kelly


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 19, 2007 7:29 pm 
Offline

Joined: Sun Mar 18, 2007 12:28 pm
Posts: 3
Location: Hull, UK
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:


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 19, 2007 10:06 pm 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1122
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.

_________________
Prof. Kelly


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 20, 2007 3:25 am 
Offline

Joined: Mon Dec 20, 2004 6:03 pm
Posts: 50
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


Top
 Profile  
 
 Post subject: Re: String Question
PostPosted: Thu Oct 31, 2013 1:44 am 
Offline

Joined: Fri Oct 18, 2013 9:44 am
Posts: 6
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?


Top
 Profile  
 
 Post subject: Re: String Question
PostPosted: Fri Nov 01, 2013 10:37 pm 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1122
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

_________________
Prof. Kelly


Top
 Profile  
 
 Post subject: Re: String Question
PostPosted: Sat Nov 02, 2013 3:19 am 
Offline

Joined: Fri Oct 18, 2013 9:44 am
Posts: 6
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
           
           
           


Top
 Profile  
 
 Post subject: Re: String Question
PostPosted: Sat Nov 02, 2013 12:48 pm 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1122
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

_________________
Prof. Kelly


Top
 Profile  
 
 Post subject: Re: String Question
PostPosted: Sat Nov 02, 2013 2:19 pm 
Offline

Joined: Fri Oct 18, 2013 9:44 am
Posts: 6
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?


Top
 Profile  
 
 Post subject: Re: String Question
PostPosted: Sun Nov 03, 2013 7:34 pm 
Offline
User avatar

Joined: Thu Dec 16, 2004 6:42 pm
Posts: 1122
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.

_________________
Prof. Kelly


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 13 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 14 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group