It is currently Mon Oct 20, 2014 5:00 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 1 post ] 
Author Message
PostPosted: Tue Jun 28, 2011 11:13 am 
Online
User avatar
 Profile

Joined: Sat Mar 26, 2011 3:01 pm
Posts: 263
Location: Kings Langley
Here is the BBC code, .ssd for the bin to bcd described in sample code here http://www.retrosoftware.co.uk/wiki/index.php/BIN/HEX_to_BCD_%28to_Decimal%29

In case you don't know, you can just copy here and then paste in BeebEm (if you don't have line numbers, just AUTO and then paste).

Code:
   10*K.10O.|MREN.|M*FX12,4|ML.|M
   20bin_as_bcd = &70
   30FOR O = 0 TO 2 STEP 2
   40P% = &5200
   50[OPT O
   60.hex_to_bcd
   70sei
   80sed
   90tya
  100pha
  110lsr A : lsr A : lsr A : lsr A
  120tay
  130lda bits1512_b0,Y
  140sta bin_as_bcd+0
  150lda bits1512_b1,Y
  160sta bin_as_bcd+1
  170lda bits1512_b2,Y
  180sta bin_as_bcd+2
  190pla
  200and #&F
  210tay
  220clc
  230lda bits118_b0,Y
  240adc bin_as_bcd+0
  250sta bin_as_bcd+0
  260lda bits118_b1,Y
  270adc bin_as_bcd+1
  280sta bin_as_bcd+1
  290lda #0
  300adc bin_as_bcd+2
  310sta bin_as_bcd+2
  320txa
  330lsr A : lsr A : lsr A
  340tay
  350clc
  360lda bits73_b0,Y
  370adc bin_as_bcd+0
  380sta bin_as_bcd+0
  390lda bits73_b1,Y
  400adc bin_as_bcd+1
  410sta bin_as_bcd+1
  420lda #0
  430adc bin_as_bcd+2
  440sta bin_as_bcd+2
  450txa
  460and #7
  470adc bin_as_bcd+0
  480sta bin_as_bcd+0
  490lda #0
  500adc bin_as_bcd+1
  510sta bin_as_bcd+1
  520lda #0
  530adc bin_as_bcd+2
  540sta bin_as_bcd+2
  550cld
  560cli
  570rts
  580.bits1512_b2
  590EQUB &00
  600EQUB &00
  610EQUB &00
  620EQUB &01
  630EQUB &01
  640EQUB &02
  650EQUB &02
  660EQUB &02
  670EQUB &03
  680EQUB &03
  690EQUB &04
  700EQUB &04
  710EQUB &04
  720EQUB &05
  730EQUB &05
  740EQUB &06
  750.bits1512_b1
  760EQUB &00
  770EQUB &40
  780EQUB &81
  790EQUB &22
  800EQUB &63
  810EQUB &04
  820EQUB &45
  830EQUB &86
  840EQUB &27
  850EQUB &68
  860EQUB &09
  870EQUB &50
  880EQUB &91
  890EQUB &32
  900EQUB &73
  910EQUB &14
  920.bits1512_b0
  930EQUB &00
  940EQUB &96
  950EQUB &92
  960EQUB &88
  970EQUB &84
  980EQUB &80
  990EQUB &76
 1000EQUB &72
 1010EQUB &68
 1020EQUB &64
 1030EQUB &60
 1040EQUB &56
 1050EQUB &52
 1060EQUB &48
 1070EQUB &44
 1080EQUB &40
 1090.bits118_b1
 1100EQUB &00
 1110EQUB &02
 1120EQUB &05
 1130EQUB &07
 1140EQUB &10
 1150EQUB &12
 1160EQUB &15
 1170EQUB &17
 1180EQUB &20
 1190EQUB &23
 1200EQUB &25
 1210EQUB &28
 1220EQUB &30
 1230EQUB &33
 1240EQUB &35
 1250EQUB &38
 1260.bits118_b0
 1270EQUB &00
 1280EQUB &56
 1290EQUB &12
 1300EQUB &68
 1310EQUB &24
 1320EQUB &80
 1330EQUB &36
 1340EQUB &92
 1350EQUB &48
 1360EQUB &04
 1370EQUB &60
 1380EQUB &16
 1390EQUB &72
 1400EQUB &28
 1410EQUB &84
 1420EQUB &40
 1430.bits73_b1
 1440EQUB &00
 1450EQUB &00
 1460EQUB &00
 1470EQUB &00
 1480EQUB &00
 1490EQUB &00
 1500EQUB &00
 1510EQUB &00
 1520EQUB &00
 1530EQUB &00
 1540EQUB &00
 1550EQUB &00
 1560EQUB &00
 1570EQUB &01
 1580EQUB &01
 1590EQUB &01
 1600EQUB &01
 1610EQUB &01
 1620EQUB &01
 1630EQUB &01
 1640EQUB &01
 1650EQUB &01
 1660EQUB &01
 1670EQUB &01
 1680EQUB &01
 1690EQUB &02
 1700EQUB &02
 1710EQUB &02
 1720EQUB &02
 1730EQUB &02
 1740EQUB &02
 1750EQUB &02
 1760.bits73_b0
 1770EQUB &00
 1780EQUB &08
 1790EQUB &16
 1800EQUB &24
 1810EQUB &32
 1820EQUB &40
 1830EQUB &48
 1840EQUB &56
 1850EQUB &64
 1860EQUB &72
 1870EQUB &80
 1880EQUB &88
 1890EQUB &96
 1900EQUB &04
 1910EQUB &12
 1920EQUB &20
 1930EQUB &28
 1940EQUB &36
 1950EQUB &44
 1960EQUB &52
 1970EQUB &60
 1980EQUB &68
 1990EQUB &76
 2000EQUB &84
 2010EQUB &92
 2020EQUB &00
 2030EQUB &08
 2040EQUB &16
 2050EQUB &24
 2060EQUB &32
 2070EQUB &40
 2080EQUB &48
 2090]
 2100NEXT
 2110FOR T% = 0 TO 65535
 2120X%=T% MOD 256
 2130Y%=T% DIV 256
 2140CALL hex_to_bcd
 2150dec$=STR$(T%)
 2160dec$=STRING$(5-LEN(dec$),"0") + dec$
 2170bcd$=CHR$(48+(bin_as_bcd?2))
 2180bcd$=bcd$ + CHR$(48+(bin_as_bcd?1 DIV 16))
 2190bcd$=bcd$ + CHR$(48+(bin_as_bcd?1 MOD 16))
 2200bcd$=bcd$ + CHR$(48+(bin_as_bcd?0 DIV 16))
 2210bcd$=bcd$ + CHR$(48+(bin_as_bcd?0 MOD 16))
 2220PRINT dec$,bcd$
 2230IF dec$ <> bcd$ THEN INPUT A$
 2240NEXT


Attachments:
File comment: BIN/HEX to BCD (to Decimal)
hex_to_bcd.zip [1.53 KiB]
Downloaded 14 times
Top
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 0 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: