head 1.2; access; symbols pkgsrc-2026Q1:1.2.0.92 pkgsrc-2026Q1-base:1.2 pkgsrc-2025Q4:1.2.0.90 pkgsrc-2025Q4-base:1.2 pkgsrc-2025Q3:1.2.0.88 pkgsrc-2025Q3-base:1.2 pkgsrc-2025Q2:1.2.0.86 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.84 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.82 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.80 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.2.0.78 pkgsrc-2024Q2-base:1.2 pkgsrc-2024Q1:1.2.0.76 pkgsrc-2024Q1-base:1.2 pkgsrc-2023Q4:1.2.0.74 pkgsrc-2023Q4-base:1.2 pkgsrc-2023Q3:1.2.0.72 pkgsrc-2023Q3-base:1.2 pkgsrc-2023Q2:1.2.0.70 pkgsrc-2023Q2-base:1.2 pkgsrc-2023Q1:1.2.0.68 pkgsrc-2023Q1-base:1.2 pkgsrc-2022Q4:1.2.0.66 pkgsrc-2022Q4-base:1.2 pkgsrc-2022Q3:1.2.0.64 pkgsrc-2022Q3-base:1.2 pkgsrc-2022Q2:1.2.0.62 pkgsrc-2022Q2-base:1.2 pkgsrc-2022Q1:1.2.0.60 pkgsrc-2022Q1-base:1.2 pkgsrc-2021Q4:1.2.0.58 pkgsrc-2021Q4-base:1.2 pkgsrc-2021Q3:1.2.0.56 pkgsrc-2021Q3-base:1.2 pkgsrc-2021Q2:1.2.0.54 pkgsrc-2021Q2-base:1.2 pkgsrc-2021Q1:1.2.0.52 pkgsrc-2021Q1-base:1.2 pkgsrc-2020Q4:1.2.0.50 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.48 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.2.0.44 pkgsrc-2020Q2-base:1.2 pkgsrc-2020Q1:1.2.0.24 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.2.0.46 pkgsrc-2019Q4-base:1.2 pkgsrc-2019Q3:1.2.0.42 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.2.0.40 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.38 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.36 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.34 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.32 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.30 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.28 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.26 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.22 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.20 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.18 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.16 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.14 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.12 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.10 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.8 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.6 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.2.0.4 pkgsrc-2015Q1-base:1.2 pkgsrc-2014Q4:1.2.0.2 pkgsrc-2014Q4-base:1.2 pkgsrc-2014Q3:1.1.0.66 pkgsrc-2014Q3-base:1.1 pkgsrc-2014Q2:1.1.0.64 pkgsrc-2014Q2-base:1.1 pkgsrc-2014Q1:1.1.0.62 pkgsrc-2014Q1-base:1.1 pkgsrc-2013Q4:1.1.0.60 pkgsrc-2013Q4-base:1.1 pkgsrc-2013Q3:1.1.0.58 pkgsrc-2013Q3-base:1.1 pkgsrc-2013Q2:1.1.0.56 pkgsrc-2013Q2-base:1.1 pkgsrc-2013Q1:1.1.0.54 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.52 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.50 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.48 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.46 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.44 pkgsrc-2011Q4-base:1.1 pkgsrc-2011Q3:1.1.0.42 pkgsrc-2011Q3-base:1.1 pkgsrc-2011Q2:1.1.0.40 pkgsrc-2011Q2-base:1.1 pkgsrc-2011Q1:1.1.0.38 pkgsrc-2011Q1-base:1.1 pkgsrc-2010Q4:1.1.0.36 pkgsrc-2010Q4-base:1.1 pkgsrc-2010Q3:1.1.0.34 pkgsrc-2010Q3-base:1.1 pkgsrc-2010Q2:1.1.0.32 pkgsrc-2010Q2-base:1.1 pkgsrc-2010Q1:1.1.0.30 pkgsrc-2010Q1-base:1.1 pkgsrc-2009Q4:1.1.0.28 pkgsrc-2009Q4-base:1.1 pkgsrc-2009Q3:1.1.0.26 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.0.24 pkgsrc-2009Q2-base:1.1 pkgsrc-2009Q1:1.1.0.22 pkgsrc-2009Q1-base:1.1 pkgsrc-2008Q4:1.1.0.20 pkgsrc-2008Q4-base:1.1 pkgsrc-2008Q3:1.1.0.18 pkgsrc-2008Q3-base:1.1 cube-native-xorg:1.1.0.16 cube-native-xorg-base:1.1 pkgsrc-2008Q2:1.1.0.14 pkgsrc-2008Q2-base:1.1 cwrapper:1.1.0.12 pkgsrc-2008Q1:1.1.0.10 pkgsrc-2008Q1-base:1.1 pkgsrc-2007Q4:1.1.0.8 pkgsrc-2007Q4-base:1.1 pkgsrc-2007Q3:1.1.0.6 pkgsrc-2007Q3-base:1.1 pkgsrc-2007Q2:1.1.0.4 pkgsrc-2007Q2-base:1.1 pkgsrc-2007Q1:1.1.0.2 pkgsrc-2007Q1-base:1.1; locks; strict; comment @# @; 1.2 date 2014.12.21.00.31.56; author ryoon; state Exp; branches; next 1.1; commitid u2c8Nr1QneXqdQ2y; 1.1 date 2007.01.12.14.12.17; author rillig; state Exp; branches; next ; desc @@ 1.2 log @Update to 2.3.7 Changelog: changes from version ?? to 1.1: * user interface add key = to change the registers A,B,C,D,E,H,L,IX,IY,A',B',C',D',E',H',L',I,R * display and update the cycle counter and the refresh register * BUG in disasm.c f_ld LD rr,(nn) [only 1 byte loaded] fixed! * BUG in disasm.c f_ex EX (SP),IX break missing ==> runs into EX (SP),IY; fixed! * EI replaced by IFF1 & IFF2 (correct LD A,R & LD A,I) * user interface @@(CPU reset), #(clear memory), *(clear all cpu register), $(clear tick counter), &(SP init) * console.c: BUG in c_init() usuage of undefined variable t fixed! changes from version 1.1 to 1.9: * IN, OUT, INI, OUTD, ... all implemented * console.c: BUG(?) in c_init() if ICANON cleared MIN should bet set to 1 * BUG in disasm.c f_add all 16-bit addition with carry bit :( fixed! * declaration of an assembler label may be appended by a colon * if PC, SP, and MEMP input is requested current values are displayed in hexa * HALT really halts the CPU now if interrupt is disabled else set runmode false * user interface !(NMI) implemented * user interface . puts compiled instructions into memory and increases addr * user interface = = to change 16-bit registers BC,DE,HL,BC',DE',HL',IX,IY * BUG in disasm.c f_adc wrong carry/h/v flag calculation fixed! * BUG in disasm.c f_sbc wrong carry/h/v flag calculation fixed! * interrupt behaviour simulated, except IM=0 (probably tick count wrong) * user interface D(dump/disassemble into file) toggle DI/EI to key ^ changed * PC and SP defaults into hexa, CALL, JP and RST in disassembling format, too * user interface " (protocol instructions executed) * bank switching logic implemented (still experimental) * BUG in disasm.c f_ld if 16 bit load from 0xffff adress OVERFLOW fixed! * disasm.c: f_sll opcode CB30-CB37 implemented * warnings and error_msg now occupy only the very last line (row 23) * user interface % sets a breakpoint with a run counter at current PC * breakpoints (address & counter) are displayed in row 22 * pseudo instruction EQU in assembler (asm.c) implemented * CPU Halt-pin/status is displayed in upper right corner if active * turbo mode improved a lot: 4 levels now (16 min, 380 sec, 38 sec, 2.5 sec) * disasm.c: f_nop2 all undocumented ED-opcodes implemented * all the man pages updated * turbo mode replaced by controling the clock speed/frequency * the ports are implemented as a map onto one binary file named .Z80_ports * hardware_clock.c and lcd_display.c provided as examples for port usage changes from version 1.9 to 2.0beta: * BUG in inst-dist.c ED63 ld hl,(nn) A_NUM -> A_PODDLE_NUM fixed! * z80-asm permits in the case of exactly 1 section and inputfilename ends with .asm the outputfile to be optional (.asm is exchanged to .z80 for outputfile) * BUG in z80-asm: if start > highest byte in memory undefined outputfile length * HALT halts the CPU now if interrupt is enabled else set runmode false necessary for emulator mode ==> user interface & sets a DI on stack * user interface ! toggle keyboard read disabled/enabled in run mode user interface ESC now simulates a NMI * z80-mon has option -E for emulator mode (immediately CPU start) * SIGTERM, SIGHUP terminates z80-mon, SIGUSR1 causes reset, SIGUSR2 causes NMI, SIGABORT causes cpu_wait=1 and SIGTRAP makes a CPU dump * keyboard mapping implemented (used for IN from port stdin) * simul.c: decode() now handles stray FD and DD prefixes * all FD and DD are simulated by decode() ==> IXh,IXl,IYh,IYl introduced in regs.c and regs_token and set N_REGISTERS to 21 , global _ushort ddfdcb_reg * decoder and executer [decode() and execute.c] totally checked. Now memory read access separated from memory write access. Usage of DATA pins! * in disasm.c: all 11 CB-executions and all 8 arith/logic-A-executions bundled * BUG in disasm.c: f_cp/f_cpd/f_cpi/f_cpdr/... h-flag wrong calculated fixed! * BUG in disasm.c: f_dec p-flag wrong calculated fixed! * the f_... functions in execute.c now return a pointer to char, doesn't print * total memory access encapsulated in memory.c / io-data access simulated * Makefile updated (*.h) goes now into hardware, make install added * doc/man pages updated * in asm.c: write_to_memory(), set_start_address(), get_current_address() introduced for usage of compile() [now returns the number of bytes writen] changes from version 2.0b to 2.0c: * BUG in asm.c: lexical_analysis: multiple label definition possible fixed! * BUG in compile.c: c_add: ADD IY,IX valid(typo), ADD IY,IY invalid fixed! * BUG in execute.c: f_alu: ADD,ADC,SBC use second operand (bad nemonic) fixed! * BUG in execute.c: f_neg: carry-flag always effected (carry=!!A) fixed! * BUG in execute.c: f_bit: sign-flag effected only if bit 7 tested fixed! * BUG in execute.c: f_daa: total nonsense! (>=4 independent errors) fixed! * z80-asm.c Option -l added ==> in asm.c LISTING in pass 2 evaluated * in execute.c: in disassembling mode jr and djnz instruction offset with sign * user interface t enables base switch for disassembling constants * user interface L now can read true binary files into memory * user interface a,b changed to u,v and e deleted [reserved for register] * pseudo instructions DEFM, ALIGN in assembler (asm.c) implemented (sll,too) * Z80-Asm accepts integers to base 16 also if they have a h or H postfix * hash table structur/allocation optimized and option -c in z80-asm.c added changes from version 2.0c to 2.0: * pseudo instruction END added and max label length to be 63 documented * in asm.h: better interface (highest_address,generated_bytes,set_compile_pass) * in asm.c: compile(void) now detects an EOF (take_line reads exactly 1 line) changes from version 2.0 to 2.1 * in asm.c: compile(char *txt) ==> take_line(..) not longer obligate! * ticks encapsulated ==> wait_tics(AMOUNT) and quartz.c/quartz.h introduced * -DEFINES in Makefile and hardware/z80-ctc.c (experimental/beta Z80_CTC) * BUG in compile.c: IX-/ IY-displacements must be < 128 and >= -128 fixed! * in asm.c: in compile() all error_messages bundled (do we like to translate?) * daisy_chain realized / more realistic interrupt handling by hardware * bank switching logic re-implemented (still all banks must have same size) * in regs.c register names to upper case (better to distinguish from addresses) * user interface j switches relative versa absolute address (disasm jr/djnz) * several small errors/bugs fixed * user interface j enables now labeled address disassembling for jp/call/jr * user interface j enables relative disassembling via two-pass disassembling * z80-mon with -E now reads CPU status from .CPU and finishes if HALT in DI * algebraic expressions evaluation in asm.c: valid operators ~,&,|,^,+,-,*,/,% * in asm.c: @@ is a special 'label' indicating the current PC * in asm.c: explicit binary constants must be lead-in by # replacing % prefix additionaly (to the 0x) the $ prefix for hexadecimal numbers is availible * BUG in compile.c: c_ret: typo in case PO wrong machine code generated fixed! * several DJGCC compilation bugs removed (missing includes,defines,typos) changes from version 2.1c to 2.2: * BUG in asm.c: convert_arg: memmove deletes IX or IY but needed later fixed! * BUG in execute.c f_out/f_in: ts[] resp. tf[] must be at least 5 chars fixed! * BUG in compile.c c_ld: LD HL,(addr) should generate opcode 2A not ED6B fixed! * BUG in compile.c convert_arg: char consts must not be converted to upper case fixed! * BUG in compile.c convert_arg: missing {} for for-loop body which results in all strings became nilstrings fixed! * BUG in compile.c convert_arg: bug in string parsing, wrong indices fixed! * BUG in execute.c f_ld: LD (addr),rr puts only lower byte into memory fixed! * BUG in asm.c: convert_arg: (IX+-num) num argument was not expected to be an expression. test_number() <-> parse_expr() fixed! * BUG in asm.c: convert_arg: arg->label undefined! Default to false now fixed! * BUG in asm.c: lexical_analysis: overflow possible for 8-bit arguments in 1th pass if labels are used in expressions fixed! * BUG in asm.c: lexical_analysis: pseudo instructions I_EQU, I_DEFM, I_ORG, I_ALIGN also needs the current address as argument in pass 1 if it is a label fixed! * BUG in asm.c: lexical_analysis: parsing inside '..' was finished by delimiter (now new error message UNS introduced) fixed! * BUG in z80-mon.c: main: init_ctc() must be before reset_cpu() because set_cpu_pin() may call set_ctc_pin()! fixed! * BUG in execute.c: ix_iy_disp: _ushort a must be casted to signed char fixed! * BUG in execute.c: reg_str: in case A_PODLE_IX_PLUS, A_PODLE_IY_PLUS argument arg must be casted to signed char fixed! * in asm.c: if more than 4 bytes opcodes (e.g. DEFS) only the first 4 are shown in the assembler listing * in asm.c: new error message: Invalid character argument for invalid character tokens containing more than 1 (or none) character * in all places/files exchanged DEFM <--> DEFS (defs <--> defm). Historical DEFM is used to put messages (strings) in memory and DEFS is used to reserve storage (in memory) in Zilog Z80 assembler language changes after version 2.2: * BUG in instr.c: DEFS and DEFM must stay ordered lexicographicly fixed! * BUG in asm.c: compile: in printf if i>4 maximum must be 4 not 12 fixed! * BUG in asm.c: compile: in I_ORG last must be set to address fixed! * in memory.c: set_default_byte() introduced to set the default memory value * in z80-asm new option -f XX (this option defines DEFS & ORG gaps to be XX) * BUG in asm.c: logic when to calculate EQU is wrong!! we need to store the expression in the hash table NOT FIXED! "(pruchod != 11)" * BUG in asm.c: the ALIGN statement must produce fill bytes, too (-f XX) fixed! * BUG in asm.c: overwriting code warning must depend on fill byte fixed! * BUG in asm.c: test_number: if base is known (prefix) number may be start with non-digit character fixed! * BUG in asm.c: compile I_ALIGN address is already increased by out() fixed! * BUG in z80-asm.c: init: now it has parameter fill_byte to init memory fixed! * in asm.c/expression.c/hash.c: new evaluation logic for EQU and expressions implemented. Their values are now evaluated in pass 2 recursivly * in z80-mon.c: ask() and ask_x() accept now all number representations like z80-asm (even the '?') except that any sign is forbidden * pseudo instructions DEFL in assembler (asm.c) implemented * BUG in z80-asm.c: parse_arg: ignores filename parameter if one can be constructed from source filename fixed! * BUG in compile.c: out() should be performed to have correct PC if signed or unsigned overflow of 8-bit argument occurs.(ret=8,9) fixed! * in expression.c: new operators !, <<, >>, ==, !=, >, <, >=, <=, &&, || * BUG in hash.c: last_label_reusable: uniq must be negated fixed! * in asm.c: DEFL lables now multiple in hashtable (distinguished by lineno) * in asm.c: COND/ENDC enables conditionel compiling * BUG in execute.c: f_in_block, f_out_block: F_sign, F_Z not effected and if B!=0 F_Z not cleared fixed! * BUG in Makefile: now manuals are in doc/man not in doc fixed! * BUG in asm.c: convert_arg: indirect addressing was wrongly recognized fixed! * BUG in hash.c: is_in_table: for non-uniq lables (DEFL) wrong element fixed! * BUG in hash.c: add_to_table: ->uniq undefined fixed! * in expression.c: new operators ** , // , ? and right operand of << and >> is now interpreted as unsigned * BUG in expression,c: parse_expr(): all expressions must be tried to be evaluated in PASS 1 (needed for ORG, DEFS, CONDC) fixed! * in ports.c: cpu_pin iorq used, and the variables ADDRESS and DATA are set. * in hardware/README: explanation how to implement further add-ons * z80-mon.c: main: cpu_pins busrq and busack are now served * z80-cpu.c/ports,c: Z80-CTC port access now wired at Z80-CPU * BUG in ports.c: in_byte(): missing DATA bus assign from *data fixed! changes after version 2.3: * BUG in Makefile: DEFINES are not put to in $(MAKE) hardware fixed! * hardware: logic_analzyer implemented (to view the Z80 pins) * in decode.c: refresh_cycle() mreq- and rfsh-pin used and I<<8|R onto ADDRESS * in z80-cpu.c: machine cycle counter (triggered by wait_tics) * BUG in asm.c: no_para[]: RST needs 1 Parameter, not 0 fixed! * BUG in execute.c: cp_block: 3 tics missing fixed! * in z80-mon.c: machine cycle counter displayed * in z80-cpu.c: busrq is now acknowledged at beginning of each machine cycle * with dummy.c print_ticks() reintroduced to mask it in non z80-mon programs using acknowledge_bus_request() * BUG in hardware/z80-ctc.c: read_word(): fp may be 0 fixed!! * only if !cpu_is_in_disassemble then set_cpu_pin() , acknowledge_bus_request() and ADDRESS are used (databus can be used if cpu_is_in_disassemble mode) * port_buffer for OLD_STYLE port_access via Z80_PORTS put in hardware now * z80-global im Makefile als dependence of z80-cpu.h * SSL_ZDS trigger in hardware * BUG in execute.c: f_inc/f_dec: 16 bit registers shouldn't change flags fixed! * BUG in execute.c: f_rrd: lower nibble in accu set wrongly fixed! * BUG in execute.c: f_adc16/f_sbc16: zero_flag wrongly calculated fixed! * BUG in execute.c: f_inc/f_dec: PV_flag wrongly calculated fixed! * in z80-asm.c und z80-mon.c option parsing simplified und equaly processed. * BUG in execute.c: add,adc,sub,sbc,cp,f_adc16,f_sbc16: underflow check for < -127 , < -32767 missing (V-Flag wrongly computed) fixed! * BUG ins asm.c: convert_arg(): arg->text isn't initialized to 0. fixed! * BUG in regs.h: missing #include "z80-global" to define seznam_type fixed! * BUG in execute.c: f_neg: PV_flag wrongly calculated fixed! * BUG in execute.c: f_neg: H_flag setiing typo: F_N must be F_NH fixed! * BUG in execute.c: f_inc/f_dec: PV_flag wrongly calculated for 8-bit register (last fix affected only 8-bit memory access) fixed! * BUG in execute.c: add/adc/sub/sbc/cp/adc16/sbc16: V_flag inverted mapped on P_flag fixed! * in all Makefile: -malign-function=0 replaced by -falign-function=0 and Makefile-Variable CC set to gcc. * doc/execute_timing.tex to doc/execute_timing.txt renamed * BUG in z80-mon.c: main: counter b & s for argv wrongly increased fixed! * BUG in memory.c: init_banks: map must be 0-pointer for first realloc fixed! * BUG in memory.c: init_banks: tok[3] must be tok[4] in two lines fixed! * BUG in memory.c: init_banks: superfluious else prohibited bank[id].back_up allocation. fixed! * BUG in memory.c: init_banks: strtoul(..) needs check of *p if p is defined after scanning tok2 and tok4 for numbers fixed! * BUG in memory.c: _uchar memory_at: logic for bank_access is missing fixed! * in hardware/banks-*: new bank-mask notation introduced * in doc/man/z80-banks.5 default bank after reset/initialisation documentated. * in memory.c bank-mask must now be a 2 hexadecimal number * in doc/man/z80-mon.1 execution-mode preciser defined. * in z80-cpu.c/z80-cpu.h: new cpu-flag cpu_is_in_x_mode defined * in z80-mon.c: main: cpu_is_in_x_mode is set if 'Execute instruction'-Key * in execute.c: cpu_is_in_x_mode used for jr/djnz/halt/cp-, ld-, out-, in- block instructions used @ text @$NetBSD: patch-aa,v 1.1 2007/01/12 14:12:17 rillig Exp $ Solaris is kind of UNIX-like, but does not have the cfmakeraw function. --- console.c.orig 2004-06-09 13:20:13.000000000 +0000 +++ console.c @@@@ -7,6 +7,7 @@@@ #include #include #include +#include /* Solaris requires this for FD_ZERO() */ #ifdef DOS #include @@@@ -191,7 +192,7 @@@@ c_bell(void) void c_init(char a) { -#ifdef UNIX +#if defined(UNIX) && !defined(__sun) struct termios t; fd_in=fileno(stdin); fd_out=fileno(stdout); @ 1.1 log @Forgot to commit the actual patch. @ text @d1 1 a1 1 $NetBSD$ d5 2 a6 2 --- console.c.orig 2003-01-20 14:53:08.000000000 +0100 +++ console.c 2007-01-12 15:06:02.202678144 +0100 d15 1 a15 1 @@@@ -33,7 +34,7 @@@@ c_refresh(void) d17 1 a17 1 c_init(void) d22 2 a23 2 console_ok=0; @