|
nedoPC.orgCommunity for electronics hobbyists, established in 2002 |
|
Last visit was: 27 Jul 2024 07:33
|
It is currently 27 Jul 2024 07:33
|
National Semiconductor's HPC46003 (строим комп nedoPC-46)
Author |
Message |
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 883
|
Нашёл в AN-0486 такую команду:
Т.е. мои догадки скорее всего верны, и берётся байт с нулевым старшим байтом.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
22 Apr 2013 06:25 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 883
|
Реальная программа для HPC: move.html
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
22 Apr 2013 06:39 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23104 Location: Silicon Valley
|
Угу - уже качнул. Он бы ещё бы листинг приложил - вообще было бы замечательно
|
22 Apr 2013 07:27 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 883
|
Он бы ещё ассемблер приложил
Насколько я понял, ассемблер распространялся только по соглашению с N.S., где-то видел, чувак, имеющий тулзы, советовал кому-то обратиться к ним, и если они будут не против он вышлет архив с тулзами.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
22 Apr 2013 08:28 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23104 Location: Silicon Valley
|
Я тоже это письмо читал - это единственная попытка создать самодельный комп на этом проце, которая видимо на этой переписке и закончилась
|
22 Apr 2013 09:32 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
За деньги, да ещё и по соглашению? Забавно...
Мне кажется, этот чувак мне тоже попадался, но казалось мне он денег хочет - $50.
Либо я чего не понял...
_________________ iLavr
|
22 Apr 2013 11:02 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23104 Location: Silicon Valley
|
Раньше это была вполне распостранённая практика как я понимаю - пока опенсорцовцы не начали нажимать на индустрию (в некоторых отраслях оно до сих пор так - только под NDA и только за большие бабосы)
P.S. Вот та переписка:
http://coding.derkeiler.com/Archive/Gen ... 00704.html
http://coding.derkeiler.com/Archive/Gen ... 00706.html
Перечитал внимательно - чуваку по работе дали задачу поправить софт для какой-то существующей HPC-железяки и он спрашивает как это делать - это было в 2005 году...
|
22 Apr 2013 11:44 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23104 Location: Silicon Valley
|
Это по-видимому значит, что к половинкам слова процессор может обращаться раздельно. С другой стороны если прицепить настоящую 16-битную память и работать с ней только словами и только по чётным адресам, то всё срастётся?...
|
22 Apr 2013 13:53 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23104 Location: Silicon Valley
|
А вот и они:
P.S. Что-то не могу понять в каком году они их выпустили - в 2012 чтоли?...
|
22 Apr 2013 16:23 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23104 Location: Silicon Valley
|
Там кстати ещё есть:
http://user.xmission.com/~lre/newt/newt.html
Вот например инициализация и главный цикл программы:
| | | | Code: ; ; ; FILE NAME MAIN.ASM ; ;------------- MAIN LOOP & INITIALIZATION --------------------------------- ; ; ; SynPet Personal Electronic Technologies ; 7225 Franklin Road, Boise, ID 83709 ; ; Created: 8/22/89 - LRE ; Firmware version 1.00 3/15/90 ; Firmware version 1.01 3/18/90 - Fix commo lockup. ; ; ; ; ;---------------------------------------------------------------------------
.chip 16003 .incld GLOBDEFS
;--------------- MODULE PRIVATE DEFINES ----------------------------------
;---------- END OF MODULE PRIVATE DEFINES -------------------------------
.sect DATA,ram8
;---------------- MODULE PRIVATE VARIABLES --------------------------------
;--------------- END OF MODULE PRIVATE VARIABLES --------------------------
;-------------------- EXTERNAL GLOBAL VARIABLES ---------------------------
.extrn total_jobs_in_qs .extrn jobs_in_q .extrn a_to_d_tic .extrn chk_rd_intrn_t0_tic .extrn first_msg_received .extrn lights_t0_tic .extrn last_ir_change_status .extrn ir_change .extrn internal_msg_buffer
;----------------- END OF EXTERNAL GLOBAL VARIABLES -----------------------
.endsect
;---------------- START OF MODULE CODE -----------------------------------
.public REV_NO
.extrn PROCESS_COMMO .extrn INIT_TIMERS .extrn INIT_HEAD .extrn INIT_COMMO .extrn INIT_MICRO_WIRE .extrn INIT_MOVE .extrn INIT_LIGHTS .extrn INIT_RD_EXTRN .extrn INIT_CONTROL .extrn MOVE_MAIN .extrn TEST_MAIN .extrn LIGHTS_MAIN .extrn CONTROL_MAIN .extrn READ_INTERNAL_MAIN .extrn RDEXTRN_MAIN .extrn HEAD_MAIN .extrn BEACON_MAIN .extrn LIGHTSHOWS_MAIN .extrn A_TO_D_MAIN .extrn LIGHT_SHOW .extrn PROCESS_REMOTE_CONTROL .extrn CHECK_RD_INTRN .extrn PROCESS_LIGHT_T0_TIC .extrn SND_INTERNAL_MSG
;--------------- START OF INITIALIZATION ------ ----------------------------
.sect RESET,rom8
MAIN:
; LD PSW.B,#010H ; Set addressing and wait states. 64K address, ; 4 waits. Must be done immediately. LD PSW.B,#014 ; Two waits. ; LD PSW.B,#018 ; One wait. JMP INITIALIZE ; Go set up everything else.
.endsect
.sect HIMEM,rom8 ; .sect LOMEM,rom8 ; .sect CODE,rom8
COPYRIGHT_NOTICE: .DB 'COPYRIGHT (C) 1990 - SYNPET PERSONAL ELECTRONIC TECHNOLOGIES' .DB 'NEWTON PESONAL ROBOT HPC FIRMWARE.' VERSION: .DB 'REV NO. - ' REV_NO: .DB '01.01'
INITIALIZE:
; Clear all RAM. LD B.W,#06000H ; Set up loop. LD K.W,#067FFH ; CLR_LOOP: CLR A ; Put all zeroes into mem. XS A,[B+].B ; JMP CLR_LOOP ;
JSR INIT_COMMO ; JSR INIT_TIMERS ; JSR INIT_HEAD ; ; JSR INIT_MICRO_WIRE ; JSR INIT_MOVE ; ; JSR INIT_LIGHTS ; ; JSR INIT_RD_EXTRN ; JSR INIT_CONTROL ;
DO_INTS: ; Start timers & let ints in. LD ENIR.B,#0 ; SBIT 0,TMMODE.B ; Only Have a T0 int to begin with on timer ints. ; T0 is already running & don't want the others ; started yet. RBIT 2,TMMODE_HI.B ; Start timer T2 for sonar. RBIT 6,TMMODE_HI.B ; Start timer T3 for sonar. SBIT 5,ENIR.B ; Enable timer interrupt. SBIT 7,ENIR.B ; Enable head opto interrupt. SBIT 3,ENIR.B ; Enable right motor opto int. SBIT 2,ENIR.B ; Enable left motor opto int. SBIT 4,ENIR.B ; Enable remote control int. _EN_INTS_ ; & The global enable. _EN_NMI_ ; Send home head command to head routine to startup. LD internal_msg_buffer + 0.B,#3 ; LD internal_msg_buffer + 1.B,#061H ; LD internal_msg_buffer + 2.B,#084H ; JSR SND_INTERNAL_MSG ; JMP MAIN_LOOP ; Go back - done with initialization.
;----------------- END OF INITIALIZATION -----------------------------------
;-------------------- START OF MAIN ---------------------------------------- ; ; THIS ROUTINE STARTS THINGS UP & THEN GOES INTO PRIMARY ENDLESS LOOP.
MAIN_LOOP: JSR PROCESS_COMMO ; Go check communications.
; Chk to see if any jobs running or pending & go process if ; there are. IFEQ total_jobs_in_qs.B,#0 ; Anything going on? JMP CHK_A2D ; No - don't process. ; Else fall thru to go do jobs. LD B,#0 ; For index thru jobs. CHK_NEXT_JOB: LD A,jobs_in_q[B].B ; IFEQ A,#0 ; Anything this job? JMP SETUP_FOR_NEXT_JOB_CHK ; No don't do job. ; Else go process job. PUSH B ; Save for next. JSR DO_JOB ; Go process. POP B ; Get index back . SETUP_FOR_NEXT_JOB_CHK: INC B ; IFGT B,#NUMBER_OF_JOBS_ROLLOVER ; Done checking all yet? JMP CHK_A2D ; Yes - go to next on main loop. JMP CHK_NEXT_JOB ; No - go check for more.
CHK_A2D: ; IFGT a_to_d_tic.B,#1 ; Time to go A to D? ; JSR A_TO_D_MAIN ; Yes - go to it. CHK_IR_CHANGE: LD A,DIGITAL_STATUS_PORT.B ; AND A,#04H ; LD B,last_ir_change_status.B ; XOR A,B ; IFGT A,#0 ; LD ir_change.B,#1 ; CHK_LIGHTS: IFEQ lights_t0_tic.B,#0 ; JMP DO_REMOTE_CONTROL ; ; JSR PROCESS_LIGHT_T0_TIC ; ; JSR LIGHT_SHOW ; LD lights_t0_tic.B,#0 ; DO_REMOTE_CONTROL: NOP NOP JSR PROCESS_REMOTE_CONTROL ; ; IFEQ first_msg_received.B,#0 ; JMP MAIN_LOOP ; IFGT chk_rd_intrn_t0_tic.B,#15 ; JSR CHECK_RD_INTRN ;
JMP MAIN_LOOP ; This is the main endless loop. Only exit on reset.
;-------------------- END OF MAIN ----------------------------------------
;-------------------- DO JOB ---------------------------------------------
DO_JOB: LD A,B ; Job number into A for lookup; JID ; Vector to right job. .PT DO_MOVE,DO_TST,DO_LIGHTS,DO_CONTROL,DO_READ_INTERNAL .PT DO_READ_EXTERNAL,DO_HEAD,DO_BEACON,DO_LIGHTSHOWS
DO_MOVE: JMP MOVE_MAIN ; DO_TST: RET ; ; JMP TEST_MAIN ; DO_LIGHTS: RET ; ; JMP LIGHTS_MAIN ; DO_CONTROL: ; RET ; JMP CONTROL_MAIN DO_READ_INTERNAL: RET ; ; JMP READ_INTERNAL_MAIN DO_READ_EXTERNAL: RET ; ; JMP RDEXTRN_MAIN DO_HEAD: ; RET ; JMP HEAD_MAIN DO_BEACON: RET ; ; JMP BEACON_MAIN DO_LIGHTSHOWS: RET ; ; JMP LIGHTSHOWS_MAIN
;---------------------- END OF DO JOB ------------------------------------
.endsect .end MAIN
| | | | |
|
22 Apr 2013 19:13 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 883
|
Это если он программу в этом режиме не побайтно читает. С другой стороны, это же ускорение обмена с памятью, может они там как-то заморочились с кешем на два байта
Хотя, я думаю, всё будет пучком, если всё равно и старший, и младший байт всегда на шине данных. Даже чтение байт будет работать как надо. Проблема будет только с записью байт.
Интересно, а в приведённой в даташите схеме в режиме 16-бит он может читать слова по нечётному адресу? Т.е. делает ли он два цикла чтения в таких случаях?
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
22 Apr 2013 23:20 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23104 Location: Silicon Valley
|
да - точно, программа то побайтно сливается - не выйдет подключить 16-битную память
P.S. тогда пожалуй я начну с тестового стенда аля nedoPC-85-A - с одной ROM 8K, одной RAM 8K и одной NI-15...
|
23 Apr 2013 05:05 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 883
|
Не кипятись. Всё получится. Какая разница, будет ли на нечитаемой в данный момент части шины данных какой-то байт, или не будет (главное чтобы контроллер тоже ничего не выдавал). Просто будет дважды прочитано слово, первый раз чтобы считать младший байт, второй раз - чтобы старший.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
23 Apr 2013 05:17 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 23104 Location: Silicon Valley
|
а дёргать то при этом она будет разные CS
|
23 Apr 2013 06:35 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 883
|
А ты их через И сделай.
Что-то мне начинает казаться, что и запись байтов сделать можно.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
23 Apr 2013 06:41 |
|
Who is online |
Users browsing this forum: Claude AI [Bot] and 1 guest |
|
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 post attachments in this forum
|
|