Mercurial > hg > Members > kono > nitros9-code
changeset 2951:63fb45a6007b
coyota: Rename assembler files to .as
author | Tormod Volden <debian.tormod@gmail.com> |
---|---|
date | Sun, 09 Feb 2014 21:06:29 +0100 |
parents | 6bd574b25123 |
children | 9306e2875040 |
files | 3rdparty/packages/coyota/bin_dec32.a 3rdparty/packages/coyota/bin_dec32.as 3rdparty/packages/coyota/coyota.a 3rdparty/packages/coyota/coyota.as 3rdparty/packages/coyota/dashboard.a 3rdparty/packages/coyota/dashboard.as 3rdparty/packages/coyota/instrument.a 3rdparty/packages/coyota/instrument.as |
diffstat | 8 files changed, 611 insertions(+), 611 deletions(-) [+] |
line wrap: on
line diff
--- a/3rdparty/packages/coyota/bin_dec32.a Sun Feb 09 21:06:28 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -************************************************ -* -* Binary to decimal conversion (32 bit) - -* OTHER MODULES NEEDED: DECTAB$ - -* ENTRY: X=buffer for ascii string -* Y=bits 31-16 of binary value to convert -* D=bits 15-0 of binary value to convert - -* EXIT: all registers (except cc) preserved - - - nam 32 bit Binary to Decimal Conversion - ttl Assembler Library Module - - - psect BIN_DEC32,0,0,0,0,0 - - -Base fcb $3B,$9A,$CA,$00 1,000,000,000 - fcb $05,$F5,$E1,$00 100,000,000 - fcb $00,$98,$96,$80 10,000,000 - fcb $00,$0F,$42,$40 1,000,000 - fcb $00,$01,$86,$A0 100,000 - fcb $00,$00,$27,$10 10,000 - fcb $00,$00,$03,$E8 1,000 - fcb $00,$00,$00,$64 100 - fcb $00,$00,$00,$0A 10 - fcb $00,$00,$00,$01 1 - - -* Entry: -* A = format flag (0 = write leading zeros, 1 = do not) -* X = address of buffer to hold number -* Y = address of 32 bit value -* Exit: -* X = address of buffer holding number -BIN_DEC32: - pshs d,x,y,u - tfr x,u - tfr y,x - ldb #10 max number of numbers (10^9) - pshs b save count on stack - leay <Base,pcr point to base of numbers -s@ lda #$30 put #'0 - sta ,u at U -s1@ bsr Sub32 ,X=,X-,Y - inc ,u - bcc s1@ if X>0, continue - bsr Add32 add back in - dec ,u+ - dec ,s decrement counter - beq done@ - lda ,s - cmpa #$09 - beq comma@ - cmpa #$06 - beq comma@ - cmpa #$03 - bne s2@ -comma@ ldb #', - stb ,u+ -s2@ leay 4,y point to next - bra s@ -done@ leas 1,s - clr ,u put nil byte at end -* 1,234,567,890 - tst ,s format flag - beq ex2@ - ldb #14 length of string with commas + 1 - ldx 2,s get pointer to buffer -a@ decb - beq ex@ - lda ,x+ get byte - cmpa #'0 - beq a@ - cmpa #', - beq a@ -ex@ leax -1,x - stx 2,s -ex2@ puls d,x,y,u,pc - -* Entry: -* X = address of 32 bit minuend -* Y = address of 32 bit subtrahend -* Exit: -* X = address of 32 bit difference -Sub32 ldd 2,x - subd 2,y - std 2,x - ldd ,x - sbcb 1,y - sbca ,y - std ,x - rts - - -* Entry: -* X = address of 32 bit number -* Y = address of 32 bit number -* Exit: -* X = address of 32 bit sum -Add32 ldd 2,x - addd 2,y - std 2,x - ldd ,x - adcb 1,y - adca ,y - std ,x - rts - - endsect
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/packages/coyota/bin_dec32.as Sun Feb 09 21:06:29 2014 +0100 @@ -0,0 +1,113 @@ +************************************************ +* +* Binary to decimal conversion (32 bit) + +* OTHER MODULES NEEDED: DECTAB$ + +* ENTRY: X=buffer for ascii string +* Y=bits 31-16 of binary value to convert +* D=bits 15-0 of binary value to convert + +* EXIT: all registers (except cc) preserved + + + nam 32 bit Binary to Decimal Conversion + ttl Assembler Library Module + + + psect BIN_DEC32,0,0,0,0,0 + + +Base fcb $3B,$9A,$CA,$00 1,000,000,000 + fcb $05,$F5,$E1,$00 100,000,000 + fcb $00,$98,$96,$80 10,000,000 + fcb $00,$0F,$42,$40 1,000,000 + fcb $00,$01,$86,$A0 100,000 + fcb $00,$00,$27,$10 10,000 + fcb $00,$00,$03,$E8 1,000 + fcb $00,$00,$00,$64 100 + fcb $00,$00,$00,$0A 10 + fcb $00,$00,$00,$01 1 + + +* Entry: +* A = format flag (0 = write leading zeros, 1 = do not) +* X = address of buffer to hold number +* Y = address of 32 bit value +* Exit: +* X = address of buffer holding number +BIN_DEC32: + pshs d,x,y,u + tfr x,u + tfr y,x + ldb #10 max number of numbers (10^9) + pshs b save count on stack + leay <Base,pcr point to base of numbers +s@ lda #$30 put #'0 + sta ,u at U +s1@ bsr Sub32 ,X=,X-,Y + inc ,u + bcc s1@ if X>0, continue + bsr Add32 add back in + dec ,u+ + dec ,s decrement counter + beq done@ + lda ,s + cmpa #$09 + beq comma@ + cmpa #$06 + beq comma@ + cmpa #$03 + bne s2@ +comma@ ldb #', + stb ,u+ +s2@ leay 4,y point to next + bra s@ +done@ leas 1,s + clr ,u put nil byte at end +* 1,234,567,890 + tst ,s format flag + beq ex2@ + ldb #14 length of string with commas + 1 + ldx 2,s get pointer to buffer +a@ decb + beq ex@ + lda ,x+ get byte + cmpa #'0 + beq a@ + cmpa #', + beq a@ +ex@ leax -1,x + stx 2,s +ex2@ puls d,x,y,u,pc + +* Entry: +* X = address of 32 bit minuend +* Y = address of 32 bit subtrahend +* Exit: +* X = address of 32 bit difference +Sub32 ldd 2,x + subd 2,y + std 2,x + ldd ,x + sbcb 1,y + sbca ,y + std ,x + rts + + +* Entry: +* X = address of 32 bit number +* Y = address of 32 bit number +* Exit: +* X = address of 32 bit sum +Add32 ldd 2,x + addd 2,y + std 2,x + ldd ,x + adcb 1,y + adca ,y + std ,x + rts + + endsect
--- a/3rdparty/packages/coyota/coyota.a Sun Feb 09 21:06:28 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -**************************************************************************** -* -* coyota.a - main coyota application -* -* - - psect coyota_a,$01,$81,1,200,coyota - - - vsect -orgopt rmb 32 -curopt rmb 32 - endsect - -* Sleep Duration -NAPTIME equ 6 - - -* byte stream to send to window to make a 320x192 16 color gfx screen -type6 fdb WDWEnd - fdb WDWSet - fcb $08,$00,$00,$28,$18,$00,$02,$02 - fdb WSelect - fdb WCurOff -selfnt fdb WFont - fcb $c8,$02 select 6x8 stdfont -type6L equ *-type6 -selfntL equ *-selfnt - -curon fdb WCurOn - fcb $00 - -stdfonts - fcc "SYS/stdfonts" - fcb C$CR - - vsect -ch rmb 1 -readbuf rmb $2000 - endsect - -* Intercept routine -exit - clra - clrb - leax orgopt,u - os9 I$SetStt - - leax <curon,pcr - lbsr PUTS - clrb - os9 F$Exit - -intercept - cmpb #S$Abort - beq exit - rti - - -* main entry point -coyota: -* install intercept routine - leax <intercept,pcr - os9 F$Icpt - -* get path options - lda #$01 - clrb - leax orgopt,u - os9 I$GetStt - leax curopt,u - os9 I$GetStt - - clr PD.EKO-PD.OPT,x - os9 I$SetStt - -* initialize instrumentation hardware - lbsr insinit - -* make type 6 (320x192 16 color) graphics screen and select font -Scrn leax <type6,pcr - ldy #type6L - lda #1 - os9 I$Write - bcc next - -* error occurred... merge stdfonts - leax <stdfonts,pcr - lda #READ. - os9 I$Open - bcs Scrn - leax readbuf,u - pshs a save path num to stack -rl ldy #2048 - os9 I$Read - bcs close - lda #$01 - os9 I$Write - lda ,s - bra rl -close lda ,s+ - os9 I$Close - leax <selfnt,pcr - ldy #selfntL - lda #$01 - os9 I$Write - -next lbsr dashboard draw the dashboard - -* Main processing loop: -* - get values from various instruments -* - display them on the appropriate section of the screen -* - sleep a while -* - go back and do it again! -main lbsr speed update speedometer - lbsr odometer update odometer - lbsr engtemp update engine temperature - lbsr fuelgauge update fuel gauge - lbsr systime update system time - ldx #NAPTIME sleep for a bit - -* os9 F$Sleep - ldd #SS.Ready - os9 I$GetStt - bcs main - leax ch,u - ldy #$0001 - os9 I$Read - lda ,x - cmpa #'x - bne main - lbsr speedplus - - bra main - - - -* ENTRY: X=buffer for ascii string -* D=binary value to convert - -* EXIT: all registers (except cc) preserved - - endsect
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/packages/coyota/coyota.as Sun Feb 09 21:06:29 2014 +0100 @@ -0,0 +1,143 @@ +**************************************************************************** +* +* coyota.a - main coyota application +* +* + + psect coyota_a,$01,$81,1,200,coyota + + + vsect +orgopt rmb 32 +curopt rmb 32 + endsect + +* Sleep Duration +NAPTIME equ 6 + + +* byte stream to send to window to make a 320x192 16 color gfx screen +type6 fdb WDWEnd + fdb WDWSet + fcb $08,$00,$00,$28,$18,$00,$02,$02 + fdb WSelect + fdb WCurOff +selfnt fdb WFont + fcb $c8,$02 select 6x8 stdfont +type6L equ *-type6 +selfntL equ *-selfnt + +curon fdb WCurOn + fcb $00 + +stdfonts + fcc "SYS/stdfonts" + fcb C$CR + + vsect +ch rmb 1 +readbuf rmb $2000 + endsect + +* Intercept routine +exit + clra + clrb + leax orgopt,u + os9 I$SetStt + + leax <curon,pcr + lbsr PUTS + clrb + os9 F$Exit + +intercept + cmpb #S$Abort + beq exit + rti + + +* main entry point +coyota: +* install intercept routine + leax <intercept,pcr + os9 F$Icpt + +* get path options + lda #$01 + clrb + leax orgopt,u + os9 I$GetStt + leax curopt,u + os9 I$GetStt + + clr PD.EKO-PD.OPT,x + os9 I$SetStt + +* initialize instrumentation hardware + lbsr insinit + +* make type 6 (320x192 16 color) graphics screen and select font +Scrn leax <type6,pcr + ldy #type6L + lda #1 + os9 I$Write + bcc next + +* error occurred... merge stdfonts + leax <stdfonts,pcr + lda #READ. + os9 I$Open + bcs Scrn + leax readbuf,u + pshs a save path num to stack +rl ldy #2048 + os9 I$Read + bcs close + lda #$01 + os9 I$Write + lda ,s + bra rl +close lda ,s+ + os9 I$Close + leax <selfnt,pcr + ldy #selfntL + lda #$01 + os9 I$Write + +next lbsr dashboard draw the dashboard + +* Main processing loop: +* - get values from various instruments +* - display them on the appropriate section of the screen +* - sleep a while +* - go back and do it again! +main lbsr speed update speedometer + lbsr odometer update odometer + lbsr engtemp update engine temperature + lbsr fuelgauge update fuel gauge + lbsr systime update system time + ldx #NAPTIME sleep for a bit + +* os9 F$Sleep + ldd #SS.Ready + os9 I$GetStt + bcs main + leax ch,u + ldy #$0001 + os9 I$Read + lda ,x + cmpa #'x + bne main + lbsr speedplus + + bra main + + + +* ENTRY: X=buffer for ascii string +* D=binary value to convert + +* EXIT: all registers (except cc) preserved + + endsect
--- a/3rdparty/packages/coyota/dashboard.a Sun Feb 09 21:06:28 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,270 +0,0 @@ -**************************************************************************** -* -* dashboard.a - draw the dashboard -* -* - - psect dashboard_a,0,0,0,200,0 - - vsect -numbuf rmb 24 - endsect - - -white equ $00 -blue equ $01 -black equ $02 -green equ $03 -red equ $04 -yellow equ $05 -magenta equ $06 -cyan equ $07 - - -inshlgt equ blue -insfill equ cyan -txtclr equ $03 green - -* byte stream to send to window to make dashboard -dash - fdb WScaleSw - fcb $01 turn on scaling - -***** TITLE ***** - fdb WFont - fdb $C801 - fcb WPosCur,$20+17,$20+1 - fdb WFColor - fcb red - fdb WBoldSw - fcb $01 - fcc /COYOTA!/ - fdb WFont - fdb $C802 - fdb WBoldSw - fcb $00 - - fdb WFColor - fcb inshlgt - -***** SPEEDOMETER ***** - fdb WSetDPtr - fdb 320,96 - fdb WCircle - fdb 128 - fdb WCircle - fdb 136 - fdb WCircle - fdb 32 - fdb WCircle - fdb 38 - fdb WFColor - fcb insfill - fdb WRSetDPtr - fdb 0,-17 - fdb WFFill - fdb WRSetDPtr - fdb 0,-50 - fdb WFFill - -* draw 0MPH marker - fdb WFColor - fcb insfill - fdb WSetDPtr - fdb 227,132 - fdb WRLine draw the tick mark - fdb 5,-4 - fcb WPosCur,$20+20,$20+15 - fdb WFColor - fcb txtclr - fcc /0/ - -* draw 60MPH marker - fdb WFColor - fcb insfill - fdb WSetDPtr - fdb 320,32 - fdb WRLine draw the mid-speed tick mark - fdb 0,5 - fcb WPosCur,$20+26,$20+5 - fdb WFColor - fcb txtclr - fcc /60/ - fdb WFColor - fcb insfill - -* draw 120MPH marker - fdb WSetDPtr - fdb 413,132 - fdb WRLine draw the tick mark - fdb -5,-4 - fcb WPosCur,$20+31,$20+15 - fdb WFColor - fcb txtclr - fcc /120/ - fdb WFColor - fcb inshlgt - -***** ENGINE TEMPERATURE (UPPER LEFT) ***** - fdb WSetDPtr - fdb 104,52 - fdb WCircle - fdb 66 - fdb WCircle - fdb 72 - fdb WRSetDPtr - fdb 0,-34 - fdb WFColor - fcb insfill - fdb WFFill - -***** FUEL GAUGE (UPPER RIGHT) ***** - fdb WFColor - fcb inshlgt - fdb WSetDPtr - fdb 536,52 - fdb WCircle - fdb 66 - fdb WCircle - fdb 72 - fdb WRSetDPtr - fdb 0,-34 - fdb WFColor - fcb insfill - fdb WFFill - -***** DATE/TIME (LOWER LEFT) ***** - fdb WFColor - fcb inshlgt - fdb WSetDPtr - fdb 104,192-52 - fdb WCircle - fdb 66 - fdb WCircle - fdb 72 - fdb WRSetDPtr - fdb 0,-34 - fdb WFColor - fcb insfill - fdb WFFill - -***** ???? (LOWER LEFT) ***** - fdb WFColor - fcb inshlgt - fdb WSetDPtr - fdb 536,192-52 - fdb WCircle - fdb 66 - fdb WCircle - fdb 72 - fdb WRSetDPtr - fdb 0,-34 - fdb WFColor - fcb insfill - fdb WFFill - -* finally, draw text color from now now - fdb WFColor - fcb txtclr set text draw color - -dashL equ *-dash - -* entry point -dashboard: -* draw the dashboard -Scrn leax dash,pcr - ldy #dashL - lda #1 - os9 I$Write - rts - -speedtag - fcb WPosCur,$20+25,$20+11 - fdb WFColor - fcb yellow - fcb $00 - -speedtag2 - fcb WPosCur,$20+25,$20+12 - fcc /MPH./ - fdb WFColor - fcb txtclr - fcb $00 - - -* Show Speed -speed: - leax <speedtag,pcr - lbsr PUTS - lbsr getspeed get speed in D - leax numbuf,u - lbsr BIN_DEC - lbsr PUTS - leax <speedtag2,pcr - lbsr PUTS - rts - - -odomtag fcb WPosCur,$20+23,$20+18 - fdb WBColor - fcb red - fcb $00 -odomtag2 - fdb WBColor - fcb black - fcb $00 -odomtag2l equ *-odomtag2 - -odometer: - leax <odomtag,pcr - lbsr PUTS - lbsr getmileage get odometer in D,X - pshs d,x - leax numbuf,u - leay ,s - lda #$01 - lbsr BIN_DEC32 - lbsr PUTS - leas 4,s - leax <odomtag2,pcr - ldy #odomtag2l - lda #$01 - os9 I$Write - rts - -etemptag fcb WPosCur,$20+7,$20+8 - fcb $00 - -engtemp: - leax <etemptag,pcr - lbsr PUTS - lbsr getengtemp get engine temperature in D - leax numbuf,u - lbsr BIN_DEC - lbsr PUTS - rts - -fueltag fcb WPosCur,$20+44,$20+8 - fcb $00 - -fuelgauge: - leax <fueltag,pcr - lbsr PUTS - lbsr getfuel get fuel in D - leax numbuf,u - lbsr BIN_DEC - lbsr PUTS - rts - -timetag fcb WPosCur,$20+18,$20+23 - fcb $00 - -systime: - leax <timetag,pcr - lbsr PUTS - leax numbuf,u - lbsr STIMESTR get fuel in D - lbsr PUTS - rts - - endsect
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/packages/coyota/dashboard.as Sun Feb 09 21:06:29 2014 +0100 @@ -0,0 +1,270 @@ +**************************************************************************** +* +* dashboard.a - draw the dashboard +* +* + + psect dashboard_a,0,0,0,200,0 + + vsect +numbuf rmb 24 + endsect + + +white equ $00 +blue equ $01 +black equ $02 +green equ $03 +red equ $04 +yellow equ $05 +magenta equ $06 +cyan equ $07 + + +inshlgt equ blue +insfill equ cyan +txtclr equ $03 green + +* byte stream to send to window to make dashboard +dash + fdb WScaleSw + fcb $01 turn on scaling + +***** TITLE ***** + fdb WFont + fdb $C801 + fcb WPosCur,$20+17,$20+1 + fdb WFColor + fcb red + fdb WBoldSw + fcb $01 + fcc /COYOTA!/ + fdb WFont + fdb $C802 + fdb WBoldSw + fcb $00 + + fdb WFColor + fcb inshlgt + +***** SPEEDOMETER ***** + fdb WSetDPtr + fdb 320,96 + fdb WCircle + fdb 128 + fdb WCircle + fdb 136 + fdb WCircle + fdb 32 + fdb WCircle + fdb 38 + fdb WFColor + fcb insfill + fdb WRSetDPtr + fdb 0,-17 + fdb WFFill + fdb WRSetDPtr + fdb 0,-50 + fdb WFFill + +* draw 0MPH marker + fdb WFColor + fcb insfill + fdb WSetDPtr + fdb 227,132 + fdb WRLine draw the tick mark + fdb 5,-4 + fcb WPosCur,$20+20,$20+15 + fdb WFColor + fcb txtclr + fcc /0/ + +* draw 60MPH marker + fdb WFColor + fcb insfill + fdb WSetDPtr + fdb 320,32 + fdb WRLine draw the mid-speed tick mark + fdb 0,5 + fcb WPosCur,$20+26,$20+5 + fdb WFColor + fcb txtclr + fcc /60/ + fdb WFColor + fcb insfill + +* draw 120MPH marker + fdb WSetDPtr + fdb 413,132 + fdb WRLine draw the tick mark + fdb -5,-4 + fcb WPosCur,$20+31,$20+15 + fdb WFColor + fcb txtclr + fcc /120/ + fdb WFColor + fcb inshlgt + +***** ENGINE TEMPERATURE (UPPER LEFT) ***** + fdb WSetDPtr + fdb 104,52 + fdb WCircle + fdb 66 + fdb WCircle + fdb 72 + fdb WRSetDPtr + fdb 0,-34 + fdb WFColor + fcb insfill + fdb WFFill + +***** FUEL GAUGE (UPPER RIGHT) ***** + fdb WFColor + fcb inshlgt + fdb WSetDPtr + fdb 536,52 + fdb WCircle + fdb 66 + fdb WCircle + fdb 72 + fdb WRSetDPtr + fdb 0,-34 + fdb WFColor + fcb insfill + fdb WFFill + +***** DATE/TIME (LOWER LEFT) ***** + fdb WFColor + fcb inshlgt + fdb WSetDPtr + fdb 104,192-52 + fdb WCircle + fdb 66 + fdb WCircle + fdb 72 + fdb WRSetDPtr + fdb 0,-34 + fdb WFColor + fcb insfill + fdb WFFill + +***** ???? (LOWER LEFT) ***** + fdb WFColor + fcb inshlgt + fdb WSetDPtr + fdb 536,192-52 + fdb WCircle + fdb 66 + fdb WCircle + fdb 72 + fdb WRSetDPtr + fdb 0,-34 + fdb WFColor + fcb insfill + fdb WFFill + +* finally, draw text color from now now + fdb WFColor + fcb txtclr set text draw color + +dashL equ *-dash + +* entry point +dashboard: +* draw the dashboard +Scrn leax dash,pcr + ldy #dashL + lda #1 + os9 I$Write + rts + +speedtag + fcb WPosCur,$20+25,$20+11 + fdb WFColor + fcb yellow + fcb $00 + +speedtag2 + fcb WPosCur,$20+25,$20+12 + fcc /MPH./ + fdb WFColor + fcb txtclr + fcb $00 + + +* Show Speed +speed: + leax <speedtag,pcr + lbsr PUTS + lbsr getspeed get speed in D + leax numbuf,u + lbsr BIN_DEC + lbsr PUTS + leax <speedtag2,pcr + lbsr PUTS + rts + + +odomtag fcb WPosCur,$20+23,$20+18 + fdb WBColor + fcb red + fcb $00 +odomtag2 + fdb WBColor + fcb black + fcb $00 +odomtag2l equ *-odomtag2 + +odometer: + leax <odomtag,pcr + lbsr PUTS + lbsr getmileage get odometer in D,X + pshs d,x + leax numbuf,u + leay ,s + lda #$01 + lbsr BIN_DEC32 + lbsr PUTS + leas 4,s + leax <odomtag2,pcr + ldy #odomtag2l + lda #$01 + os9 I$Write + rts + +etemptag fcb WPosCur,$20+7,$20+8 + fcb $00 + +engtemp: + leax <etemptag,pcr + lbsr PUTS + lbsr getengtemp get engine temperature in D + leax numbuf,u + lbsr BIN_DEC + lbsr PUTS + rts + +fueltag fcb WPosCur,$20+44,$20+8 + fcb $00 + +fuelgauge: + leax <fueltag,pcr + lbsr PUTS + lbsr getfuel get fuel in D + leax numbuf,u + lbsr BIN_DEC + lbsr PUTS + rts + +timetag fcb WPosCur,$20+18,$20+23 + fcb $00 + +systime: + leax <timetag,pcr + lbsr PUTS + leax numbuf,u + lbsr STIMESTR get fuel in D + lbsr PUTS + rts + + endsect
--- a/3rdparty/packages/coyota/instrument.a Sun Feb 09 21:06:28 2014 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -**************************************************************************** -* -* instrument.a - acquires all needed data values from various instruments -* -* - - psect instrument_a,0,0,3,0,0 - - vsect -speed rmb 2 -mileage rmb 4 -engtemp rmb 2 -fuelamt rmb 2 - endsect - -* initialize hardware -* -* Entry: None -* -* Exit: D = speed value in miles per hour -insinit: - ldd #55 - std speed,u - - ldd #(171556/65536) - std mileage,u - ldd #40439 - std mileage+2,u - - ldd #200 - std engtemp,u - - ldd #9 - std fuelamt,u - - rts - -* Get the current speed -* -* Entry: None -* -* Exit: D = speed value in miles per hour -getspeed: - ldd speed,u 55 mph - rts - -speedplus: - ldd speed,u - addd #$0001 - std speed,u - rts - -* Get the odometer value -* -* Entry: None -* -* Exit: D = bits 23-16 of odometer -* X = bits 15-0 of odometer -getmileage: - ldd mileage,u - ldx mileage+2,u - rts - - -* Get the current engine temperature -* -* Entry: None -* -* Exit: D = engine temperature value in Farenheit -getengtemp: - ldd engtemp,u - rts - - -* Get the current fuel amount -* -* Entry: None -* -* Exit: D = fuel amount in 16ths -getfuel: - ldd fuelamt,u - rts - - - endsect
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/packages/coyota/instrument.as Sun Feb 09 21:06:29 2014 +0100 @@ -0,0 +1,85 @@ +**************************************************************************** +* +* instrument.a - acquires all needed data values from various instruments +* +* + + psect instrument_a,0,0,3,0,0 + + vsect +speed rmb 2 +mileage rmb 4 +engtemp rmb 2 +fuelamt rmb 2 + endsect + +* initialize hardware +* +* Entry: None +* +* Exit: D = speed value in miles per hour +insinit: + ldd #55 + std speed,u + + ldd #(171556/65536) + std mileage,u + ldd #40439 + std mileage+2,u + + ldd #200 + std engtemp,u + + ldd #9 + std fuelamt,u + + rts + +* Get the current speed +* +* Entry: None +* +* Exit: D = speed value in miles per hour +getspeed: + ldd speed,u 55 mph + rts + +speedplus: + ldd speed,u + addd #$0001 + std speed,u + rts + +* Get the odometer value +* +* Entry: None +* +* Exit: D = bits 23-16 of odometer +* X = bits 15-0 of odometer +getmileage: + ldd mileage,u + ldx mileage+2,u + rts + + +* Get the current engine temperature +* +* Entry: None +* +* Exit: D = engine temperature value in Farenheit +getengtemp: + ldd engtemp,u + rts + + +* Get the current fuel amount +* +* Entry: None +* +* Exit: D = fuel amount in 16ths +getfuel: + ldd fuelamt,u + rts + + + endsect