재무용 계산기의 사실상 표준인 HP-12C 계산기는 오랜기간 생산되는 동안 여러 version으로 나왔습니다. (각 version에 대한 표는 아래 참조)

그중에서 beast 또는 hp-12c+라고 불리는 model이 있습니다. 성능은 기본 model대비 60배, Platinum 대비 10배의 속도를 지녔다고 합니다. (platinum은 6배 빠릅니다.)

HP NUT 프로세서가 아닌 ARM core를 사용하기때문에 내부적으로는 에뮬레이터를 사용한다고 합니다.

 

hp-12c / hp-12c platinum을 쓰다보면 cash flow에서 irr(interest rate of return)이나 TVM에서 i(interest)를 계산할 때, 항상 뜨는 running을 보고 있으면 "참 이쁜 쓰레기"라는 생각이 떠오르곤 했습니다. 그렇지만, 재무관련 모든 교재나 설명에 있는 내용을 hp-12c는 계산할 수 있습니다. 교재가 TI-BA2 plus로 되어 있어도 약간만 손대면 그대로 쓸 수 있죠. 말 그대로 "de facto" standard의 위력입니다.

 

그러던중 hp community에서 60배 빠른 hp-12c의 존재를 알게 되었습니다. 거기서는 "beast"라고 부르던데, 60배면 얼마나 빠른거야.라는 생각을 하고 있었는데, 당근에서 영입했습니다! serial number를 조회해보니 2017년 중국 생산이네요.

 

써봤더니 말 그대로 무지하게 빠릅니다. cash flow의 irr이나 TVM의 i(이율) 계산할 때, running 화면이 살짝 뜨고 바로 값이 나옵니다.

한동안 만지다보니 단점도 보입니다. 버튼 입력이 좀 불안정합니다. 제가 가지고 있던 "느린" hp-12c에서 겪어보지 못해서 좀 당황스럽네요. 그래서 입력할 때, 화면을 확인해야 해서 속도 빠름의 장점이 희석되는 느낌입니다.

 

어쨌든, "beast"는 맞습니다. 기존 "느린" hp-12c와 외관상 구분점은 CR-2032 battery가 두개 들어간다는 것으로 구분 가능합니다. hp-12c 계산기의 version list 입니다.

# Model Years CPU Clock Power-Supply Speed
1 12C 81-88? 1LF5 (HP NUT) 884KHz 4.5V (3xLR44) x1
2 12C 81?-88? 1LM2 (HP NUT) 884KHz 4.5V (3xLR44) x1
3 12C 88-01? 1LQ9 (HP NUT) 884KHz 4.5V (3xLR44) x1
4 12C 95-01? 1RR2 (HP NUT) 884KHz 4.5V (3xLR44) x1
5 12C 99?-07 Agilent 2AF1-0001 (HP NUT) 884KHz 3V (1xCR2032) x1
6 12C 01?-07 Marvell 2AF1-0002 (HP NUT) 884KHz 3V (1xCR2032) x1
7 12C Platinum 03-05? Sunplus SPLB20D2 (6502) ~1MHz 3V (1xCR2032) x1.5?
8 12C Plat.(v2) 05?-10? Generalplus GPLB31A (6502) ~4MHz 3V (1xCR2032) x6?
9 12C Prestige 06-? Generalplus GPLB31A (6502) ~4MHz 3V (1xCR2032) x6?
10 12C Plat.25th AE 06-08? Generalplus GPLB31A (6502) ~4MHz 3V (1xCR2032) x6?
11 12C (+, v1) 08-? Atmel AT91SAM7L128 (ARM7DTMI) ~36MHz 3V (2xCR2032) x60
12 12C Plat.(v3) 10-? Generalplus GPLB31A (6502) ~4MHz 3V (2xCR2032) x6?
13 12C 30th AE LE 2011 Atmel AT91SAM7L128 (ARM7DTMI) ~36MHz 3V (2xCR2032) x60
14 12C (+, v2) 2015- Atmel ATSAM4LC2C (Cortex-M4) ~48MHz 3V (2xCR2032) x60?

 

한글 manual (hp-12c platinum)

hp-12c-platinum_user_guide_ko.pdf
0.84MB

카시오 fx-9860G

계산기 2023. 7. 6. 00:23 posted by tolkien

 공학용 계산기에 취미를 붙여서 어떻게 구하게 되면 사용자 설명서보면서 잠시 쓰다가 질리면 나면 보내고를 반복하고 있습니다. 제가 관심있게 보는 것은 TI와 HP쪽 제품들입니다. TI는 강력한 성능을 지닌 graphing calculator가 매력적이구요. 거기에 TI-BASIC도 나름 썩 훌륭합니다. HP는 그 독특함이 매력으로 구하면 그 사용법을 익히느라 시간 가는 줄 모르게 됩니다. 헌데 다 익히고 나면 사용처는 참 난감합니다. 계륵같은 존재이고, 저는 "예쁜 쓰레기"라는 별명을 붙여주었습니다. (아주 심심해서 한번도 안 써본 HP-Prime 빼고)

 

 그에 비해 Casio 제품군은 진짜 무난함이 장점이자 단점입니다. 시험용으로 접하는 fx-570 series부터 제가 소개하는 fx-9860 series까지 쉬운 인터페이스와 함께 강력한 성능은 시험이나 학업에 사용하는 보조기기로 제격입니다. 단점은 심심하다는 겁니다. 조금 익히면 그 담부터 볼 것이 없습니다.

 

 제가 지금 손에 쥔 것은 fx-9860G입니다. TI계열처럼 전지전능하지는 않지만, 대학교 수업에 필요한 것은 전부 갖추었다고 생각합니다. 복소수 연립방정식도 지원하고(저는 잘 모르는데, 전자쪽에서는 매우 유용하다고 합니다. fx-9750 series와의 차별점중 하나로 알고 있습니다.), 통계로 국한하면 List Editor로 입력도 편하게 할 수 있고, (통계) 함수도 다 갖추었다고 볼 수 있습니다. 그리고, usb micro-A cable을 사용하면 간단하게 add-in을 추가할 수 있구요. GIII에서는 python까지 쓸 수 있다 들었기에 한번은 건드려봐야지 하고 있긴 한데, 계산기라는 기능에 국한한다면 Casio-BASIC 정도면 무난할 것같구요. (설마 계산기에 탑재되어 있는 python이 numpy를 지원하는 것은 아니겠죠?)

 

 조금 예전 것이긴 한데 9860 한글 매뉴얼 첨부합니다. (version 2.00)

FX-9860G_v200_KO.pdf
12.27MB

HP-32SII

계산기 2023. 5. 10. 10:16 posted by tolkien

당근에서 운 좋게 HP-32SII를 영입했습니다.

(HP-32S였으면 좋겠지만, 아닙니다!)

 

이전에 써봤던 HP-17BII와 같은 Pioneer 시리즈라서

키감은 비슷한데, HP-17BII와 달리 LCD에 soft menu가 나오지 않습니다. 대신 HP-50g에서 보는 것처럼 left shift, right shift key가 있습니다.

 

제가 이전에 다루었던 HP-35GS, HP-12C와 조금 체계가 달라서 매뉴얼 보면서 공부하고 있습니다.

근데 매뉴얼 앞부분부터 나오는 것이 X,Y,T,Z stack 설명...

이전에 HP-50g도 살짝 손대보기도 했고, HP-12C를 쓰고 있으니 이게 왜 필요한지 아는데, HP RPN 계산기를 처음 쓰는 사람들에게는 필요없는 부분입니다.

처음에 계산기를 사면 간단히 계산부터 하고 싶어하지.

누가 계산기 내부 register 동작 원리를 알고 싶어 합니까.

쓰다보면 궁금한 점이 있으면 그때 볼 수 있게 Appendix 정도에 넣어주면 되는 내용을 2장에 넣어주는 HP...

(그래서 매니아가 많은 건가)

 

HP-32S는  menu에 들어가 있는 기능들을

그 후속작인 HP-32SII는 eft, right shift 조합으로 직접 대응시켰습니다.

HP-17BII, HP-35GS에서 보이던 soft menu가 사라지고,

HP-48 시리즈에서 보이는 left, right shift key를 보여주는 중간 형태의 기기라는 느낌이 강하네요.

(HP-50g에서 보이는 정신없는 키배치보다는 좀 덜 복잡합니다.)

공학용 계산기 TI-NSpire CX Emulator, Firebird

계산기 2023. 3. 29. 00:07 posted by tolkien

( https://m.blog.naver.com/nicecan/221112291936 ,

  https://cafe.naver.com/calc/33845 를 많이 참고했습니다.)

TI-NSpire 공식 에뮬레이터 대신 open source로 공개되어 있는 Firebird Emulator를 사용하는 방법입니다.

 

준비하기

1. BootCode를 아래 site에 가서 download 받습니다. (제일 아래로 내려가서 Boot1cx.img, Boot2cx.img만 받으시면 됩니다.)

https://www.intereseducation.com/resources/how-to-emulate-ti-nspire-cx-cas-touchpad-on-mac-windows-linux-with-firebird/

2. TI-Spire CX CAS ROM file은 TI 공식 홈페이지에서 받습니다.
- TI-Nspire™ CX CAS Handheld Operating System - Texas Instruments - US and Canada

3. 그리고, Firebird Emulator 실행파일은 

- Releases · nspire-emus/firebird (github.com) 에 가서 firebird-emu-win64.zip을 download.

파일을 한데 모아놓고, (예를 들어, E:\Users\john\Documents\calc-TI\Emu) 아래와 같이 설정합니다.

 

설치 및 설정하기

4. firebird-emu-win64.zip을 풀고나면, directory에 있는 firebird-emu.exe를 실행하면 아래와 같이 설정화면이 뜹니다. (그림 1)

5. 이제 파일들을 하나하나 지정해주어야 합니다.

  A. Boot1 : Boot1cx.img

  B. Flash에서는 "+" Icon을 눌러서 Flash File을 생성하는 화면(그림 2)으로 가서

      Boot2 : Boot2cx.img, OS : TI에서 받는 OS image (여기서는 TI-NspireCXCAS-4.3.0.702.tcc) 지정해주고, Save button을 누르면 FlashFile 이름을 물어보는데, 적당한 이름을 넣어줍니다. (저는 Firebird-flash.bin 이라고 주었습니다.)

 C. Snapshot button을 누르면 파일이름을 물어보는데, 적당한 이름을 넣어줍니다. (저는 Firebird-snapshot.raw 라고 주었습니다.) 제대로 설정이 되면 그림 3처럼 됩니다.

6. 그리고,  OK button을 누르면 Firebird Emu의 Desktop UI가 나옵니다. 모바일 UI가 실제 기기와 비슷해서 그걸로 설정합시다. Tools -> Switch To Mobile UI를 선택하면 아래와 같은 화면이 나옵니다. (그림 4, 크기를 적당히 조절해서 화면이 다 나오게 합시다)

7. 여기서 "Swipe here"을 누르면, 설정화면이 나오는데 여기서 "Start"를 누릅니다. (그림 5)

8. 좀 있으면 다음과 같은 화면이 나오는데, 여기서 " i " button을 누릅니다. (그림 6, PC가 아니라 emulator에 있는 " i " button입니다.)

9. 조금 기다리면 Firebird Emu가 TI-NSpire OS를 돌릴 준비가 된 것을 알 수 있습니다. (그림 7)

TI-84/TI-83 plus에서 가장 아쉬운 것이 복소수 행렬지원입니다. 정확히 말하면 복소수 행렬을 통한 복소수 연립방정식이죠. 이 기능의 부재로 인해서 같은 회사의 상위기종인 TI-89나 TI-NSpire로 넘어가게 됩니다. 아니면, 카시오 fx-9860 시리즈로 가게 되죠. (fx-9750 시리즈는 지원하지 않습니다. 그외 레어템인 TI-86, 카시오 afx-2.0 등이 복소수 행렬 연산을 지원합니다.)

 그래서, 이에 극복하기 위한 여러 방법이 있는데, 그중에서 아리조나 주립대 공과대학에서 작성한 TI-84/TI-83plus용 app이 사용하기 깔끔하기에 소개합니다. 아래식을 예로 들면,

(1+i)x -2iy = 6-2i
3ix + (-2+i)y = -1
  1. SIMEQMWM.8xp를 설치하고,
  2. STAT -> Edit... -> L1에 입력합니다. 순서는 x계수, y계수, R-value 순으로.
  3. 2nd -> Quit로 종료한 다음에, SIMEQMWM을 실행합니다. NUM=?을 물어보면 미지수 갯수인 2를 입력합니다.
  4. 다시 STAT -> Edit... 로 들어가면 L2에 해가 들어 있습니다. (참,  쉽죠?)

TI-BASIC code이므로 다른 계산기에도 이식이 쉽게 될 것같습니다. (->은 STO, L1, L2는 List 1, List 2입니다.)

SetUpEditor
ClrList L2
Prompt N
{2N,2N+1->dim([A])
For(I,1,N)
For(J,1,N)
real(L1((I-1)N+I+J-1))->[A](I,J)
[A](I,J)->[A](N+I,N+J)
imag(L1((I-1)N+I+J-1))->[A](N+I,J)
-[A](N+I,J)->[A](I,N+J)
End
real(L1(I(N+1)))->[A](I,2N+1)
imag(L1(I(N+1)))->[A](N+I,2N+1)
End
rref([A])->[A]
For(I,1,N)
[A](I,2N+1)+i[A](N+I,2N+1)->L2(I)
End
DelVar [A]

 

참고문헌

  1. https://uweb.engr.arizona.edu/~mwm/classes/220/Other_Resources/SIMEQMWM.htm
  2. https://education.ti.com/en/customer-support/knowledge-base/ti-83-84-plus-family/product-usage/34843
  3. https://m.blog.naver.com/kyhilsang131/221863854577
  4. https://allcalc.org/21582

SIMEQMWM.8xp
0.00MB

 

TI-86 공학용 계산기(2)

계산기 2023. 2. 12. 16:39 posted by tolkien

TI-86 계산기를 가지고, GuideBook을 보면서 하나하나 익혀가고 있습니다.

 

원래 TI-83 plus를 구하려다 꿩대신 닭이라고 손에 넣은 것인데, 써보니까 TI-89의 모습이 더 많이 보입니다. 기능을 넣다가 cpu의 한계를 느껴서 m68k로 넘어간 것이 아닌가.하는 느낌이 듭니다.

 

하지만, 후속작인 TI-84를 보면 TI-86의 흔적은 사라지고, TI-83 plus도 다시 돌아갔습니다. TI-84 UI는 왜 TI-86에서 시도한 것을 사용하지 않았는지 궁금합니다. soft-menu라는 개념이 학생들에게 가르치기 까다로워서 뺀 것인지.


 미분방정식 그래프를 그리는 부분들 따라하다보면 그런 느낌이 확신으로 바뀌는데요. 같은 TI 계산기라서 그런 것일 수도 있겠다 싶지만. (아니면, 미분방정식 그래프는 이런 식으로만 그려야만 하는 것일 수도 있네요. Casio나 HP에서 해당 기능을 한번 확인해봐야겠습니다.)


미분방정식 그래프 출력은 비슷하게 나옵니다. TI-89는 menu가 좁은 화면의 위를 차지하지만, TI-86은 다 그리면 soft-menu가 하단에 작게 위치합니다. 그래서인지 TI-86이 화면이 더 좁다고 느끼지 않습니다.

 값 및 식을 입력하는 부분에 있어서는 TI-89가 더 보기 좋습니나. TI-89는 "Y=" editor에서 필요한 방정식과 초기값을 한꺼번에 넣을 수 있게 되어 있습니다. 그외 다른 parameter들은 FORMAT이라는 menu로 따로 입력해야 합니다(F1 -> 9). 그리고, Windows parameter나 Zoom parameter를 적당히 넣으면 그래프가 나옵니다. (빠르게!)
 그에 비해 TI-86는 좀  여기저기 뛰어 다녀야 합니다. "Q(t)=" editor에서 방정식을 넣고, INITC menu에서 초기값을 넣습니다. MORE key를 눌러서 FORMT menu를 호출해서 다른 parameter를 넣어야 합니다. 현재까지는 조금 번거롭다.정도이지 심각한 단점은 아닙니다. (심각한 단점은 심하게 느린 cpu입니다. TI-83 plus보다 느린 것같아요.)

 

 TI-89대비 TI-86에서 맘에 드는 점은 LIST Editor입니다. (MATRIX Editor 포함)

 TI-89를 쓰면서 가장 아쉬웠던 점은 LIST Editor입니다. 계산에 사용할 LIST를 HOME에서 command line으로 입력하는 것은 악몽과도 같은 일입니다. 그래서 TI-89를 손에 넣자마자 제일 먼저하는 일은 "Statistics with LIST Editor"를 TI-89에 설치하는 일입니다. TI-83/86에서 제공하는 LIST Editor는 Casio나 Sharp의 그것보다 더 편한데, 그 이유는 HOME에서 직접 불러서 작업할 수 있다는 점입니다. 계산중에 LIST Editor를 호출해서 list를 만들고, 바로 써먹을 수 있습니다. (TI-89에서 추가된 LIST Editor도 마찬가지로 "HOME에서 빠져 나와서" 사용해야 합니다.)

 

 또, 단점때문에 장점처럼 느껴지는 것은 추가된 app들도 기존 built-in menu처럼 쓸 수 있다는 점입니다. TI-86는 TI-83 plus나 TI-84처럼 Flash Storage가 없습니다. TI-84에서 apps를 누른 다음 선택해서 실행해야 하는 것들이 MATH menu에 붙어있습니다. 궁여지책으로 내놓은 해결책일텐데, 이게 나쁘지 않습니다. 무엇보다 HOME에서 떠날 필요가 없으니까요. (정확히 말하면 떠나지 못하는 것입니다만.) TI-86에 없는 통계패키지나 재무 프로그램을 PC에서 download 받은 다음 "설치"하면  MATH menu에 확장으로 붙습니다. menu에 붙지 못하면 CATALOG를 통해서 실행하는 방식외에는 없습니다.

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

 

TI-83 plus에서 메모리 게임.

계산기 2022. 12. 7. 15:49 posted by tolkien

 

https://tinuviel.tistory.com/1071 - Casio Algebra fx-2.0에서 memory game 에서 작성했던 TI-83 plus에서 동작하는 memory game 실행 code입니다. TI-Editor와 Wabbitemu를 이용해서 작성 및 검증했습니다.

MDISP.8xp
0.00MB
MEMORY.8xp
0.00MB

 

TI-Editer는 200x년대에 TI에서 배포한 TI-connect package에 들어있는 프로그램입니다. ti-planet에서 구했는데, TI 공학용 계산기(TI-73부터 TI-89, voyage-200)에 사용할 프로그램 작성용으로 매우 유용합니다.

TIProgramEditor2.zip
0.90MB

 

Wabbitemu는 Android는 못 쓸 물건인데, Windows용은 쓸만하네요. TI-84까지만 됩니다. TI-89 이상은 다른 emulator를 구해야 할 것 같습니다. (Windows 10 64bit에서 확인했습니다.)

Wabbitemu.exe
4.58MB

Casio Algebra fx-2.0에서 memory game

계산기 2022. 10. 21. 22:02 posted by tolkien

TI-83 plus에 구현해 놓은 memory game을 afx-2.0에 porting해봤습니다.
(원래 code는 여기에 있습니다.) 이걸 옮기다가 몇가지 변경을 했습니다.

  1. 카드 뒤집는 부분을 subroutine으로 뺐습니다. key 값을 X에 담고, Y에는 세트 구분 (0: 세트 A, 9: 세트 B), 처리 명령을 Z에 담았습니다. Z는 구체적으로...
    1. Z=0: 틀렸으므로 카드를 뒤집어라. (0으로 다시 돌려놓음)
    2. Z=1: 해당 카드의 숫자를 보여줄 것.
    3. Z=2: 맞았으니까, 해당 위치의 값을 0으로 바꾸고 출력 부분은 건드리지 않음.
    4. 반환시 Z=-1 : 해당 위치는 이미 뒤집었슴.
    5. 반환시 Z=-2 : invalid key input
  2. 카드 상태를 저장을 A,B,... 변수가 아닌 List를 사용했습니다. 덕분에 원래 source coe에서 보이던 변수 쥐어짜기를 할 필요가 없어졌습니다.
  3. 해놓고 보니, 괜찮아서 다시 TI-83 plus에 back porting했습니다. (그래서, 화면은 TI-83 plus)
  4. TI-83 plus로 다시 작성할 때, afx-2.0과 다른 점은
    1. muli statement가 되지 않아서 code가 길어졌습니다.
    2. key code가 다릅니다.
    3. repeat ~ while 문이 없어서 while ~ end문을 쓰다보니 S->0과 같은 변수 초기화를 해주어야 하네요. 그외에는 code는 대동소이합니다. 

code를 아래와 같습니다.  '->'는 →입니다. !=는 'not equal'입니다.

더보기
FILE:MEMORY
ClrText:100->Q
Lbl 0
For 1->I To 9
I->List 19[I]
Next
For 1->I To 9
Int (Ran# x10)->J
If J!=0:Then
List 19[I]->K
List 19[J]->List 19[I]
K->List 19[J]
EndIf:Next
0->List 19[10]
For 1->I To 9
I->List 19[10+I]
Next
For 1->I To 9
Int (Ran# x10)->J
If J!=0:Then
List 19[10+I]->K
List 19[10+J]->List 19[10+I]
K->List 19[10+J]
EndIf:Next

0->W:0->R
For 2->I To 6 Step 2
For 2->J To 6 Step 2
Locate I,J,0
Locate 10+I,J,0
Next:Next

Lbl 1
Locate 9,4,"<"
Locate 10,4,"-"
Do:LpWhile Getkey!=0
Do:Getkey->S
If S=47:Then Return:IfEnd
If S!=0:Then S->X:0->Y:1->Z:Prog "~MDISP":Z->U:IfEnd
LpWhile S=0 Or Z<0
Locate 9,4,"-"
Locate 10,4,">"
Do:LpWhile Getkey!=0
Do:Getkey->T
If T!=0:Then T->X:10->Y:1->Z:Prog "~MDISP":Z->V:IfEnd
LpWhile T=0 Or Z<0
Do:LpWhile Getkey!=0
Do:Getkey->K:LpWhile K=0
If U!=V:Then 0->Z
Else W+1->W:2->Z:IfEnd
S->X:0->Y:Prog "~MDISP"
T->X:10->Y:Prog "~MDISP"
R+1->R
Locate 2,7,"TRIAL:     "
Locate 9,7,R
If W<9:Then Goto 1:IfEnd
If Q>R:Then R->Q
Locate 2,7,"BEST : "
Locate 9,7,R
IfEnd
Goto 0

FILE:~MDISP
0->A
If X=74:Then
Y+2->A:2->B:Y+7->C
IfEnd
If X=73:Then
Y+2->A:4->B:Y+4->C
IfEnd
If X=72:Then
Y+2->A:6->B:Y+1->C
IfEnd
If X=64:Then
Y+4->A:2->B:Y+8->C
IfEnd
If X=63:Then
Y+4->A:4->B:Y+5->C
IfEnd
If X=62:Then
Y+4->A:6->B:Y+2->C
IfEnd
If X=54:Then
Y+6->A:2->B:Y+9->C
IfEnd
If X=53:Then
Y+6->A:4->B:Y+6->C
IfEnd
If X=52:Then
Y+6->A:6->B:Y+3->C
IfEnd
If A=0:Then
-2->Z:Return:IfEnd
If List 19[C]=0:Then
-1->Z:Return:IfEnd
If Z=2:Then 
0->List 19[C]:Return:IfEnd
If Z!=0:Then
List 19[C]->Z:IfEnd
Locate A,B,Z
Return

FX-9860에서 동작확인한 code입니다. (FA-124에서 IMPORT로 가져올 수 있습니다.)

MEMORY.G1M
0.00MB
MDISP.G1M
0.00MB

 

TI-83 plus에서 동작하는 code입니다. (text file. TI-83 plus에서 일일이 입력해야 합니다.)

memory_ti-83p.txt
0.00MB

이걸 Sharp EL-5230에 porting 할 수 있을지 생각중입니다. memory가 충분할 지...

( 2023/05/03 : fx-9860에서 동작하도록 Getkey buffer가 clear가 됨을 확인하는 code 추가. )

 

 

TI-84 plus에서 야구게임

계산기 2022. 10. 12. 23:15 posted by tolkien

- hp-39gs에서 야구게임

- sharp el-5230에서 야구게임

- algebra fx-2.0에서 야구게임

 

하는김에 탄력받아서...

가지고 있던 TI-84 plus에도 마찬가지로 porting해봤습니다.

  1. afx-2.0과 마찬가지로 if <condition>에서 OR 및 AND 연산자를 쓸 수 있습니다.
  2. Disp 명령을 쓸 수 있어서 이쁘지 않지만, 출력을 한줄로 처리할 수 있었습니다.
  3. GOTO문도 마찬가지.
  4. hp-39gs나 afx-2.0과 달리 multi statement를 지원하지 않아서 프로그램 line 수가 많습니다만, 편집하는 계산기의 column이 좁아서 큰 단점으로 느껴지지 않았습니다.

TI-84 plus는 casio fx-9860, hp-39gs와 비슷한 위치를 지닌 제품입니다. 단지 미국 수학교육 주교재 취급을 받고 있어서 가격이 비싼 편입니다. cpu는 z-80, 8bit cpu... (심지어, 칼라제품로 cpu는 z-80으로 알고 있습니다.)

 

code는 아래와 같습니다. '->'는 →입니다.

더보기
0->A
While A=0
iPart(rand*10)->A
End
0->B
While B=0 or B=A
iPart(rand*10)->B
End
0->C
While C=0 or C=A or C=B
iPart(rand*10)->C
End

Lbl 0
Input "GUESS: ",G
If G=-1
Then
Disp A*100+B*10+C
End
iPart(G/100)->D
fPart(G/10)*10->F
(G-100*D-F)/10->E
0->R
0->S
If D=B or D=C
Then
R+1->R
Else
If D=A
Then
S+1->S
End
End
If E=A or E=C
Then
R+1->R
Else
If E=B
Then
S+1->S
End
End
If F=A or F=B
Then
R+1->R
Else
If F=C
Then
S+1->S
End
End
If S=3
Then
Disp "GOOD JOB"
Return
End
Disp S,"STRIKE",R,"BALL"
Goto 0

baseball_ti-84.txt
0.00MB