I don't know if anyone else has noticed this, but the test modes really do have patterns to them. Take this completely unoptimized program I threw together that doesn't even take advantage of port (C):
Code:
AsmPrgm
F3CD0B003E
1C
D310CD0B00
3E18D310
EF1840F3B728EA
CD0B003EF5D310
C9

Based on the number put in place of 1C (valid inputs are 1C, 1D, 1E, or 1F), different patterns come up. Press any key to exit.
1C: Clean blue on the bottom portion of the screen. Stray lines above, but not that often.

1D: Bottom portion is still blue, but its a bit dirtier. No stray lines above.

1E: Jumpy lines everywhere, but more often in the higher half, and only every other line is a victim.

1F: Full blue, though some places are more intense than others.

All four inputs vary depending on what was on the LCD before the program was run. Also, put something on the screen beforehand and run the program. You'll notice that the patterns loop and never go randomly. You'll also notice the LCD fading if you don't think to stop the program after a little while. Laughing

So, was this already discussed elsewhere, or have I done something with my life?
I checked wikiti and didn't see ay documentation on that yet - you may have actually come up with something original. Well done. Smile
Even if there was a perfect pattern to it, I still wouldn't use it. The effect is caused by pushing more than a normal amount of power to the LCD, which can't be at all good for it, the same as constant archiving/garbage collecting.
didn't Dan Englender or someone get the lcd to do yellow at one point?

[edit]
wrong guy, right idea
Micheal Vincent did this pong game. Lemme type it into my calc...
Surprised I really want to the source code for that.
Disassemble it. It's small enough that it's easy to get the gist of it. I couldn't type it into my calc (darn you, Ion, for making so many programs dependent on you!), but the source code indicates that he got color from changing power levels and contrasts.
I dled it and it ran for a second then froze before I could look at the screen for color =(
Do you have a TI-84+/SE? When I tried it on my TI-84+ SE, it kind of worked, but then the screen went blank... (and I took out my batteries). It mostly worked on Wabbitemu, except for that the color didn't show.

(See, I told you it would be a good idea for Wabbitemu to emulate color Wink)
I got the same problem.
Here's source code (this is just what Disassembler 1.7 from ticalc.org spat out):

Code:

.NOLIST
#define     equ             .equ
#define     EQU             .equ
#define     END             .end
.LIST

#define bcall(xxxx)     rst 28h    \ .dw xxxx
#define bcallz(xxxx)    jr nz,$+5  \ rst 28h  \ .dw xxxx
#define bcallnz(xxxx)   jr  z,$+5  \ rst 28h  \ .dw xxxx
#define bcallc(xxxx)    jr  nc,$+5 \ rst 28h  \ .dw xxxx
#define bcallnc(xxxx)   jr  c,$+5  \ rst 28h  \ .dw xxxx
#define bjump(xxxx)     call 50h   \ .dw xxxx

_ClrLCDFull            equ     4540h
_homeup                equ     4558h
_PutS                  equ     450Ah
_DispHL                equ     4507h
_GetCSC                equ     4018h
contrast               equ     8447h
ionrandom              equ     96C1h
appBackUpScreen        equ     9872h
ionPutSprite           equ     96C4h
ionLargeSprite         equ     96C7h
ionfastcopy            equ     96CDh
_CpHLDE                equ     400Ch
plotSScreen            equ     9340h

.org        9D93h

     .db 0BBh, 6Dh
     ret         
     jr   nc, Label1

Str1:
     .db  "2-Color Pong", 0

Label1:
     bcall(_ClrLCDFull)     
     bcall(_homeup)     
     ld   hl, Str1
     bcall(_PutS)     
     bcall(0452Eh)     
     ld   hl, Str2
     bcall(_PutS)     
     bcall(0452Eh)     
     bcall(0452Eh)     
     ld   hl, Str3
     bcall(_PutS)     
     ld   hl, (Str4)
     bcall(_DispHL)     

Label3:
     ei           
     halt         
     bcall(_GetCSC)     
     or   a       
     jr   z, Label3
     call Label4
     ld   a, 19
     out  (16), a 
     call Label4
     ld   a, 35
     out  (16), a 
     call Label4
     ld   a, (contrast) 
     add  a, 24
     or   192
     ld   (0989Ah), a 
     ld   a, 255
     out  (16), a 
     ld   a, 5
     ld   (09877h), a 
     ld   b, 20
     call ionrandom
     inc  a       
     ld   (09874h), a 
     ld   b, 80
     call ionrandom
     inc  a       
     ld   (09873h), a 
     and  254
     ld   (appBackUpScreen), a 
     ld   a, 255
     ld   (09875h), a 
     ld   (09876h), a 
     ld   hl, 00000
     ld   (09878h), hl

Label13:
     call Label5
     ld   a, (09875h) 
     ld   b, a   
     ld   a, (09873h) 
     add  a, b   
     ld   (09873h), a 
     cp   2
     call m, Label6
     cp   88
     call p, Label6
     ld   a, (09876h) 
     ld   b, a   
     ld   a, (09874h) 
     add  a, b   
     ld   (09874h), a 
     cp   2
     call m, Label7
     cp   57
     call p, Label8
     ld   a, 255
     out  (1), a 
     ld   a, 254
     out  (1), a 
     in   a, (1) 
     cp   253
     jr   nz, Label9
     ld   a, (appBackUpScreen) 
     sub  2
     or   a       
     jr   z, Label9
     ld   (appBackUpScreen), a 

Label9:
     cp   251
     jr   nz, Label10
     ld   a, (appBackUpScreen) 
     add  a, 2
     cp   80
     jr   z, Label10
     ld   (appBackUpScreen), a 

Label10:
     ld   a, 255
     out  (1), a 
     ld   a, 191
     out  (1), a 
     in   a, (1) 
     cp   191
     jr   z, Label11
     ld   ix, Str5
     ld   a, (09874h) 
     ld   l, a   
     ld   a, (09873h) 
     ld   b, 4
     call ionPutSprite
     ld   ix, Str6
     ld   l, 61
     ld   a, (appBackUpScreen) 
     ld   b, 2
     ld   c, 2
     call ionLargeSprite
     call ionfastcopy
     ld   a, (09877h) 
     ld   b, a   

Label12:
     ei           
     halt         
     djnz Label12
     jp   Label13

Label6:
     ld   a, (09875h) 
     neg         
     ld   (09875h), a 
     ret         

Label7:
     ld   a, 1
     ld   (09876h), a 
     ret         

Label8:
     ld   a, 255
     ld   (09876h), a 
     ld   a, (09873h) 
     add  a, 8
     ld   b, a   
     ld   a, (appBackUpScreen) 
     cp   b       
     jr   nc, Label14
     ld   a, (09873h) 
     ld   b, a   
     ld   a, (appBackUpScreen) 
     add  a, 16
     cp   b       
     jr   c, Label14
     ld   hl, (09878h)
     inc  hl     
     ld   (09878h), hl
     ret         

Label14:
     pop  hl     

Label11:
     ld   a, (0989Ah) 
     call Label4
     out  (16), a 
     call Label4
     ld   a, 17
     out  (16), a 
     call Label4
     ld   a, 34
     out  (16), a 
     bcall(_ClrLCDFull)     
     bcall(_homeup)     
     ld   hl, Str7
     bcall(_PutS)     
     ld   hl, (09878h)
     bcall(_DispHL)     
     bcall(0452Eh)     
     ld   de, (Str4)
     ld   hl, (09878h)
     bcall(_CpHLDE)     
     jr   c, Label15
     ld   (Str4), hl
     ld   hl, Str8
     bcall(_PutS)     

Label15:
     ei           
     halt         
     bcall(_GetCSC)     
     or   a       
     jr   z, Label15
     ret         

Str6:
     .db  255, 255, 255, 255

Str5:
     .db  "<", 126, 126
     .db  "<"

Str2:
     .db  "Michael Vincent", 0

Str8:
     .db  "New high score!", 0

Str4:
     .db  0, 0

Str3:
     .db  "High Score:", 0

Str7:
     .db  "Score:", 0

Label5:
     ld   hl, plotSScreen
     ld   b, 192
     ld   a, 255

Label16:
     ld   (hl), a
     inc  hl     
     ld   (hl), a
     inc  hl     
     ld   (hl), a
     inc  hl     
     ld   (hl), a
     inc  hl     
     djnz Label16
     ret         

Label4:
     push hl     
     inc  hl     
     dec  hl     
     pop  hl     
     ret         
     inc  e       

 ; Disassembled by Jimmy Conner - timagic@yahoo.com
 ; @ 6/7/2007 3:59:38 PM
 ; Disassembler v1.7
 ; Total Opcodes: 188
 ; Total Data: 74
 ; Z80 AC   -  z80.us.fornax.com
 ; Personal -  www.timagic.cjb.net
.end
end
Bah! Frontend looks cleaner.


Code:
 .db $BB,$6D

userMem:
 ret
 jr nc,lblStart

tTitle:
 .db "2-Color Pong",$00

lblStart:
 b_call _ClrLCDFull
 b_call _homeup
 ld hl,tTitle
 b_call _PutS
 b_call _NewLine
 ld hl,text9F35
 b_call _PutS
 b_call _NewLine
 b_call _NewLine
 ld hl,text9F57
 b_call _PutS
 ld hl,(data9F55)
 b_call _DispHL

l9DCC:
 ei
 halt
 b_call _GetCSC
 or a
 jr z,l9DCC
 call l9F7C
 ld a,$13
 out ($10),a
 call l9F7C
 ld a,$23
 out ($10),a
 call l9F7C
 ld a,(contrast)
 add a,$18
 or $C0
 ld (appBackUpScreen+40),a
 ld a,$FF
 out ($10),a
 ld a,$05
 ld (appBackUpScreen+5),a
 ld b,$14
 call ionRandom
 inc a
 ld (appBackUpScreen+2),a
 ld b,$50
 call ionRandom
 inc a
 ld (appBackUpScreen+1),a
 and $FE
 ld (appBackUpScreen),a
 ld a,$FF
 ld (appBackUpScreen+3),a
 ld (appBackUpScreen+4),a
 ld hl,$0
 ld (appBackUpScreen+6),hl

l9E1D:
 call l9F6A
 ld a,(appBackUpScreen+3)
 ld b,a
 ld a,(appBackUpScreen+1)
 add a,b
 ld (appBackUpScreen+1),a
 cp $02
 call m,l9EAF
 cp $58
 call p,l9EAF
 ld a,(appBackUpScreen+4)
 ld b,a
 ld a,(appBackUpScreen+2)
 add a,b
 ld (appBackUpScreen+2),a
 cp $02
 call m,l9EB8
 cp $39
 call p,l9EBE
 ld a,$FF
 out ($01),a
 ld a,$FE
 out ($01),a
 in a,($01)
 cp $FD
 jr nz,l9E63
 ld a,(appBackUpScreen)
 sub $02
 or a
 jr z,l9E63
 ld (appBackUpScreen),a

l9E63:
 cp $FB
 jr nz,l9E73
 ld a,(appBackUpScreen)
 add a,$02
 cp $50
 jr z,l9E73
 ld (appBackUpScreen),a

l9E73:
 ld a,$FF
 out ($01),a
 ld a,$BF
 out ($01),a
 in a,($01)
 cp $BF
 jr z,l9EE4
 ld ix,text9F31
 ld a,(appBackUpScreen+2)
 ld l,a
 ld a,(appBackUpScreen+1)
 ld b,$04
 call ionPutSprite
 ld ix,data9F2D
 ld l,$3D
 ld a,(appBackUpScreen)
 ld b,$02
 ld c,$02
 call ionLargeSprite
 call ionFastCopy
 ld a,(appBackUpScreen+5)
 ld b,a

l9EA8:
 ei
 halt
 djnz l9EA8
 jp l9E1D

l9EAF:
 ld a,(appBackUpScreen+3)
 neg
 ld (appBackUpScreen+3),a
 ret

l9EB8:
 ld a,$01
 ld (appBackUpScreen+4),a
 ret

l9EBE:
 ld a,$FF
 ld (appBackUpScreen+4),a
 ld a,(appBackUpScreen+1)
 add a,$08
 ld b,a
 ld a,(appBackUpScreen)
 cp b
 jr nc,l9EE3
 ld a,(appBackUpScreen+1)
 ld b,a
 ld a,(appBackUpScreen)
 add a,$10
 cp b
 jr c,l9EE3
 ld hl,(appBackUpScreen+6)
 inc hl
 ld (appBackUpScreen+6),hl
 ret

l9EE3:
 pop hl

l9EE4:
 ld a,(appBackUpScreen+40)
 call l9F7C
 out ($10),a
 call l9F7C
 ld a,$11
 out ($10),a
 call l9F7C
 ld a,$22
 out ($10),a
 b_call _ClrLCDFull
 b_call _homeup
 ld hl,text9F63
 b_call _PutS
 ld hl,(appBackUpScreen+6)
 b_call _DispHL
 b_call _NewLine
 ld de,(data9F55)
 ld hl,(appBackUpScreen+6)
 b_call _CpHLDE
 jr c,l9F24
 ld (data9F55),hl
 ld hl,text9F45
 b_call _PutS

l9F24:
 ei
 halt
 b_call _GetCSC
 or a
 jr z,l9F24
 ret

data9F2D:
 .db $FF,$FF,$FF,$FF

text9F31:
 .db "<~~<"

text9F35:
 .db "Michael Vincent",$00

text9F45:
 .db "New high score!",$00

data9F55:
 .db $00,$00

text9F57:
 .db "High Score:",$00

text9F63:
 .db "Score:",$00

l9F6A:
 ld hl,plotSScreen
 ld b,$C0
 ld a,$FF

l9F71:
 ld (hl),a
 inc hl
 ld (hl),a
 inc hl
 ld (hl),a
 inc hl
 ld (hl),a
 inc hl
 djnz l9F71
 ret

l9F7C:
 push hl
 inc hl
 dec hl
 pop hl
 ret
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
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 vote in polls in this forum

 

Advertisement