TI-86 공학용 계산기

계산기 2023. 2. 3. 23:24 posted by tolkien

우연히 TI-86 계산기를 손에 넣게 되었습니다.

TI-83 plus 랑 비교해보면

TI-86 공학용 계산기

  • Flash ROM이 없습니다. program은 RAM memory에 저장만 가능합니다. 따라서 PC와 link해서 backup해야 합니다.
  • TI-83 시리즈보다 더 유연한 듯 합니다. LIST의 경우, L1~L6만으로 제한되었던 TI-83과 달리 LIST 변수를 자유롭게 생성할 수 있습니다. 그것때문인지 모르겠지만,
  • 속도가 조금 느린 듯 합니다. TI-83에 porting했던 memory game을 넣어서 실행해보면 좀 시간이 더 걸리는 느낌입니다. 스펙상으로는 같은 6 Mhz인데. TI-83에서 L1~L6로 제한해서 변수 처리의 유연성을 줄인 대신 속도를 얻은 것 같습니다. 뭐 대규모 프로그램이 아닌 이상 LIST 6개면 무난할 것같기도 합니다.
  • 소프트 메뉴 버튼: HP 계산기에 보여준 soft menu button이 있습니다. TI-89에서 windows 95등에서 보여주는 상단에 menu등을 보여주는데, TI-86는 활성화된 menu를 화면 하단에 보여줍니다.

TI-89 menu
TI-89의 menu

 

TI-86의 soft menu
TI-86의 soft menu

 

마찬가지로 memory 게임을 porting해봤습니다. TI-83과 문법은 같은데, keyword가 조금 다릅니다. 또, TI-83과 달리 TI-89처럼 keyword를 직접 타이핑할 수 있습니다. (이것때문에 느려진 것인가?)

code는 아래와 같습니다. ('->'는 STO입니다. !=는 'not equal')

더보기
program: MEMORY
19->dimL L6
100->L6(10)

Lbl INIT
ClLCD 
For(I,1,9)
I->L6(I)
End
For(I,1,9)
int (rand*10)->J
If J!=0
Then
L6(I)->K
L6(J)->L6(I)
K->L6(J)
End
End
For(I,1,9)
I->L6(10+I)
End
For(I,1,9)
int (rand*10)->J
If J!=0
Then
L6(10+I)->K
L6(10+J)->L6(10+I)
K->L6(10+J)
End
End

0->W
0->R
For(I,2,6,2)
For(J,2,6,2)
Outpt(J,I,0)
Outpt(J,9+I,0)
End
End

Lbl LOOP
Outpt(4,8,"<"
Outpt(4,9,"-"
0->S
-1->Z

While S==0 or Z<0
getKy->S
If S==45
Return 
If S!=0
Then
S->X
0->Y
1->Z
MDISP
Z->U
End
End
Outpt(4,8,"-"
Outpt(4,9,">"
0->T
-1->Z
While T==0 or Z<0
getKy->T
If T!=0
Then
T->X
9->Y
1->Z
MDISP
Z->V
End
End
0->K
While K==0
getKy->K
End
If U!=V
Then
0->Z
Else
W+1->W
2->Z
End
S->X
0->Y
MDISP
T->X
9->Y
MDISP
R+1->R
If W<9
Goto LOOP
If L6(10)>R
R->L6(10)
ClLCD 
Disp "SCORE:"
Disp R
Disp "BEST SCORE:"
Disp L6(10)
0->K
While K==0
getKy->K
End
Goto INIT

program:MDISP
0->A
If Y!=0
Then
Y+1->C
Else
0->C
End
If X==72
Then
Y+2->A
2->B
C+7->C
End
If X==82
Then
Y+2->A
4->B
C+4->C
End
If X==92
Then
Y+2->A
6->B
C+1->C
End
If X==73
Then
Y+4->A
2->B
C+8->C
End
If X==83
Then
Y+4->A
4->B
C+5->C
End
If X==93
Then
Y+4->A
6->B
C+2->C
End
If X==74
Then
Y+6->A
2->B
C+9->C
End
If X==84
Then
Y+6->A
4->B
C+6->C
End
If X==94
Then
Y+6->A
6üB
C+3->C
End
If A==0
Then
-2->Z
Return 
End
If L6(C)==0
Then
-1->Z
Return 
End
If Z==2
Then
0->L6(C)
Return 
End
If Z!=0
Then
L6(C)->Z
End
Outpt(B,A,Z)
Return

실행 code 및 manual 첨부합니다.

MDISP.86p
0.00MB
MEMORY.86p
0.00MB
86bookeng.pdf
2.60MB