Welcome to Dream.In.Code
Getting VB Help is Easy!

Join 132,327 VB Programmers for FREE! Get instant access to thousands of VB experts, tutorials, code snippets, and more! There are 1,088 people online right now. Registration is fast and FREE... Join Now!




Translate BS2 code to ASM

 
Reply to this topicStart new topic

Translate BS2 code to ASM, How can I translate/convert basic code to asm code

andreasgill
post 18 Feb, 2008 - 05:12 AM
Post #1


New D.I.C Head

*
Joined: 18 Feb, 2008
Posts: 1

I have tried to use converters to translate the basic code to asm code to be able to download it to a pic 16f627. I have not been successful.

the code is:

CODE

'-----PORT & BAUD DEFINITION------
SerPort CON 16 'Serieport ut för att kommunicera med VB6
SerBaud CON 16780 'Baudrate

'-----STATUS/VÄRDE DEFINITION------
OLDSTATUS VAR Word
NODSTATUS VAR Word  'Visar om den specifika noden aktiveras manuellt eller via SerIn
ANYCHANGE VAR Byte 'Senaste ändring, 1 om ändringen gjorts på nod, 0 om ingen ändring har skett
Index VAR Word
CONFIRMATION VAR Byte  ' Värdet visar om bekräftelse ska skickas från noden då ny data har tagits emot

SDATA VAR Byte

NodID VAR Byte

INPUT 4
INPUT 3
INPUT 2
INPUT 1
INPUT 0 ' Denna ingång berättar om data skickas allmänt. Om "1" så är det upptaget, om "0" så är det ledigt

'-----START AV PROGRAM------
SEROUT 16, 16780, ["Denna Nod´s ID är:"]
FOR index = 0 TO 10
READ index,NodID(0)
SEROUT 16,16780, [STR NodID]
NEXT
SEROUT 16, 16780, ["*"]

GOSUB CHECK_STAT: 'Få den aktuella statusen på brytarna så allt är aktivt som ska vara aktivt
OLDSTATUS = NODSTATUS
PAUSE 2000
GOTO NewStat_Check: 'Starta noden genom att fortsätta ha igång aktuell status


Print_ActiveStat:
RETURN

WAIT_A_MOMENT:

FOR Index = 0 TO 10
IF IN0 = 0 THEN RETURN
SEROUT 16, 16780, ["q*"]
PAUSE 100

NEXT
SEROUT 16, 16780, ["goto main:*"]

GOTO main:


Activate_Confirmation:
WRITE 240, "A"
SEROUT 16, 16780, ["*SBBBAHKZOP#: Bekräftelse aktiverad", "*"]
GOTO main:

Deactivate_Confirmation:
WRITE 240, "I"
GOTO main:

CHECK_STAT:
IF IN1 = 0 AND IN2 = 0 AND IN3 = 0 AND IN4 = 0 THEN NODSTATUS = "A"
IF IN1 = 0 AND IN2 = 0 AND IN3 = 0 AND IN4 = 1 THEN NODSTATUS = "B"
IF IN1 = 0 AND IN2 = 0 AND IN3 = 1 AND IN4 = 0 THEN NODSTATUS = "C"
IF IN1 = 0 AND IN2 = 0 AND IN3 = 1 AND IN4 = 1 THEN NODSTATUS = "D"
IF IN1 = 0 AND IN2 = 1 AND IN3 = 0 AND IN4 = 0 THEN NODSTATUS = "E"
IF IN1 = 0 AND IN2 = 1 AND IN3 = 0 AND IN4 = 1 THEN NODSTATUS = "F"
IF IN1 = 0 AND IN2 = 1 AND IN3 = 1 AND IN4 = 0 THEN NODSTATUS = "G"
IF IN1 = 0 AND IN2 = 1 AND IN3 = 1 AND IN4 = 1 THEN NODSTATUS = "H"
IF IN1 = 1 AND IN2 = 0 AND IN3 = 0 AND IN4 = 0 THEN NODSTATUS = "I"
IF IN1 = 1 AND IN2 = 0 AND IN3 = 0 AND IN4 = 1 THEN NODSTATUS = "J"
IF IN1 = 1 AND IN2 = 0 AND IN3 = 1 AND IN4 = 0 THEN NODSTATUS = "K"
IF IN1 = 1 AND IN2 = 0 AND IN3 = 1 AND IN4 = 1 THEN NODSTATUS = "L"
IF IN1 = 1 AND IN2 = 1 AND IN3 = 0 AND IN4 = 0 THEN NODSTATUS = "M"
IF IN1 = 1 AND IN2 = 1 AND IN3 = 0 AND IN4 = 1 THEN NODSTATUS = "N"
IF IN1 = 1 AND IN2 = 1 AND IN3 = 1 AND IN4 = 0 THEN NODSTATUS = "O"
IF IN1 = 1 AND IN2 = 1 AND IN3 = 1 AND IN4 = 1 THEN NODSTATUS = "P"

IF NODSTATUS = OLDSTATUS THEN ANYCHANGE = 0
IF NODSTATUS <> OLDSTATUS THEN ANYCHANGE = 1
RETURN



'-----START AV MAIN------
MAIN:
READ 240,CONFIRMATION(0)

GOSUB CHECK_STAT:

IF ANYCHANGE = 0 THEN SERIN_CHECK:
IF ANYCHANGE = 1 THEN STIMULERA_NOD:


GOTO main:

SERIN_CHECK:
IF IN0 = 1 THEN GOTO main:
SERIN Serport, SerBaud, BadData, 1000, NoData, [WAIT ("VB6"), SDATA(0), SDATA(1), SDATA(2), SDATA(3), SDATA(4), SDATA(5), SDATA(6), SDATA(7), SDATA(8), SDATA(9), SDATA(10), SDATA(11)]


FOR Index = 0 TO 11
IF Index = 11 THEN GOTO STIMULERA_NOD:
READ Index,NodID
IF SDATA(Index) <> NodID THEN GOTO NoData:

NEXT
GOTO nodata:

BadData:
'IF CONFIRMATION = "A" THEN
SEROUT 16, 16780, ["FN", "SBBBAHKZOP#: Felaktig paritet", "*"]
GOTO main:

NoData:
GOTO main:

STIMULERA_NOD:
OLDSTATUS = NODSTATUS


IF ANYCHANGE = 0 THEN Input_Check:
IF ANYCHANGE = 1 THEN NewStat_Check:


Input_Check:

'IF CONFIRMATION = "A" THEN
SEROUT 16, 16780, ["FN","SBBBAHKZOP#:", SDATA(11), "*"]

IF SDATA(11) = "a"  THEN Activate_Confirmation:
IF SDATA(11) = "b"  THEN Deactivate_Confirmation:
IF SDATA(11) = "A"  THEN A:
IF SDATA(11) = "B"  THEN B:
IF SDATA(11) = "C"  THEN C:
IF SDATA(11) = "D"  THEN D:
IF SDATA(11) = "E"  THEN E:
IF SDATA(11) = "F"  THEN F:
IF SDATA(11) = "G"  THEN G:
IF SDATA(11) = "H"  THEN H:
IF SDATA(11) = "I"  THEN I:
IF SDATA(11) = "J"  THEN J:
IF SDATA(11) = "K"  THEN K:
IF SDATA(11) = "L"  THEN L:
IF SDATA(11) = "M"  THEN M:
IF SDATA(11) = "N"  THEN N:
IF SDATA(11) = "O"  THEN O:
IF SDATA(11) = "P"  THEN P:
GOTO main:

NewStat_Check:
'IF CONFIRMATION = "A" THEN
SEROUT 16, 16780, ["FN", "SBBBAHKZOP#:", NODSTATUS, "*"]

IF NODSTATUS = "A"  THEN A:
IF NODSTATUS=  "B"  THEN B:
IF NODSTATUS = "C"  THEN C:
IF NODSTATUS = "D"  THEN D:
IF NODSTATUS = "E"  THEN E:
IF NODSTATUS = "F"  THEN F:
IF NODSTATUS = "G"  THEN G:
IF NODSTATUS = "H"  THEN H:
IF NODSTATUS = "I"  THEN I:
IF NODSTATUS = "J"  THEN J:
IF NODSTATUS = "K"  THEN K:
IF NODSTATUS = "L"  THEN L:
IF NODSTATUS = "M"  THEN M:
IF NODSTATUS = "N"  THEN N:
IF NODSTATUS = "O"  THEN O:
IF NODSTATUS = "P"  THEN P:
GOTO main:

A:
LOW 10
LOW 11
LOW 12
LOW 13
'SEROUT 16, 16780, ["SBBBAHLCIAA:A*"]
GOTO main:

B:
HIGH 10
LOW 11
LOW 12
LOW 13
'SEROUT 16, 16780, ["SBBBAHLCIAA:B*"]
GOTO main:




Is it possible to translate this or by another way to download this code to the pic?!? The BS2 worked perfect but I want a Pic to do this instead. A appreciate all help!
Thanx!
User is offlineProfile CardPM

Go to the top of the page

Fast ReplyReply to this topicStart new topic
Time is now: 11/22/08 02:46AM

Live VB Help!

VB Tutorials

Reference Sheets

VB Snippets

Bye Bye Ads

Free DIC T-Shirt

T-Shirt Example

Related Sites

Monthly Drawing

Thumb Drive

Partners

Top Contributors

Top 10 Kudos This Month