;; Emacs Mode Selection Info: -*-mode: ASM; coding: iso-latin-1-dos;-*- * ;; ******************************************************************************************** ;; File Name: LookForCenter ;; Auther: John L. Weinrich ;; Date: 01/31/03 ;; Useage 4004 TIC-TAC-TOE Game ;; Description: ;; ;; This routine is used for the 4004 TIC-TAC-TOE Game. ;; ;; Assumptions: ;; This assembly code and all the included files assume the following: ;; ;; RAM Memory: 2048 X 4 (8 RAM banks, 4 RAMs/bank, 4 registers/RAM, 16 Char/Reg) ;; 256 status characters. ;; 2 I/O Port ;; RAM1: SPEAKER PITCH/write ;; RAM2: SPEAKER LEVEL/write ;; ;; ROM Memory: 4096 X 8 (16 ROMs @ 256 locations ;; 11 I/O Ports (3 - R/W, 4- Read, 4 - Write) ;; ROM0: MISC/read ;; ROM0: MISC/write ;; ROM3: DISPLAY HIGH IN/read ;; ROM3: DISPLAY HIGH OUT/write ;; ROM4: DISPLAY LOW IN/read ;; ROM4: DISPLAY LOW OUT/write ;; ROM5: KEYBOARD HIGH INPUT/read ;; ROM6: KEYBOARD LOW INPUT/read ;; ROM7: MISC2/write ;; ROM8: PAGE/write ;; ROM9: RANDOM NUMBER GENERATOR/read ;; ROM10: FPGA VERSION/read ;; ;; See "4004 FPGA Design" and "4004 Software Design " documents for more detail information. ;; ;; Registers used: ;; Memory used: ;; Entrance parameters: ;; Exit parameters: ;; Labels used: ;; ******************************************************************************************** ;; Determine if 4004 is X or O ;; LookForCenter jms Check5O jcn NZ,NotCenter jms Check5X jcn NZ,NotCenter fim UTILITY_1_P,POS5_RAM ; Select RAM game board position bbl REPORT_SUCCESS ; NotCenter bbl REPORT_FAILURE LookForSide jms Check2O jcn NZ,CheckNextS1 jms Check2X jcn NZ,CheckNextS1 fim UTILITY_1_P,POS2_RAM ; bbl REPORT_SUCCESS ; CheckNextS1 jms Check4O jcn NZ,CheckNextS2 jms Check4X jcn NZ,CheckNextS2 fim UTILITY_1_P,POS4_RAM ; bbl REPORT_SUCCESS ; CheckNextS2 jms Check6O jcn NZ,CheckNextS3 jms Check6X jcn NZ,CheckNextS3 fim UTILITY_1_P,POS6_RAM ; bbl REPORT_SUCCESS ; CheckNextS3 jms Check8O jcn NZ,NoSide jms Check8X jcn NZ,NoSide fim UTILITY_1_P,POS8_RAM ; bbl REPORT_SUCCESS ; NoSide bbl REPORT_FAILURE