@@ -120,6 +120,32 @@ impl z80 {
120
120
pub fn step ( & mut self ) -> u32 {
121
121
unsafe { z80_step_s ( self ) }
122
122
}
123
+ fn internal_port_in ( & self , addr : u16 ) -> u8 {
124
+ #[ cfg( test) ]
125
+ unsafe {
126
+ let mut operation = self . c2rust_unnamed_0 . c2rust_unnamed . c ;
127
+ if operation == 2 {
128
+ print ! ( "{}" , self . c2rust_unnamed_1. c2rust_unnamed. e) ;
129
+ } else if operation == 9 {
130
+ let mut addr = ( ( self . c2rust_unnamed_1 . c2rust_unnamed . d as i32 )
131
+ << 8 as i32 | self . c2rust_unnamed_1 . c2rust_unnamed . e as i32 )
132
+ as u16 ;
133
+ loop {
134
+ let fresh0 = addr;
135
+ addr = addr. wrapping_add ( 1 ) ;
136
+ print ! ( "{}" , String :: from_utf8( vec![ self . ctrl. read_byte( fresh0) ] ) . unwrap( ) ) ;
137
+ if !( self . ctrl . read_byte ( addr) as i32 != '$' as i32 as i32 ) {
138
+ break ;
139
+ }
140
+ }
141
+ }
142
+
143
+ }
144
+ self . ctrl . port_in ( addr)
145
+ }
146
+ fn internal_port_out ( & mut self , addr : u16 , value : u8 ) {
147
+ self . ctrl . port_out ( addr, value) ;
148
+ }
123
149
}
124
150
125
151
#[ derive( Copy , Clone ) ]
@@ -793,15 +819,15 @@ unsafe extern "C" fn cpd(z: *mut z80) {
793
819
( * z) . mem_ptr = ( ( * z) . mem_ptr as i32 - 2 as i32 ) as uint16_t ;
794
820
}
795
821
unsafe extern "C" fn in_r_c ( z : * mut z80 , mut r : * mut uint8_t ) {
796
- * r = ( * z) . ctrl . port_in ( ( * z) . c2rust_unnamed_0 . bc ) ;
822
+ * r = ( * z) . internal_port_in ( ( * z) . c2rust_unnamed_0 . bc ) ;
797
823
flag_set ( z, zf, * r as i32 == 0 as i32 ) ;
798
824
flag_set ( z, sf, * r as i32 >> 7 as i32 != 0 ) ;
799
825
flag_set ( z, pf, parity ( * r) ) ;
800
826
flag_set ( z, nf, 0 as i32 != 0 ) ;
801
827
flag_set ( z, hf, 0 as i32 != 0 ) ;
802
828
}
803
829
unsafe extern "C" fn ini ( z : * mut z80 ) {
804
- let mut tmp: u32 = ( * z) . ctrl . port_in ( ( * z) . c2rust_unnamed_0 . bc )
830
+ let mut tmp: u32 = ( * z) . internal_port_in ( ( * z) . c2rust_unnamed_0 . bc )
805
831
as u32 ;
806
832
let mut tmp2: u32 = tmp
807
833
. wrapping_add (
@@ -836,7 +862,7 @@ unsafe extern "C" fn ini(z: *mut z80) {
836
862
as uint8_t ;
837
863
}
838
864
unsafe extern "C" fn ind ( z : * mut z80 ) {
839
- let mut tmp: u32 = ( * z) . ctrl . port_in ( ( * z) . c2rust_unnamed_0 . bc )
865
+ let mut tmp: u32 = ( * z) . internal_port_in ( ( * z) . c2rust_unnamed_0 . bc )
840
866
as u32 ;
841
867
let mut tmp2: u32 = tmp
842
868
. wrapping_add (
@@ -873,7 +899,7 @@ unsafe extern "C" fn ind(z: *mut z80) {
873
899
unsafe extern "C" fn outi ( z : * mut z80 ) {
874
900
let mut tmp: u32 = rb ( z, ( * z) . c2rust_unnamed_2 . hl ) as u32 ;
875
901
let mut tmp2: u32 = 0 ;
876
- ( * z) . ctrl . port_out ( ( * z) . c2rust_unnamed_0 . bc , tmp as uint8_t ) ;
902
+ ( * z) . internal_port_out ( ( * z) . c2rust_unnamed_0 . bc , tmp as uint8_t ) ;
877
903
( * z) . c2rust_unnamed_2 . hl = ( ( * z) . c2rust_unnamed_2 . hl ) . wrapping_add ( 1 ) ;
878
904
( * z)
879
905
. c2rust_unnamed_0
@@ -910,7 +936,7 @@ unsafe extern "C" fn outd(z: *mut z80) {
910
936
as uint16_t ;
911
937
}
912
938
unsafe extern "C" fn outc ( z : * mut z80 , mut data : uint8_t ) {
913
- ( * z) . ctrl . port_out ( ( * z) . c2rust_unnamed_0 . bc , data) ;
939
+ ( * z) . internal_port_out ( ( * z) . c2rust_unnamed_0 . bc , data) ;
914
940
( * z)
915
941
. mem_ptr = ( ( * z) . c2rust_unnamed_0 . bc as i32 + 1 as i32 )
916
942
as uint16_t ;
@@ -2844,15 +2870,15 @@ unsafe extern "C" fn exec_opcode(z: *mut z80, mut opcode: uint8_t) -> u32 {
2844
2870
( * z)
2845
2871
. c2rust_unnamed
2846
2872
. c2rust_unnamed
2847
- . a = ( * z) . ctrl . port_in ( port) ;
2873
+ . a = ( * z) . internal_port_in ( port) ;
2848
2874
( * z) . mem_ptr = ( port as i32 + 1 as i32 ) as uint16_t ;
2849
2875
}
2850
2876
211 => {
2851
2877
cyc = cyc. wrapping_add ( 11 as i32 as u32 ) ;
2852
2878
let port_0: uint16_t = ( nextb ( z) as i32
2853
2879
| ( ( * z) . c2rust_unnamed . c2rust_unnamed . a as i32 )
2854
2880
<< 8 as i32 ) as uint16_t ;
2855
- ( * z) . ctrl . port_out ( port_0, ( * z) . c2rust_unnamed . c2rust_unnamed . a ) ;
2881
+ ( * z) . internal_port_out ( port_0, ( * z) . c2rust_unnamed . c2rust_unnamed . a ) ;
2856
2882
( * z)
2857
2883
. mem_ptr = ( port_0 as i32 + 1 as i32
2858
2884
& 0xff as i32
0 commit comments